sucheng 7 ماه پیش
والد
کامیت
45a1ec6d36

+ 61 - 0
jsglkh-common/src/main/java/com/rongwei/bscommon/sys/strategy/scoreCalculation/ScoreCalculationServiceNum32.java

@@ -0,0 +1,61 @@
+package com.rongwei.bscommon.sys.strategy.scoreCalculation;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.rongwei.bscommon.sys.service.JtFjglxmService;
+import com.rongwei.bscommon.sys.service.JtJscgpyqdService;
+import com.rongwei.bsentity.domain.*;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.rwcommon.base.BaseDo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.*;
+
+
+/**
+ * ScoreCalculationServiceNum1 class
+ *
+ * @author XH
+ * @date 2024/12/09
+ */
+@Service
+public class ScoreCalculationServiceNum32 implements ScoreCalculationService {
+    @Autowired
+    private JtJscgpyqdService jtJscgpyqdService;
+
+    /**
+     * 识别填报的评优分类,大于等于3类,不扣分,少一类扣1分。
+     *
+     * @param khbmList
+     * @param jtKhxmList
+     * @param jtGsjtbsj
+     * @param jkAssessmentRules
+     * @return
+     */
+    @Override
+    public JtYcpfhzDetail soreCalculation(JtYcpfhz jtYcpfhz, List<JtXmkh> khbmList, List<JtKhxm> jtKhxmList, JtGsjtbsj jtGsjtbsj,
+                                          JkAssessmentRules jkAssessmentRules,
+                                          SysUserVo currentUser) {
+        // 考核得分
+        BigDecimal finalScore = jkAssessmentRules.getWeight();
+        // 扣分细则
+        String errorMsg = "";
+        List<JtJscgpyqd> list = jtJscgpyqdService.list(new LambdaQueryWrapper<JtJscgpyqd>().eq(JtJscgpyqd::getDeleted, "0").eq(JtJscgpyqd::getMainid, jtYcpfhz.getId()));
+        Set<String> collect = list.stream().map(JtJscgpyqd::getPyfl).collect(Collectors.toSet());
+        if(collect.size()>= 3){
+            return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
+        }else {
+            int i = 3 - collect.size();
+            finalScore = finalScore.subtract(new BigDecimal(i));
+            errorMsg = errorMsg + "公司级:识别填报的评优分类,大于等于3类,不扣分,少一类扣1分。";
+        }
+        return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
+    }
+
+}

+ 102 - 0
jsglkh-common/src/main/java/com/rongwei/bscommon/sys/strategy/scoreCalculation/ScoreCalculationServiceNum33.java

@@ -0,0 +1,102 @@
+package com.rongwei.bscommon.sys.strategy.scoreCalculation;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.rongwei.bscommon.sys.service.JtFjglxmService;
+import com.rongwei.bscommon.sys.service.JtYxwjfbqdService;
+import com.rongwei.bsentity.domain.*;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.rwcommon.base.BaseDo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.LinkedList;
+import java.util.List;
+
+import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.*;
+
+
+/**
+ * ScoreCalculationServiceNum1 class
+ *
+ * @author XH
+ * @date 2024/12/09
+ */
+@Service
+public class ScoreCalculationServiceNum33 implements ScoreCalculationService {
+    @Autowired
+    private JtFjglxmService jtFjglxmService;
+
+    /**
+     * 成果资料归档分级分类管理制度附件为空扣3分。
+     * 发布证明为空扣2分。
+     * 成果资料计划归档日期(分级管理-项目清单)为空扣2分。
+     * 考核成果资料计划归档日期在考核区间内的项目,所有成果资料实际归档日期(分级管理-项目清单)不为空且小于等于计划归档日期不扣分;
+     * 成果资料实际归档日期(分级管理-项目清单)为空或大于成果资料计划归档日期,扣0.5分/项(上面指标扣2分之后,这条指标就不计算了)。
+     *
+     * @param khbmList
+     * @param jtKhxmList
+     * @param jtGsjtbsj
+     * @param jkAssessmentRules
+     * @return
+     */
+    @Override
+    public JtYcpfhzDetail soreCalculation(JtYcpfhz jtYcpfhz, List<JtXmkh> khbmList, List<JtKhxm> jtKhxmList, JtGsjtbsj jtGsjtbsj,
+                                          JkAssessmentRules jkAssessmentRules,
+                                          SysUserVo currentUser) {
+        // 考核得分
+        BigDecimal finalScore = jkAssessmentRules.getWeight();
+        // 扣分细则
+        String errorMsg = "";
+        //成果资料归档分级分类管理制度附件为空扣3分。
+        if (ObjectUtil.isEmpty(jtGsjtbsj.getJszlgdfjflglzd())) {
+            finalScore = finalScore.subtract(THREE_SOURCE);
+            errorMsg = errorMsg + "公司级:成果资料归档分级分类管理制度附件为空。";
+            return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
+        }
+        //发布证明为空扣2分。
+        if (ObjectUtil.isEmpty(jtGsjtbsj.getJszlgdfjflglzdfbzm())) {
+            finalScore = finalScore.subtract(TWO_SOURCE);
+            errorMsg = errorMsg + "公司级:发布证明为空。";
+        }
+        // 成果资料计划归档日期(分级管理-项目清单)为空扣2分。
+        // 获取考核项目信息
+        List<JtFjglxm> khxmList = jtFjglxmService.list(new LambdaQueryWrapper<JtFjglxm>()
+                .eq(BaseDo::getDeleted, "0")
+                .eq(JtFjglxm::getZbztdj, "0")
+                .in(JtFjglxm::getMainid, khbmList.stream().map(JtXmkh::getId))
+                .between(JtFjglxm::getJhkssj, jtGsjtbsj.getAssessmentstarttime(), jtGsjtbsj.getAssessmentendtime()));
+        if (khxmList.isEmpty()) {
+            finalScore = finalScore.subtract(TWO_SOURCE);
+            errorMsg = errorMsg + "项目级:没有(分级管理-项目清单)数据。";
+            return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
+        }
+        List<String> xmmcList = new LinkedList<>();
+        for (JtFjglxm jtFjglxm : khxmList) {
+            //成果资料计划归档日期(分级管理-项目清单)为空扣2分。
+            if (ObjectUtil.isEmpty(jtFjglxm.getCgzljhgdsj())) {
+                finalScore = finalScore.subtract(TWO_SOURCE);
+                errorMsg = errorMsg + "项目级:" + jtFjglxm.getXmmc() + "的成果资料计划归档日期(分级管理-项目清单)为空。";
+                break;
+            }
+            //考核成果资料计划归档日期在考核区间内的项目,所有成果资料实际归档日期(分级管理-项目清单)不为空且小于等于计划归档日期不扣分;
+            //成果资料实际归档日期(分级管理-项目清单)为空或大于成果资料计划归档日期,扣0.5分/项(上面指标扣2分之后,这条指标就不计算了)。
+            if (ObjectUtil.isEmpty(jtFjglxm.getCgzlsjgdsj()) || jtFjglxm.getCgzlsjgdsj().compareTo(jtFjglxm.getCgzljhgdsj()) > 0) {
+                //同一项目名称防止重复扣分
+                if(xmmcList.contains(jtFjglxm.getXmmc())){
+                    continue;
+                }
+                xmmcList.add(jtFjglxm.getXmmc());
+
+                finalScore = finalScore.subtract(ZERO_POINT_FIVE_SOURCE);
+                errorMsg = errorMsg + "项目级:" + jtFjglxm.getXmmc() + "的成果资料实际归档日期(分级管理-项目清单)为空或大于成果资料计划归档日期。";
+            }
+        }
+        if (finalScore.compareTo(BigDecimal.ZERO) < 0) {
+            finalScore = BigDecimal.ZERO;
+        }
+        return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
+    }
+
+}

+ 64 - 0
jsglkh-common/src/main/java/com/rongwei/bscommon/sys/strategy/scoreCalculation/ScoreCalculationServiceNum34.java

@@ -0,0 +1,64 @@
+package com.rongwei.bscommon.sys.strategy.scoreCalculation;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.rongwei.bscommon.sys.service.JtYxwjfbqdService;
+import com.rongwei.bsentity.domain.*;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.TWO_SOURCE;
+import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.ZERO_POINT_FIVE_SOURCE;
+
+
+/**
+ * ScoreCalculationServiceNum1 class
+ *
+ * @author XH
+ * @date 2024/12/09
+ */
+@Service
+public class ScoreCalculationServiceNum34 implements ScoreCalculationService {
+    @Autowired
+    private JtYxwjfbqdService jtYxwjfbqdService;
+
+    /**
+     * 发布文件名称、文件类别、发布时间任一字段为空,扣2分。
+     *
+     * @param khbmList
+     * @param jtKhxmList
+     * @param jtGsjtbsj
+     * @param jkAssessmentRules
+     * @return
+     */
+    @Override
+    public JtYcpfhzDetail soreCalculation(JtYcpfhz jtYcpfhz, List<JtXmkh> khbmList, List<JtKhxm> jtKhxmList, JtGsjtbsj jtGsjtbsj,
+                                          JkAssessmentRules jkAssessmentRules,
+                                          SysUserVo currentUser) {
+        List<JtYxwjfbqd> list = jtYxwjfbqdService.list(new LambdaQueryWrapper<JtYxwjfbqd>().eq(JtYxwjfbqd::getDeleted, "0").eq(JtYxwjfbqd::getMainid, jtYcpfhz.getId()));
+        // 考核得分
+        BigDecimal finalScore = jkAssessmentRules.getWeight();
+        // 扣分细则
+        String errorMsg = "";
+        if (ObjectUtil.isEmpty(list)) {
+            finalScore = BigDecimal.ZERO;
+            errorMsg = "公司级:有效文件发布无数据";
+            return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
+        }
+        for (JtYxwjfbqd jtYxwjfbqd : list) {
+            //发布文件名称、文件类别、发布时间任一字段为空,扣2分。
+            if (ObjectUtil.isEmpty(jtYxwjfbqd.getFbsj()) || ObjectUtil.isEmpty(jtYxwjfbqd.getWjlb()) || ObjectUtil.isEmpty(jtYxwjfbqd.getFbwjmc())) {
+                finalScore = BigDecimal.ZERO;
+                errorMsg = "公司级:存在发布文件名称、文件类别、发布时间任一字段为空的数据";
+                return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
+            }
+        }
+
+        return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
+    }
+
+}

+ 8 - 4
jsglkh-common/src/main/java/com/rongwei/bscommon/sys/strategy/scoreCalculation/ScoreCalculationServiceNum35.java

@@ -37,23 +37,27 @@ public class ScoreCalculationServiceNum35 implements ScoreCalculationService {
                                           SysUserVo currentUser) {
 
         // 考核得分
-        BigDecimal finalScore = BigDecimal.ZERO;
+        BigDecimal finalScore = jkAssessmentRules.getWeight();
         // 扣分细则
         String errorMsg = "";
         //成果转化制度为空扣2分。
         if (ObjectUtil.isEmpty(jtGsjtbsj.getCgzhzd())) {
             finalScore = finalScore.subtract(TWO_SOURCE);
-            errorMsg = errorMsg + "公司级:成果转化制度为空扣2分。";
+            errorMsg = errorMsg + "公司级:成果转化制度为空。";
         }
         //成果转化模块建设文档为空扣1分。
         if (ObjectUtil.isEmpty(jtGsjtbsj.getCgzhmkjswd())) {
             finalScore = finalScore.subtract(BigDecimal.ONE);
-            errorMsg = errorMsg + "公司级:成果转化模块建设文档为空扣1分。";
+            errorMsg = errorMsg + "公司级:成果转化模块建设文档为空。";
         }
         //成果转化清单发布文件为空扣0.5分。
         if (ObjectUtil.isEmpty(jtGsjtbsj.getCgzhqdfbwj())) {
             finalScore = finalScore.subtract(ZERO_POINT_FIVE_SOURCE);
-            errorMsg = errorMsg + "公司级:成果转化清单发布文件为空扣0.5分。";
+            errorMsg = errorMsg + "公司级:成果转化清单发布文件为空。";
+        }
+        //最多扣2分
+        if (finalScore.compareTo(BigDecimal.ZERO) < 0) {
+            finalScore = BigDecimal.ZERO;
         }
 
         return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);

+ 2 - 7
jsglkh-common/src/main/java/com/rongwei/bscommon/sys/strategy/scoreCalculation/ScoreCalculationServiceNum36.java

@@ -65,29 +65,24 @@ public class ScoreCalculationServiceNum36 implements ScoreCalculationService {
                     || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_16)//集团(一等奖)
                     || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_20)//集团(一等奖)
                     || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_26)) {//集团(一等奖)
-                errorMsg = errorMsg + "项目级:国家优质工程奖、国家级(三等奖)、省部(一等奖)、集团(一等奖)、其他,";
+                errorMsg = errorMsg + "项目级:项目名称:" + jtJsglcgqd.getXmmc() + ",奖项名称:" + jtJsglcgqd.getJxmc();
                 if (jtJsglcgqd.getSfzddw() != 1) {//是主导单位
                     finalScore = finalScore.add(new BigDecimal("0.5"));
-                    errorMsg = errorMsg + "是否为主导单位=是,得0.5分/项。";
                 } else {
                     finalScore = finalScore.add(new BigDecimal("0.25"));
-                    errorMsg = errorMsg + "是否为主导单位=否,得0.25分/项。";
                 }
             } else {//国际级、国家二等奖及以上、鲁班奖、詹天佑奖,“是否为主导单位”=是,得1分/项,否则得0.5/分项。
-                errorMsg = errorMsg + "项目级:国际级、国家二等奖及以上、鲁班奖、詹天佑奖,";
+                errorMsg = errorMsg + "项目级:项目名称:" + jtJsglcgqd.getXmmc() + ",奖项名称:" + jtJsglcgqd.getJxmc();
                 if (jtJsglcgqd.getSfzddw() != 1) {//是主导单位
                     finalScore = finalScore.add(new BigDecimal("1"));
-                    errorMsg = errorMsg + "是否为主导单位=是,得1分/项。";
                 } else {
                     finalScore = finalScore.add(new BigDecimal("0.5"));
-                    errorMsg = errorMsg + "是否为主导单位=否,得0.5分/项。";
                 }
             }
         }
         //最高5分
         if (finalScore.compareTo(FIVE_SOURCE) > 0) {
             finalScore = FIVE_SOURCE;
-            errorMsg = errorMsg + "最高5分";
         }
 
         return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);

+ 6 - 0
jsglkh-entity/src/main/java/com/rongwei/bsentity/domain/JtJscgpyqd.java

@@ -78,6 +78,12 @@ public class JtJscgpyqd extends BaseDo implements Serializable {
     @TableField(value = "SYNCSTATE")
     private String syncstate;
 
+    /**
+     * 主表ID
+     */
+    @TableField(value = "MAINID")
+    private String mainid;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 }

+ 6 - 0
jsglkh-entity/src/main/java/com/rongwei/bsentity/domain/JtYxwjfbqd.java

@@ -71,6 +71,12 @@ public class JtYxwjfbqd extends BaseDo implements Serializable {
     @TableField(value = "SYNCSTATE")
     private String syncstate;
 
+    /**
+     * 主表ID
+     */
+    @TableField(value = "MAINID")
+    private String mainid;
+
     @TableField(exist = false)
     private static final long serialVersionUID = 1L;
 }