Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

xiahan 8 месяцев назад
Родитель
Сommit
aabc1ee1be

+ 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);
+    }
+
+}

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

@@ -1,19 +1,14 @@
 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.JtJsglcgqdService;
-import com.rongwei.bscommon.sys.utils.JXKHConstant;
 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.FIVE_SOURCE;
-import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.FOUR_SOURCE;
+import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.*;
 
 
 /**
@@ -24,13 +19,11 @@ import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.FOUR_SOU
  */
 @Service
 public class ScoreCalculationServiceNum35 implements ScoreCalculationService {
-    @Autowired
-    private JtJsglcgqdService jtJsglcgqdService;
 
     /**
-     * 国家优质工程奖、国家级(三等奖)、省部(一等奖)、集团(一等奖)、其他,“是否为主导单位”=是,得0.5分/项,否则得0.25分/项
-     * 国家优质工程金奖、国际级、国家二等奖及以上、鲁班奖、詹天佑奖,“是否为主导单位”=是,得1分/项,否则得0.5/分项
-     * 最高5分,最低0分。
+     * 成果转化制度为空扣2分
+     * 成果转化模块建设文档为空扣1分
+     * 成果转化清单发布文件为空扣0.5分。
      *
      * @param khbmList
      * @param jtKhxmList
@@ -42,46 +35,29 @@ public class ScoreCalculationServiceNum35 implements ScoreCalculationService {
     public JtYcpfhzDetail soreCalculation(JtYcpfhz jtYcpfhz, List<JtXmkh> khbmList, List<JtKhxm> jtKhxmList, JtGsjtbsj jtGsjtbsj,
                                           JkAssessmentRules jkAssessmentRules,
                                           SysUserVo currentUser) {
-        List<JtJsglcgqd> list = jtJsglcgqdService.list(new LambdaQueryWrapper<JtJsglcgqd>().eq(JtJsglcgqd::getDeleted, "0").eq(JtJsglcgqd::getMainid, jtYcpfhz.getId()));
 
         // 考核得分
-        BigDecimal finalScore = BigDecimal.ZERO;
+        BigDecimal finalScore = jkAssessmentRules.getWeight();
         // 扣分细则
         String errorMsg = "";
-
-        for (JtJsglcgqd jtJsglcgqd : list) {
-            if (ObjectUtil.isEmpty(jtJsglcgqd.getJxdj())) {
-                continue;
-            }
-            //国家优质工程奖、国家级(三等奖)、省部(一等奖)、集团(一等奖)、其他,“是否为主导单位”=是,得0.5分/项,否则得0.25分/项。
-            if (jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_9)//国家优质工程奖
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_4)//国家级(三等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_15)//国家级(三等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_25)//国家级(三等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_5)//省部(一等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_17)//省部(一等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_21)//省部(一等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_27)//省部(一等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_7)//集团(一等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_16)//集团(一等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_20)//集团(一等奖)
-                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_26)) {//集团(一等奖)
-                if (jtJsglcgqd.getSfzddw() != 1) {//是主导单位
-                    finalScore = finalScore.add(new BigDecimal("0.5"));
-                } else {
-                    finalScore = finalScore.add(new BigDecimal("0.25"));
-                }
-            } else {//国际级、国家二等奖及以上、鲁班奖、詹天佑奖,“是否为主导单位”=是,得1分/项,否则得0.5/分项。
-                if (jtJsglcgqd.getSfzddw() != 1) {//是主导单位
-                    finalScore = finalScore.add(new BigDecimal("1"));
-                } else {
-                    finalScore = finalScore.add(new BigDecimal("0.5"));
-                }
-            }
+        //成果转化制度为空扣2分。
+        if (ObjectUtil.isEmpty(jtGsjtbsj.getCgzhzd())) {
+            finalScore = finalScore.subtract(TWO_SOURCE);
+            errorMsg = errorMsg + "公司级:成果转化制度为空。";
+        }
+        //成果转化模块建设文档为空扣1分。
+        if (ObjectUtil.isEmpty(jtGsjtbsj.getCgzhmkjswd())) {
+            finalScore = finalScore.subtract(BigDecimal.ONE);
+            errorMsg = errorMsg + "公司级:成果转化模块建设文档为空。";
+        }
+        //成果转化清单发布文件为空扣0.5分。
+        if (ObjectUtil.isEmpty(jtGsjtbsj.getCgzhqdfbwj())) {
+            finalScore = finalScore.subtract(ZERO_POINT_FIVE_SOURCE);
+            errorMsg = errorMsg + "公司级:成果转化清单发布文件为空。";
         }
-        //最高5
-        if (finalScore.compareTo(FIVE_SOURCE) > 0) {
-            finalScore = FIVE_SOURCE;
+        //最多扣2分
+        if (finalScore.compareTo(BigDecimal.ZERO) < 0) {
+            finalScore = BigDecimal.ZERO;
         }
 
         return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);

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

@@ -1,21 +1,18 @@
 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.JtJsglcgqdService;
-import com.rongwei.bscommon.sys.service.impl.JtKcsjxmServiceImpl;
+import com.rongwei.bscommon.sys.utils.JXKHConstant;
 import com.rongwei.bsentity.domain.*;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
-import com.rongwei.rwcommon.base.BaseDo;
-import com.rongwei.rwcommon.utils.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.List;
-import java.util.stream.Collectors;
 
-import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.FOUR_SOURCE;
-import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.SECOND_SOURCE;
+import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.FIVE_SOURCE;
 
 
 /**
@@ -26,12 +23,13 @@ import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.SECOND_S
  */
 @Service
 public class ScoreCalculationServiceNum36 implements ScoreCalculationService {
-
+    @Autowired
+    private JtJsglcgqdService jtJsglcgqdService;
 
     /**
-     * 若发生一般事故,按责任主次,最高0分,最低减20分;
-     * 若发生较大事故按责任主次,最高0分,最低减30分;
-     * 若发生重大及以上责任事故按责任主次,最高0分,最低减50分
+     * 国家优质工程奖、国家级(三等奖)、省部(一等奖)、集团(一等奖)、其他,“是否为主导单位”=是,得0.5分/项,否则得0.25分/项。
+     * 国家优质工程金奖、国际级、国家二等奖及以上、鲁班奖、詹天佑奖,“是否为主导单位”=是,得1分/项,否则得0.5/分项。
+     * 最高5分,最低0分。
      *
      * @param khbmList
      * @param jtKhxmList
@@ -43,10 +41,50 @@ public class ScoreCalculationServiceNum36 implements ScoreCalculationService {
     public JtYcpfhzDetail soreCalculation(JtYcpfhz jtYcpfhz, List<JtXmkh> khbmList, List<JtKhxm> jtKhxmList, JtGsjtbsj jtGsjtbsj,
                                           JkAssessmentRules jkAssessmentRules,
                                           SysUserVo currentUser) {
+        List<JtJsglcgqd> list = jtJsglcgqdService.list(new LambdaQueryWrapper<JtJsglcgqd>().eq(JtJsglcgqd::getDeleted, "0").eq(JtJsglcgqd::getMainid, jtYcpfhz.getId()));
+
         // 考核得分
         BigDecimal finalScore = BigDecimal.ZERO;
         // 扣分细则
         String errorMsg = "";
+
+        for (JtJsglcgqd jtJsglcgqd : list) {
+            if (ObjectUtil.isEmpty(jtJsglcgqd.getJxdj())) {
+                continue;
+            }
+            //国家优质工程奖、国家级(三等奖)、省部(一等奖)、集团(一等奖)、其他,“是否为主导单位”=是,得0.5分/项,否则得0.25分/项。
+            if (jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_9)//国家优质工程奖
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_4)//国家级(三等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_15)//国家级(三等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_25)//国家级(三等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_5)//省部(一等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_17)//省部(一等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_21)//省部(一等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_27)//省部(一等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_7)//集团(一等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_16)//集团(一等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_20)//集团(一等奖)
+                    || jtJsglcgqd.getJxdj().equals(JXKHConstant.JXJB.JXJB_26)) {//集团(一等奖)
+                errorMsg = errorMsg + "项目级:项目名称:" + jtJsglcgqd.getXmmc() + ",奖项名称:" + jtJsglcgqd.getJxmc();
+                if (jtJsglcgqd.getSfzddw() != 1) {//是主导单位
+                    finalScore = finalScore.add(new BigDecimal("0.5"));
+                } else {
+                    finalScore = finalScore.add(new BigDecimal("0.25"));
+                }
+            } else {//国际级、国家二等奖及以上、鲁班奖、詹天佑奖,“是否为主导单位”=是,得1分/项,否则得0.5/分项。
+                errorMsg = errorMsg + "项目级:项目名称:" + jtJsglcgqd.getXmmc() + ",奖项名称:" + jtJsglcgqd.getJxmc();
+                if (jtJsglcgqd.getSfzddw() != 1) {//是主导单位
+                    finalScore = finalScore.add(new BigDecimal("1"));
+                } else {
+                    finalScore = finalScore.add(new BigDecimal("0.5"));
+                }
+            }
+        }
+        //最高5分
+        if (finalScore.compareTo(FIVE_SOURCE) > 0) {
+            finalScore = FIVE_SOURCE;
+        }
+
         return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
     }
 

+ 5 - 11
jsglkh-common/src/main/java/com/rongwei/bscommon/sys/strategy/scoreCalculation/ScoreCalculationServiceNum37.java

@@ -1,10 +1,7 @@
 package com.rongwei.bscommon.sys.strategy.scoreCalculation;
 
-import com.rongwei.bscommon.sys.service.impl.JtKcsjxmServiceImpl;
 import com.rongwei.bsentity.domain.*;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
-import com.rongwei.rwcommon.utils.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
@@ -20,8 +17,11 @@ import java.util.List;
 @Service
 public class ScoreCalculationServiceNum37 implements ScoreCalculationService {
 
+
     /**
-     * 未设置总工程师岗位或总工程师未进领导班子减2分
+     * 若发生一般事故,按责任主次,最高0分,最低减20分;
+     * 若发生较大事故按责任主次,最高0分,最低减30分;
+     * 若发生重大及以上责任事故按责任主次,最高0分,最低减50分
      *
      * @param khbmList
      * @param jtKhxmList
@@ -36,13 +36,7 @@ public class ScoreCalculationServiceNum37 implements ScoreCalculationService {
         // 考核得分
         BigDecimal finalScore = BigDecimal.ZERO;
         // 扣分细则
-        String errorMsg = null;
-        if (StringUtils.isBlank(jtGsjtbsj.getZgcsrmwjhtwj())) {
-            finalScore = finalScore.subtract(TWO_SOURCE);
-            errorMsg = "公司级:未设置总工程师岗位或总工程师未进领导班子";
-            return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
-        }
-        errorMsg = "";
+        String errorMsg = "";
         return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
     }
 

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

@@ -0,0 +1,49 @@
+package com.rongwei.bscommon.sys.strategy.scoreCalculation;
+
+import com.rongwei.bsentity.domain.*;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
+import com.rongwei.rwcommon.utils.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import static com.rongwei.bscommon.sys.utils.JXKHConstant.DefaultSource.TWO_SOURCE;
+
+
+/**
+ * ScoreCalculationServiceNum1 class
+ *
+ * @author XH
+ * @date 2024/12/09
+ */
+@Service
+public class ScoreCalculationServiceNum38 implements ScoreCalculationService {
+
+    /**
+     * 未设置总工程师岗位或总工程师未进领导班子减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 = BigDecimal.ZERO;
+        // 扣分细则
+        String errorMsg = null;
+        if (StringUtils.isBlank(jtGsjtbsj.getZgcsrmwjhtwj())) {
+            finalScore = finalScore.subtract(TWO_SOURCE);
+            errorMsg = "公司级:未设置总工程师岗位或总工程师未进领导班子";
+            return assemblyYcpfhzDetail(jtYcpfhz, jkAssessmentRules, finalScore, errorMsg, currentUser);
+        }
+        errorMsg = "";
+        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;
 }