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 b1056ebc..218e071c 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -39,6 +39,7 @@ import org.springframework.web.bind.annotation.*; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.math.BigDecimal; +import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.*; import java.util.function.Function; @@ -367,6 +368,7 @@ public class ResultRecordController extends AbstractController { flowChartDetailRecordService.selectFlowChartDetailRecordsByFlowProcess(resultRecord.getEvaluationId(), ChartFlowType.SCORE.getCode());//获取参与评分的人 List staffs = new ArrayList<>(); Boolean isAllScore = true;//false表示返回所有的评分,true表示值返回评分了的人 + Boolean isOrScore = false;//是否为或签 for (FlowChartDetailRecord record:flowChartDetailRecords ) { List staffs1 = new ArrayList<>(); @@ -398,23 +400,11 @@ public class ResultRecordController extends AbstractController { log.info("无法找到评分人员,开始找绩效管理人员"); staffs1 = staffService.findManger(resultRecord.getId(), ChartFlowType.SCORE.getCode()); } - List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(resultRecord.getId(), 0);//获取未执行的节点 - if(flowRecords.size() > 0){ - 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; - } - } - }else{//绩效流程已经走完 - //流程已经到了审批节点,那么判断评分是否为或签,如果是那么只需要返回实际评分的那个人即可,否则全部返回 - flowRecords = flowRecordService.selectFlowRecordByRecordIdFlowProcess(resultRecord.getId(), ChartFlowType.SCORE.getCode());//获取当前的流程节点 - if(flowRecords.get(0).getType().intValue() == 1){ - //或签 - isAllScore = false; - } + //流程已经到了审批节点,那么判断评分是否为或签,如果是那么只需要返回实际评分的那个人即可,否则全部返回 + List flowRecords = flowRecordService.selectFlowRecordByRecordIdFlowProcess(resultRecord.getId(), ChartFlowType.SCORE.getCode());//获取当前的流程节点 + if(flowRecords.get(0).getType().intValue() == 1){ + //或签 + isOrScore = true; } for (StaffEntity staff:staffs1 @@ -422,9 +412,32 @@ public class ResultRecordController extends AbstractController { ResultScoreDto resultScore = new ResultScoreDto(); resultScore.setApprovalId(staff.getId()); resultScore.setApprovalName(staff.getName()); - resultScore.setWeight(record.getWeight().divide(BigDecimal.valueOf(staffs1.size())));//多人的时候权重平分 + if(isOrScore){ + //或签每个权重一样 + resultScore.setWeight(record.getWeight()); + }else{ + //多人的时候权重平分 + resultScore.setWeight(record.getWeight().divide(BigDecimal.valueOf(staffs1.size()), RoundingMode.CEILING)); + } + scoreDtos.add(resultScore); } + + flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(resultRecord.getId(), 0);//获取未执行的节点 + if(flowRecords.size() > 0){ + if(flowRecords.get(0).getFlowProcess().intValue() > ChartFlowType.SCORE.getCode()){ + //流程已经到了审批节点,那么判断评分是否为或签,如果是那么只需要返回实际评分的那个人即可,否则全部返回 + if(isOrScore){ + isAllScore = false; + } + } + }else{//绩效流程已经走完 + if(isOrScore){ + isAllScore = false; + } + } + + staffs.addAll(staffs1); }