diff --git a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java index d05ca68e..0b3d2087 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -355,13 +355,18 @@ public class ResultRecordController extends AbstractController { BeanUtils.copyProperties(resultRecord, resultRecordDetailDto); List resultModels = resultModelService.selectResultModelByGroupId(resultRecord.getEvaluationId()); //获取计算公式 + List calculateModels1 = getCalculate(3l); + //获取计算公式 List calculateModels = getCalculate(resultModels.get(0).getCalculateId()); + + List scoreDtos = new ArrayList<>(); //查询所有参与评分人以及所占比重 List flowChartDetailRecords = - flowChartDetailRecordService.selectFlowChartDetailRecordsByFlowProcess(resultRecord.getEvaluationId(), 4);//获取参与评分的人 + flowChartDetailRecordService.selectFlowChartDetailRecordsByFlowProcess(resultRecord.getEvaluationId(), ChartFlowType.SCORE.getCode());//获取参与评分的人 List staffs = new ArrayList<>(); + Boolean isAllScore = true;//false表示返回所有的评分,true表示值返回评分了的人 for (FlowChartDetailRecord record:flowChartDetailRecords ) { if(record.getOptType().intValue() == -1){ @@ -390,8 +395,20 @@ public class ResultRecordController extends AbstractController { } if(staffs.size() == 0){ log.info("无法找到评分人员,开始找绩效管理人员"); - staffs = staffService.findManger(resultRecord.getId(), 4); + staffs = staffService.findManger(resultRecord.getId(), ChartFlowType.SCORE.getCode()); } + List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(resultRecord.getId(), 2);//获取当前的流程节点 + if(flowRecords.get(0).getFlowProcess().intValue() > ChartFlowType.SCORE.getCode()){ + //流程已经到了审批节点,那么判断评分是否为或签,如果是那么只需要返回实际评分的那个人即可,否则全部返回 + flowRecords = flowRecordService.selectFlowRecordByRecordIdFlowProcess(resultRecord.getId(), ChartFlowType.SCORE.getCode());//获取当前的流程节点 + if(flowRecords.get(0).getType().intValue() == 1){ + //或签 + isAllScore = false; + } + } + + + for (StaffEntity staff:staffs ) { @@ -426,50 +443,68 @@ public class ResultRecordController extends AbstractController { for (ResultDetailDto dto:detailDtos ) { //下面设置计算公式 - dto.setCalculate(setCalculateValue(calculateModels, dto)) ; + dto.setCalculate(setCalculateValue(calculateModels1, dto)) ; weight = weight.add(dto.getCheckWeight()); if(scoreDtos.size() > 0){ //获取评分详细 List scores = resultScoreService.selectResultScoresByDetailIdAndOrderByStaffIds(dto.getId(), scoreDtos); - if(scores.size() > 0){ - // + + if(scores.size() > 0){//已经有平分了 + List scoreDtos1 = new ArrayList<>(); for (ResultScoreDto scoreDto: scoreDtos ) {// - // + + boolean isAdd = false; for (ResultScore score: - scores) { + scores) {//设置每个已经评分的领导 if(scoreDto.getApprovalId().longValue() == score.getApprovalId().longValue()){ ResultScoreDto scoreDto1 = new ResultScoreDto(); BeanUtils.copyProperties(score, scoreDto1); scoreDto1.setApprovalId(scoreDto.getApprovalId()); scoreDto1.setApprovalName(scoreDto.getApprovalName()); scoreDto1.setWeight(scoreDto.getWeight()); + //下面设置计算公式 + scoreDto1.setCalculate(setCalculateValue(calculateModels, model)) ; + scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, dto)) ; + scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, scoreDto1)) ; scoreDtos1.add(scoreDto1); scores.remove(score); isAdd = true; break; } } - if(!isAdd){ + if(!isAdd && isAllScore){//如果isAllScore为true返回所有的评分包括为评分和已评分的,false只返回已评分的,评分或签时用到 ResultScoreDto scoreDto1 = new ResultScoreDto(); scoreDto1.setApprovalId(scoreDto.getApprovalId()); scoreDto1.setApprovalName(scoreDto.getApprovalName()); scoreDto1.setWeight(scoreDto.getWeight()); + //下面设置计算公式 + scoreDto1.setCalculate(setCalculateValue(calculateModels, model)) ; + scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, dto)) ; + scoreDto1.setCalculate(scoreDto1.getCalculate() + setCalculateValue(calculateModels, scoreDto1)) ; scoreDtos1.add(scoreDto1); } } dto.setScoreDtos(scoreDtos1); - }else{ - dto.setScoreDtos(scoreDtos); + }else{//一个评分都没有 + List scoreDtos1 = new ArrayList<>(); + for (ResultScoreDto scoreDto: scoreDtos + ) {// + //下面设置计算公式 + ResultScoreDto sdto = new ResultScoreDto(); + BeanUtils.copyProperties(scoreDto, sdto); + sdto.setCalculate(setCalculateValue(calculateModels, model)); + sdto.setCalculate(sdto.getCalculate() + setCalculateValue(calculateModels, dto)); + sdto.setCalculate(sdto.getCalculate() + setCalculateValue(calculateModels, sdto)); + scoreDtos1.add(sdto); + } + dto.setScoreDtos(scoreDtos1); } } } - - - resultRecortModelDto.setDetailDtos(detailDtos); resultRecortModelDtos.add(resultRecortModelDto); }