diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmFileInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmFileInfo.java index 1e144095..4eb08151 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmFileInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/BmFileInfo.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.ToString; import com.bonus.common.core.web.domain.BaseEntity; +import lombok.experimental.Accessors; /** * 附件 @@ -13,12 +14,11 @@ import com.bonus.common.core.web.domain.BaseEntity; * @author xsheng * @date 2024-09-26 */ - - @Data @ToString -public class BmFileInfo extends BaseEntity -{ +@Accessors(chain = true) +public class BmFileInfo extends BaseEntity { + private static final long serialVersionUID = 1L; /** 主键id */ diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java index 81bb8943..43560cdb 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/RepairPartDetails.java @@ -1,7 +1,10 @@ package com.bonus.material.repair.domain; import java.math.BigDecimal; +import java.util.List; + import com.bonus.common.core.annotation.Excel; +import com.bonus.material.basic.domain.BmFileInfo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.ToString; @@ -83,6 +86,10 @@ public class RepairPartDetails extends BaseEntity { @Excel(name = "损坏原因类型", readConverterExp = "0=:自然损坏,1人为损坏") private String scrapType; + /** 附件集合 */ + @ApiModelProperty(value = "附件集合") + private List fileList; + /** 维修人员 */ @ApiModelProperty(value = "维修人") private String repairer; 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 ab24f0e9..d0f774d5 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 @@ -7,6 +7,8 @@ import com.bonus.common.biz.enums.TmTaskTypeEnum; import com.bonus.common.core.exception.ServiceException; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; +import com.bonus.material.basic.domain.BmFileInfo; +import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.repair.domain.*; import com.bonus.material.repair.domain.vo.RepairDeviceListVo; import com.bonus.material.repair.domain.vo.RepairDeviceVO; @@ -37,6 +39,9 @@ public class RepairServiceImpl implements RepairService { @Resource private TmTaskMapper taskMapper; + @Resource + private BmFileInfoMapper bmFileInfoMapper; + // 1:内部维修 2:外部返厂维修 3:报废 private final int inRepairType = 1, outRepairType = 2, scrapRepairType = 3; @@ -291,7 +296,7 @@ public class RepairServiceImpl implements RepairService { } case scrapRepairType: { // 报废无需上传配件、直接初始化空集合 - partList = new ArrayList<>(0); + partList = bean.getCodeScrapRepairPartList(); // 更新报废数量 repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid()); break; @@ -343,15 +348,12 @@ 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(); // 统计报废数量 + 维修合计数量 - int num = repairNum + details.getScrapNum(); - if (num > details.getRepairNum()) { + if ((repairNum + OptionalInt.of(details.getScrapNum()).orElse(0)) > details.getRepairNum()) { throw new ServiceException("维修数量大于维修总量"); } - // ---------------校验维修数量----------------- // 更新维修数量、维修人员不变 repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid()); @@ -398,18 +400,42 @@ public class RepairServiceImpl implements RepairService { // 更新报废数量 repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid()); - // 报废类型无需配件,所以配件为空,添加【维修记录表】 - // 维修记录表信息 - RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); - repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId()) - .setRepairType(scrapRepairType).setStatus(0L).setIsSlt(0L).setPartNum(0) - .setRepairNum(0).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum()) - .setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason()) - .setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType()) - .setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername()); + if (CollectionUtil.isNotEmpty(partList.get(0).getFileList())) { + for (BmFileInfo fileInfo : partList.get(0).getFileList()) { + fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) + .setTaskId(bean.getTaskId()).setModelId(bean.getId()) + .setCreateBy(loginUser.getUsername()); + bmFileInfoMapper.insertBmFileInfo(fileInfo); + + // 报废类型无需配件,所以配件为空,添加【维修记录表】 + // 维修记录表信息 + RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); + repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId()) + .setRepairType(scrapRepairType).setStatus(0L).setIsSlt(0L).setPartNum(0) + .setFileIds(fileInfo.getId() == null ? "" : String.valueOf(fileInfo.getId())) + .setRepairNum(0).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum()) + .setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason()) + .setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType()) + .setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername()); + + // 因报废操作无需配件, 只添加【维修记录表】 + repairMapper.addRecord(repairApplyRecord); + } + } else { + // 报废类型无需配件,所以配件为空,添加【维修记录表】 + // 维修记录表信息 + RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); + repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId()) + .setRepairType(scrapRepairType).setStatus(0L).setIsSlt(0L).setPartNum(0) + .setRepairNum(0).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum()) + .setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason()) + .setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType()) + .setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername()); + + // 因报废操作无需配件, 只添加【维修记录表】 + repairMapper.addRecord(repairApplyRecord); + } - // 不选维修配件时, 只添加【维修记录表】 - repairMapper.addRecord(repairApplyRecord); } } } else { @@ -446,12 +472,13 @@ public class RepairServiceImpl implements RepairService { */ private void copeNumberManageInList(RepairDeviceVO bean, List partList, LoginUser loginUser, Integer manageType) { if (CollectionUtil.isNotEmpty(partList)) { - + if (bean.getManageType() == null) { + throw new ServiceException("请选择物资管理方式"); + } // 如果是数量管理,那么默认为内部维修 - if (bean.getRepairType() == null && bean.getManageType() != null && manageType == manageTypeByNumber) { + if (bean.getRepairType() == null && manageType == manageTypeByNumber) { bean.setRepairType(inRepairType); } - // 再检查还是null的话直接结束任务 if (bean.getRepairType() == null) { return; @@ -507,13 +534,13 @@ public class RepairServiceImpl implements RepairService { // 外部维修 if (bean.getRepairType() == outRepairType) { - partList = bean.getNumberOutRepairPartList(); - // ---------------校验维修数量----------------- // 统计已维修数量 + 本次维修数量 int repairNum = OptionalInt.of(bean.getRepairedNum()).orElse(0) + bean.getRepairNum(); // 统计报废数量 + 维修合计数量 不能 大与> 总的待维修量 - if (repairNum + OptionalInt.of(bean.getScrapNum()).orElse(0) > bean.getRepairNum()) {throw new ServiceException("维修数量大于维修总量");} + if (repairNum + OptionalInt.of(bean.getScrapNum()).orElse(0) > bean.getRepairNum()) { + throw new ServiceException("维修数量大于维修总量"); + } // 更新维修数量、维修人员不变 repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid()); @@ -527,9 +554,8 @@ public class RepairServiceImpl implements RepairService { if (partList.get(0).getSupplierId() == null) { throw new ServiceException("请选择返厂厂家"); - } else { - repairApplyRecord.setSupplierId(partList.get(0).getSupplierId()); } + repairApplyRecord.setSupplierId(partList.get(0).getSupplierId()); repairApplyRecord.setPartPrice(Optional.ofNullable(partList.get(0).getPartPrice()).orElse(new BigDecimal(0))); // 新增【维修记录表】 repairMapper.addRecord(repairApplyRecord); @@ -542,13 +568,37 @@ public class RepairServiceImpl implements RepairService { repairMapper.addRepairCost(repairApplyRecord, sfCosts, sfCosts.equals(new BigDecimal("0")) ? "0" : "1"); } + // 如果是报废类型,进行上传附件相关处理 + if (scrapRepairType == bean.getRepairType()) { + if (CollectionUtil.isNotEmpty(partList.get(0).getFileList())) { + for (BmFileInfo fileInfo : partList.get(0).getFileList()) { + fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId()) + .setTaskId(bean.getTaskId()).setModelId(bean.getId()) + .setCreateBy(loginUser.getUsername()); + bmFileInfoMapper.insertBmFileInfo(fileInfo); + + // 配件为空,添加【维修记录表】 + RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); + repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId()) + .setRepairType(bean.getRepairType()).setStatus(0L).setFileIds(String.valueOf(fileInfo.getId())) + .setRepairNum(bean.getRepairType() != scrapRepairType ? 1 : 0) + .setScrapNum(bean.getRepairType() == scrapRepairType ? 1 : 0) + .setCreateBy(loginUser.getUsername()); + + // 不选维修配件时, 只添加【维修记录表】 + repairMapper.addRecord(repairApplyRecord); + } + } + } + } else { // 配件为空,添加【维修记录表】 RepairApplyRecord repairApplyRecord = new RepairApplyRecord(); repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId()) .setRepairType(bean.getRepairType()).setStatus(0L) .setRepairNum(bean.getRepairType() != scrapRepairType ? 1 : 0) - .setScrapNum(bean.getRepairType() == scrapRepairType ? 1 : 0).setCreateBy(loginUser.getUsername()); + .setScrapNum(bean.getRepairType() == scrapRepairType ? 1 : 0) + .setCreateBy(loginUser.getUsername()); // 不选维修配件时, 只添加【维修记录表】 repairMapper.addRecord(repairApplyRecord);