diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTaskDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTaskDetails.java index 164bb598..88f2f434 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTaskDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairTaskDetails.java @@ -181,6 +181,9 @@ public class RepairTaskDetails extends BaseEntity { @ApiModelProperty(value = "一级类型id") private Long firstId; + @ApiModelProperty(value = "采购原值") + private BigDecimal buyPrice; + public RepairTaskDetails(Long taskId) { this.taskId = taskId; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java index 82a9245a..96b3d103 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -638,6 +638,20 @@ public class RepairServiceImpl implements RepairService { case TO_SCRAP: { // 报废无需上传配件、直接初始化空集合 partList = bean.getCodeScrapRepairPartList(); + // 获取维修详情表中的维修详情记录:待维修、已维修、已报废的数量 + RepairTaskDetails details = repairMapper.getById(bean.getId()); + if (Objects.isNull(details)) { + throw new ServiceException("此维修记录不存在,请检查后提交!"); + } + + RepairApplyRecord scrapCostsRecord = new RepairApplyRecord(); + scrapCostsRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId()) + .setRepairType(bean.getRepairType()).setRepairNum(BigDecimal.ONE).setStatus(0L).setId(bean.getId()) + .setPartType(bean.getCodeScrapRepairPartList().get(0).getPartType()).setRepairType(3); + + // SQL: 新增【报废费用记录表】 + repairMapper.addRepairCost(scrapCostsRecord, details.getBuyPrice(), bean.getCodeScrapRepairPartList().get(0).getScrapType()); + // 更新报废数量 repairMapper.updateScrapNumAndStatus(bean.getId(), BigDecimal.ONE, 1, loginUser.getUserid()); break; @@ -791,8 +805,14 @@ public class RepairServiceImpl implements RepairService { throw new ServiceException("此维修记录不存在,请检查后提交!"); } + // 分拆维修单, 准备数据 - scrapNum = bean.getNumberScrapRepairPartList().get(0).getScrapNum(); + scrapNum = Optional.ofNullable(bean.getNumberScrapRepairPartList().get(0).getScrapNum()).orElse(BigDecimal.ZERO); + RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); + + // 计算报废金额 + BigDecimal scrapCosts = Optional.ofNullable(details.getBuyPrice()).orElse(BigDecimal.ZERO).multiply(scrapNum); + if (CollectionUtil.isNotEmpty(bean.getNumberScrapRepairPartList().get(0).getFileList())) { for (BmFileInfo fileInfo : bean.getNumberScrapRepairPartList().get(0).getFileList()) { @@ -804,11 +824,10 @@ public class RepairServiceImpl implements RepairService { // 报废类型无需配件,所以配件为空,添加【维修记录表】 // 维修记录表信息 - RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId()) .setRepairType(RepairTypeEnum.TO_SCRAP.getTypeId()).setStatus(0L).setIsSlt(0L).setPartNum(0) .setFileIds(null == fileInfo.getId() ? "" : String.valueOf(fileInfo.getId())) - .setRepairNum(BigDecimal.valueOf(0)).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum()) + .setRepairNum(scrapNum).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum()) .setScrapId(bean.getNumberScrapRepairPartList().get(0).getScrapId()) .setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason()) .setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType()) @@ -819,10 +838,9 @@ public class RepairServiceImpl implements RepairService { } else { // 报废类型无需配件,所以配件为空,添加【维修记录表】 // 维修记录表信息 - RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId()) .setRepairType(RepairTypeEnum.TO_SCRAP.getTypeId()).setStatus(0L).setIsSlt(0L).setPartNum(0) - .setRepairNum(BigDecimal.valueOf(0)).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum()) + .setRepairNum(scrapNum).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum()) .setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason()) .setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType()) .setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername()); @@ -830,6 +848,9 @@ public class RepairServiceImpl implements RepairService { repairMapper.addRecord(repairApplyRecord); } + // SQL: 新增【报废费用记录表】 + repairMapper.addRepairCost(repairApplyRecord, scrapCosts, repairApplyRecord.getScrapType()); + } } // 拆分维修单 diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml index 7f9f97fe..063c272b 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -518,9 +518,10 @@