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 805a0b83..690357d6 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 @@ -46,6 +46,7 @@ public class RepairServiceImpl implements RepairService { // 维修管理方式--编码 private final int manageTypeByCode = 0; + // 维修管理方式--数量 private final int manageTypeByNumber = 1; @@ -126,7 +127,7 @@ public class RepairServiceImpl implements RepairService { case inRepairType: { int repairNum = getNum(bean, details); // 更新维修数量、并修改维修人员 - repairMapper.updateRepairedNum(bean.getId(), repairNum, Long.valueOf(bean.getRepairer()), loginUser.getUserid()); + repairMapper.updateRepairedNum(bean.getId(), repairNum, loginUser.getUserid(), loginUser.getUserid()); break; } case outRepairType: { @@ -292,7 +293,7 @@ public class RepairServiceImpl implements RepairService { case inRepairType: { partList = bean.getCodeInRepairPartList(); // 更新维修数量、并修改维修人员 - repairMapper.updateRepairedNum(bean.getId(), 1, Long.valueOf(bean.getRepairer()), loginUser.getUserid()); + repairMapper.updateRepairedNum(bean.getId(), 1, loginUser.getUserid(), loginUser.getUserid()); break; } case outRepairType: { @@ -313,66 +314,7 @@ public class RepairServiceImpl implements RepairService { } // 处理配件集合数据 - if (CollectionUtil.isNotEmpty(partList)) { - // 遍历配件列表,判断配件类型,收费还是不收费 - for (RepairPartDetails partDetails : partList) { - // 维修记录表信息 - RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); - repairApplyRecord.setTaskId(bean.getTaskId()); - repairApplyRecord.setMaId(bean.getMaId()); - repairApplyRecord.setTypeId(bean.getTypeId()); - repairApplyRecord.setRepairType(bean.getRepairType()); - repairApplyRecord.setRepairNum(scrapRepairType != bean.getRepairType() ? 1 : 0); - repairApplyRecord.setScrapNum(scrapRepairType == bean.getRepairType() ? 1 : 0); - repairApplyRecord.setCreateBy(loginUser.getUsername()); - repairApplyRecord.setStatus(0L); - - if (partDetails.getPartId() != null) { - // 有维修配件时,如果价格为空,设置为0 - if (partDetails.getPartCost() == null) { - partDetails.setPartCost(new BigDecimal(0)); - } - partDetails.setTaskId(bean.getTaskId()); - partDetails.setMaId(bean.getMaId()); - partDetails.setTypeId(bean.getTypeId()); - partDetails.setCreateBy(String.valueOf(loginUser.getUserid())); - partDetails.setCompanyId(null); - - // 根据 partId 找配件单价 - BigDecimal partPrice = repairMapper.selectPartPrice(partDetails.getPartId()); - // 设置配件费用 - partDetails.setPartCost(partPrice); - // 添加【维修配件明细表】 - repairMapper.addPart(partDetails); - - // 设置配件费用 - repairApplyRecord.setPartPrice(partDetails.getPartCost()); - repairApplyRecord.setPartId((long) partDetails.getPartId().intValue()); - repairApplyRecord.setPartNum(partDetails.getPartNum()); - repairApplyRecord.setRepairContent(partDetails.getRepairContent()); - repairApplyRecord.setPartType(partDetails.getPartType()); - // 添加【维修记录表】 - repairMapper.addRecord(repairApplyRecord); - } else { - // 不选维修配件时, 只添加【维修记录表】 - repairMapper.addRecord(repairApplyRecord); - } - } - } else { - // 配件为空,添加【维修记录表】 - // 维修记录表信息 - RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); - repairApplyRecord.setTaskId(bean.getTaskId()); - repairApplyRecord.setMaId(bean.getMaId()); - repairApplyRecord.setTypeId(bean.getTypeId()); - repairApplyRecord.setRepairType(bean.getRepairType()); - repairApplyRecord.setRepairNum(bean.getRepairType() != 3 ? 1 : 0); - repairApplyRecord.setScrapNum(bean.getRepairType() == 3 ? 1 : 0); - repairApplyRecord.setCreateBy(loginUser.getUsername()); - repairApplyRecord.setStatus(0L); - // 不选维修配件时, 只添加【维修记录表】 - repairMapper.addRecord(repairApplyRecord); - } + copeNumberManageInList(bean, partList, loginUser); } else if (Objects.equals(manageTypeByNumber, bean.getManageType())) { @@ -381,47 +323,64 @@ public class RepairServiceImpl implements RepairService { if (bean.getId() == null) { throw new ServiceException("请完善参数,维修详情ID为空!"); } - // 获取维修详情表中的维修详情记录:待维修、已维修、报废的数量 + // 获取维修详情表中的维修详情记录:待维修、已维修、已报废的数量 RepairTaskDetails details = repairMapper.getById(bean.getId()); if (details == null) { - throw new ServiceException("此维修记录不存在,请检查!"); + throw new ServiceException("此维修记录不存在,请检查后提交!"); } - // 根据维修方式,更新维修数量、报废数量 - switch (bean.getRepairType()) { - case inRepairType: { - partList = bean.getCodeInRepairPartList(); - // 更新维修数量、并修改维修人员 - repairMapper.updateRepairedNum(bean.getId(), 1, Long.valueOf(bean.getRepairer()), loginUser.getUserid()); - break; - } - case outRepairType: { - partList = bean.getCodeOutRepairPartList(); - // 更新维修数量、维修人员不变 - repairMapper.updateRepairedNumTwo(bean.getId(), 1, loginUser.getUserid()); - break; - } - case scrapRepairType: { - partList = bean.getCodeScrapRepairPartList(); + if (CollectionUtil.isNotEmpty(bean.getNumberInRepairPartList())) { + partList = bean.getNumberInRepairPartList(); - // -------------校验维修数量---------------- - // 统计历史已报废数量 + 本次报废数量 = 报废总数 - int scrapNum = details.getScrapNum() + bean.getScrapNum(); - // 统计 报废总数 + 历史已维修数量, - int num = scrapNum + details.getRepairedNum(); - // 不能大与总的待维修数量 - if (num > details.getRepairNum()) { - throw new ServiceException("报废数量大于维修总量! 本次报废数量:" + bean.getScrapNum() + ",已报废数量:" + details.getScrapNum() + ",维修总量:" + details.getRepairNum()); - } - - // 更新报废数量 - repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid()); - break; + // ---------------校验维修数量----------------- + // 统计已维修数量 + 本次维修数量 + int repairNum = details.getRepairedNum() + bean.getRepairNum(); + // 统计报废数量 + 维修合计数量 + int num = repairNum + details.getScrapNum(); + if (num > details.getRepairNum()) { + throw new ServiceException("维修数量大于维修总量"); } - default: - System.err.println("请输入正确的维修类型:" + bean.getRepairType()); - break; + // ---------------校验维修数量----------------- + + // 更新维修数量、并修改维修人员 + repairMapper.updateRepairedNum(bean.getId(), repairNum, loginUser.getUserid(), loginUser.getUserid()); + + copeNumberManageInList(bean, partList, loginUser); + + } + if (CollectionUtil.isNotEmpty(bean.getNumberOutRepairPartList())) { + partList = bean.getNumberOutRepairPartList(); + + // ---------------校验维修数量----------------- + // 统计已维修数量 + 本次维修数量 + int repairNum = details.getRepairedNum() + bean.getRepairNum(); + // 统计报废数量 + 维修合计数量 + int num = repairNum + details.getScrapNum(); + if (num > details.getRepairNum()) { + throw new ServiceException("维修数量大于维修总量"); + } + // ---------------校验维修数量----------------- + + // 更新维修数量、维修人员不变 + repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid()); + } + if (CollectionUtil.isNotEmpty(bean.getNumberScrapRepairPartList())) { + partList = bean.getNumberScrapRepairPartList(); + + // -------------校验维修数量开始---------------- + // 统计历史已报废数量 + 本次报废数量 = 报废总数 + int scrapNum = details.getScrapNum() + bean.getScrapNum(); + // 统计 报废总数 + 历史已维修数量, + int num = scrapNum + details.getRepairedNum(); + // 不能大与总的待维修数量 + if (num > details.getRepairNum()) { + throw new ServiceException("报废数量大于维修总量! 本次报废数量:" + bean.getScrapNum() + ",已报废数量:" + details.getScrapNum() + ",维修总量:" + details.getRepairNum()); + } + // -------------校验维修数量结束---------------- + + // 更新报废数量 + repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid()); } } else { @@ -433,6 +392,70 @@ public class RepairServiceImpl implements RepairService { return AjaxResult.success("维修完成"); } + private void copeNumberManageInList(RepairDeviceVO bean, List partList, LoginUser loginUser) { + // 处理配件集合数据 + if (CollectionUtil.isNotEmpty(partList)) { + // 遍历配件列表,判断配件类型,收费还是不收费 + for (RepairPartDetails partDetails : partList) { + // 维修记录表信息 + RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); + repairApplyRecord.setTaskId(bean.getTaskId()); + repairApplyRecord.setMaId(bean.getMaId()); + repairApplyRecord.setTypeId(bean.getTypeId()); + repairApplyRecord.setRepairType(bean.getRepairType()); + repairApplyRecord.setRepairNum(scrapRepairType != bean.getRepairType() ? 1 : 0); + repairApplyRecord.setScrapNum(scrapRepairType == bean.getRepairType() ? 1 : 0); + repairApplyRecord.setCreateBy(loginUser.getUsername()); + repairApplyRecord.setStatus(0L); + + if (partDetails.getPartId() != null) { + // 有维修配件时,如果价格为空,设置为0 + if (partDetails.getPartCost() == null) { + partDetails.setPartCost(new BigDecimal(0)); + } + partDetails.setTaskId(bean.getTaskId()); + partDetails.setMaId(bean.getMaId()); + partDetails.setTypeId(bean.getTypeId()); + partDetails.setCreateBy(String.valueOf(loginUser.getUserid())); + partDetails.setCompanyId(null); + + // 根据 partId 找配件单价 + BigDecimal partPrice = repairMapper.selectPartPrice(partDetails.getPartId()); + // 设置配件费用 + partDetails.setPartCost(partPrice); + // 添加【维修配件明细表】 + repairMapper.addPart(partDetails); + + // 设置配件费用 + repairApplyRecord.setPartPrice(partDetails.getPartCost()); + repairApplyRecord.setPartId((long) partDetails.getPartId().intValue()); + repairApplyRecord.setPartNum(partDetails.getPartNum()); + repairApplyRecord.setRepairContent(partDetails.getRepairContent()); + repairApplyRecord.setPartType(partDetails.getPartType()); + // 添加【维修记录表】 + repairMapper.addRecord(repairApplyRecord); + } else { + // 不选维修配件时, 只添加【维修记录表】 + repairMapper.addRecord(repairApplyRecord); + } + } + } else { + // 配件为空,添加【维修记录表】 + // 维修记录表信息 + RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); + repairApplyRecord.setTaskId(bean.getTaskId()); + repairApplyRecord.setMaId(bean.getMaId()); + repairApplyRecord.setTypeId(bean.getTypeId()); + repairApplyRecord.setRepairType(bean.getRepairType()); + repairApplyRecord.setRepairNum(bean.getRepairType() != 3 ? 1 : 0); + repairApplyRecord.setScrapNum(bean.getRepairType() == 3 ? 1 : 0); + repairApplyRecord.setCreateBy(loginUser.getUsername()); + repairApplyRecord.setStatus(0L); + // 不选维修配件时, 只添加【维修记录表】 + repairMapper.addRecord(repairApplyRecord); + } + } + @Override @Transactional(rollbackFor = Exception.class) public AjaxResult endRepairTask(@NotNull List taskList) {