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 b128006e..10787156 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 @@ -1,7 +1,6 @@ package com.bonus.material.repair.service.impl; import cn.hutool.core.collection.CollectionUtil; -import com.bonus.common.biz.domain.R; import com.bonus.common.biz.enums.MaTypeManageTypeEnum; import com.bonus.common.biz.enums.RepairTaskStatusEnum; import com.bonus.common.biz.enums.RepairTypeEnum; @@ -462,6 +461,10 @@ public class RepairServiceImpl implements RepairService { continue; } + int innerRepairNum = 0; + int outerRepairNum = 0; + int scrapNum = 0; + // 处理配件--数量管理--内部维修 if (CollectionUtil.isNotEmpty(bean.getNumberInRepairPartList())) { // 获取维修详情表中的维修详情记录:待维修、已维修、已报废的数量 @@ -473,20 +476,8 @@ public class RepairServiceImpl implements RepairService { partList = bean.getNumberInRepairPartList(); if (bean.getNumberInRepairPartList().get(0).getRepairNum() != null && bean.getNumberInRepairPartList().get(0).getRepairNum() != 0) { - // ---------------校验维修数量----------------- - // 统计已维修数量 + 本次维修数量 -// int repairNum = OptionalInt.of(details.getRepairedNum()).orElse(0) + bean.getNumberInRepairPartList().get(0).getRepairNum(); -// // 统计报废数量 + 维修合计数量 -// int num = repairNum + details.getScrapNum(); -// if (num > details.getRepairNum()) { -// throw new ServiceException("维修数量大于维修总量"); -// } - - - // 分拆维修单 - int thisTimeRepairedNum = bean.getNumberInRepairPartList().get(0).getRepairNum(); - splitRepairList(bean, thisTimeRepairedNum, loginUser); - + // 分拆维修单, 准备数据 + innerRepairNum = bean.getNumberInRepairPartList().get(0).getRepairNum(); // 处理配件集合数据 copeNumberManageInList(bean, partList, loginUser, bean.getManageType()); } @@ -509,21 +500,8 @@ public class RepairServiceImpl implements RepairService { // 判断外部维修配件数量是否为空 if (partList.get(0).getRepairNum() != null && partList.get(0).getRepairNum() != 0) { - -// // 统计已维修数量 + 本次维修数量 -// int repairNum = OptionalInt.of(details.getRepairedNum()).orElse(0) + partList.get(0).getRepairNum(); -// // 统计报废数量 + 维修合计数量 -// if ((repairNum + OptionalInt.of(details.getScrapNum()).orElse(0)) > details.getRepairNum()) { -// throw new ServiceException("维修数量大于维修总量"); -// } -// -// // 更新维修数量、维修人员不变 -// repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid()); - - // 分拆维修单 - int thisTimeRepairedNum = partList.get(0).getRepairNum(); - splitRepairList(bean, thisTimeRepairedNum, loginUser); - + // 分拆维修单, 准备数据 + outerRepairNum = partList.get(0).getRepairNum(); if (partList.get(0).getSupplierId() == null) { throw new ServiceException("请选择返厂厂家"); @@ -562,25 +540,8 @@ public class RepairServiceImpl implements RepairService { throw new ServiceException("此维修记录不存在,请检查后提交!"); } - -// // -------------校验维修数量开始---------------- -// // 统计历史已报废数量 + 本次报废数量 = 报废总数 -// int scrapNum = OptionalInt.of(details.getScrapNum()).orElse(0) + bean.getNumberScrapRepairPartList().get(0).getScrapNum(); -// // 统计 报废总数 + 历史已维修数量, -// int num = scrapNum + details.getRepairedNum(); -// // 不能大与总的待维修数量 -// if (num > details.getRepairNum()) { -// throw new ServiceException("报废数量大于维修总量! 本次报废数量:" + bean.getScrapNum() + ",已报废数量:" + details.getScrapNum() + ",维修总量:" + details.getRepairNum()); -// } -// // -------------校验维修数量结束---------------- -// -// // 更新报废数量 -// repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid()); - - - // 维修单拆分--报废机具 - int thisTimeScrapNumber = bean.getNumberScrapRepairPartList().get(0).getScrapNum(); - splitRepairListToScrap(bean, thisTimeScrapNumber, loginUser); + // 分拆维修单, 准备数据 + scrapNum = bean.getNumberScrapRepairPartList().get(0).getScrapNum(); if (CollectionUtil.isNotEmpty(bean.getNumberScrapRepairPartList().get(0).getFileList())) { @@ -621,6 +582,11 @@ public class RepairServiceImpl implements RepairService { } } + + // 拆分维修单 + SplitRepairDetailsToMultiple(bean, innerRepairNum, outerRepairNum, scrapNum, loginUser); + + } else { throw new ServiceException("请选择正确的维修类型"); } @@ -629,39 +595,25 @@ public class RepairServiceImpl implements RepairService { return AjaxResult.success("维修完成"); } - private void splitRepairList(RepairDeviceVO bean, int thisTimeRepairedNum, LoginUser loginUser) { - if ((bean.getRepairNum() - thisTimeRepairedNum) == 0) { //本次修完了 - repairMapper.updateRepairedNum(bean.getId(), thisTimeRepairedNum, loginUser.getUserid(), loginUser.getUserid()); + private void SplitRepairDetailsToMultiple(RepairDeviceVO bean, int innerRepairNum, int outerRepairNum, int scrapNum, LoginUser loginUser) { + if ((bean.getRepairNum() - innerRepairNum - outerRepairNum - scrapNum) == 0) { //本次修完了 + repairMapper.updateRepairedNum(bean.getId(), innerRepairNum + outerRepairNum, loginUser.getUserid(), loginUser.getUserid()); + repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid()); } else { RepairApplyDetails newDetail = new RepairApplyDetails(); BeanUtils.copyProperties(bean, newDetail); - newDetail.setRepairNum((long) (thisTimeRepairedNum)); - newDetail.setRepairedNum((long) thisTimeRepairedNum); + newDetail.setRepairNum((long) (innerRepairNum + outerRepairNum + scrapNum)); + newDetail.setRepairedNum((long) innerRepairNum + outerRepairNum); + newDetail.setScrapNum((long) scrapNum); newDetail.setCreateBy(SecurityUtils.getUsername()); newDetail.setCreateTime(DateUtils.getNowDate()); newDetail.setRepairer(SecurityUtils.getUsername()); newDetail.setStatus("1"); repairApplyDetailsMapper.insertRepairApplyDetails(newDetail); - repairMapper.updateRepairNum(bean.getId(), bean.getRepairNum() - thisTimeRepairedNum, loginUser.getUserid(), loginUser.getUserid()); + repairMapper.updateRepairNum(bean.getId(), bean.getRepairNum() - innerRepairNum - outerRepairNum - scrapNum, loginUser.getUserid(), loginUser.getUserid()); } } - private void splitRepairListToScrap(RepairDeviceVO bean, int thisTimeScrapNum, LoginUser loginUser) { - if ((bean.getRepairNum() - thisTimeScrapNum) == 0) { - repairMapper.updateScrapNum(bean.getId(), thisTimeScrapNum, loginUser.getUserid()); - } else { - RepairApplyDetails newDetail = new RepairApplyDetails(); - BeanUtils.copyProperties(bean, newDetail); - newDetail.setRepairNum((long) (thisTimeScrapNum)); - newDetail.setScrapNum((long) thisTimeScrapNum); - newDetail.setCreateBy(SecurityUtils.getUsername()); - newDetail.setCreateTime(DateUtils.getNowDate()); - newDetail.setRepairer(SecurityUtils.getUsername()); - newDetail.setStatus("1"); - repairApplyDetailsMapper.insertRepairApplyDetails(newDetail); - repairMapper.updateRepairNum(bean.getId(), bean.getRepairNum() - thisTimeScrapNum, loginUser.getUserid(), loginUser.getUserid()); - } - } /** * 配件列表价格合计