浏览代码

月季度改造

wangchangsheng 1 年之前
父节点
当前提交
a55379447f

+ 4 - 2
ims-service/ims-eval/src/main/java/com/ims/eval/controller/OrganizationEvaluationController.java

@@ -134,13 +134,15 @@ public class OrganizationEvaluationController {
 	//@ImsPreAuth("eval:organizationEvaluation:edit")
 	@PostMapping(value = "/generateUnitMonthEvaluation")
 	@ApiOperation(value = "生成月度单位考评明细", notes = "生成月度单位考评明细")
-	public R generateUnitMonthEvaluation(@RequestParam(value = "evaluationIds", required = true) String evaluationIds) {
+	public R generateUnitMonthEvaluation(@RequestParam(value = "evaluationIds", required = true) String evaluationIds,
+										 @RequestParam(value = "indicatorId", required = false) String  indicatorId,
+										 @RequestParam(value = "organizationId", required = false) String organizationId) {
 
 		try {
 			List<String> orgEvalRuleIdList = Arrays.asList(evaluationIds.split(","));
 			boolean b = false;
 
-			b = organizationEvaluationService.generateUnitMonthEvaluation(orgEvalRuleIdList);
+			b = organizationEvaluationService.generateUnitMonthEvaluation(orgEvalRuleIdList,indicatorId,organizationId);
 			if (!b) {
 				return R.error().data("保存失败!");
 			}

+ 1 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/service/ICalculateIndicatorItemInfoService.java

@@ -18,6 +18,6 @@ import java.util.List;
 public interface ICalculateIndicatorItemInfoService extends IService<CalculateIndicatorItemInfo> {
 
 
-	int saveIndicatorInfoDTO(String organizationEvaluationId,List<OrganizationEvaluationInfoResDTO> infoResDTOS) throws Exception;
+	int saveIndicatorInfoDTO(String organizationEvaluationId,List<OrganizationEvaluationInfoResDTO> infoResDTOS, String indicatorId) throws Exception;
 
 }

+ 1 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/service/IOrganizationEvaluationService.java

@@ -32,7 +32,7 @@ public interface IOrganizationEvaluationService extends IService<OrganizationEva
 
 
 	@Transactional
-	boolean generateUnitMonthEvaluation(List<String> ids);
+	boolean generateUnitMonthEvaluation(List<String> ids,String indicatorId,String organizationId);
 
 	@Transactional
 	boolean generateUnitSeasonEvaluation(List<String> ids);

+ 2 - 2
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/CalculateIndicatorItemInfoServiceImpl.java

@@ -50,7 +50,7 @@ public class CalculateIndicatorItemInfoServiceImpl extends ServiceImpl<Calculate
 
 
 	@Override
-	public int saveIndicatorInfoDTO(String organizationEvaluationId,List<OrganizationEvaluationInfoResDTO> infoResDTOS) throws Exception {
+	public int saveIndicatorInfoDTO(String organizationEvaluationId,List<OrganizationEvaluationInfoResDTO> infoResDTOS, String indicatorId) throws Exception {
 		try {
 			List<CalculateIndicatorItemInfo> list = new ArrayList<>();
 			OrganizationEvaluationResDTO organizationEvaluationResDTO = organizationEvaluationMapper.selectById(infoResDTOS.get(0).getOrganizationEvaluationId());
@@ -79,7 +79,7 @@ public class CalculateIndicatorItemInfoServiceImpl extends ServiceImpl<Calculate
 			int code = saveCalculate(list);
 			if(code>0) {
 
-				List<CiteCalculationIndicator> cciList = citeCalculationIndicatorService.getListLikeIndicatorIds("", "");
+				List<CiteCalculationIndicator> cciList = citeCalculationIndicatorService.getListLikeIndicatorIds(indicatorId, "");
 				if (null != cciList && cciList.size() > 0) {
 					for (CiteCalculationIndicator cci : cciList) {
 						List<String> indicatorIds =  Arrays.asList(cci.getIndicatorIds().split(","));

+ 14 - 3
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationEvaluationInfoServiceImpl.java

@@ -277,7 +277,7 @@ public class OrganizationEvaluationInfoServiceImpl extends ServiceImpl<Organizat
 						//计算差值等的最大值最小值
 
 						this.saveOrUpdateBatch(listUpdateInfos);
-						iCalculateIndicatorItemInfoService.saveIndicatorInfoDTO( organizationEvaluationId,indicatorGropListEntry.getValue());
+						iCalculateIndicatorItemInfoService.saveIndicatorInfoDTO(organizationEvaluationId,indicatorGropListEntry.getValue(),indicatorId);
 					}
 				}
 			}
@@ -330,7 +330,11 @@ public class OrganizationEvaluationInfoServiceImpl extends ServiceImpl<Organizat
 											if ((dto.getOptionCode().endsWith("MAX") ||dto.getOptionCode().endsWith("MIN")
 												||dto.getOptionCode().equals("CZ") || dto.getOptionCode().equals("LRGXL")
 												|| dto.getOptionCode().equals("DWQWLR")) || StringUtils.isEmpty(dto.getFormula())){
-												continue;//当前属性没有配置公式跳过或者不需要参与此次计算的属性
+
+												if(!(dto.getOptionCode().equals("DF")||dto.getOptionCode().equals("DF2")||dto.getOptionCode().equals("JHDF"))){
+													continue;//当前属性没有配置公式跳过或者不需要参与此次计算的属性
+												}
+
 											}
 											scoreCount.setOrganizationEvaluationId(dto.getOrganizationEvaluationId());
 											scoreCount.setOrganizationEvaluationRuleId(dto.getOrganizationEvaluationRuleId());
@@ -354,7 +358,13 @@ public class OrganizationEvaluationInfoServiceImpl extends ServiceImpl<Organizat
 												dto.setFormula(dto.getFormula().replace("["+f.getOptionCode()+"]", f.getQuantifiedValue() + ""));
 											}
 											log.info("计算公式为:"+dto.getFormula());
-											double score = FormulaUtils.calculateFormula(dto.getFormula());
+											double score = 0.00;
+											if(StringUtils.isNotEmpty(dto.getFormula())){
+												score = FormulaUtils.calculateFormula(dto.getFormula());
+											}else {
+												score = dto.getQuantifiedValue();
+											}
+
 											if(dto.getOptionCode().equals("DF")||dto.getOptionCode().equals("DF2")
 												||dto.getOptionCode().equals("JHDF")){
 												standardScore = dto.getStandardScore();
@@ -935,6 +945,7 @@ public class OrganizationEvaluationInfoServiceImpl extends ServiceImpl<Organizat
 
 					} else {
 						info.setQuantifiedValue(0);
+
 					}
 
 				}

+ 23 - 1
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationEvaluationServiceImpl.java

@@ -319,7 +319,7 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 
 	@Transactional
 	@Override
-	public boolean generateUnitMonthEvaluation(List<String> ids) {
+	public boolean generateUnitMonthEvaluation(List<String> ids,String indicatorId,String organizationId) {
 
 		for (String id : ids) {
 			OrganizationEvaluation organizationEvaluation = baseMapper.selectById(id);
@@ -335,6 +335,12 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 			List<OrganizationEvaluationRule> evaluationRules = organizationEvaluationRuleService.getOrganizationEvaluationRuleByYearAndCycle(organizationType,checkCycle,year,"");
 
 
+			//判断组织id 是否有值;不为空只生成当前组织的数据
+			if(StringUtils.isNotEmpty(organizationId)){
+				evaluationRules = evaluationRules.stream().filter(rule -> rule.getOrganizationId().equals(organizationId)).collect(Collectors.toList());
+			}
+
+
 			//遍历考核的单位
 			for(OrganizationEvaluationRule evaluationRule : evaluationRules){
 				//规则集合
@@ -380,6 +386,22 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 				//通过规则id获取指标明细项
 				List<EvaluateRuleInfoIndicatorDTO> resDTOS = evaluateRuleInfoService.listByIndicatorInfo(ruleInfoIds);
 
+				//判断指标id和组织id s是否为空
+				if(StringUtils.isNotEmpty(indicatorId)  ) {
+
+					resDTOS = resDTOS.stream().filter(dto -> dto.getIndicatorId().equals(indicatorId)).collect(Collectors.toList());
+					if (resDTOS.size() <= 0) {
+						continue;
+					}
+
+					List<OrganizationEvaluationInfo> oriEvaluationInfoList = organizationEvaluationInfoService.getEvaluationInfoByOptionCodeList(id, indicatorId, organizationId, "");
+					if (oriEvaluationInfoList.size() > 0) {
+						List<String> oriEvaluationInfoIdList = oriEvaluationInfoList.stream().map(OrganizationEvaluationInfo::getId).collect(Collectors.toList());
+						organizationEvaluationInfoService.removeByIds(oriEvaluationInfoIdList);
+					}
+
+				}
+
 				if (null == resDTOS || resDTOS.size() <= 0) {
 					throw new CustomException("指标规则明细项为空");
 				}