From 543a284ecfe246d359dfc6e4f622fca2ea9209a0 Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 13 Nov 2020 15:20:56 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=97=B6=E8=8E=B7=E5=8F=96=E7=9A=84=E5=88=86?= =?UTF-8?q?=E6=95=B0=E4=B8=8D=E5=AF=B9=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/controller/ResultRecordController.java | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) 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 287a3ea4..cebf697c 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -369,12 +369,13 @@ public class ResultRecordController extends AbstractController { Boolean isAllScore = true;//false表示返回所有的评分,true表示值返回评分了的人 for (FlowChartDetailRecord record:flowChartDetailRecords ) { + List staffs1 = new ArrayList<>(); if(record.getOptType().intValue() == -1){ //自己 StaffEntity staffEntity = new StaffEntity(); staffEntity.setId(resultRecord.getId()); staffEntity.setName(resultRecord.getStaffName()); - staffs.add(staffEntity); + staffs1.add(staffEntity); }else if(record.getOptType().intValue() == 0){ //指定人员 //获取人员信息 @@ -384,18 +385,18 @@ public class ResultRecordController extends AbstractController { return Long.parseLong(s); } }).collect(Collectors.toList()); - staffs.addAll(staffService.selectNamesByIds(sIds));//这里不过滤离职人员,因为过滤了可能涉及到评分规则的变更 + staffs1.addAll(staffService.selectNamesByIds(sIds));//这里不过滤离职人员,因为过滤了可能涉及到评分规则的变更 }else{ //领导 DepartManagers departManagers = staffService.findLeader(resultRecord.getStaffId(), record.getOptType()); if(departManagers.getManagers().size() > 0){ - staffs.addAll(departManagers.getManagers()); + staffs1.addAll(departManagers.getManagers()); } } - if(staffs.size() == 0){ + if(staffs1.size() == 0){ log.info("无法找到评分人员,开始找绩效管理人员"); - staffs = staffService.findManger(resultRecord.getId(), ChartFlowType.SCORE.getCode()); + staffs1 = staffService.findManger(resultRecord.getId(), ChartFlowType.SCORE.getCode()); } List flowRecords = flowRecordService.selectFlowRecordByRecordIdStatus(resultRecord.getId(), 0);//获取未执行的节点 if(flowRecords.size() > 0){ @@ -416,11 +417,7 @@ public class ResultRecordController extends AbstractController { } } - - - - - for (StaffEntity staff:staffs + for (StaffEntity staff:staffs1 ) { ResultScoreDto resultScore = new ResultScoreDto(); resultScore.setApprovalId(staff.getId()); @@ -428,6 +425,7 @@ public class ResultRecordController extends AbstractController { resultScore.setWeight(record.getWeight()); scoreDtos.add(resultScore); } + staffs.addAll(staffs1); } From 54b22ed1bd46fcb564308e29df7a1b0595663218 Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 13 Nov 2020 15:50:09 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=BD=93=E4=B8=80=E4=B8=AA=E6=AD=A5?= =?UTF-8?q?=E9=AA=A4=E4=BA=BA=E5=91=98=E4=B8=BA=E5=A4=9A=E4=BA=BA=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=9D=83=E9=87=8D=E6=B1=82=E5=B9=B3=E5=9D=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lz/modules/app/controller/ResultRecordController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 cebf697c..b1056ebc 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -422,7 +422,7 @@ public class ResultRecordController extends AbstractController { ResultScoreDto resultScore = new ResultScoreDto(); resultScore.setApprovalId(staff.getId()); resultScore.setApprovalName(staff.getName()); - resultScore.setWeight(record.getWeight()); + resultScore.setWeight(record.getWeight().divide(BigDecimal.valueOf(staffs1.size())));//多人的时候权重平分 scoreDtos.add(resultScore); } staffs.addAll(staffs1); From 564a791d5f6173fff432b55fa92e1dba479821e5 Mon Sep 17 00:00:00 2001 From: wulin Date: Fri, 13 Nov 2020 16:06:21 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=BB=A9=E6=95=88?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=A2=9E=E5=8A=A0=E5=AF=B9=E8=AF=84=E5=88=86?= =?UTF-8?q?=E6=88=96=E7=AD=BE=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ResultRecordController.java | 49 ++++++++++++------- 1 file changed, 31 insertions(+), 18 deletions(-) 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); }