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 be4cc88a..b5d9324a 100644 --- a/src/main/java/com/lz/modules/app/controller/ResultRecordController.java +++ b/src/main/java/com/lz/modules/app/controller/ResultRecordController.java @@ -109,7 +109,7 @@ public class ResultRecordController extends AbstractController { req.setStaffId(user.getUserId()); } else { StaffRole staffRole = staffRoleService.selectByStaffId(getUserId()); - if (staffRole == null) { + if (staffRole == null && req.getIsChangeDepartmentrtment() == 0) { DepartmentsStaffRelateEntity relateEntity = departmentsStaffRelateService.selectLastDepartmentByStaffId(getUserId()); Map map = departmentsService.selectUserAllDepartmentInFo(relateEntity.getDepartmentId()); int i = 0; @@ -431,14 +431,10 @@ public class ResultRecordController extends AbstractController { return R.error("您的提交记录中有状态不为侍提交的,请重新选择。"); } } - new Thread(new Runnable() { - @Override - public void run() { - for (ResultRecord resultRecord : resultRecords) { - resultRecordService.approval(resultRecord.getId(), getUserId()); - } - } - }).start(); + + for (ResultRecord resultRecord : resultRecords) { + resultRecordService.approval(resultRecord.getId(), getUserId()); + } return R.ok("批量提交成功"); } @@ -479,6 +475,43 @@ public class ResultRecordController extends AbstractController { return R.ok("验证成功"); } + /** + * 信息 + */ + @RequestMapping("/preWeightCheck") + public R preWeightCheck(ResultRecordReq req) { + List resultDetails = resultDetailService.selectByRecordIdType(req.getRecordResultId(), req.getType()); + double compare = 0.3; //如果类型是文化价值观 + if (req.getType() == 1) { //类型是业绩 + compare = 0.7; + } + if (CollectionUtils.isEmpty(resultDetails)) { + if (req.getId() > 0) { // 编辑验证 + if (req.getWeight().setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() > compare) { + return R.error("权重不能大于" + compare); + } + } else { // 添加验证 + if (req.getWeight().setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() >= compare) { + return R.error("权重不能大于" + compare); + } + } + } else { + double sum = resultDetails.stream() + .filter(p -> !p.getId().equals(req.getId())) + .mapToDouble(n -> NumberUtil.objToDoubleWithDefault(n.getCheckWeight(), 0d)).summaryStatistics().getSum(); + if (req.getId() > 0) { //编辑验证 + if (new BigDecimal(sum).add(req.getWeight()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() > compare) { + return R.error("权重之和不能大于" + compare); + } + } else { //添加验证 + if (new BigDecimal(sum).add(req.getWeight()).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() >= compare) { + return R.error("权重之和不能大于" + compare); + } + } + } + return R.ok("验证成功"); + } + /** * 信息 */ diff --git a/src/main/java/com/lz/modules/app/req/ResultRecordReq.java b/src/main/java/com/lz/modules/app/req/ResultRecordReq.java index ba5e7afe..5bfd08e0 100644 --- a/src/main/java/com/lz/modules/app/req/ResultRecordReq.java +++ b/src/main/java/com/lz/modules/app/req/ResultRecordReq.java @@ -38,7 +38,6 @@ public class ResultRecordReq { private List statusList ; private String statusStr; private Long approvalStaffId; - - + private int isChangeDepartmentrtment; } diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java index d32d6fcc..f1a0f2cb 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java @@ -324,11 +324,11 @@ public class ResultRecordServiceImpl extends ServiceImpl resultDetails = resultDetailService.selectByRecordId(recordId); if (CollectionUtils.isEmpty(resultDetails)) { - return R.error("请先添加业绩"); + return R.error("请先添加业绩。"); } double sum = resultDetails.parallelStream().filter(p -> p.getType() == 1).mapToDouble(p -> NumberUtil.objToDoubleWithDefault(p.getCheckWeight(), 0d)).sum(); if (sum < 0.7) { - return R.error("recordId为[" + recordId + "]业绩权重之和必需大于0.7"); + return R.error("recordId为[" + recordId + "]业绩权重之和必需等于0.7。"); } return R.ok();