Commit 91bc5fad by wangqi

基层的单位计算单位分档结果

parent 2f06a215
......@@ -12,8 +12,7 @@ import com.qianhe.common.utils.StringUtils;
import com.qianhe.domain.*;
import com.qianhe.mapper.SjGfjsYdjcjlMapper;
import com.qianhe.mapper.SjGfjsZdgzMapper;
import com.qianhe.service.ISjGfjsJcdwkhpjService;
import com.qianhe.service.ISjGfjsJcdwkhpjZbService;
import com.qianhe.service.*;
import com.qianhe.system.mapper.SysDeptMapper;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
......@@ -30,6 +29,7 @@ import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
......@@ -83,6 +83,18 @@ public class SjGfjsJcdwkhpjController extends BaseController
return getDataTable(list);
}
@Autowired
private ISjGfjsZdgzService sjGfjsZdgzService;
@Autowired
private ISjGfjsDxjczService sjGfjsDxjczService;
@Autowired
private ISjGfjsFdgzService sjGfjsFdgzService;
// 定义默认的最大值
private static final BigDecimal DEFAULT_MAX = new BigDecimal("99999");
// 定义默认的最小值
private static final BigDecimal DEFAULT_MIN = BigDecimal.ZERO;
/**
* 查询考核评价
* @return
......@@ -121,10 +133,73 @@ public class SjGfjsJcdwkhpjController extends BaseController
endRq=nd+"-12";
}
//查询考核评价是否保存到从表
List<SjGfjsZsdwkhpj> sjGfjsZsdwkhpjs = sjGfjsZsdwkhpjService.selectSjGfjsZsdwkhpjList(sjGfjsZsdwkhpj);
// List<SjGfjsZsdwkhpj>
if(sjGfjsZsdwkhpjs.size()<=0){
// 查询权重系数,
SjGfjsZdgz sjGfjsZdgz_qz = new SjGfjsZdgz();
sjGfjsZdgz_qz.setNd(nd);
sjGfjsZdgz_qz.setLx("基础");
List<SjGfjsZdgz> qzlist = sjGfjsZdgzService.selectSjGfjsZdgzList(sjGfjsZdgz_qz);
// 查询基础值,
SjGfjsDxjcz sjGfjsDxjcz = new SjGfjsDxjcz();
sjGfjsDxjcz.setNd(nd);
List<SjGfjsDxjcz> jczlist = sjGfjsDxjczService.selectSjGfjsDxjczList(sjGfjsDxjcz);
Map<String, BigDecimal> jczMap = new HashMap<>();
for (SjGfjsDxjcz dxjcz : jczlist) {
try {
// 将基础值字符串转换为BigDecimal
BigDecimal jczValue = new BigDecimal(dxjcz.getJcz());
jczMap.put(dxjcz.getJb(), jczValue);
} catch (NumberFormatException e) {
throw new IllegalArgumentException("基础值格式错误,级别:" + dxjcz.getJb() + ",值:" + dxjcz.getJcz(), e);
}
}
// 分档规则
SjGfjsFdgz sjGfjsFdgz = new SjGfjsFdgz();
sjGfjsFdgz.setNd(nd);
List<SjGfjsFdgz> fdgzlist = sjGfjsFdgzService.selectSjGfjsFdgzList(sjGfjsFdgz);
// 计算总得分 初始直接照全是A计算
BigDecimal totalScore = BigDecimal.ZERO;
for(int i=0;i<qzlist.size();i++){
SjGfjsZdgz qzxsMap = qzlist.get(i);
BigDecimal qzxs = new BigDecimal(qzxsMap.getKhnrfs());// 系数
BigDecimal baseValue = jczMap.get("A");
// 计算单项得分并累加
BigDecimal itemScore = qzxs.multiply(baseValue);
totalScore = totalScore.add(itemScore);
}
// 计算单位分档级别
String fdjb = "未知";
for (SjGfjsFdgz fdgz : fdgzlist) {
// 处理最小基础值(null或空字符串视为0)
BigDecimal minJcz = DEFAULT_MIN;
String minStr = fdgz.getMinjcz();
if (minStr != null && !minStr.trim().isEmpty()) {
minJcz = new BigDecimal(minStr.trim());
}
// 处理最大基础值(null或空字符串视为99999)
BigDecimal maxJcz = DEFAULT_MAX;
String maxStr = fdgz.getMaxjcz();
if (maxStr != null && !maxStr.trim().isEmpty()) {
maxJcz = new BigDecimal(maxStr.trim());
}
// 检查总分是否在当前分档的范围内(包含边界值)
// 比较规则:minJcz ≤ totalScore < maxJcz
if (totalScore.compareTo(minJcz) >= 0 && totalScore.compareTo(maxJcz) < 0) {
fdjb = fdgz.getJb(); // 返回匹配的级别
}
}
//查询主表信息
SjGfjsZsdwkhpjZb sjGfjsZsdwkhpjZb=new SjGfjsZsdwkhpjZb();
sjGfjsZsdwkhpjZb.setNd(nd);
......@@ -142,6 +217,9 @@ public class SjGfjsJcdwkhpjController extends BaseController
sjGfjsZsdwkhpjZbnew.setDeptDfl(dept.getDeptDfl());
sjGfjsZsdwkhpjZbnew.setDeptLx(dept.getDeptLx());
sjGfjsZsdwkhpjZbnew.setDeptYwfl(dept.getDeptYwfl());
sjGfjsZsdwkhpjZbnew.setZdf(totalScore);
sjGfjsZsdwkhpjZbnew.setZhdf(totalScore);
sjGfjsZsdwkhpjZbnew.setFdjb(fdjb);
sjGfjsZsdwkhpjZbnew.setZt("0");//未提交
sjGfjsZsdwkhpjZbService.insertSjGfjsZsdwkhpjZb(sjGfjsZsdwkhpjZbnew);
}
......@@ -201,11 +279,13 @@ public class SjGfjsJcdwkhpjController extends BaseController
zb_qry.setZqfw(sjGfjsZsdwkhpj.getZqfw());
SjGfjsZsdwkhpjZb zb =sjGfjsZsdwkhpjZbService.selectSjGfjsZsdwkhpjZb(zb_qry);
String zt = zb.getZt();
String fdjb = zb.getFdjb();
map.put("code",HttpStatus.SUCCESS);
map.put("msg","查询成功");
map.put("khpjData",resjGfjsZsdwkhpjs);
map.put("zt", zt);
map.put("fdjb", fdjb);
return map;
}
......
......@@ -155,4 +155,16 @@ public class SjGfjsZdgzController extends BaseController
return success(sjGfjsZdgzService.getPjbzList(cb));
}
/**
* 修改规范建设-重点工作 原考核评价标准
*/
// @PreAuthorize("@ss.hasPermi('system:sjGfjsZdgz:edit')")
@Log(title = "规范建设-重点工作 原考核评价标准", businessType = BusinessType.UPDATE)
@PutMapping("/editQzxs")
public AjaxResult editQzxs(@RequestBody SjGfjsZdgz sjGfjsZdgz)
{
return toAjax(sjGfjsZdgzService.updateSjGfjsZdgz_QZXS(sjGfjsZdgz));
}
}
......@@ -189,4 +189,9 @@ public class SjGfjsZsdwkhpjZb extends BaseEntity
*/
private String zt;
/**
* ABCD
*/
private String fdjb;
}
......@@ -103,5 +103,7 @@ public interface SjGfjsZdgzMapper
List<SjGfjsZdgzCb> selectSjGfjsZdgzCxBzList(SjGfjsZdgz sjGfjsZdgz);
public int updateSjGfjsZdgz_QZXS(SjGfjsZdgz sjGfjsZdgz);
}
......@@ -71,4 +71,6 @@ public interface ISjGfjsZdgzService
List<SjGfjsZdgzCb> getPjbzList(SjGfjsZdgzCb cb);
public int updateSjGfjsZdgz_QZXS(SjGfjsZdgz sjGfjsZdgz);
}
......@@ -166,4 +166,11 @@ public class SjGfjsZdgzServiceImpl implements ISjGfjsZdgzService
}
}
}
@Transactional
@Override
public int updateSjGfjsZdgz_QZXS(SjGfjsZdgz sjGfjsZdgz)
{
return sjGfjsZdgzMapper.updateSjGfjsZdgz_QZXS(sjGfjsZdgz);
}
}
......@@ -214,4 +214,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
( #{item.id}, #{item.zbId}, #{item.nd}, #{item.lx}, #{item.khnr}, #{item.khxd}, #{item.pjbz}, #{item.px}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark}, #{item.yl1}, #{item.yl2}, #{item.yl3}, #{item.yl4}, #{item.yl5})
</foreach>
</insert>
<update id="updateSjGfjsZdgz_QZXS" parameterType="SjGfjsZdgz">
update sj_gfjs_zdgz
<trim prefix="SET" suffixOverrides=",">
<if test="khnrfs != null">khnrfs = #{khnrfs},</if>
</trim>
where id = #{id}
</update>
</mapper>
\ No newline at end of file
......@@ -51,6 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="pm" column="pm" />
<result property="zt" column="zt" />
<result property="fdjb" column="fdjb" />
</resultMap>
<sql id="selectSjGfjsZsdwkhpjZbVo">
......@@ -95,7 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
yl2,
yl3,
yl4,
yl5,d.dept_name,p.dept_name parent_name, a.pm, a.zt
yl5,d.dept_name,p.dept_name parent_name, a.pm, a.zt,a.fdjb
from sj_gfjs_zsdwkhpj_zb a
left join sys_dept d on a.dept_id=d.dept_id
left join sys_dept p on a.parent_dept_id=p.dept_id </sql>
......@@ -140,6 +141,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="yl5 != null and yl5 != ''"> and yl5 = #{yl5}</if>
<if test="pm != null and pm != ''"> and pm = #{pm}</if>
<if test="zt != null and zt != ''"> and zt = #{zt}</if>
<if test="fdjb != null and fdjb != ''"> and fdjb = #{fdjb}</if>
<if test="df != null "> and zdf &lt;= #{df}</if>
<if test="kfbl != null "> and zkfbl >= #{kfbl}</if>
<if test="fjx != null and fjx.toString()=='1'.toString() "> and sffjxs >= #{fjx}</if>
......@@ -203,6 +205,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="yl5 != null">yl5,</if>
<if test="pm != null">pm,</if>
<if test="zt != null">zt,</if>
<if test="fdjb != null">fdjb,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="deptId != null">#{deptId},</if>
......@@ -247,6 +250,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="yl5 != null">#{yl5},</if>
<if test="pm != null">#{pm},</if>
<if test="zt != null">#{zt},</if>
<if test="fdjb != null">#{fdjb},</if>
</trim>
</insert>
......@@ -295,6 +299,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="yl5 != null">yl5 = #{yl5},</if>
<if test="pm != null">pm = #{pm},</if>
<if test="zt != null">zt = #{zt},</if>
<if test="fdjb != null">fdjb = #{fdjb},</if>
</trim>
where id = #{id}
</update>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment