diff --git a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java index 896629b6..c0967537 100644 --- a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java +++ b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java @@ -145,6 +145,7 @@ public enum RuleCodeEnum { TRANSFER_RECEIPT_REQUEST("TransferReceiptRequest"),// 调拨接收申请 CONTAINER_INIT_RECORD("ContainerInitRecord"), // 器具初始化记录 CONTAINER_NUMBER("ContainerNumber"), // 器具编号 + CONTAINER_REPAIR_RECORD("ContainerRepairRecord"), // 器具维修记录 ; private final String code; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerMainController.java index 4d0754fb..06e05d42 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/container/ContainerMainController.java @@ -144,4 +144,19 @@ public class ContainerMainController { return success(result); } + @PutMapping("/repair") + @Operation(summary = "器具维修") + @PreAuthorize("@ss.hasPermission('wms:transferissue-request-main:submit')") + public CommonResult repairSubmitContainerRequestMain(@RequestParam("id") Long id) { + Integer count = containerMainService.repairSubmitContainerRequestMain(id); + return success(count > 0); + } + + @PutMapping("/scrap") + @Operation(summary = "器具报废") + @PreAuthorize("@ss.hasPermission('wms:transferissue-request-main:submit')") + public CommonResult scrapSubmitContainerRequestMain(@RequestParam("id") Long id) { + Integer count = containerMainService.scrapSubmitContainerRequestMain(id); + return success(count > 0); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerRepair/ContainerRepairRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerRepair/ContainerRepairRecordMainMapper.java index 8ad3eb05..2a60551f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerRepair/ContainerRepairRecordMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/containerRepair/ContainerRepairRecordMainMapper.java @@ -76,4 +76,7 @@ public interface ContainerRepairRecordMainMapper extends BaseMapperX().eq(ContainerRepairRecordMainDO::getContainerNumber,number)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainService.java index 09085c39..87e04557 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainService.java @@ -97,4 +97,18 @@ public interface ContainerMainService { * @return 编号 */ String pdaUnBind(ContainerMainCreateReqVO createReqVO); + + /** + * 器具维修 + * @param id 主键ID + * @return 更新数量 + */ + Integer repairSubmitContainerRequestMain(Long id); + + /** + * 器具报废 + * @param id 主键Id + * @return 更新数量 + */ + Integer scrapSubmitContainerRequestMain(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java index 20a6621b..3b7efdb1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/container/ContainerMainServiceImpl.java @@ -11,10 +11,14 @@ import com.win.module.wms.convert.container.ContainerDetailConvert; import com.win.module.wms.convert.container.ContainerMainConvert; import com.win.module.wms.dal.dataobject.container.ContainerDetailDO; import com.win.module.wms.dal.dataobject.container.ContainerMainDO; +import com.win.module.wms.dal.dataobject.containerRepair.ContainerRepairRecordDetailDO; +import com.win.module.wms.dal.dataobject.containerRepair.ContainerRepairRecordMainDO; import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordDetailDO; import com.win.module.wms.dal.dataobject.containerinit.ContainerInitRecordMainDO; import com.win.module.wms.dal.mysql.container.ContainerDetailMapper; import com.win.module.wms.dal.mysql.container.ContainerMainMapper; +import com.win.module.wms.dal.mysql.containerRepair.ContainerRepairRecordDetailMapper; +import com.win.module.wms.dal.mysql.containerRepair.ContainerRepairRecordMainMapper; import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordDetailMapper; import com.win.module.wms.dal.mysql.containerinit.ContainerInitRecordMainMapper; import org.apache.commons.lang3.StringUtils; @@ -23,6 +27,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -55,6 +60,10 @@ public class ContainerMainServiceImpl implements ContainerMainService { private AdminUserApi userApi; @Resource private ContainerDetailService containerDetailService; + @Resource + private ContainerRepairRecordMainMapper containerRepairRecordMainMapper; + @Resource + private ContainerRepairRecordDetailMapper containerRepairRecordDetailMapper; @Transactional @@ -109,10 +118,12 @@ public class ContainerMainServiceImpl implements ContainerMainService { containerMainMapper.deleteById(id); } - private void validateContainerMainExists(Long id) { - if (containerMainMapper.selectById(id) == null) { + private ContainerMainDO validateContainerMainExists(Long id) { + ContainerMainDO containerMainDO = containerMainMapper.selectById(id); + if (containerMainDO == null) { throw exception(CONTAINER_MAIN_NOT_EXISTS); } + return containerMainDO; } @Override @@ -193,4 +204,50 @@ public class ContainerMainServiceImpl implements ContainerMainService { return containerMainDO.getNumber(); } + @Transactional + @Override + public Integer repairSubmitContainerRequestMain(Long id) { + ContainerMainDO containerMainDO = validateContainerMainExists(id); + // 添加到维修记录表中 + createContainerRepair(containerMainDO,"REPAIRING"); + // 空:EMPTY, 在用:USED, 维修中:REPAIRING, 报废:SCRAP + containerMainDO.setContainerStatus("REPAIRING"); //维修中 + return containerMainMapper.updateById(containerMainDO); + } + + @Override + public Integer scrapSubmitContainerRequestMain(Long id) { + ContainerMainDO containerMainDO = validateContainerMainExists(id); + // 添加到维修记录表中 + createContainerRepair(containerMainDO,"SCRAP"); + // 空:EMPTY, 在用:USED, 维修中:REPAIRING, 报废:SCRAP + containerMainDO.setContainerStatus("SCRAP"); //报废 + return containerMainMapper.updateById(containerMainDO); + } + + public void createContainerRepair(ContainerMainDO containerMainDO,String containerStatus) { + ContainerRepairRecordMainDO containerRepairRecordMainDO = containerRepairRecordMainMapper.queryByContainerNumber(containerMainDO.getNumber()); + String number = null; + if(containerRepairRecordMainDO == null){ + containerRepairRecordMainDO = new ContainerRepairRecordMainDO(); + containerRepairRecordMainDO.setContainerNumber(containerMainDO.getNumber()); + containerRepairRecordMainDO.setFromWarehouseCode(containerMainDO.getWarehouseCode()); + number = serialNumberApi.generateCode(RuleCodeEnum.CONTAINER_REPAIR_RECORD.getCode()); + containerRepairRecordMainDO.setNumber(number); + containerRepairRecordMainDO.setDepartmentCode(userApi.getUser(getLoginUserId()).getDeptId().toString()); + containerRepairRecordMainDO.setCreateTime(LocalDateTime.now()); + containerRepairRecordMainMapper.insert(containerRepairRecordMainDO); + }else { + number = containerRepairRecordMainDO.getNumber(); + } + ContainerRepairRecordDetailDO containerRepairRecordDetailDO = new ContainerRepairRecordDetailDO(); + containerRepairRecordDetailDO.setFromContainerStatus(containerMainDO.getContainerStatus()); + containerRepairRecordDetailDO.setToContainerStatus(containerStatus); + containerRepairRecordDetailDO.setContainerNumber(containerMainDO.getNumber()); + containerRepairRecordDetailDO.setNumber(number); + containerRepairRecordDetailDO.setMasterId(containerRepairRecordMainDO.getId()); + containerRepairRecordDetailDO.setCreateTime(LocalDateTime.now()); + containerRepairRecordDetailMapper.insert(containerRepairRecordDetailDO); + } + }