|
@@ -0,0 +1,97 @@
|
|
|
+package com.rongwei.bscommon.sys.service.impl;
|
|
|
+
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
+import com.rongwei.bscommon.sys.service.ExamineService;
|
|
|
+import com.rongwei.bscommon.sys.strategy.scoreCalculation.ScoreCalculationService;
|
|
|
+import com.rongwei.bscommon.sys.utils.JXKHUtils;
|
|
|
+import com.rongwei.bsentity.domain.*;
|
|
|
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
|
|
|
+import com.rongwei.rwcommon.base.BaseDo;
|
|
|
+import com.rongwei.rwcommon.base.R;
|
|
|
+import com.rongwei.rwcommon.base.exception.CustomException;
|
|
|
+import com.rongwei.rwcommon.utils.SpringContextUtils;
|
|
|
+import com.rongwei.rwcommon.utils.StringUtils;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * ExamineServiceImpl class
|
|
|
+ *
|
|
|
+ * @author XH
|
|
|
+ * @date 2024/12/06
|
|
|
+ */
|
|
|
+@Service("examineServiceImpl")
|
|
|
+public class ExamineServiceImpl implements ExamineService {
|
|
|
+ private final Logger log = LoggerFactory.getLogger(this.getClass().getName());
|
|
|
+ @Autowired
|
|
|
+ private JtXmkhServiceImpl jtXmkhService;
|
|
|
+ @Autowired
|
|
|
+ private JtKhxmServiceImpl jtKhxmService;
|
|
|
+ @Autowired
|
|
|
+ private JkAssessmentRulesServiceImpl jkAssessmentRulesService;
|
|
|
+ @Autowired
|
|
|
+ private JtGsjtbsjServiceImpl jtGsjtbsjService;
|
|
|
+ @Autowired
|
|
|
+ private JtYcpfhzServiceImpl jtYcpfhzService;
|
|
|
+ @Autowired
|
|
|
+ private JtFjglxmServiceImpl jtFjglxmService;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 部门考核
|
|
|
+ *
|
|
|
+ * @param khbmId jt_ycpfhz 主键
|
|
|
+ * @param khzb 考核指标编号
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R calculateScore(String id, String khzbNum) {
|
|
|
+ if (StringUtils.isBlank(id)) {
|
|
|
+ throw new CustomException("考核项目信息为空");
|
|
|
+ }
|
|
|
+ JtYcpfhz jtYcpfhz = jtYcpfhzService.getById(id);
|
|
|
+ if (jtYcpfhz == null) {
|
|
|
+ throw new CustomException("无法获取预测评分汇总!");
|
|
|
+ }
|
|
|
+ // 根据管理单位获取 考核部门信息
|
|
|
+ List<String> list = Arrays.asList(khzbNum.split(","));
|
|
|
+
|
|
|
+ // 获取考核规则
|
|
|
+ List<JkAssessmentRules> jkAssessmentRules = jkAssessmentRulesService.list(new LambdaQueryWrapper<JkAssessmentRules>()
|
|
|
+ .eq(BaseDo::getDeleted, "0")
|
|
|
+ .in(StringUtils.isNotBlank(khzbNum), JkAssessmentRules::getNum, list)
|
|
|
+ .orderByAsc(JkAssessmentRules::getNum));
|
|
|
+ if (jkAssessmentRules.isEmpty()) {
|
|
|
+ throw new CustomException("获取获取到考核规则信息");
|
|
|
+ }
|
|
|
+ String gldw = jtYcpfhz.getGldw();
|
|
|
+ String year = jtYcpfhz.getYear();
|
|
|
+ // 获取考核部门信息
|
|
|
+ List<JtXmkh> khbmList = jtXmkhService.list(new LambdaQueryWrapper<JtXmkh>().eq(BaseDo::getDeleted, 0)
|
|
|
+ .eq(JtXmkh::getYear, year)
|
|
|
+ .eq(JtXmkh::getGldw, gldw)
|
|
|
+ .eq(JtXmkh::getReportstatus, "已发布"));
|
|
|
+ // 获取考核部门下的所有考核项目信息
|
|
|
+ List<JtKhxm> jtKhxmList = jtKhxmService.list(new LambdaQueryWrapper<JtKhxm>()
|
|
|
+ .eq(BaseDo::getDeleted, "0")
|
|
|
+ .in(JtKhxm::getMainid, khbmList.stream().map(JtXmkh::getGldw)));
|
|
|
+ // 公司考核管理填报数据
|
|
|
+ JtGsjtbsj jtGsjtbsj = jtGsjtbsjService.getOne(new LambdaQueryWrapper<JtGsjtbsj>()
|
|
|
+ .eq(BaseDo::getDeleted, "0")
|
|
|
+ .eq(JtGsjtbsj::getYear, year)
|
|
|
+ .eq(JtGsjtbsj::getGldw, gldw), false);
|
|
|
+ List<JtYcpfhzDetail> saveData = new ArrayList<>();
|
|
|
+ SysUserVo currentUser = JXKHUtils.getCurrentUser();
|
|
|
+ jkAssessmentRules.forEach(rule -> {
|
|
|
+ ScoreCalculationService scoreCalculationService = SpringContextUtils.getBean("scoreCalculationServiceNum" + rule.getNum());
|
|
|
+ saveData.add(scoreCalculationService.soreCalculation(jtYcpfhz,khbmList, jtKhxmList, jtGsjtbsj, rule, currentUser));
|
|
|
+ });
|
|
|
+
|
|
|
+ return R.ok();
|
|
|
+ }
|
|
|
+}
|