获取绩效详情增加对评分或签的支持

This commit is contained in:
wulin 2020-11-13 16:06:21 +08:00
parent 54b22ed1bd
commit 564a791d5f

View File

@ -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<StaffEntity> staffs = new ArrayList<>();
Boolean isAllScore = true;//false表示返回所有的评分true表示值返回评分了的人
Boolean isOrScore = false;//是否为或签
for (FlowChartDetailRecord record:flowChartDetailRecords
) {
List<StaffEntity> staffs1 = new ArrayList<>();
@ -398,23 +400,11 @@ public class ResultRecordController extends AbstractController {
log.info("无法找到评分人员,开始找绩效管理人员");
staffs1 = staffService.findManger(resultRecord.getId(), ChartFlowType.SCORE.getCode());
}
List<FlowRecord> 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<FlowRecord> 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);
}