diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/controller/LossAssessmentController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/controller/LossAssessmentController.java index b9a02b9d..00375c6d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/controller/LossAssessmentController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/controller/LossAssessmentController.java @@ -78,6 +78,15 @@ public class LossAssessmentController extends BaseController { return service.batchLossAssessmentApply(list); } + /** + * 定损取消,推至维修 + */ + @ApiOperation(value = "定损取消,推至维修") + @PostMapping("/gotoRepair") + public AjaxResult gotoRepair(@RequestBody RepairDeviceVO bean) { + return service.gotoRepair(bean); + } + /** * 提交任务到维修 */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/mapper/LossAssessmentMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/mapper/LossAssessmentMapper.java index 75b24548..4212cf88 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/mapper/LossAssessmentMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/mapper/LossAssessmentMapper.java @@ -161,4 +161,18 @@ public interface LossAssessmentMapper { * @return */ List getDetailsListApp(RepairPartDetails bean); + + /** + * 定损完成--直通 + * @param taskId + * @return + */ + int updateIsDs(Long taskId); + + /** + * 修改状态 + * @param taskId + * @return + */ + int updateStatus(Long taskId); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/LossAssessmentService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/LossAssessmentService.java index 20e67385..f237f312 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/LossAssessmentService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/LossAssessmentService.java @@ -59,4 +59,11 @@ public interface LossAssessmentService { * @return */ List getDetailsListApp(RepairPartDetails bean); + + /** + * 定损取消,推至维修 + * @param bean + * @return + */ + AjaxResult gotoRepair(RepairDeviceVO bean); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java index 90b9d2f4..84af468c 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/lossAssessment/service/impl/LossAssessmentServiceImpl.java @@ -102,13 +102,16 @@ public class LossAssessmentServiceImpl implements LossAssessmentService { .reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal typeCostSum = tempList.stream().map(RepairDeviceVO::getTotalCost).reduce(BigDecimal.ZERO, BigDecimal::add); + // 新增status判断逻辑 + boolean allStatusOne = tempList.stream().allMatch(device -> device.getStatus() != null && !"".equals(device.getStatus()) && "1".equals(device.getStatus())); vo.setRepairDeviceList(tempList) .setIds(ids).setTypeRepairNum(repairNumSum).setTypeRepairedNum(repairedNumSum) .setTypeScrapNum(scrapNumSum).setTaskId(tempList.get(0).getTaskId()) .setCode(tempList.get(0).getCode()).setTypeName(tempList.get(0).getTypeName()) .setTypeId(tempList.get(0).getTypeId()).setType(tempList.get(0).getType()) .setUnitName(tempList.get(0).getUnitName()).setManageType(tempList.get(0).getManageType()) - .setTypeCost(typeCostSum); + .setTypeCost(typeCostSum) + .setStatus(allStatusOne ? "1" : "0"); repairDeviceSummaryVoList.add(vo); } } @@ -214,23 +217,25 @@ public class LossAssessmentServiceImpl implements LossAssessmentService { try { LoginUser loginUser = SecurityUtils.getLoginUser(); for (RepairTask task : taskList) { - //1、查询任务下的定损数据,是否还有未完成的数据 +// //1、查询任务下的定损数据,是否还有未完成的数据 List detailsList = mapper.getRepairDetailsWhichNotSent(task.getTaskId()); - if (!CollectionUtils.isEmpty(detailsList)) { - BigDecimal repairedNum = BigDecimal.ZERO; - BigDecimal scrapNum = BigDecimal.ZERO; - String taskCode = ""; - for (RepairTaskDetails repairTaskDetails : detailsList) { - repairedNum = repairedNum.add(repairTaskDetails.getRepairedNum()); - scrapNum = scrapNum.add(repairTaskDetails.getScrapNum()); - taskCode = repairTaskDetails.getTaskCode(); - } - if (repairedNum.add(scrapNum).compareTo(BigDecimal.ZERO) == 0) { - return AjaxResult.error("单号" + taskCode + "还未进行定损,请先定损后再提交!"); - } - } +// if (!CollectionUtils.isEmpty(detailsList)) { +// BigDecimal repairedNum = BigDecimal.ZERO; +// BigDecimal scrapNum = BigDecimal.ZERO; +// String taskCode = ""; +// for (RepairTaskDetails repairTaskDetails : detailsList) { +// repairedNum = repairedNum.add(repairTaskDetails.getRepairedNum()); +// scrapNum = scrapNum.add(repairTaskDetails.getScrapNum()); +// taskCode = repairTaskDetails.getTaskCode(); +// } +// if (repairedNum.add(scrapNum).compareTo(BigDecimal.ZERO) == 0) { +// return AjaxResult.error("单号" + taskCode + "还未进行定损,请先定损后再提交!"); +// } +// } //2、修改任务状态 mapper.updateSingleTaskStatus(task, loginUser.getUserid(), RepairTaskStatusEnum.TASK_LOSS_ASSESSMENT_COMPLETE.getStatus()); + //将数据status状态都置为1 + mapper.updateStatus(task.getTaskId()); //3、重新生成维修数据 for (RepairTaskDetails repairTaskDetails : detailsList){ repairTaskDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); @@ -322,6 +327,35 @@ public class LossAssessmentServiceImpl implements LossAssessmentService { return mapper.getDetailsListApp(bean); } + @Override + @Transactional(rollbackFor = Exception.class) + public AjaxResult gotoRepair(RepairDeviceVO bean) { + try { + LoginUser loginUser = SecurityUtils.getLoginUser(); + if (bean.getTaskId()!=null){ + List detailsList = mapper.getRepairDetailsWhichNotSent(bean.getTaskId()); + //2、修改任务状态 + RepairTask task = new RepairTask(); + task.setTaskId(bean.getTaskId()); + mapper.updateSingleTaskStatus(task, loginUser.getUserid(), RepairTaskStatusEnum.TASK_LOSS_ASSESSMENT_COMPLETE.getStatus()); + //将数据status状态都置为1 + mapper.updateStatus(task.getTaskId()); + //3、重新生成维修数据 + for (RepairTaskDetails repairTaskDetails : detailsList){ + repairTaskDetails.setCreateBy(SecurityUtils.getLoginUser().getSysUser().getNickName()); + mapper.insertRad(repairTaskDetails); + } + return AjaxResult.success("提交完成"); + } else { + throw new ServiceException("任务id为空"); + } + } catch (Exception e) { + log.error("定损直通维修", e.getMessage()); + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return AjaxResult.error("执行失败,请重试"); + } + } + private void splitRepairDetailsToMultiple(RepairDeviceVO bean, BigDecimal innerRepairNum, BigDecimal outerRepairNum, BigDecimal scrapNum, LoginUser loginUser) { //本次修完了 if ((bean.getRepairNum().subtract(innerRepairNum).subtract(outerRepairNum).subtract(scrapNum).compareTo(BigDecimal.valueOf(0)) ) == 0) { diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml index f0eda28c..2b6713c8 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/lossAssessment/LossAssessmentMapper.xml @@ -174,7 +174,7 @@ update repair_apply_details - set status = IF((ifnull(repaired_num, 0) + ifnull(scrap_num, 0) >= repair_num), 1, 0) + set status = 1 where id = #{id} @@ -192,6 +192,17 @@ update_time = NOW() where task_id = #{taskId} + + update repair_apply_details + set is_ds = 0 + where task_id = #{taskId} + + + update repair_apply_details + set status = 1 + where task_id = #{taskId} + and is_ds = 1 +