Ver código fonte

数据填报页面改造

wangchangsheng 1 ano atrás
pai
commit
1420295a38
15 arquivos alterados com 372 adições e 106 exclusões
  1. 8 0
      ims-service/ims-eval/src/main/java/com/ims/eval/cache/CacheContext.java
  2. 1 1
      ims-service/ims-eval/src/main/java/com/ims/eval/controller/BinSectionController.java
  3. 34 0
      ims-service/ims-eval/src/main/java/com/ims/eval/controller/OrganizationEvaluationInfoController.java
  4. 13 2
      ims-service/ims-eval/src/main/java/com/ims/eval/dao/OrganizationEvaluationInfoMapper.java
  5. 6 0
      ims-service/ims-eval/src/main/java/com/ims/eval/entity/dto/response/OrganizationEvaluationInfoResDTO.java
  6. 3 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/IEvaluateRuleService.java
  7. 5 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/IOrganizationEvaluationInfoService.java
  8. 4 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/IOrganizationEvaluationRuleService.java
  9. 31 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluateRuleServiceImpl.java
  10. 3 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/IndicatorDictionaryServiceImpl.java
  11. 93 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationEvaluationInfoServiceImpl.java
  12. 28 0
      ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationEvaluationRuleServiceImpl.java
  13. 61 103
      ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationEvaluationServiceImpl.java
  14. 3 0
      ims-service/ims-eval/src/main/resources/application.yml
  15. 79 0
      ims-service/ims-eval/src/main/resources/mappers/OrganizationEvaluationInfoMapper.xml

+ 8 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/cache/CacheContext.java

@@ -49,6 +49,7 @@ public class CacheContext implements CommandLineRunner {
 	public static List<BinStage> bseList = new ArrayList<>();
 	public static Map<String, String> bseIdMap = new HashMap<>();
 	public static Map<String, BinStage> bseIdObject = new HashMap<>();
+	public static Map<String, BinStage> bseCodeObject = new HashMap<>();
 
 
 
@@ -111,12 +112,15 @@ public class CacheContext implements CommandLineRunner {
 		//清理集合中的数据
 		bseList.clear();
 		bseIdMap.clear();
+		bseIdObject.clear();
+		bseCodeObject.clear();
 
 		bseList = binStageService.list().stream().filter(t->!t.getDelFlag()).collect(Collectors.toList());
 		bseList.sort(Comparator.comparing(BinStage::getOrderNum));
 		bseList.stream().forEach(d -> {
 			bseIdMap.put(d.getId(), d.getStageName());
 			bseIdObject.put(d.getId(), d);
+			bseCodeObject.put(d.getStageCode(), d);
 		});
 
 
@@ -128,6 +132,9 @@ public class CacheContext implements CommandLineRunner {
 	public void initBinSection(){
 		//清理集合中的数据
 		bsnList.clear();
+		bsnIdObject.clear();
+		bsnCodeObject.clear();
+
 
 		bsnList = binSectionService.list().stream().filter(t->!t.getDelFlag()).collect(Collectors.toList());
 		bsnList.sort(Comparator.comparing(BinSection::getOrderNum));
@@ -138,6 +145,7 @@ public class CacheContext implements CommandLineRunner {
 		bsnList.stream().forEach(d -> {
 			bsnCodeObject.put(d.getSectionCode(), d);
 			bsnIdName.put(d.getId(), d.getSectionName());
+
 		});
 	}
 

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

@@ -50,7 +50,7 @@ public class BinSectionController {
 				  @RequestParam(value = "type", required = false) String type) {
 		List<BinSection> list =CacheContext.bsnList;
 		if(StringUtils.isNotEmpty(type)){
-			list = list.stream().filter(s -> s.getType().equals(type)).collect(Collectors.toList());
+			list = list.stream().filter(s -> !s.getType().equals(type)).collect(Collectors.toList());
 		}
 
 		return R.ok().data(list);

+ 34 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/controller/OrganizationEvaluationInfoController.java

@@ -56,6 +56,40 @@ public class OrganizationEvaluationInfoController {
 	}
 
 
+	/**
+	 * 获取当前指标需要考评的指标
+	 * @param organizationEvaluationId
+	 * @param binSection
+	 * @param binStage
+	 * @return
+	 */
+	@GetMapping(value = "getEvaluationIndicatorList")
+	public R getEvaluationIndicatorList(
+		@RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId,
+		@RequestParam(value = "binSection", required = false) String binSection,
+		@RequestParam(value = "binStage", required = false) String binStage) {
+		List<Map> list = organizationEvaluationInfoService.getEvaluationIndicatorList(organizationEvaluationId, binSection,binStage, request);
+		return R.ok().data(list);
+	}
+
+
+	/**
+	 * 获取考核指标的详情
+	 * @param organizationEvaluationId
+	 * @param indicatorId
+	 * @return
+	 */
+	@GetMapping(value = "getEvaluationInfoList")
+	public R getEvaluationInfoList(
+		@RequestParam(value = "organizationEvaluationId", required = false) String organizationEvaluationId,
+		@RequestParam(value = "indicatorId", required = false) String indicatorId) {
+		Map list = organizationEvaluationInfoService.getEvaluationInfoList(organizationEvaluationId, indicatorId, request);
+		return R.ok().data(list);
+	}
+
+
+
+
 
 
 	/**

+ 13 - 2
ims-service/ims-eval/src/main/java/com/ims/eval/dao/OrganizationEvaluationInfoMapper.java

@@ -7,6 +7,7 @@ import com.ims.eval.entity.dto.response.OrganizationEvaluationInfoResDTO;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -23,13 +24,12 @@ public interface OrganizationEvaluationInfoMapper extends BaseMapper<Organizatio
 
 
 
-	@DataPermission
+
 	List<OrganizationEvaluationInfoResDTO> selectListEvaluationInfoId(@Param("organizationEvaluationId") String organizationEvaluationId,
 																	  @Param("dept") String dept,
 																	  @Param("optionCode") String optionCode,
 																	  @Param("organizationId") String organizationId);
 
-	@DataPermission
 	List<OrganizationEvaluationInfoResDTO> selectListEvaluationInfoId2(@Param("organizationEvaluationId") String organizationEvaluationId,
 																	  @Param("dept") String dept,
 																	  @Param("organizationShortName") String organizationShortName,
@@ -39,15 +39,26 @@ public interface OrganizationEvaluationInfoMapper extends BaseMapper<Organizatio
 																	  @Param("optionCode") String optionCode,
 																	  @Param("organizationId") String organizationId);
 
+	@DataPermission(isPermission = false)
 	List<OrganizationEvaluationInfo> selectByEvaluationInfoId(@Param("organizationEvaluationId") String organizationEvaluationId);
 
 
+	@DataPermission(isPermission = false)
 	List<OrganizationEvaluationInfo> selectByIndicatorDictionaryId(@Param("indicatorDictionaryId") String indicatorDictionaryId);
 
 
+	@DataPermission(isPermission = false)
 	List<OrganizationEvaluationInfoResDTO> selectByIdAndEvaluationInfoId(@Param("id") String id,
 																   @Param("indicatorId") String indicatorId,
 																   @Param("organizationEvaluationId") String organizationEvaluationId,
 																   @Param("optionCode") String optionCode);
 
+	List<Map> selectEvaluationIndicatorList(@Param("organizationEvaluationId") String organizationEvaluationId,
+											@Param("binSection") String binSection,
+											@Param("binStage") String binStage);
+
+
+	List<OrganizationEvaluationInfoResDTO> selectEvaluationInfoList(@Param("organizationEvaluationId") String organizationEvaluationId,
+											@Param("indicatorId") String indicatorId);
+
 }

+ 6 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/entity/dto/response/OrganizationEvaluationInfoResDTO.java

@@ -63,6 +63,12 @@ public class OrganizationEvaluationInfoResDTO {
 	private String organizationName;
 
 	/**
+	 * 组织ID
+	 */
+	private String organizationId;
+
+
+	/**
 	 *考评组织名称(简称)
 	 */
 	private String organizationShortName;

+ 3 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/IEvaluateRuleService.java

@@ -28,5 +28,8 @@ public interface IEvaluateRuleService extends IService<EvaluateRule> {
 
 	List<EvaluateRuleInfoResDTO> getListInIdsInfos(List<String> ids, String binSection, String binStage);
 
+	List<EvaluateRule> getEvaluateRuleByYear( String binSection, String binStage,String checkCycle,String year);
+
+
 
 }

+ 5 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/IOrganizationEvaluationInfoService.java

@@ -30,4 +30,9 @@ public interface IOrganizationEvaluationInfoService extends IService<Organizatio
 
 
 	boolean calculationByEvaluationId(String id ,String indicatorId,String organizationEvaluationId,String optionCode);
+
+	List<Map> getEvaluationIndicatorList(String organizationEvaluationId, String binSection, String binStage, HttpServletRequest request);
+
+	Map getEvaluationInfoList(String organizationEvaluationId, String indicatorId,HttpServletRequest request);
+
 }

+ 4 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/IOrganizationEvaluationRuleService.java

@@ -35,4 +35,8 @@ public interface IOrganizationEvaluationRuleService extends IService<Organizatio
 	List<OrganizationEvaluationRule> getOrganizationEvaluationRuleByIds(List<String> ids, String binSection);
 
 
+	List<OrganizationEvaluationRule> getOrganizationEvaluationRuleByYearAndCycle(String organizationType,String evaluationCycle, String year);
+
+
+
 }

+ 31 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/EvaluateRuleServiceImpl.java

@@ -140,6 +140,37 @@ public class EvaluateRuleServiceImpl extends ServiceImpl<EvaluateRuleMapper, Eva
 	}
 
 	@Override
+	public List<EvaluateRule> getEvaluateRuleByYear(String binSection, String binStage, String checkCycle, String year) {
+
+
+		QueryWrapper<EvaluateRule> qw = new QueryWrapper<>();
+
+		if (StringUtils.isNotEmpty(binSection)) {
+			List<String> binSections = Arrays.asList(binSection.split(","));
+
+			qw.lambda().in(EvaluateRule::getBinSection, binSections);
+		}
+
+		if (StringUtils.isNotEmpty(binStage)) {
+			qw.lambda().eq(EvaluateRule::getBinStage, binStage);
+		}
+
+		if (StringUtils.isNotEmpty(checkCycle)) {
+			qw.lambda().eq(EvaluateRule::getCheckCycle, checkCycle);
+		}
+
+		if (StringUtils.isNotEmpty(year)) {
+			qw.lambda().eq(EvaluateRule::getYear, year);
+		}
+
+		qw.lambda().orderByDesc(EvaluateRule::getCreateTime);
+
+		List<EvaluateRule> list = baseMapper.selectList(qw);
+		return list;
+
+	}
+
+	@Override
 	public boolean saveOrUpdate(EvaluateRule entity) {
 
 		if (null != entity && (null == entity.getId() || "".equals(entity.getId().trim()))) {

+ 3 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/IndicatorDictionaryServiceImpl.java

@@ -45,6 +45,9 @@ public class IndicatorDictionaryServiceImpl extends ServiceImpl<IndicatorDiction
 		if (StringUtils.isNotEmpty(optionName)) {
 			qw.lambda().like(IndicatorDictionary::getOptionName, optionName);
 		}
+
+		qw.lambda().orderByAsc(IndicatorDictionary::getOptionOrder);
+
 		List<IndicatorDictionary> list = baseMapper.selectList(qw);
 
 		return list;

+ 93 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationEvaluationInfoServiceImpl.java

@@ -323,6 +323,99 @@ public class OrganizationEvaluationInfoServiceImpl extends ServiceImpl<Organizat
 		return true;
 	}
 
+	@Override
+	public List<Map> getEvaluationIndicatorList(String organizationEvaluationId, String binSection, String binStage, HttpServletRequest request) {
+		List<Map> indicatorMap = baseMapper.selectEvaluationIndicatorList(organizationEvaluationId,binSection,binStage);
+		return indicatorMap;
+	}
+
+	@Override
+	public Map getEvaluationInfoList(String organizationEvaluationId, String indicatorId, HttpServletRequest request) {
+
+		Map data = new HashMap();
+		boolean titlemark = true;//标记生成标题
+		List<OrganizationEvaluationInfoResDTO> infoResDTOList = baseMapper.selectEvaluationInfoList(organizationEvaluationId, indicatorId);
+		List<IndicatorDictionary> dictionaryList = indicatorDictionaryService.list("", indicatorId, "", "");
+
+		//根据组织(公司)id分组
+		Map<String, List<OrganizationEvaluationInfoResDTO>> groupedData = infoResDTOList.stream()
+			.collect(Collectors.groupingBy(OrganizationEvaluationInfoResDTO::getOrganizationId));
+		List<Map> mapList = new ArrayList<>();
+		//遍历按照公司分组后的数据
+		for (Map.Entry<String, List<OrganizationEvaluationInfoResDTO>> entry : groupedData.entrySet()) {
+
+			Map indicatormap = new HashMap();
+			List<OrganizationEvaluationInfoResDTO> dtoList = entry.getValue();
+
+
+//			Map<String, OrganizationEvaluationInfoResDTO> resultMap = dtoList.stream()
+//				.collect(Collectors.toMap(
+//					dto -> dto.getChildCode() + "_" + dto.getOptionCode(),
+//					dto -> dto));
+
+			Map<String, OrganizationEvaluationInfoResDTO> resultMap = dtoList.stream()
+				.collect(Collectors.toMap(
+					dto -> dto.getChildCode() + "_" + dto.getOptionCode(),
+					dto -> dto,
+					(oldValue, newValue) -> oldValue)); // 解决键重复的情况
+
+
+
+
+			boolean mark = true;//标记给公司名赋值
+
+
+			//将子指标分组
+			Map<String, List<IndicatorDictionary>> groupedChildCode = dictionaryList.stream()
+				.collect(Collectors.groupingBy(d -> d.getChildCode() + "," + d.getChildName()));
+
+
+			if (titlemark) {
+				Map title = new LinkedHashMap();
+				for (Map.Entry<String, List<IndicatorDictionary>> childCodeEntry : groupedChildCode.entrySet()) {
+
+
+					List<Map> titleArray = new ArrayList<>();
+					for (IndicatorDictionary d : childCodeEntry.getValue()) {
+						Map titlemap = new LinkedHashMap();
+						if (!d.getIsShow()) {
+							continue;
+						}
+						titlemap.put(d.getChildCode()+"_"+d.getOptionCode(), d.getOptionName());//名称
+						titleArray.add(titlemap);
+
+					}
+					title.put(childCodeEntry.getKey().split(",")[1], titleArray);
+
+				}
+				titlemark = false;
+				data.put("title", title);
+			}
+
+
+			for (IndicatorDictionary d : dictionaryList) {
+				if (!d.getIsShow()) {
+					continue;
+				}
+
+				if (mark) {
+					indicatormap.put("organizationShortName", resultMap.get(d.getChildCode()+"_"+d.getOptionCode()).getOrganizationShortName());//公司名
+					indicatormap.put("organizationId", resultMap.get(d.getChildCode()+"_"+d.getOptionCode()).getOrganizationId());//公司id
+					mark = false;
+				}
+
+				System.out.println(resultMap.get(d.getChildCode()+"_"+d.getOptionCode()).getId());
+				//指标属性
+				indicatormap.put(d.getChildCode() + "_" + d.getOptionCode(), null == resultMap.get(d.getChildCode()+"_"+d.getOptionCode()).getNonQuantifiedValue() ? "" : resultMap.get(d.getChildCode()+"_"+d.getOptionCode()).getNonQuantifiedValue());
+				//指标id
+				indicatormap.put("ID_" + d.getChildCode() + "_" + d.getOptionCode(), resultMap.get(d.getChildCode()+"_"+d.getOptionCode()).getId());
+			}
+			mapList.add(indicatormap);
+		}
+
+		data.put("value", mapList);
+		return data;
+	}
 
 	//todo  后续添加需要计算的指标项
 	public boolean calculateIdicatorItem(List<OrganizationEvaluationInfo> organizationEvaluationInfos){

+ 28 - 0
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationEvaluationRuleServiceImpl.java

@@ -251,6 +251,34 @@ public class OrganizationEvaluationRuleServiceImpl extends ServiceImpl<Organizat
 		return list;
 	}
 
+	@Override
+	public List<OrganizationEvaluationRule> getOrganizationEvaluationRuleByYearAndCycle(String organizationType,String evaluationCycle, String year) {
+
+		QueryWrapper<OrganizationEvaluationRule> qw = new QueryWrapper<>();
+
+		if (StringUtils.isNotEmpty(organizationType)) {
+			qw.lambda().eq(OrganizationEvaluationRule::getOrganizationType, organizationType);
+		}
+		if (StringUtils.isNotEmpty(evaluationCycle)) {
+			qw.lambda().eq(OrganizationEvaluationRule::getEvaluationCycle, evaluationCycle);
+		}
+		if (StringUtils.isNotEmpty(year)) {
+			qw.lambda().eq(OrganizationEvaluationRule::getYear, year);
+		}
+
+
+		//没有删除标记,并且是需要考核的单位
+		qw.lambda().eq(OrganizationEvaluationRule::getDelFlag, false);
+		qw.lambda().eq(OrganizationEvaluationRule::getIsCheck, true);
+
+		List<OrganizationEvaluationRule> list  = baseMapper.selectList(qw);
+
+		if(null != list && list.size()>0){
+			return list;
+		}
+		return null;
+	}
+
 
 	@Transactional
 	@Override

+ 61 - 103
ims-service/ims-eval/src/main/java/com/ims/eval/service/impl/OrganizationEvaluationServiceImpl.java

@@ -220,62 +220,6 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 	}
 
 
-	public boolean saveOrUpdate2(OrganizationEvaluation entity) {
-		//获取指定部门的规则
-		List<OrganizationEvaluationRule> list = organizationEvaluationRuleService.listByIsCheck(entity.getOrganizationType(), entity.getCheckCycle(), true, false);
-		if (!"JDKP".equals(entity.getCheckCycle()) && (null == list || list.size() <= 0)) {
-			throw new CustomException("不存在单位权重配置");
-		}
-		//获取组织id;
-		List<String> organizationIds = list.stream().map(OrganizationEvaluationRule::getOrganizationId).collect(Collectors.toList());
-		List<String> organizationNames = list.stream().map(OrganizationEvaluationRule::getOrganizationName).collect(Collectors.toList());
-		List<String> evaluationRuleIds = list.stream().map(OrganizationEvaluationRule::getId).collect(Collectors.toList());
-
-		StringBuilder responsibilityCode = new StringBuilder();
-		responsibilityCode.append(entity.getOrganizationType()).append("_");
-		responsibilityCode.append(entity.getCheckCycle()).append("_");
-
-		//判断该是否存在目标责任书
-		List<OrganizationEvaluation> oriList = new ArrayList<>();
-		if ("JDKP".equals(entity.getCheckCycle())) {
-			Date newDate = DateUtils.toDate(entity.getYear() + "-" + entity.getMonth() + "-01");
-			String season = String.valueOf(DateUtils.getSeason(newDate));//获取季度
-			String month = String.valueOf(Integer.valueOf(entity.getMonth()) * Integer.valueOf(season));//季度考评
-			oriList = list("", entity.getCheckCycle(), entity.getYear(), month);
-			List<OrganizationEvaluation> count = list("", entity.getCheckCycle(), entity.getYear(), "");
-			responsibilityCode.append(entity.getYear()).append("_").append(month).append("_");
-			responsibilityCode.append(StringUtils.addZeroForStr(String.valueOf(count.size() + 1), 4, "l"));
-		}
-
-
-		if (null != entity && (null == entity.getId() || "".equals(entity.getId().trim()))) {
-			if (null != oriList && oriList.size() > 0) {
-				throw new CustomException("此单位在该阶段已存在目标责任书");
-			}
-			//保存目标责任书
-			entity.setOrganizationEvaluationCode(responsibilityCode.toString().toLowerCase());
-
-			entity.setOrganizationId(String.join(",", organizationIds));//考评组织ID
-			entity.setOrganizationName(String.join(",", organizationNames));
-			entity.setOrganizationEvaluationRuleId(String.join(",", evaluationRuleIds));
-			entity.setStage("流程未启动");
-			entity.setCreateTime(new Date());
-		} else {
-			OrganizationEvaluation update = baseMapper.selectById(entity.getId());
-			if (null != oriList && oriList.size() > 1 && !update.getId().equals(oriList.get(0).getId())) {
-				throw new CustomException("编辑记录未找到");
-			}
-			if (!"流程未启动".equals(update.getStage())) {
-				throw new CustomException("流程已启动不允许修改");
-			}
-			entity.setOrganizationId(String.join(",", organizationIds));//考评组织ID
-			entity.setOrganizationName(String.join(",", organizationNames));
-			entity.setOrganizationEvaluationRuleId(String.join(",", evaluationRuleIds));
-			entity.setUpdateTime(new Date());
-		}
-		boolean b = super.saveOrUpdate(entity);
-		return b;
-	}
 
 
 	@Transactional
@@ -384,39 +328,47 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 				throw new CustomException("不存在考评记录");
 			}
 
-			//检查是否已经启动考评
-			QueryWrapper<OrganizationEvaluationInfo> infoqw = new QueryWrapper<>();
-			infoqw.lambda().eq(OrganizationEvaluationInfo::getOrganizationEvaluationId, id);
-			int infcount = organizationEvaluationInfoService.count(infoqw);
-			if (infcount > 0) {
-				throw new CustomException("编号" + organizationEvaluation.getOrganizationEvaluationCode() + "的考评已启动;不允许重复操作");
-			}
-
-			organizationEvaluation.setStage("流程启动");
-			baseMapper.updateById(organizationEvaluation);
-
-			List<String> evaluationRuleIds = Arrays.asList(organizationEvaluation.getOrganizationEvaluationRuleId().split(","));
-			evaluationRuleIds = evaluationRuleIds.stream().distinct().collect(Collectors.toList());
-			for (String ruleId : evaluationRuleIds) {
-
-				//获取指定部门的规则
-				OrganizationEvaluationRule evaluationRule = organizationEvaluationRuleService.getById(ruleId);
-				if (null == evaluationRule || evaluationRule.getDelFlag().equals(true)) {
-					throw new CustomException(evaluationRule.getOrganizationShortName() + "不存在此单位规则权重配置");
+			String organizationType = organizationEvaluation.getOrganizationType();//考评类型 DWKP
+			String checkCycle = organizationEvaluation.getCheckCycle();//考评周期-月度、季度
+			String year = organizationEvaluation.getYear();//年份
+
+			//查询当前周期下对应的考评权重(需要考评的单位)
+			List<OrganizationEvaluationRule> evaluationRules = organizationEvaluationRuleService.getOrganizationEvaluationRuleByYearAndCycle(organizationType,checkCycle,year);
+
+			//规则集合
+			List<EvaluateRule> evaluateRuleList = new ArrayList<>();
+			//遍历考核的单位
+			for(OrganizationEvaluationRule evaluationRule : evaluationRules){
+				//根据权重获取对应的考评规则
+				//生产经营
+				double scjyWeight = evaluationRule.getScjyWeight();
+				if(scjyWeight>0){
+					List<EvaluateRule> scjyevaluateRuleList =  evaluateRuleService.getEvaluateRuleByYear(evaluationRule.getBinSection(),CacheContext.bseCodeObject.get("SCJY").getId(),"JDKP",evaluationRule.getYear());
+					if(null!=scjyevaluateRuleList &&scjyevaluateRuleList.size()>0){
+						evaluateRuleList.addAll(scjyevaluateRuleList);
+					}
 				}
-				//获取对应的考评规(至少存在一条)
-				List<String> evaluateRuleIds = Arrays.asList(evaluationRule.getEvaluateRuleId().split(","));
-				List<EvaluateRule> evaluateRuleList = evaluateRuleService.listAll(evaluateRuleIds);
-				if (null == evaluateRuleList || evaluateRuleList.size() <= 0) {
-					//throw new CustomException("未获取到配置的规则");
-					continue;
+				//前期
+				double qqWeight = evaluationRule.getQqWeight();
+				if(qqWeight>0){
+					List<EvaluateRule> qqevaluateRuleList = evaluateRuleService.getEvaluateRuleByYear(CacheContext.bsnCodeObject.get("QQ").getId(),CacheContext.bseCodeObject.get("QQXM").getId(),"JDKP",evaluationRule.getYear());
+					if(null!=qqevaluateRuleList &&qqevaluateRuleList.size()>0){
+						evaluateRuleList.addAll(qqevaluateRuleList);
+					}
+				}
+				//基建
+				double jjWeight = evaluationRule.getJjWeight();
+				if(jjWeight>0){
+					List<EvaluateRule> jjevaluateRuleList = evaluateRuleService.getEvaluateRuleByYear(CacheContext.bsnCodeObject.get("JJ").getId(),CacheContext.bseCodeObject.get("JJXM").getId(),"JDKP",evaluationRule.getYear());
+					if(null!=jjevaluateRuleList &&jjevaluateRuleList.size()>0){
+						evaluateRuleList.addAll(jjevaluateRuleList);
+					}
 				}
 				//获取考评规则的id
 				List<String> ruleIds = evaluateRuleList.stream().map(EvaluateRule::getId).collect(Collectors.toList());
 				//通过规则id获取对应的规则明细
 				List<EvaluateRuleInfo> ruleInfos = evaluateRuleInfoService.list(ruleIds);
 				if (null == ruleInfos || ruleInfos.size() <= 0) {
-//					throw new CustomException("规则明细配置为空");
 					continue;
 				}
 				//获取考评规则中的规则明细id
@@ -425,17 +377,17 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 				//通过规则id获取指标明细项
 				List<EvaluateRuleInfoIndicatorDTO> resDTOS = evaluateRuleInfoService.listByIndicatorInfo(ruleInfoIds);
 
-
 				if (null == resDTOS || resDTOS.size() <= 0) {
 					throw new CustomException("指标规则明细项为空");
 				}
+				List<OrganizationEvaluationInfo> organizationEvaluationInfos = new ArrayList<>();
 				for (EvaluateRuleInfoIndicatorDTO r : resDTOS) {
 					if (null == r.getIndicatorDictionaryID()) {
 						continue;
 					}
 					OrganizationEvaluationInfo info = new OrganizationEvaluationInfo();
 					info.setOrganizationEvaluationId(organizationEvaluation.getId());
-					info.setOrganizationEvaluationRuleId(ruleId);
+					info.setOrganizationEvaluationRuleId(evaluationRule.getId());
 					info.setEvaluateRuleInfoId(r.getId());
 					info.setIndicatorId(r.getIndicatorId());
 					info.setChildCode(r.getChildCode());
@@ -444,14 +396,14 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 					info.setOptionCode(r.getOptionCode());
 					info.setIsQuantified(r.getIsQuantified());
 					info.setCreateTime(new Date());
-					boolean b2 = organizationEvaluationInfoService.saveOrUpdate(info);
-					if (!b2) {
-						throw new CustomException("初始化目标责任书明细失败");
-					}
+					organizationEvaluationInfos.add(info);
+				}
+				boolean b2 = organizationEvaluationInfoService.saveBatch(organizationEvaluationInfos);
+				if (!b2) {
+					throw new CustomException("初始化目标责任书明细失败");
 				}
 			}
 		}
-
 		return true;
 	}
 
@@ -466,7 +418,7 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 				throw new CustomException("不存在考评记录");
 			}
 
-			//检查是否已经启动考评
+			//检查是否已经启动考评
 			QueryWrapper<OrganizationEvaluationInfo> infoqw = new QueryWrapper<>();
 			infoqw.lambda().eq(OrganizationEvaluationInfo::getOrganizationEvaluationId, id);
 			int infcount = organizationEvaluationInfoService.count(infoqw);
@@ -478,42 +430,48 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 			baseMapper.updateById(organizationEvaluation);
 
 			List<String> evaluationRuleIds = Arrays.asList(organizationEvaluation.getOrganizationEvaluationRuleId().split(","));
-
+			evaluationRuleIds = evaluationRuleIds.stream().distinct().collect(Collectors.toList());
 			for (String ruleId : evaluationRuleIds) {
 
 				//获取指定部门的规则
 				OrganizationEvaluationRule evaluationRule = organizationEvaluationRuleService.getById(ruleId);
-				if (null == evaluationRule) {
-					throw new CustomException("不存在此单位规则权重配置");
+				if (null == evaluationRule || evaluationRule.getDelFlag().equals(true)) {
+					throw new CustomException(evaluationRule.getOrganizationShortName() + "不存在此单位规则权重配置");
 				}
 				//获取对应的考评规(至少存在一条)
 				List<String> evaluateRuleIds = Arrays.asList(evaluationRule.getEvaluateRuleId().split(","));
 				List<EvaluateRule> evaluateRuleList = evaluateRuleService.listAll(evaluateRuleIds);
 				if (null == evaluateRuleList || evaluateRuleList.size() <= 0) {
-					throw new CustomException("未获取到配置的规则");
+					//throw new CustomException("未获取到配置的规则");
+					continue;
 				}
 				//获取考评规则的id
 				List<String> ruleIds = evaluateRuleList.stream().map(EvaluateRule::getId).collect(Collectors.toList());
 				//通过规则id获取对应的规则明细
 				List<EvaluateRuleInfo> ruleInfos = evaluateRuleInfoService.list(ruleIds);
 				if (null == ruleInfos || ruleInfos.size() <= 0) {
-					throw new CustomException("规则明细配置为空");
+//					throw new CustomException("规则明细配置为空");
+					continue;
 				}
-				//获取考评规则中的指标id
-				List<String> indicatorIds = ruleInfos.stream().map(EvaluateRuleInfo::getIndicatorId).collect(Collectors.toList());
+				//获取考评规则中的规则明细id
+				List<String> ruleInfoIds = ruleInfos.stream().map(EvaluateRuleInfo::getId).collect(Collectors.toList());
+
+				//通过规则id获取指标明细项
+				List<EvaluateRuleInfoIndicatorDTO> resDTOS = evaluateRuleInfoService.listByIndicatorInfo(ruleInfoIds);
 
 
-				//通过指标id获取指标明细项
-				List<IndicatorResDTO> resDTOS = iIndicatorService.listByIds(indicatorIds);
 				if (null == resDTOS || resDTOS.size() <= 0) {
 					throw new CustomException("指标规则明细项为空");
 				}
-
-				resDTOS.stream().forEach(r -> {
+				for (EvaluateRuleInfoIndicatorDTO r : resDTOS) {
+					if (null == r.getIndicatorDictionaryID()) {
+						continue;
+					}
 					OrganizationEvaluationInfo info = new OrganizationEvaluationInfo();
 					info.setOrganizationEvaluationId(organizationEvaluation.getId());
 					info.setOrganizationEvaluationRuleId(ruleId);
-					info.setIndicatorId(r.getId());
+					info.setEvaluateRuleInfoId(r.getId());
+					info.setIndicatorId(r.getIndicatorId());
 					info.setChildCode(r.getChildCode());
 					info.setDeptId(r.getDeptId());
 					info.setIndicatorDictionaryId(r.getIndicatorDictionaryID());
@@ -524,7 +482,7 @@ public class OrganizationEvaluationServiceImpl extends ServiceImpl<OrganizationE
 					if (!b2) {
 						throw new CustomException("初始化目标责任书明细失败");
 					}
-				});
+				}
 			}
 		}
 

+ 3 - 0
ims-service/ims-eval/src/main/resources/application.yml

@@ -6,6 +6,9 @@ mybatis-plus:
   configuration:
     #设置当查询结果值为null时,同样映射该查询字段给map。
     call-setters-on-nulls: true
+  global-config:
+    db-config:
+      id-type: assign_uuid #设置主键为uuid
 
 #swagger扫描路径配置
 swagger:

+ 79 - 0
ims-service/ims-eval/src/main/resources/mappers/OrganizationEvaluationInfoMapper.xml

@@ -245,6 +245,85 @@
         order by be.order_num,oer.organization_short_name,bn.order_num,ri.order_num,id.option_order asc
 
     </select>
+    <select id="selectEvaluationIndicatorList" resultType="java.util.Map">
+
+        select  DISTINCT i.id,i.indicator_name from organization_evaluation_info   ei
+        LEFT JOIN evaluate_rule_info ri on ei.evaluate_rule_info_id = ri.id
+        LEFT JOIN evaluate_rule er on er.id = ri.evaluate_rule_id
+        INNER JOIN indicator i on i.id = ri.indicator_id
+        <where>
+
+            <if test="organizationEvaluationId !=null and organizationEvaluationId !=''">
+                and  ei.organization_evaluation_id = #{organizationEvaluationId}
+            </if>
+
+            <if test="binSection !=null and binSection !=''">
+                and  er.bin_section = #{binSection}
+            </if>
+
+            <if test="binStage !=null and binStage !=''">
+                and  er.bin_stage = #{binStage}
+            </if>
+
+        </where>
+
+    </select>
+
+
+    <select id="selectEvaluationInfoList" resultType="com.ims.eval.entity.dto.response.OrganizationEvaluationInfoResDTO">
+
+        select
+        ei.id,
+        oe.id organizationEvaluationId,
+        ei.indicator_id,
+        ei.is_quantified,
+        be.stage_name,
+        be.id binStage,
+        bn.id binSection,
+        bn.section_name,
+        oer.id organizationEvaluationRuleId,
+        oer.organization_name,
+        oer.organization_id,
+        oer.organization_short_name,
+        dd.key_name deptName,
+        it.type_name,
+        i.indicator_name,
+        id.child_name,
+        id.child_code,
+        id.option_name,
+        id.option_code,
+        ei.quantified_value,
+        ei.non_quantified_value,
+        i.unit,
+        ei.state
+        from
+        organization_evaluation_info ei
+        inner join organization_evaluation_rule oer on oer.id = ei.organization_evaluation_rule_id
+        inner join organization_evaluation oe on oe.id = ei.organization_evaluation_id
+        left join indicator i on ei.indicator_id = i.id
+        left join  evaluate_rule_info ri on ri.indicator_id = i.id and ei.evaluate_rule_info_id = ri.id
+        left join bin_stage be on i.bin_stage = be.id
+        left join bin_section bn on i.bin_section = bn.id
+        left join indicator_type it on i.indicator_type_id = it.id
+        left join indicator_dictionary id on ei.indicator_dictionary_id = id.id
+        inner join data_dictionary dd on dd.data_key = i.dept_id
+        <where>
+
+            <if test="organizationEvaluationId !=null and organizationEvaluationId !=''">
+                and  ei.organization_evaluation_id  = #{organizationEvaluationId}
+            </if>
+
+
+            <if test="indicatorId !=null and indicatorId !=''">
+                and  ei.indicator_id = #{indicatorId}
+            </if>
+
+            and id.option_code not in ('CZMAX','CZMIN','LRGXKLMAX','LRGXKLMIN','DWQWLRMAX','DWQWLRMIN','WCLDF','LRGXKHMAX','LRGXKHMIN')
+        </where>
+
+        order by be.order_num,oer.organization_short_name,bn.order_num,ri.order_num,id.child_code,id.option_code,id.option_order asc
+
+    </select>
 
 
 </mapper>