From defbd0e538ef5785980d989e8aae95136c2cae42 Mon Sep 17 00:00:00 2001 From: chenfang Date: Fri, 15 Dec 2023 17:02:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BA=93=E5=AD=98=E4=BF=AE=E6=94=B9=E7=94=B3?= =?UTF-8?q?=E8=AF=B7/=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/wms/enums/ErrorCodeConstants.java | 16 +- .../InventorychangeRecordMainController.java | 14 +- ...nventorychangeRequestDetailController.java | 14 +- .../InventorychangeRequestMainController.java | 16 +- ...ventorychangeRequestDetailExportReqVO.java | 3 + ...InventorychangeRequestDetailPageReqVO.java | 2 + .../InventorychangeRequestMainImportVO.java | 13 + .../InventorychangeRequestMainPageReqVO.java | 6 - .../InventorymoveJobMainController.java | 98 ++- .../vo/InventorymoveJobDetailBaseVO.java | 2 +- .../vo/InventorymoveJobDetailPageReqVO.java | 3 + .../vo/InventorymoveJobDetailUpdateReqVO.java | 6 +- .../vo/InventorymoveJobMainExcelVO.java | 74 ++ .../vo/InventorymoveJobMainUpdateReqVO.java | 7 +- .../InventorymoveRecordMainController.java | 54 +- .../vo/InventorymoveRecordMainExcelVO.java | 111 ++- .../InventorymoveRecordMainExportReqVO.java | 2 + .../vo/InventorymoveRecordMainPageReqVO.java | 3 + .../InventorymoveRequestMainController.java | 133 ++- ...InventorymoveRequestDetailExportReqVO.java | 2 + .../InventorymoveRequestDetailPageReqVO.java | 3 + .../vo/InventorymoveRequestMainExcelVO.java | 84 ++ .../vo/InventorymoveRequestMainImportVO.java | 8 +- .../vo/InventorymoveRequestMainPageReqVO.java | 5 + .../InventorymoveJobMainConvert.java | 14 + .../InventorymoveRecordMainConvert.java | 13 +- .../InventorymoveRequestMainConvert.java | 10 +- .../InventorymoveJobMainDO.java | 10 +- .../InventorymoveRecordMainDO.java | 5 + .../InventorymoveRequestMainDO.java | 9 + .../InventorychangeRequestDetailMapper.java | 2 + .../InventorychangeRequestMainMapper.java | 18 +- .../InventorymoveJobDetailMapper.java | 6 + .../InventorymoveJobMainMapper.java | 4 + .../InventorymoveRecordDetailMapper.java | 5 +- .../InventorymoveRecordMainMapper.java | 6 + .../InventorymoveRequestDetailMapper.java | 7 +- .../InventorymoveRequestMainMapper.java | 23 +- ...CustomerreceiptRequestMainServiceImpl.java | 9 +- .../InventorychangeRequestMainService.java | 2 +- ...InventorychangeRequestMainServiceImpl.java | 402 +++------ .../InventorymoveJobDetailService.java | 1 + .../InventorymoveJobDetailServiceImpl.java | 5 + .../InventorymoveJobMainService.java | 31 + .../InventorymoveJobMainServiceImpl.java | 278 +++++- .../InventorymoveRecordDetailService.java | 1 + .../InventorymoveRecordDetailServiceImpl.java | 5 + .../InventorymoveRecordMainService.java | 2 + .../InventorymoveRecordMainServiceImpl.java | 5 + .../InventorymoveRequestDetailService.java | 1 + ...InventorymoveRequestDetailServiceImpl.java | 5 + .../InventorymoveRequestMainService.java | 44 +- .../InventorymoveRequestMainServiceImpl.java | 806 +++++++++++++----- 53 files changed, 1829 insertions(+), 579 deletions(-) diff --git a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java index ad35c5bf..bfb1dbf6 100644 --- a/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java +++ b/win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java @@ -135,6 +135,7 @@ public interface ErrorCodeConstants { ErrorCode WAREHOUSE_AVAIABLE_NOT_EXISTS = new ErrorCode(1_033_000_003, "是否可用不存在"); ErrorCode WAREHOUSE_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_033_000_004, "导入仓库不能为空"); ErrorCode WAREHOUSE_STOCK_EXCEPTION = new ErrorCode(1_033_000_005, "库存问题【{}】"); + ErrorCode WAREHOUSE_AND_LOCATION_RELATION_EXCEPTION = new ErrorCode(1_033_000_006, "仓库与库位关系问题【{}】"); //月台ErrorCode ErrorCode DOCK_NOT_EXISTS = new ErrorCode(1_000_034_000, "月台(收货口)不存在"); ErrorCode DOCK_CODE_NOT_EXISTS = new ErrorCode(1_000_034_001, "代码不存在"); @@ -855,6 +856,13 @@ public interface ErrorCodeConstants { //库存转移申请ErrorCode ErrorCode INVENTORYMOVE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_131_000, "库存转移申请主不存在"); ErrorCode INVENTORYMOVE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_131_001, "库存转移申请子不存在"); + ErrorCode INVENTORYMOVE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_131_002, "导入库存转移申请不能为空"); + ErrorCode INVENTORYMOVE_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_131_003, "库存转移申请状态不支持关闭"); + ErrorCode INVENTORYMOVE_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_131_004, "库存转移申请状态不支持提交"); + ErrorCode INVENTORYMOVE_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_131_005, "库存转移申请状态不支持审批同意"); + ErrorCode INVENTORYMOVE_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_131_006, "库存转移申请状态不支持处理"); + ErrorCode INVENTORYMOVE_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_131_007, "库存转移申请状态不支持审批拒绝"); + ErrorCode INVENTORYMOVE_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_131_008, "库存转移申请状态不支持重新添加"); //库存转移任务ErrorCode ErrorCode INVENTORYMOVE_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_132_000, "库存转移任务主不存在"); ErrorCode INVENTORYMOVE_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_132_001, "库存转移任务子不存在"); @@ -865,7 +873,13 @@ public interface ErrorCodeConstants { //库存修改申请ErrorCode ErrorCode INVENTORYCHANGE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_134_000, "库存修改申请主不存在"); ErrorCode INVENTORYCHANGE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_134_001, "库存修改申请子不存在"); - ErrorCode INVENTORYCHANGE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_134_001, "导入库存修改申请不能为空"); + ErrorCode INVENTORYCHANGE_REQUEST_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_000_134_002, "导入库存修改申请不能为空"); + ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_134_003, "库存修改申请状态不支持关闭"); + ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_134_004, "库存修改申请状态不支持提交"); + ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_134_005, "库存修改申请状态不支持审批同意"); + ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_134_006, "库存修改申请状态不支持处理"); + ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_134_007, "库存修改申请状态不支持审批拒绝"); + ErrorCode INVENTORYCHANGE_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_134_008, "库存修改申请状态不支持重新添加"); //库存修改记录ErrorCode ErrorCode INVENTORYCHANGE_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_135_000, "库存修改记录主不存在"); ErrorCode INVENTORYCHANGE_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_135_001, "库存修改记录子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/InventorychangeRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/InventorychangeRecordMainController.java index 1e940039..20462a77 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/InventorychangeRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/InventorychangeRecordMainController.java @@ -2,6 +2,7 @@ package com.win.module.wms.controller.inventorychangeRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.module.system.api.dept.DeptApi; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.inventorychangeRequest.vo.InventorychangeRequestMainExcelVO; @@ -51,6 +52,8 @@ public class InventorychangeRecordMainController { @Resource private AdminUserApi userApi; + @Resource + private DeptApi deptApi; @PostMapping("/create") @Operation(summary = "创建库存修改记录主") @@ -99,7 +102,14 @@ public class InventorychangeRecordMainController { @PreAuthorize("@ss.hasPermission('wms:inventorychange-record-main:query')") public CommonResult> getInventorychangeRecordMainPage(@Valid InventorychangeRecordMainPageReqVO pageVO) { PageResult pageResult = inventorychangeRecordMainService.getInventorychangeRecordMainPage(pageVO); - return success(InventorychangeRecordMainConvert.INSTANCE.convertPage(pageResult)); + PageResult result = InventorychangeRecordMainConvert.INSTANCE.convertPage(pageResult); + for(InventorychangeRecordMainRespVO vo : result.getList()) { + AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(user.getNickname()); + vo.setDepartmentCode(deptApi.getDept(user.getDeptId()).toString()); + } + return success(result); } @PostMapping("/senior") @@ -112,6 +122,7 @@ public class InventorychangeRecordMainController { AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 vo.setCreator(user.getNickname()); + vo.setDepartmentCode(deptApi.getDept(user.getDeptId()).toString()); } return success(result); } @@ -162,6 +173,7 @@ public class InventorychangeRecordMainController { InventorychangeRecordMainExcelVO vo = InventorychangeRecordMainConvert.INSTANCE.convert(mainDO, detailDO); vo.setCreator(userApi.getUser(Long.valueOf(mainDO.getCreator())).getNickname()); vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname()); + vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(mainDO.getCreator())).getDeptId()).toString()); resultList.add(vo); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestDetailController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestDetailController.java index af17c79a..221d4ec7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestDetailController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestDetailController.java @@ -3,6 +3,7 @@ package com.win.module.wms.controller.inventorychangeRequest; import com.win.framework.common.pojo.CustomConditions; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestMainConvert; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -89,7 +90,13 @@ public class InventorychangeRequestDetailController { @PreAuthorize("@ss.hasPermission('wms:inventorychange-request-detail:query')") public CommonResult> getInventorychangeRequestDetailPage(@Valid InventorychangeRequestDetailPageReqVO pageVO) { PageResult pageResult = inventorychangeRequestDetailService.getInventorychangeRequestDetailPage(pageVO); - return success(InventorychangeRequestDetailConvert.INSTANCE.convertPage(pageResult)); + PageResult result = InventorychangeRequestDetailConvert.INSTANCE.convertPage(pageResult); + for(InventorychangeRequestDetailRespVO vo : result.getList()) { + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); + } + return success(result); } @PostMapping("/senior") @Operation(summary = "高级搜索获得库存修改申请子分页") @@ -98,9 +105,8 @@ public class InventorychangeRequestDetailController { PageResult pageResult = inventorychangeRequestDetailService.getInventorychangeRequestDetailSenior(conditions); PageResult result = InventorychangeRequestDetailConvert.INSTANCE.convertPage(pageResult); for(InventorychangeRequestDetailRespVO vo : result.getList()) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); } return success(result); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestMainController.java index 8b230996..d30cb731 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/InventorychangeRequestMainController.java @@ -7,6 +7,7 @@ import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ConvertUtil; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; +import com.win.module.system.api.dept.DeptApi; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainExcelVO; @@ -55,6 +56,9 @@ public class InventorychangeRequestMainController { @Resource private AdminUserApi userApi; + @Resource + private DeptApi deptApi; + @PostMapping("/create") @Operation(summary = "创建库存修改申请主") @PreAuthorize("@ss.hasPermission('wms:inventorychange-request-main:create')") @@ -105,9 +109,8 @@ public class InventorychangeRequestMainController { PageResult pageResult = inventorychangeRequestMainService.getInventorychangeRequestMainPage(pageVO); PageResult result = InventorychangeRequestMainConvert.INSTANCE.convertPage(pageResult); for(InventorychangeRequestMainRespVO vo : result.getList()) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); } return success(result); } @@ -121,6 +124,8 @@ public class InventorychangeRequestMainController { AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 vo.setCreator(user.getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); + vo.setDepartmentCode(deptApi.getDept(user.getDeptId()).getName()); } return success(result); } @@ -179,6 +184,7 @@ public class InventorychangeRequestMainController { vo.setUpdater(userApi.getUser(Long.valueOf(mainDO.getUpdater())).getNickname()); vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname()); vo.setUpdaterDetail(userApi.getUser(Long.valueOf(detailDO.getUpdater())).getNickname()); + vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(mainDO.getCreator())).getDeptId()).getName()); resultList.add(vo); } } @@ -197,13 +203,11 @@ public class InventorychangeRequestMainController { public CommonResult> importExcel(HttpServletResponse response, @RequestParam("file") MultipartFile file, @RequestParam(value = "mode") Integer mode, - @RequestParam(value = "fromInventoryStatus") String fromInventoryStatus , - @RequestParam(value = "toInventoryStatus") String toInventoryStatus , @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { List list = ExcelUtils.read(file, InventorychangeRequestMainImportVO.class); ConvertUtil convertUtil = new ConvertUtil<>(InventorychangeRequestMainCreateReqVO.class); List createReqVOList = convertUtil.invoke(list).getDataList(); - List errorList = inventorychangeRequestMainService.importInventorychangeRequestMainList(createReqVOList, mode, fromInventoryStatus, toInventoryStatus, updatePart); + List errorList = inventorychangeRequestMainService.importInventorychangeRequestMainList(createReqVOList, mode, updatePart); Map returnMap = new HashMap<>(); returnMap.put("errorCount", errorList.size()); if(!errorList.isEmpty()) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailExportReqVO.java index dad5f5eb..92dcc91b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailExportReqVO.java @@ -131,4 +131,7 @@ public class InventorychangeRequestDetailExportReqVO { @Schema(description = "物品代码") private String itemCode; + @Schema(description = "主表id") + private Long masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailPageReqVO.java index 8618a95f..a8eb181b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestDetailPageReqVO.java @@ -133,4 +133,6 @@ public class InventorychangeRequestDetailPageReqVO extends PageParam { @Schema(description = "物品代码") private String itemCode; + @Schema(description = "主表id") + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportVO.java index 48c5229f..51432dff 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainImportVO.java @@ -1,11 +1,16 @@ package com.win.module.wms.controller.inventorychangeRequest.vo; import com.alibaba.excel.annotation.ExcelProperty; +import com.win.framework.excel.core.annotations.DictFormat; +import com.win.framework.excel.core.convert.DictConvert; +import com.win.module.wms.enums.DictTypeConstants; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.experimental.Accessors; +import java.time.LocalDateTime; + /** * 采购索赔申请子 Excel VO @@ -30,6 +35,14 @@ public class InventorychangeRequestMainImportVO { private String fromContainerNumber; @ExcelProperty("批次") private String fromBatch; + @ExcelProperty(value = "从库存状态",converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String fromInventoryStatus; + @ExcelProperty(value = "到库存状态",converter = DictConvert.class) + @DictFormat(DictTypeConstants.INVENTORY_STATUS) + private String toInventoryStatus; @ExcelProperty("来源库位") private String locationCode; + @ExcelProperty("截止时间") + private LocalDateTime dueTime; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainPageReqVO.java index d237d02a..222f72e6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRequest/vo/InventorychangeRequestMainPageReqVO.java @@ -67,10 +67,4 @@ public class InventorychangeRequestMainPageReqVO extends PageParam { @Schema(description = "直接生成记录") private String directCreateRecord; - @Schema(description = "从库存状态") - private String fromInventoryStatus; - - @Schema(description = "到库存状态") - private String toInventoryStatus; - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/InventorymoveJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/InventorymoveJobMainController.java index 34817557..7ae4fb92 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/InventorymoveJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/InventorymoveJobMainController.java @@ -1,10 +1,16 @@ package com.win.module.wms.controller.inventorymoveJob; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExcelVO; import com.win.module.wms.convert.inventorymoveJob.InventorymoveJobDetailConvert; +import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; +import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.inventorymoveJob.InventorymoveJobDetailService; import jodd.util.StringUtil; import org.springframework.web.bind.annotation.*; @@ -106,30 +112,63 @@ public class InventorymoveJobMainController { PageResult pageResult = inventorymoveJobMainService.getInventorymoveJobMainSenior(conditions); PageResult result = InventorymoveJobMainConvert.INSTANCE.convertPage(pageResult); for(InventorymoveJobMainRespVO vo : result.getList()) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); } return success(result); } @GetMapping("/export-excel") - @Operation(summary = "导出库存转移任务主 Excel") + @Operation(summary = "导出库存转移任务 Excel") @PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:export')") @OperateLog(type = EXPORT) public void exportInventorymoveJobMainExcel(@Valid InventorymoveJobMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = inventorymoveJobMainService.getInventorymoveJobMainList(exportReqVO); - // 导出 Excel - List datas = InventorymoveJobMainConvert.INSTANCE.convertList02(list); - for(InventorymoveJobMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); - } - ExcelUtils.write(response, "库存转移任务主.xls", "数据", InventorymoveJobMainExcelVO.class, datas); + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "库存转移任务.xlsx", "库存转移任务数据", InventorymoveJobMainExcelVO.class, resultList, mapDropDown); + } + + @GetMapping("/export-excel-senior") + @Operation(summary = "导出库存转移任务 Excel") + @PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:export')") + @OperateLog(type = EXPORT) + public void exportInventorymoveJobMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = inventorymoveJobMainService.getInventorymoveJobMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "库存转移任务.xlsx", "库存转移任务数据", InventorymoveJobMainExcelVO.class, resultList, mapDropDown); } + private List getExcelVo(List list, Map mapDropDown) { + String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS); + mapDropDown.put(8, requestStatus); + String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(12, locationType); + mapDropDown.put(15, locationType); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(27, inventoryStatus); + mapDropDown.put(33, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(42, uom); + List resultList = new ArrayList<>(); + // 导出 + for(InventorymoveJobMainDO mainDO : list) { + List subList = inventorymoveJobDetailService.selectList(mainDO.getId()); + for(InventorymoveJobDetailDO detailDO : subList) { + InventorymoveJobMainExcelVO vo = InventorymoveJobMainConvert.INSTANCE.convert(mainDO, detailDO); + vo.setCreator(userApi.getUser(Long.valueOf(mainDO.getCreator())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(mainDO.getUpdater())).getNickname()); + vo.setAcceptUserId(userApi.getUser(Long.valueOf(mainDO.getAcceptUserId())).getNickname()); + vo.setCompleteUserId(userApi.getUser(Long.valueOf(mainDO.getCompleteUserId())).getNickname()); + vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname()); + resultList.add(vo); + } + } + return resultList; + } @GetMapping("/getInventorymoveJobById") @Operation(summary = "APP获得库存转移主子表明细列表") @Parameter(name = "id", description = "编号", required = true, example = "1024") @@ -163,4 +202,39 @@ public class InventorymoveJobMainController { return success(countByStatus); } + @PutMapping("/accept") + @Operation(summary = "承接库存转移任务") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:accept')") + public CommonResult acceptInventorymoveJobMain(@RequestParam("id") Long id) { + Integer count = inventorymoveJobMainService.acceptInventorymoveJobMain(id); + return success(count > 0); + } + + @PutMapping("/abandon") + @Operation(summary = "取消承接库存转移任务") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:abandon')") + public CommonResult abandonInventorymoveJobMain(@RequestParam("id") Long id) { + Integer count = inventorymoveJobMainService.abandonInventorymoveJobMain(id); + return success(count > 0); + } + + @PutMapping("/close") + @Operation(summary = "关闭库存转移任务主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:close')") + public CommonResult closeInventorymoveJobMain(@RequestParam("id") Long id) { + Integer count = inventorymoveJobMainService.closeInventorymoveJobMain(id); + return success(count > 0); + } + + @PutMapping("/execute") + @Operation(summary = "执行库存转移任务主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-job-main:execute')") + public CommonResult executeInventorymoveJobMain(@Valid @RequestBody InventorymoveJobMainUpdateReqVO updateReqVO) { + String number = inventorymoveJobMainService.executeInventorymoveJobMain(updateReqVO); + return success(number); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailBaseVO.java index 7d91d372..9a0d07d4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailBaseVO.java @@ -49,7 +49,7 @@ public class InventorymoveJobDetailBaseVO { @Schema(description = "创建时间") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) - private LocalDateTime createtime; + private LocalDateTime createTime; @Schema(description = "创建者Id") private String creator; diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailPageReqVO.java index 85b8a1ee..b17836b7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailPageReqVO.java @@ -81,4 +81,7 @@ public class InventorymoveJobDetailPageReqVO extends PageParam { @Schema(description = "到货主代码") private String toOwnerCode; + @Schema(description = "主表id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailUpdateReqVO.java index fc0431c2..96af369a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobDetailUpdateReqVO.java @@ -3,10 +3,14 @@ package com.win.module.wms.controller.inventorymoveJob.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; +import java.util.Map; + @Schema(description = "管理后台 - 库存转移任务子更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class InventorymoveJobDetailUpdateReqVO extends InventorymoveJobDetailBaseVO { - + @Schema(description = "子表记录数据") + private List> recordList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainExcelVO.java index 7078e9ce..7db34fc0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainExcelVO.java @@ -1,7 +1,10 @@ package com.win.module.wms.controller.inventorymoveJob.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -24,6 +27,7 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class InventorymoveJobMainExcelVO { + //主表数据 @ExcelProperty("申请单号") private String requestNumber; @@ -35,9 +39,11 @@ public class InventorymoveJobMainExcelVO { private String fromWarehouseCode; @ExcelProperty("申请时间") + @ColumnWidth(value = 22) private LocalDateTime requestTime; @ExcelProperty("要求截止时间") + @ColumnWidth(value = 22) private LocalDateTime requestDueTime; @ExcelProperty(value = "状态", converter = DictConvert.class) @@ -45,9 +51,11 @@ public class InventorymoveJobMainExcelVO { private String status; @ExcelProperty("过期时间") + @ColumnWidth(value = 22) private LocalDateTime expiredTime; @ExcelProperty("最后更新时间") + @ColumnWidth(value = 22) private LocalDateTime updateTime; @ExcelProperty("最后更新者Id") @@ -70,12 +78,14 @@ public class InventorymoveJobMainExcelVO { private String acceptUserId; @ExcelProperty("承接时间") + @ColumnWidth(value = 22) private LocalDateTime acceptTime; @ExcelProperty("完成人用户ID") private String completeUserId; @ExcelProperty("完成时间") + @ColumnWidth(value = 22) private LocalDateTime completeTime; @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) @@ -96,6 +106,7 @@ public class InventorymoveJobMainExcelVO { private String remark; @ExcelProperty("创建时间") + @ColumnWidth(value = 22) private LocalDateTime createTime; @ExcelProperty("创建者id") @@ -143,4 +154,67 @@ public class InventorymoveJobMainExcelVO { @ExcelProperty("允许修改箱码") private String allowModifyPackingNumber; + //子表数据 + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String uom; + + @ExcelProperty("备注") + private String remarkDetail; + + @ExcelProperty("创建时间") + @ColumnWidth(value = 22) + private LocalDateTime createTimeDetail; + + @ExcelProperty("创建者Id") + private String creatorDetail; + + @ExcelProperty("包装号") + private String packingNumber; + + @ExcelProperty("器具号") + private String containerNumber; + + @ExcelProperty("批次") + private String batch; + + @ExcelProperty(value = "库存状态", converter = DictConvert.class) + @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String inventoryStatus; + + @ExcelProperty("订单号") + private String poNumber; + + @ExcelProperty("订单行") + private String poLine; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("到库位代码") + private String toLocationCode; + + @ExcelProperty("从货主代码") + private String fromOwnerCode; + + @ExcelProperty("到货主代码") + private String toOwnerCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainUpdateReqVO.java index 8de9a6f9..ae1d8e56 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveJob/vo/InventorymoveJobMainUpdateReqVO.java @@ -1,12 +1,17 @@ package com.win.module.wms.controller.inventorymoveJob.vo; +import com.win.module.wms.controller.deliverJob.vo.DeliverJobDetailUpdateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import javax.validation.Valid; +import java.util.List; + @Schema(description = "管理后台 - 库存转移任务主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class InventorymoveJobMainUpdateReqVO extends InventorymoveJobMainBaseVO { - + @Schema(description = "子表数据") + private List<@Valid InventorymoveJobDetailUpdateReqVO> subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java index eb8016c6..c62e655e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java @@ -1,8 +1,17 @@ package com.win.module.wms.controller.inventorymoveRecord; import com.win.framework.common.pojo.CustomConditions; +import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExcelVO; +import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainRespVO; +import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; +import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.inventorymoveRecord.InventorymoveRecordDetailService; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -38,6 +47,8 @@ public class InventorymoveRecordMainController { @Resource private InventorymoveRecordMainService inventorymoveRecordMainService; + @Resource + private InventorymoveRecordDetailService inventorymoveRecordDetailService; @Resource private AdminUserApi userApi; @@ -99,9 +110,8 @@ public class InventorymoveRecordMainController { PageResult pageResult = inventorymoveRecordMainService.getInventorymoveRecordMainSenior(conditions); PageResult result = InventorymoveRecordMainConvert.INSTANCE.convertPage(pageResult); for(InventorymoveRecordMainRespVO vo : result.getList()) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); } return success(result); } @@ -122,4 +132,44 @@ public class InventorymoveRecordMainController { ExcelUtils.write(response, "库存转移记录主.xls", "数据", InventorymoveRecordMainExcelVO.class, datas); } + @GetMapping("/export-excel-senior") + @Operation(summary = "导出库存转移申请 Excel") + @PreAuthorize("@ss.hasPermission('wms:inventorymove-record-main:export')") + @OperateLog(type = EXPORT) + public void exportInventorymoveRecordMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = inventorymoveRecordMainService.getInventorymoveRecordMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "库存转移申请.xlsx", "库存转移申请数据", InventorymoveRecordMainExcelVO.class, resultList, mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE); + mapDropDown.put(3, trueFalse); + mapDropDown.put(23, trueFalse); + String[] interfaceType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INTERFACE_TYPE); + mapDropDown.put(11, interfaceType); + mapDropDown.put(48, interfaceType); + String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(18, locationType); + mapDropDown.put(21, locationType); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(32, inventoryStatus); + mapDropDown.put(40, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(46, uom); + List resultList = new ArrayList<>(); + // 导出 + for(InventorymoveRecordMainDO mainDO : list) { + List subList = inventorymoveRecordDetailService.selectList(mainDO.getId()); + for(InventorymoveRecordDetailDO detailDO : subList) { + InventorymoveRecordMainExcelVO vo = InventorymoveRecordMainConvert.INSTANCE.convert(mainDO, detailDO); + vo.setCreator(userApi.getUser(Long.valueOf(mainDO.getCreator())).getNickname()); + vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname()); + resultList.add(vo); + } + } + return resultList; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExcelVO.java index 39134d84..b2e5a129 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExcelVO.java @@ -1,7 +1,10 @@ package com.win.module.wms.controller.inventorymoveRecord.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -22,6 +25,9 @@ import com.win.framework.excel.core.convert.DictConvert; @Data public class InventorymoveRecordMainExcelVO { + @ExcelProperty("单据号") + private String number; + @ExcelProperty("申请单号") private String requestNumber; @@ -39,15 +45,19 @@ public class InventorymoveRecordMainExcelVO { private String inTransactionType; @ExcelProperty("执行时间") + @ColumnWidth(value = 22) private LocalDateTime executeTime; @ExcelProperty("生效日期") + @ColumnWidth(value = 22) private LocalDateTime activeDate; @ExcelProperty("申请时间") + @ColumnWidth(value = 22) private LocalDateTime requestTime; @ExcelProperty("截止时间") + @ColumnWidth(value = 22) private LocalDateTime dueTime; @ExcelProperty("部门") @@ -60,9 +70,6 @@ public class InventorymoveRecordMainExcelVO { @ExcelProperty("代码") private String code; - @ExcelProperty("单据号") - private String number; - @ExcelProperty("业务类型") private String businessType; @@ -70,6 +77,7 @@ public class InventorymoveRecordMainExcelVO { private String remark; @ExcelProperty("创建时间") + @ColumnWidth(value = 22) private LocalDateTime createTime; @ExcelProperty("创建者Id") @@ -95,7 +103,102 @@ public class InventorymoveRecordMainExcelVO { @ExcelProperty("到库区代码范围") private String toAreaCodes; - @ExcelProperty("是否可用") + @ExcelProperty(value = "是否可用", converter = DictConvert.class) + @DictFormat("true_false") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String available; + //子表 + @ExcelProperty("在途库库位") + private String onTheWayLocationCode; + + @ExcelProperty("从货主代码") + private String fromOwnerCode; + + @ExcelProperty("从包装号") + private String fromPackingNumber; + + @ExcelProperty("从器具号") + private String fromContainerNumber; + + @ExcelProperty("从批次") + private String fromBatch; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty("从库位组代码") + private String fromLocationGroupCode; + + @ExcelProperty("从库区代码") + private String fromAreaCode; + + @ExcelProperty(value = "从库存状态", converter = DictConvert.class) + @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String fromInventoryStatus; + + @ExcelProperty("到货主代码") + private String toOwnerCode; + + @ExcelProperty("到包装号") + private String toPackingNumber; + + @ExcelProperty("到器具号") + private String toContainerNumber; + + @ExcelProperty("到批次") + private String toBatch; + + @ExcelProperty("到库位代码") + private String toLocationCode; + + @ExcelProperty("到库位组代码") + private String toLocationGroupCode; + + @ExcelProperty("到库区代码") + private String toAreaCode; + + @ExcelProperty(value = "到库存状态", converter = DictConvert.class) + @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String toInventoryStatus; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String uom; + + @ExcelProperty("代码") + private String codeDetail; + + @ExcelProperty(value = "接口类型", converter = DictConvert.class) + @DictFormat("interface_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String interfaceTypeDetail; + + @ExcelProperty("物品代码") + private String itemCode; + + @ExcelProperty("备注") + private String remarkDetail; + + @ExcelProperty("创建时间") + @ColumnWidth(value = 22) + private LocalDateTime createTimeDetail; + + @ExcelProperty("创建者Id") + private String creatorDetail; + @ExcelProperty("任务明细ID") + private String jobDetailId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExportReqVO.java index ffa30c7a..4184a7d1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainExportReqVO.java @@ -90,4 +90,6 @@ public class InventorymoveRecordMainExportReqVO { @Schema(description = "是否可用") private String available; + @Schema(description = "主表id") + private String masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainPageReqVO.java index 49a63595..4e511bbd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainPageReqVO.java @@ -92,4 +92,7 @@ public class InventorymoveRecordMainPageReqVO extends PageParam { @Schema(description = "是否可用") private String available; + @Schema(description = "主表id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java index 135a3d09..3dabd578 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java @@ -7,12 +7,14 @@ import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.framework.excel.core.util.ConvertUtil; import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.operatelog.core.annotations.OperateLog; +import com.win.module.system.api.dept.DeptApi; import com.win.module.system.api.user.AdminUserApi; -import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.wms.controller.inventorymoveRequest.vo.*; import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.enums.DictTypeConstants; +import com.win.module.wms.service.inventorymoveRequest.InventorymoveRequestDetailService; import com.win.module.wms.service.inventorymoveRequest.InventorymoveRequestMainService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -42,9 +44,13 @@ public class InventorymoveRequestMainController { @Resource private InventorymoveRequestMainService inventorymoveRequestMainService; + @Resource + private InventorymoveRequestDetailService inventorymoveRequestDetailService; @Resource private AdminUserApi userApi; + @Resource + private DeptApi deptApi; @PostMapping("/create") @Operation(summary = "创建库存转移申请主") @@ -93,7 +99,14 @@ public class InventorymoveRequestMainController { @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:query')") public CommonResult> getInventorymoveRequestMainPage(@Valid InventorymoveRequestMainPageReqVO pageVO) { PageResult pageResult = inventorymoveRequestMainService.getInventorymoveRequestMainPage(pageVO); - return success(InventorymoveRequestMainConvert.INSTANCE.convertPage(pageResult)); + PageResult result = InventorymoveRequestMainConvert.INSTANCE.convertPage(pageResult); + for(InventorymoveRequestMainRespVO vo : result.getList()) { + //后端创建个字段作为前端展示的虚拟字段 + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); + vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(vo.getCreator())).getDeptId()).getName()); + } + return success(result); } @PostMapping("/senior") @@ -103,27 +116,64 @@ public class InventorymoveRequestMainController { PageResult pageResult = inventorymoveRequestMainService.getInventorymoveRequestMainSenior(conditions); PageResult result = InventorymoveRequestMainConvert.INSTANCE.convertPage(pageResult); for(InventorymoveRequestMainRespVO vo : result.getList()) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + vo.setCreator(userApi.getUser(Long.valueOf(vo.getCreator())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(vo.getUpdater())).getNickname()); + vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(vo.getCreator())).getDeptId()).getName()); } return success(result); } @GetMapping("/export-excel") - @Operation(summary = "导出库存转移申请主 Excel") + @Operation(summary = "导出库存转移申请 Excel") @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:export')") @OperateLog(type = EXPORT) public void exportInventorymoveRequestMainExcel(@Valid InventorymoveRequestMainExportReqVO exportReqVO, HttpServletResponse response) throws IOException { List list = inventorymoveRequestMainService.getInventorymoveRequestMainList(exportReqVO); - // 导出 Excel - List datas = InventorymoveRequestMainConvert.INSTANCE.convertList02(list); - for(InventorymoveRequestMainExcelVO vo : datas) { - AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator())); - //后端创建个字段作为前端展示的虚拟字段 - vo.setCreator(user.getNickname()); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "库存转移申请.xlsx", "库存转移申请数据", InventorymoveRequestMainExcelVO.class, resultList, mapDropDown); + } + + @GetMapping("/export-excel-senior") + @Operation(summary = "导出库存转移申请 Excel") + @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:export')") + @OperateLog(type = EXPORT) + public void exportInventorymoveRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException { + List list = inventorymoveRequestMainService.getInventorymoveRequestMainList(conditions); + //组装vo + Map mapDropDown = new HashMap<>(); + List resultList = this.getExcelVo(list, mapDropDown); + ExcelUtils.write(response, "库存转移申请.xlsx", "库存转移申请数据", InventorymoveRequestMainExcelVO.class, resultList, mapDropDown); + } + + private List getExcelVo(List list, Map mapDropDown) { + String[] requestStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.REQUEST_STATUS); + mapDropDown.put(8, requestStatus); + String[] locationType = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE); + mapDropDown.put(12, locationType); + mapDropDown.put(15, locationType); + String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS); + mapDropDown.put(27, inventoryStatus); + mapDropDown.put(33, inventoryStatus); + String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM); + mapDropDown.put(42, uom); + List resultList = new ArrayList<>(); + // 导出 + for(InventorymoveRequestMainDO mainDO : list) { + List subList = inventorymoveRequestDetailService.selectList(mainDO.getId()); + for(InventorymoveRequestDetailDO detailDO : subList) { + InventorymoveRequestMainExcelVO vo = InventorymoveRequestMainConvert.INSTANCE.convert(mainDO, detailDO); + vo.setCreator(userApi.getUser(Long.valueOf(mainDO.getCreator())).getNickname()); + vo.setUpdater(userApi.getUser(Long.valueOf(mainDO.getUpdater())).getNickname()); + vo.setCreatorDetail(userApi.getUser(Long.valueOf(detailDO.getCreator())).getNickname()); + vo.setUpdaterDetail(userApi.getUser(Long.valueOf(detailDO.getUpdater())).getNickname()); + vo.setDepartmentCode(deptApi.getDept(userApi.getUser(Long.valueOf(vo.getCreator())).getDeptId()).getName()); + resultList.add(vo); + } } - ExcelUtils.write(response, "库存转移申请主.xls", "数据", InventorymoveRequestMainExcelVO.class, datas); + return resultList; } @GetMapping("/get-import-template") @@ -145,15 +195,17 @@ public class InventorymoveRequestMainController { @Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"), @Parameter(name = "updatePart", description = "部分更新,默认为 true", example = "true") }) - @PreAuthorize("@ss.hasPermission('wms:deliver-plan-main:import')") + @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:import')") public CommonResult> importExcel(HttpServletResponse response, @RequestParam("file") MultipartFile file, @RequestParam(value = "mode") Integer mode, + @RequestParam(value = "fromInventoryStatus") String fromInventoryStatus, + @RequestParam(value = "toInventoryStatus") String toInventoryStatus , @RequestParam(value = "updatePart", required = false, defaultValue = "false") Boolean updatePart) throws Exception { List list = ExcelUtils.read(file, InventorymoveRequestMainImportVO.class); ConvertUtil convertUtil = new ConvertUtil<>(InventorymoveRequestMainCreateReqVO.class); List createReqVOList = convertUtil.invoke(list).getDataList(); - List errorList = inventorymoveRequestMainService.importInventorymoveRequestMainList(createReqVOList, mode, updatePart); + List errorList = inventorymoveRequestMainService.importInventorymoveRequestMainList(createReqVOList, mode, fromInventoryStatus, toInventoryStatus, updatePart); Map returnMap = new HashMap<>(); returnMap.put("errorCount", errorList.size()); if(!errorList.isEmpty()) { @@ -163,4 +215,57 @@ public class InventorymoveRequestMainController { return success(returnMap); } + @PutMapping("/close") + @Operation(summary = "关闭库存修改申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:close')") + public CommonResult closeInventorymoveRequestMain(@RequestParam("id") Long id) { + Integer count = inventorymoveRequestMainService.closeInventorymoveRequestMain(id); + return success(count > 0); + } + + @PutMapping("/reAdd") + @Operation(summary = "重新添加库存修改申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:reAdd')") + public CommonResult reAddInventorymoveRequestMain(@RequestParam("id") Long id) { + Integer count = inventorymoveRequestMainService.reAddInventorymoveRequestMain(id); + return success(count > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交库存修改申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:submit')") + public CommonResult submitInventorymoveRequestMain(@RequestParam("id") Long id) { + Integer count = inventorymoveRequestMainService.submitInventorymoveRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过库存修改申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:agree')") + public CommonResult agreeInventorymoveRequestMain(@RequestParam("id") Long id) { + Integer count = inventorymoveRequestMainService.agreeInventorymoveRequestMain(id); + return success(count > 0); + } + + @PutMapping("/handle") + @Operation(summary = "处理库存修改申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:handle')") + public CommonResult handleInventorymoveRequestMain(@RequestParam("id") Long id) { + Integer count = inventorymoveRequestMainService.handleInventorymoveRequestMain(id); + return success(count > 0); + } + + @PutMapping("/refused") + @Operation(summary = "审批拒绝库存修改申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:refused')") + public CommonResult abortInventorymoveRequestMain(@RequestParam("id") Long id) { + Integer count = inventorymoveRequestMainService.abortInventorymoveRequestMain(id); + return success(count > 0); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailExportReqVO.java index aba69d8b..09787cb4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailExportReqVO.java @@ -92,4 +92,6 @@ public class InventorymoveRequestDetailExportReqVO { @Schema(description = "物品代码") private String itemCode; + @Schema(description = "主表id") + private String masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailPageReqVO.java index 66ed36f5..7d5d0939 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailPageReqVO.java @@ -94,4 +94,7 @@ public class InventorymoveRequestDetailPageReqVO extends PageParam { @Schema(description = "物品代码") private String itemCode; + @Schema(description = "主表id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExcelVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExcelVO.java index 4ef43bac..d542badd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExcelVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExcelVO.java @@ -1,7 +1,10 @@ package com.win.module.wms.controller.inventorymoveRequest.vo; +import com.alibaba.excel.annotation.write.style.ColumnWidth; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; + +import java.math.BigDecimal; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; @@ -31,15 +34,18 @@ public class InventorymoveRequestMainExcelVO { private String remark; @ExcelProperty("创建时间") + @ColumnWidth(value = 22) private LocalDateTime createTime; @ExcelProperty("创建者用户名") private String creator; @ExcelProperty("申请时间") + @ColumnWidth(value = 22) private LocalDateTime requestTime; @ExcelProperty("截止时间") + @ColumnWidth(value = 22) private LocalDateTime dueTime; @ExcelProperty("部门") @@ -50,6 +56,7 @@ public class InventorymoveRequestMainExcelVO { private String status; @ExcelProperty("最后更新时间") + @ColumnWidth(value = 22) private LocalDateTime updateTime; @ExcelProperty("最后更新者用户名") @@ -90,4 +97,81 @@ public class InventorymoveRequestMainExcelVO { @ExcelProperty("直接生成记录") private String directCreateRecord; + //子表 + @ExcelProperty("从货主代码") + private String fromOwnerCode; + + @ExcelProperty("从包装号") + private String fromPackingNumber; + + @ExcelProperty("从器具号") + private String fromContainerNumber; + + @ExcelProperty("从批次") + private String fromBatch; + + @ExcelProperty("从库位代码") + private String fromLocationCode; + + @ExcelProperty(value = "从库存状态", converter = DictConvert.class) + @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String fromInventoryStatus; + + @ExcelProperty("到货主代码") + private String toOwnerCode; + + @ExcelProperty("到包装号") + private String toPackingNumber; + + @ExcelProperty("到器具号") + private String toContainerNumber; + + @ExcelProperty("到批次") + private String toBatch; + + @ExcelProperty("到库位代码") + private String toLocationCode; + + @ExcelProperty(value = "到库存状态", converter = DictConvert.class) + @DictFormat("inventory_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String toInventoryStatus; + + @ExcelProperty("备注") + private String remarkDetail; + + @ExcelProperty("创建时间") + @ColumnWidth(value = 22) + private LocalDateTime createTimeDetail; + + @ExcelProperty("创建者用户名") + private String creatorDetail; + + @ExcelProperty("物品名称") + private String itemName; + + @ExcelProperty("物品描述1") + private String itemDesc1; + + @ExcelProperty("物品描述2") + private String itemDesc2; + + @ExcelProperty("项目代码") + private String projectCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty(value = "计量单位", converter = DictConvert.class) + @DictFormat("uom") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 + private String uom; + + @ExcelProperty("最后更新时间") + @ColumnWidth(value = 22) + private LocalDateTime updateTimeDetail; + + @ExcelProperty("最后更新者用户名") + private String updaterDetail; + + @ExcelProperty("物品代码") + private String itemCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java index 05298b5e..f3217d75 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java @@ -26,11 +26,9 @@ import java.time.LocalDateTime; public class InventorymoveRequestMainImportVO { //主表数据 - @ExcelProperty("单据号") private String number; - //子表数据 @ExcelProperty("物品代码") private String itemCode; @@ -53,4 +51,10 @@ public class InventorymoveRequestMainImportVO { @ExcelProperty("到库位代码") private String toLocationCode; + + @ExcelProperty("数量") + private BigDecimal qty; + + @ExcelProperty("截止时间") + private LocalDateTime dueTime; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainPageReqVO.java index 71e2ff2f..3cdcf373 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainPageReqVO.java @@ -85,4 +85,9 @@ public class InventorymoveRequestMainPageReqVO extends PageParam { @Schema(description = "直接生成记录") private String directCreateRecord; + @Schema(description = "从库存状态") + private String fromInventoryStatus; + + @Schema(description = "到库存状态") + private String toInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveJob/InventorymoveJobMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveJob/InventorymoveJobMainConvert.java index 72d5491d..14b3683b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveJob/InventorymoveJobMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveJob/InventorymoveJobMainConvert.java @@ -8,8 +8,11 @@ import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainCre import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExcelVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainRespVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; @@ -36,4 +39,15 @@ public interface InventorymoveJobMainConvert { List convertList02(List list); InventorymoveJobMainDO convert(InventorymoveRequestMainDO mainDO); + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.creatorName", target = "creatorName"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + @Mapping(source = "detailDO.creator", target = "creatorDetail"), + }) + InventorymoveJobMainExcelVO convert(InventorymoveJobMainDO mainDO, InventorymoveJobDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRecord/InventorymoveRecordMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRecord/InventorymoveRecordMainConvert.java index d8e19b6a..e0e1152b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRecord/InventorymoveRecordMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRecord/InventorymoveRecordMainConvert.java @@ -8,7 +8,10 @@ import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordM import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExcelVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainRespVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO; import org.mapstruct.Mapper; +import org.mapstruct.Mapping; +import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO; @@ -33,5 +36,13 @@ public interface InventorymoveRecordMainConvert { PageResult convertPage(PageResult page); List convertList02(List list); - + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.interfaceType", target = "interfaceType"), + @Mapping(source = "mainDO.code", target = "code"), + }) + InventorymoveRecordMainExcelVO convert(InventorymoveRecordMainDO mainDO, InventorymoveRecordDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestMainConvert.java index f8b424e4..cbca6b36 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestMainConvert.java @@ -44,5 +44,13 @@ public interface InventorymoveRequestMainConvert { @Mapping(source = "mainVo.number", target = "number"), }) InventorymoveRequestMainImportErrorVO convert(InventorymoveRequestMainCreateReqVO mainVo, InventorymoveRequestDetailDO detailDo); - + @Mappings({ + @Mapping(source = "mainDO.number", target = "number"), + @Mapping(source = "mainDO.remark", target = "remark"), + @Mapping(source = "mainDO.createTime", target = "createTime"), + @Mapping(source = "mainDO.creator", target = "creator"), + @Mapping(source = "mainDO.updateTime", target = "updateTime"), + @Mapping(source = "mainDO.updater", target = "updater"), + }) + InventorymoveRequestMainExcelVO convert(InventorymoveRequestMainDO mainDO, InventorymoveRequestDetailDO detailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveJob/InventorymoveJobMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveJob/InventorymoveJobMainDO.java index 71c0592e..d7cc7f49 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveJob/InventorymoveJobMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveJob/InventorymoveJobMainDO.java @@ -1,5 +1,6 @@ package com.win.module.wms.dal.dataobject.inventorymoveJob; +import com.sun.xml.bind.v2.TODO; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -217,5 +218,12 @@ public class InventorymoveJobMainDO extends BaseDO { * 允许修改箱码 */ private String allowModifyPackingNumber; - + /** + * 入库库存状态范围 + */ + private String inInventoryStatuses; + /** + * 出库库存状态范围 + */ + private String outInventoryStatuses; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRecord/InventorymoveRecordMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRecord/InventorymoveRecordMainDO.java index fa6829b8..c583a420 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRecord/InventorymoveRecordMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRecord/InventorymoveRecordMainDO.java @@ -1,5 +1,6 @@ package com.win.module.wms.dal.dataobject.inventorymoveRecord; +import com.sun.xml.bind.v2.TODO; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -145,5 +146,9 @@ public class InventorymoveRecordMainDO extends BaseDO { * 是否可用 */ private String available; + /** + * 主表id + */ + private String masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRequest/InventorymoveRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRequest/InventorymoveRequestMainDO.java index 5aa21c94..76282f5c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRequest/InventorymoveRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRequest/InventorymoveRequestMainDO.java @@ -1,5 +1,6 @@ package com.win.module.wms.dal.dataobject.inventorymoveRequest; +import com.sun.xml.bind.v2.TODO; import lombok.*; import java.util.*; import java.time.LocalDateTime; @@ -130,5 +131,13 @@ public class InventorymoveRequestMainDO extends BaseDO { * 直接生成记录 */ private String directCreateRecord; + /** + * 入库库存状态范围 + */ + private String inInventoryStatuses; + /** + * 出库库存状态范围 + */ + private String outInventoryStatuses; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestDetailMapper.java index fcdc07d8..5a4766b0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestDetailMapper.java @@ -23,6 +23,7 @@ public interface InventorychangeRequestDetailMapper extends BaseMapperX selectPage(InventorychangeRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InventorychangeRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventorychangeRequestDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode()) .eqIfPresent(InventorychangeRequestDetailDO::getLocationCode, reqVO.getLocationCode()) .eqIfPresent(InventorychangeRequestDetailDO::getAreaCode, reqVO.getAreaCode()) @@ -66,6 +67,7 @@ public interface InventorychangeRequestDetailMapper extends BaseMapperX selectList(InventorychangeRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() + .eqIfPresent(InventorychangeRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventorychangeRequestDetailDO::getLocationGroupCode, reqVO.getLocationGroupCode()) .eqIfPresent(InventorychangeRequestDetailDO::getLocationCode, reqVO.getLocationCode()) .eqIfPresent(InventorychangeRequestDetailDO::getAreaCode, reqVO.getAreaCode()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestMainMapper.java index fb939eb8..aaa5798a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorychangeRequest/InventorychangeRequestMainMapper.java @@ -23,8 +23,8 @@ import org.apache.ibatis.annotations.Mapper; public interface InventorychangeRequestMainMapper extends BaseMapperX { default PageResult selectPage(InventorychangeRequestMainPageReqVO reqVO) { - LambdaQueryWrapperX lambdaQueryWrapperX = new LambdaQueryWrapperX<>(); - lambdaQueryWrapperX.eqIfPresent(InventorychangeRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode()) + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InventorychangeRequestMainDO::getWarehouseCode, reqVO.getWarehouseCode()) .eqIfPresent(InventorychangeRequestMainDO::getNumber, reqVO.getNumber()) .eqIfPresent(InventorychangeRequestMainDO::getBusinessType, reqVO.getBusinessType()) .eqIfPresent(InventorychangeRequestMainDO::getRemark, reqVO.getRemark()) @@ -40,19 +40,7 @@ public interface InventorychangeRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobDetailMapper.java index ce65fdcf..a6336e61 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobDetailMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailExportReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailPageReqVO; +import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -22,6 +23,7 @@ public interface InventorymoveJobDetailMapper extends BaseMapperX selectPage(InventorymoveJobDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InventorymoveJobDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventorymoveJobDetailDO::getItemCode, reqVO.getItemCode()) .likeIfPresent(InventorymoveJobDetailDO::getItemName, reqVO.getItemName()) .eqIfPresent(InventorymoveJobDetailDO::getItemDesc1, reqVO.getItemDesc1()) @@ -75,4 +77,8 @@ public interface InventorymoveJobDetailMapper extends BaseMapperX selectList(Long masterId){ + return selectList(new LambdaQueryWrapperX() + .eq(InventorymoveJobDetailDO::getMasterId,masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobMainMapper.java index b24e0421..669bbbc2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveJob/InventorymoveJobMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExportReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainPageReqVO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.dal.dataobject.productdismantleJob.ProductdismantleJobMainDO; import org.apache.ibatis.annotations.Mapper; @@ -120,4 +121,7 @@ public interface InventorymoveJobMainMapper extends BaseMapperX selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordDetailMapper.java index 19a62444..ddd45259 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordDetailMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailExportReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailPageReqVO; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; import org.apache.ibatis.annotations.Mapper; /** @@ -93,5 +94,7 @@ public interface InventorymoveRecordDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX().eq(InventorymoveRecordDetailDO::getMasterId, masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordMainMapper.java index 03577d0a..169653ff 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRecord/InventorymoveRecordMainMapper.java @@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainPageReqVO; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import org.apache.ibatis.annotations.Mapper; /** @@ -23,6 +24,7 @@ public interface InventorymoveRecordMainMapper extends BaseMapperX selectPage(InventorymoveRecordMainPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() .eqIfPresent(InventorymoveRecordMainDO::getRequestNumber, reqVO.getRequestNumber()) + .eqIfPresent(InventorymoveRecordMainDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventorymoveRecordMainDO::getJobNumber, reqVO.getJobNumber()) .eqIfPresent(InventorymoveRecordMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation()) .eqIfPresent(InventorymoveRecordMainDO::getOutTransactionType, reqVO.getOutTransactionType()) @@ -53,6 +55,7 @@ public interface InventorymoveRecordMainMapper extends BaseMapperX selectList(InventorymoveRecordMainExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() + .eqIfPresent(InventorymoveRecordMainDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventorymoveRecordMainDO::getRequestNumber, reqVO.getRequestNumber()) .eqIfPresent(InventorymoveRecordMainDO::getJobNumber, reqVO.getJobNumber()) .eqIfPresent(InventorymoveRecordMainDO::getUseOnTheWayLocation, reqVO.getUseOnTheWayLocation()) @@ -80,4 +83,7 @@ public interface InventorymoveRecordMainMapper extends BaseMapperX selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestDetailMapper.java index a03d6546..7de7934a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestDetailMapper.java @@ -9,6 +9,7 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailExportReqVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailPageReqVO; +import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -22,6 +23,7 @@ public interface InventorymoveRequestDetailMapper extends BaseMapperX selectPage(InventorymoveRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(InventorymoveRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventorymoveRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) .eqIfPresent(InventorymoveRequestDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber()) .eqIfPresent(InventorymoveRequestDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber()) @@ -54,6 +56,7 @@ public interface InventorymoveRequestDetailMapper extends BaseMapperX selectList(InventorymoveRequestDetailExportReqVO reqVO) { return selectList(new LambdaQueryWrapperX() + .eqIfPresent(InventorymoveRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(InventorymoveRequestDetailDO::getFromOwnerCode, reqVO.getFromOwnerCode()) .eqIfPresent(InventorymoveRequestDetailDO::getFromPackingNumber, reqVO.getFromPackingNumber()) .eqIfPresent(InventorymoveRequestDetailDO::getFromContainerNumber, reqVO.getFromContainerNumber()) @@ -82,7 +85,7 @@ public interface InventorymoveRequestDetailMapper extends BaseMapperX selectList(Long masterId){ - return selectList(new LambdaQueryWrapperX().eq(InventorymoveRequestDetailDO::getMasterId,masterId)); + default List selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX().eq(InventorymoveRequestDetailDO::getMasterId, masterId)); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestMainMapper.java index bee7b246..9989b6e0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestMainMapper.java @@ -9,7 +9,9 @@ import com.win.framework.mybatis.core.mapper.BaseMapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExportReqVO; import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainPageReqVO; +import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import org.apache.ibatis.annotations.Mapper; /** @@ -21,8 +23,8 @@ import org.apache.ibatis.annotations.Mapper; public interface InventorymoveRequestMainMapper extends BaseMapperX { default PageResult selectPage(InventorymoveRequestMainPageReqVO reqVO) { - return selectPage(reqVO, new LambdaQueryWrapperX() - .eqIfPresent(InventorymoveRequestMainDO::getNumber, reqVO.getNumber()) + LambdaQueryWrapperX lambdaQueryWrapperX = new LambdaQueryWrapperX<>(); + lambdaQueryWrapperX.eqIfPresent(InventorymoveRequestMainDO::getNumber, reqVO.getNumber()) .eqIfPresent(InventorymoveRequestMainDO::getBusinessType, reqVO.getBusinessType()) .eqIfPresent(InventorymoveRequestMainDO::getRemark, reqVO.getRemark()) .betweenIfPresent(InventorymoveRequestMainDO::getCreateTime, reqVO.getCreateTime()) @@ -44,7 +46,19 @@ public interface InventorymoveRequestMainMapper extends BaseMapperX selectSenior(CustomConditions conditions) { return selectPage(conditions, QueryWrapperUtils.structure(conditions)); @@ -76,4 +90,7 @@ public interface InventorymoveRequestMainMapper extends BaseMapperX selectSeniorList(CustomConditions conditions) { + return selectList(QueryWrapperUtils.structure(conditions)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java index dfb28e4f..5818c4d3 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreceiptRequest/CustomerreceiptRequestMainServiceImpl.java @@ -13,6 +13,9 @@ import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRe import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainExportReqVO; import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainPageReqVO; import com.win.module.wms.controller.customerreceiptRequest.vo.CustomerreceiptRequestMainUpdateReqVO; +import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; +import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.convert.customerreceiptRecord.CustomerreceiptRecordDetailConvert; import com.win.module.wms.convert.customerreceiptRecord.CustomerreceiptRecordMainConvert; import com.win.module.wms.convert.customerreceiptRequest.CustomerreceiptRequestDetailConvert; @@ -36,6 +39,7 @@ 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; @@ -312,13 +316,16 @@ public class CustomerreceiptRequestMainServiceImpl implements CustomerreceiptReq BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerreceiptRecord"); customerreceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); customerreceiptRecordMainMapper.insert(CustomerreceiptRecordMainConvert.INSTANCE.convert(customerreceiptRecordMainCreateReqVO)); + List expectinCreateReqVOList = new ArrayList<>(); + List expectoutCreateReqVOList = new ArrayList<>(); + List transactionCreateReqVOList = new ArrayList<>(); for (CustomerreceiptRequestDetailDO customerreceiptRequestDetailDO : detailDOList) { CustomerreceiptRecordDetailCreateReqVO customerreceiptRecordDetailCreateReqVO = new CustomerreceiptRecordDetailCreateReqVO(); BeanUtils.copyProperties(customerreceiptRequestDetailDO, customerreceiptRecordDetailCreateReqVO); customerreceiptRecordDetailCreateReqVO.setNumber(number); customerreceiptRecordDetailMapper.insert(CustomerreceiptRecordDetailConvert.INSTANCE.convert(customerreceiptRecordDetailCreateReqVO)); - trendsApi.createTrends(mainDO.getId(), "CustomerreceiptRecord", "客户收货申请生成客户收货记录", TrendsTypeEnum.CREATE); } + trendsApi.createTrends(mainDO.getId(), "CustomerreceiptRecord", "客户收货申请生成客户收货记录", TrendsTypeEnum.CREATE); } } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java index 46d2dd18..12c6a81d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainService.java @@ -84,7 +84,7 @@ public interface InventorychangeRequestMainService { * @param updatePart 是否支持更新 * @return 导入结果 */ - public List importInventorychangeRequestMainList(List datas, Integer mode,String fromInventoryStatus , String toInventoryStatus , boolean updatePart); + public List importInventorychangeRequestMainList(List datas, Integer mode,boolean updatePart); /** * 关闭 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java index 0c3e7af8..4748c880 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java @@ -1,15 +1,18 @@ package com.win.module.wms.service.inventorychangeRequest; import cn.hutool.core.collection.CollUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; -import com.win.framework.dict.core.util.DictFrameworkUtils; +import com.win.framework.common.util.validation.ValidationUtils; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; +import com.win.module.system.api.dept.DeptApi; import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; +import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordDetailCreateReqVO; import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainCreateReqVO; import com.win.module.wms.controller.inventorychangeRequest.vo.*; @@ -19,7 +22,7 @@ import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestD import com.win.module.wms.convert.inventorychangeRequest.InventorychangeRequestMainConvert; import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; -import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; +import com.win.module.wms.dal.dataobject.inventorychangeRecord.InventorychangeRecordDetailDO; import com.win.module.wms.dal.dataobject.inventorychangeRecord.InventorychangeRecordMainDO; import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestDetailDO; import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO; @@ -32,15 +35,17 @@ import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordD import com.win.module.wms.dal.mysql.inventorychangeRecord.InventorychangeRecordMainMapper; import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestDetailMapper; import com.win.module.wms.dal.mysql.inventorychangeRequest.InventorychangeRequestMainMapper; -import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusState; +import com.win.module.wms.service.expectin.ExpectinService; +import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.recordsetting.RecordsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.shift.ShiftService; +import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -48,6 +53,7 @@ import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import javax.validation.Validator; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collection; @@ -74,6 +80,12 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq @Resource private InventorychangeRecordDetailMapper inventorychangeRecordDetailMapper; @Resource + private TransactionService transactionService; + @Resource + private ExpectoutService expectoutService; + @Resource + private ExpectinService expectinService; + @Resource private ItembasicService itembasicService; @Resource private ItempackagingService itempackagingService; @@ -93,14 +105,18 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq private BalanceMapper balanceMapper; @Resource private RecordsettingService recordsettingService; + @Resource + private Validator validator; + @Resource + private AdminUserApi userApi; @Override public Long createInventorychangeRequestMain(InventorychangeRequestMainCreateReqVO createReqVO) { RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventorychangeRequest"); InventorychangeRequestMainDO inventorychangeRequestMainDO = validatorToCreate(createReqVO); //调用自动执行方法 - if(RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) { - generateRecord(inventorychangeRequestMainDO,inventorychangeRequestDetailMapper.selectList(inventorychangeRequestMainDO.getId())); + if (RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) { + generateRecord(inventorychangeRequestMainDO, inventorychangeRequestDetailMapper.selectList(inventorychangeRequestMainDO.getId())); } trendsApi.createTrends(requestsettingDO.getId(), "InventorychangeRequest", "增加了库存修改申请", TrendsTypeEnum.CREATE); return inventorychangeRequestMainDO.getId(); @@ -112,7 +128,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq // 校验存在 validateInventorychangeRequestMainExists(updateReqVO.getId()); InventorychangeRequestMainDO inventorychangeRequestMainDO = validatorToUpdate(updateReqVO); - if(RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) { + if (RequestStatusEnum.HANDLING.getCode().equals(inventorychangeRequestMainDO.getStatus())) { } trendsApi.createTrends(requestsettingDO.getId(), "InventorychangeRequest", "修改了库存修改申请", TrendsTypeEnum.UPDATE); @@ -166,8 +182,8 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.close(); - if(!flag) { - throw new ServiceException(DELIVER_REQUEST_CANNOT_CLOSE); + if (!flag) { + throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_CLOSE); } mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 trendsApi.createTrends(id, "inventorychangeRequest", "关闭了库存修改申请", TrendsTypeEnum.UPDATE); @@ -182,8 +198,8 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.reAdd(); - if(!flag) { - throw new ServiceException(DELIVER_REQUEST_CANNOT_RE_ADD); + if (!flag) { + throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_RE_ADD); } mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 trendsApi.createTrends(id, "inventorychangeRequest", "打开了库存修改申请", TrendsTypeEnum.UPDATE); @@ -197,12 +213,12 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); - if(!flag) { - throw new ServiceException(DELIVER_REQUEST_CANNOT_SUBMIT); + if (!flag) { + throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_SUBMIT); } mainDO.setStatus(requestStatusState.getState().getCode()); //调用自动执行方法 - if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { this.generateRecord(mainDO, inventorychangeRequestDetailMapper.selectList(mainDO.getId())); } trendsApi.createTrends(id, "inventorychangeRequest", "提交了库存修改申请", TrendsTypeEnum.UPDATE); @@ -224,16 +240,16 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq inventorychangeRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); inventorychangeRecordMainCreateReqVO.setActiveDate(mainDO.getCreateTime()); inventorychangeRecordMainCreateReqVO.setAvailable("TRUE"); - String replace = inventorychangeRecordMainCreateReqVO.getBusinessType().replace("Request", "Record"); //增加业务类型 - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType(replace); - RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist(replace); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("inventorychangeRecord"); + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("inventorychangeRecord"); inventorychangeRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); inventorychangeRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); inventorychangeRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); inventorychangeRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType()); InventorychangeRecordMainDO convert = InventorychangeRecordMainConvert.INSTANCE.convert(inventorychangeRecordMainCreateReqVO); inventorychangeRecordMainMapper.insert(convert); + List iinventorychangeRecordDetailCreateReqVOlDOList = new ArrayList<>(); for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : detailDOList) { InventorychangeRecordDetailCreateReqVO inventorychangeRecordDetailCreateReqVO = new InventorychangeRecordDetailCreateReqVO(); BeanUtils.copyProperties(inventorychangeRequestDetailDO, inventorychangeRecordDetailCreateReqVO); @@ -242,10 +258,12 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq inventorychangeRecordDetailCreateReqVO.setMasterId(convert.getId().toString()); ArrayList inventoryStatus = new ArrayList<>(); inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus()); - validatorLocationReturnManagementAccuracy(mainDO,inventorychangeRequestDetailDO,inventoryStatus,true); - inventorychangeRecordDetailMapper.insert(InventorychangeRecordDetailConvert.INSTANCE.convert(inventorychangeRecordDetailCreateReqVO)); - trendsApi.createTrends(mainDO.getId(), "InventorychangeRecord", "库存修改申请生成库存修改记录", TrendsTypeEnum.CREATE); + validatorLocationReturnManagementAccuracy(mainDO, inventorychangeRequestDetailDO, inventoryStatus); + iinventorychangeRecordDetailCreateReqVOlDOList.add(InventorychangeRecordDetailConvert.INSTANCE.convert(inventorychangeRecordDetailCreateReqVO)); } + inventorychangeRecordDetailMapper.insertBatch(iinventorychangeRecordDetailCreateReqVOlDOList); + //增加库存事务 + trendsApi.createTrends(mainDO.getId(), "InventorychangeRecord", "库存修改申请生成库存修改记录", TrendsTypeEnum.CREATE); } //审批同意 @@ -256,12 +274,12 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); - if(!flag) { - throw new ServiceException(DELIVER_REQUEST_CANNOT_AGREE); + if (!flag) { + throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_AGREE); } mainDO.setStatus(requestStatusState.getState().getCode()); //调用自动执行方法 - if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { this.generateRecord(mainDO, inventorychangeRequestDetailMapper.selectList(mainDO.getId())); } trendsApi.createTrends(id, "inventorychangeRequest", "审批同意了库存修改申请", TrendsTypeEnum.UPDATE); @@ -276,8 +294,8 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.handle(); - if(!flag) { - throw new ServiceException(DELIVER_REQUEST_CANNOT_HANDLE); + if (!flag) { + throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_HANDLE); } mainDO.setStatus(requestStatusState.getState().getCode()); //调用执行方法 @@ -294,8 +312,8 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq InventorychangeRequestMainDO mainDO = validateInventorychangeRequestMainExists(id); RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); boolean flag = requestStatusState.refused(); - if(!flag) { - throw new ServiceException(DELIVER_REQUEST_CANNOT_ABORT); + if (!flag) { + throw new ServiceException(INVENTORYCHANGE_REQUEST_CANNOT_ABORT); } mainDO.setStatus(requestStatusState.getState().getCode()); trendsApi.createTrends(id, "inventorychangeRequest", "审批拒绝了库存修改申请", TrendsTypeEnum.UPDATE); @@ -308,7 +326,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq } @Override - public List importInventorychangeRequestMainList(List datas, Integer mode, String fromInventoryStatus , String toInventoryStatus ,boolean updatePart) { + public List importInventorychangeRequestMainList(List datas, Integer mode, boolean updatePart) { if (CollUtil.isEmpty(datas)) { throw exception(INVENTORYCHANGE_REQUEST_IMPORT_LIST_IS_EMPTY); } @@ -321,8 +339,6 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq // 是否有错误数据 boolean flag = true; for (InventorychangeRequestDetailDO detailDO : subDOList) { - detailDO.setFromInventoryStatus(fromInventoryStatus); - detailDO.setToInventoryStatus(toInventoryStatus); String messageDetail = validateInventorychangeRequestDetailImport(detailDO, mainDo); if (!messageMain.isEmpty() || !messageDetail.isEmpty()) { InventorychangeRequestMainImportErrorVO importErrorVO = InventorychangeRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); @@ -335,14 +351,23 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq } //写入数据 if (flag) { - mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventoryChangeRequest"); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + mainDo.setStatus(requestStatusState.getState().getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_CHANGE_REQUEST.getCode()); + mainDo.setNumber(number); + mainDo.setDepartmentCode(userApi.getUser(Long.valueOf(mainDo.getCreator())).getDeptId().toString()); inventorychangeRequestMainMapper.insert(mainDo); for (InventorychangeRequestDetailDO detailDO : subDOList) { detailDO.setNumber(mainDo.getNumber()); detailDO.setMasterId(mainDo.getId()); + detailDO.setToBatch(detailDO.getFromBatch()); + detailDO.setToPackingNumber(detailDO.getFromPackingNumber()); + detailDO.setToContainerNumber(detailDO.getFromContainerNumber()); } //调用自动执行方法 - if(RequestStatusEnum.HANDLING.getCode().equals(mainDo.getStatus())) { + if (RequestStatusEnum.HANDLING.getCode().equals(mainDo.getStatus())) { this.generateRecord(mainDo, subDOList); } inventorychangeRequestDetailMapper.insertBatch(subDOList); @@ -360,6 +385,11 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq private String validateInventorychangeRequestMainImport(InventorychangeRequestMainDO mainDo) { // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList String messageMain = ""; + try { + ValidationUtils.validate(validator, mainDo); + } catch (Exception ex) { + messageMain += ex.getMessage() + ","; + } //主表的验证 return messageMain; } @@ -373,7 +403,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq private String validateInventorychangeRequestDetailImport(InventorychangeRequestDetailDO detailDo, InventorychangeRequestMainDO mainDo) { String messageDetail = ""; ItembasicDO itembasicDO = null; - BusinesstypeDO businesstypeDO; + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryChangeRequest"); // 校验物品基础信息 try { itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); @@ -396,218 +426,49 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq } catch (ServiceException ex) { messageDetail += ex.getMessage() + ","; } - - //隔离转合格申请 - if ("HOLD".equals(detailDo.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("HOLD"); - validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_REQUEST.getCode()); - detailDo.setNumber(number); - // 校验业务类型 - try { - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRequest"); - mainDo.setBusinessType(businesstypeDO.getCode()); - try { - if (itembasicDO != null){ - jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); - }else { - messageDetail += "物品基本信息不存在,不能校验物品类型" + ","; - } - }catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO); - jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("HoldToOkRequest"); - if (requestsettingDO != null) { - mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); - mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); - mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); - mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - mainDo.setRequestTime(LocalDateTime.now()); + try { + if (itembasicDO != null) { + jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); + } else { + messageDetail += "物品基本信息不存在,不能校验物品类型" + ","; } + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; } - - //合格转隔离申请 - if ("OK".equals(detailDo.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("OK"); - validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode()); - mainDo.setNumber(number); - // 校验业务类型 - try { - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest"); - mainDo.setBusinessType(businesstypeDO.getCode()); - try { - if (itembasicDO != null){ - jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); - }else { - messageDetail += "物品基本信息不存在,不能校验物品类型" + ","; - } - }catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO); - jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToHoldRequest"); - if (requestsettingDO != null) { - mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); - mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); - mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); - mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - detailDo.setToPackingNumber(null); - detailDo.setToBatch(null); - detailDo.setToContainerNumber(null); + try { + jobUtils.ifInInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; } - - //隔离转报废申请 - if ("HOLD".equals(detailDo.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("HOLD"); - validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode()); - mainDo.setNumber(number); - // 校验业务类型 - try { - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRequest"); - mainDo.setBusinessType(businesstypeDO.getCode()); - try { - if (itembasicDO != null){ - jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); - }else { - messageDetail += "物品基本信息不存在,不能校验物品类型" + ","; - } - }catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO); - jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("HoldToScrapRequest"); - if (requestsettingDO != null) { - mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); - mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); - mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); - mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - - detailDo.setFromPackingNumber(null); - detailDo.setFromBatch(null); - detailDo.setFromContainerNumber(null); + try { + jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; } - - - //报废转隔离申请 - if ("SCRAP".equals(detailDo.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("SCRAP"); - validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_REQUEST.getCode()); - mainDo.setNumber(number); - // 校验业务类型 - try { - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRequest"); - mainDo.setBusinessType(businesstypeDO.getCode()); - try { - if (itembasicDO != null){ - jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); - }else { - messageDetail += "物品基本信息不存在,不能校验物品类型" + ","; - } - }catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO); - jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapToHoldRequest"); + try { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventoryChangeRequest"); if (requestsettingDO != null) { mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - - detailDo.setFromPackingNumber(null); - detailDo.setFromBatch(null); - detailDo.setFromContainerNumber(null); - } - - //合格转报废 - if ("Ok".equals(detailDo.getFromInventoryStatus())) { - // 校验库存余额是否存在 - try { - List inventoryStatus = new ArrayList<>(); - inventoryStatus.add("SCRAP"); - validatorLocationReturnManagementAccuracy(mainDo,detailDo,inventoryStatus,false); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode()); - mainDo.setNumber(number); - - // 校验业务类型 - try { - businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest"); + mainDo.setRequestTime(LocalDateTime.now()); mainDo.setBusinessType(businesstypeDO.getCode()); - try { - if (itembasicDO != null){ - jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); - }else { - messageDetail += "物品基本信息不存在,不能校验物品类型" + ","; - } - }catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO); - jobUtils.ifInFromLocationType(detailDo.getLocationCode(), businesstypeDO); - } catch (ServiceException ex) { - messageDetail += ex.getMessage() + ","; - } - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToScrapRequest"); - if (requestsettingDO != null) { - mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); - mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); - mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); - mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); } - - detailDo.setFromPackingNumber(null); - detailDo.setFromBatch(null); - detailDo.setFromContainerNumber(null); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + try { + ArrayList inventoryStatusList = new ArrayList<>(); + inventoryStatusList.add(detailDo.getFromInventoryStatus()); + validatorLocationReturnManagementAccuracy(mainDo, detailDo, inventoryStatusList); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; } return messageDetail; } @@ -620,10 +481,11 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq List subList = createReqVO.getSubList(); List subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList03(subList); for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { - validateDetailMethod(inventorychangeRequestMainDO,inventorychangeRequestDetailDO); + validateDetailMethod(inventorychangeRequestMainDO, inventorychangeRequestDetailDO); } String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode()); inventorychangeRequestMainDO.setNumber(number); + inventorychangeRequestMainDO.setDepartmentCode(userApi.getUser(Long.valueOf(inventorychangeRequestMainDO.getCreator())).getDeptId().toString()); inventorychangeRequestMainMapper.insert(inventorychangeRequestMainDO); for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { inventorychangeRequestDetailDO.setNumber(inventorychangeRequestMainDO.getNumber()); @@ -640,7 +502,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq List subList = updateReqVO.getSubList(); List subDOList = InventorychangeRequestDetailConvert.INSTANCE.convertList05(subList); for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { - validateDetailMethod(inventorychangeRequestMainDO,inventorychangeRequestDetailDO); + validateDetailMethod(inventorychangeRequestMainDO, inventorychangeRequestDetailDO); } inventorychangeRequestMainMapper.updateById(inventorychangeRequestMainDO); inventorychangeRequestDetailMapper.updateBatch(subDOList); @@ -655,7 +517,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq } //校验子表公共方法(适用于新增/修改) - private void validateDetailMethod(InventorychangeRequestMainDO inventorychangeRequestMainDO,InventorychangeRequestDetailDO inventorychangeRequestDetailDO) { + private void validateDetailMethod(InventorychangeRequestMainDO inventorychangeRequestMainDO, InventorychangeRequestDetailDO inventorychangeRequestDetailDO) { ItembasicDO itembasicDO = this.validatorItembasic(inventorychangeRequestDetailDO.getItemCode()); if (!inventorychangeRequestDetailDO.getUom().equals(itembasicDO.getUom())) { throw exception(UOM_ERROR, inventorychangeRequestDetailDO.getUom()); @@ -674,61 +536,36 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq } //校验库存余额是否存在 List inventoryStatus = new ArrayList<>(); - //隔离转合格申请 - if ("HOLD".equals(inventorychangeRequestDetailDO.getFromInventoryStatus()) && "OK".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) { - inventoryStatus.add("HOLD"); - String OkToScrapRequest = "HoldToOkRequest"; - CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest); - validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false); - } - //合格转隔离申请 - if ("OK".equals(inventorychangeRequestDetailDO.getFromInventoryStatus()) && "HOLD".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) { - inventoryStatus.add("OK"); - String OkToScrapRequest = "OkToHoldRequest"; - CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest); - validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false); - } - //隔离转报废申请 - if ("HOLD".equals(inventorychangeRequestDetailDO.getFromInventoryStatus()) && "SCRAP".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) { - inventoryStatus.add("HOLD"); - String OkToScrapRequest = "HoldToScrapRequest"; - CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest); - validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false); - } - //报废转隔离申请 - if ("SCRAP".equals(inventorychangeRequestDetailDO.getFromInventoryStatus())&& "HOLD".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) { - inventoryStatus.add("SCRAP"); - String OkToScrapRequest = "ScrapToHoldRequest"; - CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest); - validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false); - } - //合格转报废申请 - if ("OK".equals(inventorychangeRequestDetailDO.getFromInventoryStatus())&& "SCRAP".equals(inventorychangeRequestDetailDO.getToInventoryStatus())) { - inventoryStatus.add("SCRAP"); - String OkToScrapRequest = "OkToScrapRequest"; - CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,itembasicDO,OkToScrapRequest); - validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO,inventorychangeRequestDetailDO,inventoryStatus,false); - } + inventoryStatus.add(inventorychangeRequestDetailDO.getFromInventoryStatus()); + CreateBusinessTypeAndRequestSetting(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, itembasicDO); + validatorLocationReturnManagementAccuracy(inventorychangeRequestMainDO, inventorychangeRequestDetailDO, inventoryStatus); + inventorychangeRequestDetailDO.setToBatch(inventorychangeRequestDetailDO.getFromBatch()); + inventorychangeRequestDetailDO.setToPackingNumber(inventorychangeRequestDetailDO.getFromPackingNumber()); + inventorychangeRequestDetailDO.setToContainerNumber(inventorychangeRequestDetailDO.getFromContainerNumber()); } //子表校验来源库位基础信息 - private void CreateBusinessTypeAndRequestSetting(InventorychangeRequestMainDO inventorychangeRequestMainDO,InventorychangeRequestDetailDO inventorychangeRequestDetailDO, ItembasicDO itembasicDO, String businesstypeCode) { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType(businesstypeCode); + private void CreateBusinessTypeAndRequestSetting(InventorychangeRequestMainDO inventorychangeRequestMainDO, InventorychangeRequestDetailDO inventorychangeRequestDetailDO, ItembasicDO itembasicDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryChangeRequest"); inventorychangeRequestMainDO.setBusinessType(businesstypeDO.getCode()); - if (itembasicDO != null){ + if (itembasicDO != null) { jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); } - jobUtils.ifOutInventoryStatuses(inventorychangeRequestDetailDO.getFromInventoryStatus(), businesstypeDO); + jobUtils.ifOutInventoryStatuses(inventorychangeRequestDetailDO.getToInventoryStatus(), businesstypeDO); jobUtils.ifInFromLocationType(inventorychangeRequestDetailDO.getLocationCode(), businesstypeDO); - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist(businesstypeCode); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InventoryChangeRequest"); if (requestsettingDO != null) { inventorychangeRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); inventorychangeRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); inventorychangeRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); inventorychangeRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); inventorychangeRequestMainDO.setRequestTime(LocalDateTime.now()); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + inventorychangeRequestMainDO.setStatus(requestStatusState.getState().getCode()); } } + //子表校验来源库位基础信息 private LocationDO validatorLocation(String locationCode) { LocationDO locationDO = locationService.selectLocation(locationCode); @@ -740,7 +577,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq return itembasicService.selectItembasic(itemCode); } - private void validatorLocationReturnManagementAccuracy(InventorychangeRequestMainDO inventorychangeRequestMainDO,InventorychangeRequestDetailDO inventorychangeRequestDetailDO,List inventoryStatus,Boolean flag) { + private void validatorLocationReturnManagementAccuracy(InventorychangeRequestMainDO inventorychangeRequestMainDO, InventorychangeRequestDetailDO inventorychangeRequestDetailDO, List inventoryStatus) { List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(inventorychangeRequestDetailDO.getItemCode(), inventorychangeRequestDetailDO.getFromPackingNumber() , inventorychangeRequestDetailDO.getFromBatch(), inventorychangeRequestDetailDO.getLocationCode(), inventoryStatus); if (balanceDOList != null) { @@ -755,12 +592,9 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate()); inventorychangeRequestDetailDO.setToProduceDate(balanceDO.getProduceDate()); inventorychangeRequestDetailDO.setToExpireDate(balanceDO.getExpireDate()); - if(flag == true){ - balanceDO.setInventoryStatus(inventorychangeRequestDetailDO.getToInventoryStatus()); - balanceMapper.updateById(balanceDO); - trendsApi.createTrends(Long.valueOf(balanceDO.getId()), "transaction_balance", "库存修改申请生成库存修改记录时修改了库存余额库存状态", TrendsTypeEnum.UPDATE); - } +// balanceDO.setInventoryStatus(inventorychangeRequestDetailDO.getToInventoryStatus()); +// balanceMapper.updateById(balanceDO); +// trendsApi.createTrends(Long.valueOf(balanceDO.getId()), "transaction_balance", "库存修改申请生成库存修改记录时修改了库存余额库存状态", TrendsTypeEnum.UPDATE); } } - } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailService.java index 37a4d0f3..92dbb684 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailService.java @@ -80,4 +80,5 @@ public interface InventorymoveJobDetailService { */ List getInventorymoveJobDetailList(InventorymoveJobDetailExportReqVO exportReqVO); + List selectList(Long masterId); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailServiceImpl.java index 37dcd65a..2db7608c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobDetailServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailC import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailExportReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailPageReqVO; import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -88,4 +89,8 @@ public class InventorymoveJobDetailServiceImpl implements InventorymoveJobDetail return inventorymoveJobDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return inventorymoveJobDetailMapper.selectList(masterId); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainService.java index 5d668068..e9589cba 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainService.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainPag import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainUpdateReqVO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import org.springframework.lang.Nullable; /** @@ -95,4 +96,34 @@ public interface InventorymoveJobMainService { * @return */ Map getCountByStatus(@Nullable Collection types); + + /** + * 关闭 + * @param id + * @return + */ + public Integer closeInventorymoveJobMain(Long id); + + /** + * 承接 + * @param id + * @return + */ + public Integer acceptInventorymoveJobMain(Long id); + + /** + * 取消 + * @param id + * @return + */ + public Integer abandonInventorymoveJobMain(Long id); + + /** + * 执行 + * @param updateReqVO + * @return + */ + public String executeInventorymoveJobMain(InventorymoveJobMainUpdateReqVO updateReqVO); + + List getInventorymoveJobMainList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java index efd03050..e7da0d6e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java @@ -1,15 +1,45 @@ package com.win.module.wms.service.inventorymoveJob; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainCreateReqVO; -import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainExportReqVO; -import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainPageReqVO; -import com.win.module.wms.controller.inventorymoveJob.vo.InventorymoveJobMainUpdateReqVO; +import com.win.module.infra.api.trends.TrendsApi; +import com.win.module.infra.enums.TrendsTypeEnum; +import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; +import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.system.enums.serialNumber.RuleCodeEnum; +import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; +import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; +import com.win.module.wms.controller.inventorymoveJob.vo.*; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; +import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO; +import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.mysql.inventorymoveJob.InventorymoveJobDetailMapper; +import com.win.module.wms.dal.mysql.inventorymoveRecord.InventorymoveRecordDetailMapper; +import com.win.module.wms.dal.mysql.inventorymoveRecord.InventorymoveRecordMainMapper; +import com.win.module.wms.enums.job.JobStatusEnum; +import com.win.module.wms.enums.job.JobStatusState; +import com.win.module.wms.service.expectin.ExpectinService; +import com.win.module.wms.service.expectout.ExpectoutService; +import com.win.module.wms.service.recordsetting.RecordsettingService; +import com.win.module.wms.service.transaction.TransactionService; +import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; + import javax.annotation.Resource; + +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.*; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; @@ -19,6 +49,7 @@ import com.win.module.wms.convert.inventorymoveJob.InventorymoveJobMainConvert; import com.win.module.wms.dal.mysql.inventorymoveJob.InventorymoveJobMainMapper; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.module.wms.enums.ErrorCodeConstants.*; /** @@ -32,6 +63,30 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ @Resource private InventorymoveJobMainMapper inventorymoveJobMainMapper; + @Resource + private AdminUserApi userApi; + @Resource + private TrendsApi trendsApi; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private InventorymoveJobDetailService inventorymoveJobDetailService; + @Resource + private JobUtils jobUtils; + @Resource + private RecordsettingService recordsettingService; + @Resource + private InventorymoveJobDetailMapper inventorymoveJobDetailMapper; + @Resource + private InventorymoveRecordMainMapper inventorymoveRecordMainMapper; + @Resource + private InventorymoveRecordDetailMapper inventorymoveRecordDetailMapper; + @Resource + private ExpectoutService expectoutService; + @Resource + private ExpectinService expectinService; + @Resource + private TransactionService transactionService; @Override public Long createInventorymoveJobMain(InventorymoveJobMainCreateReqVO createReqVO) { @@ -59,9 +114,12 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ inventorymoveJobMainMapper.deleteById(id); } - private void validateInventorymoveJobMainExists(Long id) { - if (inventorymoveJobMainMapper.selectById(id) == null) { + private InventorymoveJobMainDO validateInventorymoveJobMainExists(Long id) { + InventorymoveJobMainDO inventorymoveJobMainDO = inventorymoveJobMainMapper.selectById(id); + if (inventorymoveJobMainDO == null) { throw exception(INVENTORYMOVE_JOB_MAIN_NOT_EXISTS); + } else { + return inventorymoveJobMainDO; } } @@ -84,23 +142,30 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ public List getInventorymoveJobMainList(InventorymoveJobMainExportReqVO exportReqVO) { return inventorymoveJobMainMapper.selectList(exportReqVO); } + @Override public PageResult getInventorymoveJobMainSenior(CustomConditions conditions) { return inventorymoveJobMainMapper.selectSenior(conditions); } + @Override public InventorymoveJobMainDO inventorymoveJobMainDoStatusRight(String pnumber, String pstatus) { QueryWrapper queryWrapper = new QueryWrapper(); - queryWrapper.eq("number",pnumber); - queryWrapper.eq("status",pstatus); + queryWrapper.eq("number", pnumber); + queryWrapper.eq("status", pstatus); InventorymoveJobMainDO inventorymoveJobMainDO = inventorymoveJobMainMapper.selectOne(queryWrapper); - if(inventorymoveJobMainDO != null){ + if (inventorymoveJobMainDO != null) { return inventorymoveJobMainDO; - }else { + } else { throw exception(INVENTORYMOVE_JOB_MAIN_STATUS_ERROR); } } + @Override + public List getInventorymoveJobMainList(CustomConditions conditions) { + return inventorymoveJobMainMapper.selectSeniorList(conditions); + } + @Override public Map getCountByStatus(Collection types) { Long l = inventorymoveJobMainMapper.selectListCount(types); @@ -109,4 +174,197 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ map.put("count", l.intValue()); return map; } + + @Override + @Transactional + public Integer acceptInventorymoveJobMain(Long id) { + InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(inventorymoveJobMainDO.getStatus()); + if (!jobStatusState.accept()) { + throw exception(DELIVER_JOB_MAIN_STATUS_ERROR); + } + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode()); + inventorymoveJobMainDO.setAcceptUserId(String.valueOf(userId)); + inventorymoveJobMainDO.setAcceptUserName(userRespDTO.getNickname()); + inventorymoveJobMainDO.setAcceptTime(LocalDateTime.now()); + trendsApi.createTrends(id, "MoveJob", "承接了库存转移任务", TrendsTypeEnum.UPDATE); + return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO); + } + + @Override + @Transactional + public Integer abandonInventorymoveJobMain(Long id) { + InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(inventorymoveJobMainDO.getStatus()); + if (!jobStatusState.cancelAccept()) { + throw exception(DELIVER_JOB_MAIN_STATUS_ERROR); + } + inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode()); + inventorymoveJobMainDO.setAcceptUserId(null); + inventorymoveJobMainDO.setAcceptUserName(null); + inventorymoveJobMainDO.setAcceptTime(null); + trendsApi.createTrends(id, "MoveJob", "取消了库存转移任务", TrendsTypeEnum.UPDATE); + return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO); + } + + @Override + @Transactional + public Integer closeInventorymoveJobMain(Long id) { + InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(inventorymoveJobMainDO.getStatus()); + if (!jobStatusState.close()) { + throw exception(DELIVER_JOB_MAIN_STATUS_ERROR); + } + inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode()); + trendsApi.createTrends(id, "MoveJob", "关闭了库存转移任务", TrendsTypeEnum.UPDATE); + return inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO); + } + + @Override + @Transactional + public String executeInventorymoveJobMain(InventorymoveJobMainUpdateReqVO inventorymoveJobMainUpdateReqVO) { + RecordsettingDO recordsettingDO = null; + BusinesstypeDO businesstypeDO = null; + String number = ""; + //查询数据 + InventorymoveJobMainDO inventorymoveJobMainDO = this.validateInventorymoveJobMainExists(inventorymoveJobMainUpdateReqVO.getId()); + List subList = inventorymoveJobDetailService.selectList(inventorymoveJobMainDO.getId()); + JobStatusState jobStatusState = new JobStatusState(inventorymoveJobMainDO.getStatus()); + boolean flag = jobStatusState.execute(); + if (!flag) { + throw new ServiceException(INVENTORYMOVE_JOB_MAIN_STATUS_ERROR); + } + //更新完成信息 + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + inventorymoveJobMainDO.setStatus(jobStatusState.getState().getCode()); + inventorymoveJobMainDO.setCompleteTime(LocalDateTime.now()); + inventorymoveJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId())); + inventorymoveJobMainDO.setCompleteUserName(userRespDTO.getNickname()); + //更新任务表状态 + int result = inventorymoveJobMainMapper.updateById(inventorymoveJobMainDO); + //创建客户收货记录主表 + InventorymoveRecordMainDO inventorymoveRecordMainDO = new InventorymoveRecordMainDO(); + BeanUtils.copyProperties(inventorymoveJobMainDO, inventorymoveRecordMainDO); + inventorymoveRecordMainDO.setJobNumber(inventorymoveJobMainDO.getNumber()); + inventorymoveRecordMainDO.setId(null); + inventorymoveRecordMainDO.setAvailable("TRUE"); + inventorymoveRecordMainDO.setExecuteTime(LocalDateTime.now()); + inventorymoveRecordMainDO.setActiveDate(LocalDateTime.now()); + inventorymoveRecordMainDO.setDueTime(inventorymoveJobMainDO.getRequestDueTime()); + if("HoldToOkJob".equals(inventorymoveRecordMainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord"); + } else if("OkToHoldJob".equals(inventorymoveRecordMainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord"); + } else if("HoldToScrapJob".equals(inventorymoveRecordMainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord"); + } else if("ScrapToHoldJob".equals(inventorymoveRecordMainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord"); + } else if("OkToScrapJob".equals(inventorymoveRecordMainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); + } + inventorymoveRecordMainDO.setNumber(number); + inventorymoveRecordMainDO.setBusinessType(businesstypeDO.getCode()); + inventorymoveRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + inventorymoveRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + inventorymoveRecordMainDO.setInterfaceType(recordsettingDO.getInterfaceType()); + inventorymoveRecordMainMapper.insert(inventorymoveRecordMainDO); + List inventorymoveJobDetailUpdateReqVOList = inventorymoveJobMainUpdateReqVO.getSubList(); + List inventorymoveRecordDetailDOList = new ArrayList<>(); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + subList.forEach(subListItem -> { + inventorymoveJobDetailUpdateReqVOList.forEach(DetailUpdateItem -> { + // 匹配任务子表与参数中子表 + if (DetailUpdateItem.getId().equals(subListItem.getId())) { + List> recordList = DetailUpdateItem.getRecordList(); + recordList.forEach(recordLstItem -> {InventorymoveRecordDetailDO inventorymoveRecordDetailDO = new InventorymoveRecordDetailDO(); + BeanUtils.copyProperties(DetailUpdateItem, inventorymoveRecordDetailDO); + inventorymoveRecordDetailDO.setJobDetailId(DetailUpdateItem.getId().toString()); + inventorymoveRecordDetailDO.setId(null); + inventorymoveRecordDetailDO.setCreator(null); + inventorymoveRecordDetailDO.setCreateTime(null); + inventorymoveRecordDetailDO.setUpdater(null); + inventorymoveRecordDetailDO.setUpdateTime(null); + inventorymoveRecordDetailDO.setNumber(inventorymoveRecordMainDO.getNumber()); + inventorymoveRecordDetailDO.setInterfaceType(inventorymoveRecordMainDO.getInterfaceType()); + inventorymoveRecordDetailDO.setMasterId(inventorymoveRecordMainDO.getId().toString()); + inventorymoveRecordDetailDO.setQty(new BigDecimal(recordLstItem.get("handleQty"))); + inventorymoveRecordDetailDO.setToPackingNumber(recordLstItem.get("toPackingNumber")==null?"":recordLstItem.get("toPackingNumber")); + inventorymoveRecordDetailDO.setToContainerNumber(recordLstItem.get("toContainerNumber")==null?"":recordLstItem.get("toContainerNumber")); + inventorymoveRecordDetailDO.setToBatch(recordLstItem.get("toBatch")==null?"":recordLstItem.get("toBatch")); + inventorymoveRecordDetailDO.setToLocationCode(recordLstItem.get("toLocationCode")); + inventorymoveRecordDetailDO.setToInventoryStatus(recordLstItem.get("toInventoryStatus")); + inventorymoveRecordDetailDO.setFromPackingNumber(DetailUpdateItem.getPackingNumber()); + inventorymoveRecordDetailDO.setFromContainerNumber(DetailUpdateItem.getContainerNumber()); + inventorymoveRecordDetailDO.setFromAreaCode(inventorymoveJobMainDO.getFromAreaCodes()); + inventorymoveRecordDetailDO.setToAreaCode(inventorymoveJobMainDO.getToAreaCodes()); + inventorymoveRecordDetailDO.setFromBatch(DetailUpdateItem.getBatch()); + inventorymoveRecordDetailDO.setFromInventoryStatus(DetailUpdateItem.getInventoryStatus()); + inventorymoveRecordDetailDOList.add(inventorymoveRecordDetailDO); + //添加库存事务list + // 入动作 + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(inventorymoveRecordDetailDO, transactionCreateReqVO); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(inventorymoveRecordMainDO.getInTransactionType()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(inventorymoveJobMainDO.getBusinessType()); + transactionCreateReqVO.setOwnerCode(inventorymoveRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVO.setRecordNumber(inventorymoveRecordMainDO.getNumber()); + transactionCreateReqVO.setId(null); + transactionCreateReqVO.setPackingNumber(DetailUpdateItem.getPackingNumber()); + transactionCreateReqVO.setBatch(DetailUpdateItem.getBatch()); + transactionCreateReqVO.setContainerNumber(DetailUpdateItem.getContainerNumber()); + transactionCreateReqVO.setInventoryStatus(DetailUpdateItem.getInventoryStatus()); + transactionCreateReqVO.setAmount(BigDecimal.ZERO); + transactionCreateReqVO.setLocationCode(recordLstItem.get("toLocationCode").toString()); + transactionCreateReqVOList.add(transactionCreateReqVO); + // 出动作 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(inventorymoveRecordDetailDO, transactionCreateReqVOOut); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(inventorymoveRecordMainDO.getOutTransactionType()); + transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setBusinessType(inventorymoveJobMainDO.getBusinessType()); + transactionCreateReqVOOut.setOwnerCode(inventorymoveRecordDetailDO.getFromOwnerCode()); + transactionCreateReqVOOut.setRecordNumber(inventorymoveRecordMainDO.getNumber()); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOOut.setPackingNumber(DetailUpdateItem.getPackingNumber()); + transactionCreateReqVOOut.setBatch(DetailUpdateItem.getBatch()); + transactionCreateReqVOOut.setContainerNumber(DetailUpdateItem.getContainerNumber()); + transactionCreateReqVOOut.setInventoryStatus(DetailUpdateItem.getInventoryStatus()); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setLocationCode(subListItem.getFromLocationCode()); + transactionCreateReqVOList.add(transactionCreateReqVOOut);}); + } + }); + }); + if(!inventorymoveRecordDetailDOList.isEmpty()) { + inventorymoveRecordDetailMapper.insertBatch(inventorymoveRecordDetailDOList); + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //移除预计入 + expectinService.deleteExpectinByJobNumber(inventorymoveJobMainDO.getNumber()); + //移除预计出 + expectoutService.deleteExpectoutByJobNumber(inventorymoveJobMainDO.getNumber()); + //变更记录 + trendsApi.createTrends(inventorymoveJobMainDO.getId(), inventorymoveJobMainDO.getBusinessType(), "执行了库存转移任务", TrendsTypeEnum.UPDATE); + return number; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailService.java index ec5fa9b4..ce0cfb53 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailService.java @@ -80,4 +80,5 @@ public interface InventorymoveRecordDetailService { */ List getInventorymoveRecordDetailList(InventorymoveRecordDetailExportReqVO exportReqVO); + List selectList(Long masterId); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailServiceImpl.java index b57784b0..1ae6c907 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordDetailServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordD import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailExportReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailPageReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -87,4 +88,8 @@ public class InventorymoveRecordDetailServiceImpl implements InventorymoveRecord return inventorymoveRecordDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return inventorymoveRecordDetailMapper.selectList(masterId); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java index 37618ee2..282b2cff 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java @@ -10,6 +10,7 @@ import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordM import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; /** * 库存转移记录主 Service 接口 @@ -80,4 +81,5 @@ public interface InventorymoveRecordMainService { */ List getInventorymoveRecordMainList(InventorymoveRecordMainExportReqVO exportReqVO); + List getInventorymoveRecordMainList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java index ae929318..0e3dbb4e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordM import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainPageReqVO; import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -88,4 +89,8 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa return inventorymoveRecordMainMapper.selectList(exportReqVO); } + @Override + public List getInventorymoveRecordMainList(CustomConditions conditions) { + return inventorymoveRecordMainMapper.selectSeniorList(conditions); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailService.java index 36c29d4c..3aff0225 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailService.java @@ -80,4 +80,5 @@ public interface InventorymoveRequestDetailService { */ List getInventorymoveRequestDetailList(InventorymoveRequestDetailExportReqVO exportReqVO); + List selectList(Long masterId); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailServiceImpl.java index 77e38385..03b47f25 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailServiceImpl.java @@ -12,6 +12,7 @@ import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMai import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; @@ -159,4 +160,8 @@ public class InventorymoveRequestDetailServiceImpl implements InventorymoveReque return inventorymoveRequestDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return inventorymoveRequestDetailMapper.selectList(masterId); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java index 0e51e2e8..46e2b6c8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainService.java @@ -85,7 +85,49 @@ public interface InventorymoveRequestMainService { * @param updatePart 是否支持更新 * @return 导入结果 */ - public List importInventorymoveRequestMainList(List datas, Integer mode, boolean updatePart); + public List importInventorymoveRequestMainList(List datas, Integer mode, String fromInventoryStatus , String toInventoryStatus ,boolean updatePart); + /** + * 关闭 + * @param id + * @return + */ + public Integer closeInventorymoveRequestMain(Long id); + + /** + * 重新添加 + * @param id + * @return + */ + public Integer reAddInventorymoveRequestMain(Long id); + + /** + * 提交 + * @param id + * @return + */ + public Integer submitInventorymoveRequestMain(Long id); + + /** + * 审批通过 + * @param id + * @return + */ + public Integer agreeInventorymoveRequestMain(Long id); + + /** + * 执行 + * @param id + * @return + */ + public Integer handleInventorymoveRequestMain(Long id); + + /** + * 审批驳回 + * @param id + * @return + */ + public Integer abortInventorymoveRequestMain(Long id); + List getInventorymoveRequestMainList(CustomConditions conditions); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java index 503d08ae..08fca917 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java @@ -1,68 +1,68 @@ package com.win.module.wms.service.inventorymoveRequest; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.exceptions.UtilException; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; import com.win.framework.common.util.validation.ValidationUtils; import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; -import com.win.module.system.api.dict.DictDataApi; -import com.win.module.system.api.dict.dto.DictDataRespDTO; import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO; import com.win.module.wms.controller.expectout.vo.ExpectoutCreateReqVO; +import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordDetailCreateReqVO; +import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainCreateReqVO; import com.win.module.wms.controller.inventorymoveRequest.vo.*; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO; -import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO; -import com.win.module.wms.convert.deliverJob.DeliverJobMainConvert; import com.win.module.wms.convert.inventorymoveJob.InventorymoveJobMainConvert; +import com.win.module.wms.convert.inventorymoveRecord.InventorymoveRecordDetailConvert; +import com.win.module.wms.convert.inventorymoveRecord.InventorymoveRecordMainConvert; import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestDetailConvert; import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; -import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert; -import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert; -import com.win.module.wms.dal.dataobject.balance.BalanceDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; -import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobDetailDO; -import com.win.module.wms.dal.dataobject.deliverJob.DeliverJobMainDO; -import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestDetailDO; -import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; +import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; -import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; +import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO; import com.win.module.wms.dal.dataobject.location.LocationDO; -import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO; -import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.mysql.inventorymoveJob.InventorymoveJobDetailMapper; import com.win.module.wms.dal.mysql.inventorymoveJob.InventorymoveJobMainMapper; +import com.win.module.wms.dal.mysql.inventorymoveRecord.InventorymoveRecordDetailMapper; +import com.win.module.wms.dal.mysql.inventorymoveRecord.InventorymoveRecordMainMapper; import com.win.module.wms.dal.mysql.inventorymoveRequest.InventorymoveRequestDetailMapper; import com.win.module.wms.dal.mysql.inventorymoveRequest.InventorymoveRequestMainMapper; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.expectin.ExpectinService; import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.jobsetting.JobsettingService; import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.recordsetting.RecordsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; + import javax.annotation.Resource; import javax.validation.Validator; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Collection; import java.util.List; + import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.module.wms.enums.ErrorCodeConstants.*; @@ -90,12 +90,16 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest @Resource private ItembasicService itembasicService; - + @Resource + private InventorymoveRecordMainMapper inventorymoveRecordMainMapper; + @Resource + private InventorymoveRecordDetailMapper inventorymoveRecordDetailMapper; @Resource private SerialNumberApi serialNumberApi; @Resource private JobsettingService jobsettingService; - + @Resource + private RecordsettingService recordsettingService; @Resource private RequestsettingService requestsettingService; @Resource @@ -108,29 +112,31 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest private ExpectoutService expectoutService; @Resource private ExpectinService expectinService; + @Resource + private AdminUserApi userApi; + @Override public Long createInventorymoveRequestMain(InventorymoveRequestMainCreateReqVO createReqVO) { - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest"); // 插入 - InventorymoveRequestMainDO inventorymoveRequestMain = validatorToCreate(createReqVO,requestsettingDO); - if(RequestStatusEnum.HANDLING.getCode().equals(inventorymoveRequestMain.getStatus())) { - generateJob(inventorymoveRequestMain,inventorymoveRequestDetailMapper.selectList(inventorymoveRequestMain.getId())); + InventorymoveRequestMainDO inventorymoveRequestMain = validatorToCreate(createReqVO); + if (RequestStatusEnum.HANDLING.getCode().equals(inventorymoveRequestMain.getStatus())) { + generateJob(inventorymoveRequestMain, inventorymoveRequestDetailMapper.selectList(inventorymoveRequestMain.getId())); } - trendsApi.createTrends(requestsettingDO.getId(), "MoveRequest", "增加了库存移动申请", TrendsTypeEnum.CREATE); + trendsApi.createTrends(inventorymoveRequestMain.getId(), inventorymoveRequestMain.getBusinessType(), "增加了库存移动申请", TrendsTypeEnum.CREATE); return inventorymoveRequestMain.getId(); } - private InventorymoveRequestMainDO validatorToCreate(InventorymoveRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest"); - InventorymoveRequestMainDO inventorymoveRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); + + private InventorymoveRequestMainDO validatorToCreate(InventorymoveRequestMainCreateReqVO createReqVO) { + InventorymoveRequestMainDO inventorymoveRequestMainDO = validateMainMethod(createReqVO); List subList = createReqVO.getSubList(); List subDOList = InventorymoveRequestDetailConvert.INSTANCE.convertList03(subList); - for(InventorymoveRequestDetailDO inventorymoveRequestDetailDO: subDOList){ - validateDetailMethod(inventorymoveRequestDetailDO,businesstypeDO,inventorymoveRequestMainDO); + for (InventorymoveRequestDetailDO inventorymoveRequestDetailDO : subDOList) { + validateDetailMethod(inventorymoveRequestDetailDO, inventorymoveRequestMainDO); } String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_REQUEST.getCode()); inventorymoveRequestMainDO.setNumber(number); inventorymoveRequestMainMapper.insert(inventorymoveRequestMainDO); - for( InventorymoveRequestDetailDO inventorymoveRequestDetailDO : subDOList){ + for (InventorymoveRequestDetailDO inventorymoveRequestDetailDO : subDOList) { inventorymoveRequestDetailDO.setMasterId(inventorymoveRequestMainDO.getId()); inventorymoveRequestDetailDO.setNumber(inventorymoveRequestMainDO.getNumber()); } @@ -138,60 +144,104 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest return inventorymoveRequestMainDO; } - private void validateDetailMethod(InventorymoveRequestDetailDO inventorymoveRequestDetailDO, BusinesstypeDO businesstypeDO, InventorymoveRequestMainDO productputawayRequestMainDO) { + private void validateDetailMethod(InventorymoveRequestDetailDO inventorymoveRequestDetailDO, InventorymoveRequestMainDO inventorymoveRequestMainDO) { inventorymoveRequestDetailDO.setCreateTime(LocalDateTime.now()); - ItembasicDO itembasic = validteitem(inventorymoveRequestDetailDO); - inventorymoveRequestDetailDO.setItemDesc1(itembasic.getDesc1()); - inventorymoveRequestDetailDO.setItemDesc2(itembasic.getDesc2()); - inventorymoveRequestDetailDO.setItemName(itembasic.getName()); - inventorymoveRequestDetailDO.setProjectCode(itembasic.getProject()); - inventorymoveRequestDetailDO.setUom(itembasic.getUom()); - jobUtils.ifInToLocationType(inventorymoveRequestDetailDO.getFromLocationCode(), businesstypeDO); - jobUtils.ifOutInventoryStatuses(inventorymoveRequestDetailDO.getFromInventoryStatus(), businesstypeDO); + validatelocation(inventorymoveRequestMainDO, inventorymoveRequestDetailDO); + ItembasicDO itembasicDO = validteitembasic(inventorymoveRequestDetailDO); + //校验库存余额是否存在 + List inventoryStatus = new ArrayList<>(); + //隔离转合格申请 + if ("HOLD".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "OK".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { + inventoryStatus.add("HOLD"); + String OkToScrapRequest = "HoldToOkRequest"; + CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); + } + //合格转隔离申请 + if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { + inventoryStatus.add("OK"); + String OkToScrapRequest = "OkToHoldRequest"; + CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); + } + //隔离转报废申请 + if ("HOLD".equals(inventorymoveRequestDetailDO.getFromInventoryStatus()) && "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { + inventoryStatus.add("HOLD"); + String OkToScrapRequest = "HoldToScrapRequest"; + CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); + } + //报废转隔离申请 + if ("SCRAP".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "HOLD".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { + inventoryStatus.add("SCRAP"); + String OkToScrapRequest = "ScrapToHoldRequest"; + CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); + } + //合格转报废申请 + if ("OK".equals(inventorymoveRequestDetailDO.getFromInventoryStatus())&& "SCRAP".equals(inventorymoveRequestDetailDO.getToInventoryStatus())) { + inventoryStatus.add("SCRAP"); + String OkToScrapRequest = "OkToScrapRequest"; + CreateBusinessTypeAndRequestSetting(inventorymoveRequestMainDO,inventorymoveRequestDetailDO,itembasicDO,OkToScrapRequest); + } validtebalance(inventorymoveRequestDetailDO); + inventorymoveRequestDetailDO.setToBatch(inventorymoveRequestDetailDO.getFromBatch()); + inventorymoveRequestDetailDO.setToContainerNumber(inventorymoveRequestDetailDO.getFromContainerNumber()); + inventorymoveRequestDetailDO.setToPackingNumber(inventorymoveRequestDetailDO.getFromPackingNumber()); + } + //子表校验来源库位基础信息 + private void CreateBusinessTypeAndRequestSetting(InventorymoveRequestMainDO inventorymoveRequestMainDO, InventorymoveRequestDetailDO inventorymoveRequestDetailDO, ItembasicDO itembasicDO, String businesstypeCode) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType(businesstypeCode); + inventorymoveRequestMainDO.setBusinessType(businesstypeDO.getCode()); + if (itembasicDO != null){ + jobUtils.ifInType(itembasicDO.getType(), businesstypeDO); + } + jobUtils.ifInInventoryStatuses(inventorymoveRequestDetailDO.getFromInventoryStatus(), businesstypeDO); + jobUtils.ifInFromLocationType(inventorymoveRequestDetailDO.getFromLocationCode(), businesstypeDO); + jobUtils.ifInToLocationType(inventorymoveRequestDetailDO.getToLocationCode(), businesstypeDO); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist(businesstypeCode); + if (requestsettingDO != null) { + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + inventorymoveRequestMainDO.setStatus(requestStatusState.getState().getCode());inventorymoveRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + inventorymoveRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + inventorymoveRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + inventorymoveRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + inventorymoveRequestMainDO.setBusinessType(businesstypeDO.getCode()); + inventorymoveRequestMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); + inventorymoveRequestMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); + inventorymoveRequestMainDO.setRequestTime(LocalDateTime.now()); + } + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + inventorymoveRequestMainDO.setStatus(requestStatusState.getState().getCode()); } - private InventorymoveRequestMainDO validateMainMethod(InventorymoveRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){ - InventorymoveRequestMainDO inventorymoveRequestMainDO = InventorymoveRequestMainConvert.INSTANCE.convert(baseVO); - inventorymoveRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + + private InventorymoveRequestMainDO validateMainMethod(InventorymoveRequestMainBaseVO baseVO) { + InventorymoveRequestMainDO inventorymoveRequestMainDO = InventorymoveRequestMainConvert.INSTANCE.convert(baseVO); inventorymoveRequestMainDO.setCreateTime(LocalDateTime.now()); - inventorymoveRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); - inventorymoveRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); - inventorymoveRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); - inventorymoveRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - inventorymoveRequestMainDO.setBusinessType(businesstypeDO.getCode()); - inventorymoveRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - inventorymoveRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); - inventorymoveRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - inventorymoveRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); return inventorymoveRequestMainDO; - } - - @Override public void updateInventorymoveRequestMain(InventorymoveRequestMainUpdateReqVO updateReqVO) { RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest"); // 校验存在 validateInventorymoveRequestMainExists(updateReqVO.getId()); // 更新 - InventorymoveRequestMainDO inventorymoveRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + InventorymoveRequestMainDO inventorymoveRequestMainDO = validatorToUpdate(updateReqVO); - if(RequestStatusEnum.HANDLING.getCode().equals(inventorymoveRequestMainDO.getStatus())) { + if (RequestStatusEnum.HANDLING.getCode().equals(inventorymoveRequestMainDO.getStatus())) { } trendsApi.createTrends(requestsettingDO.getId(), "MoveRequest", "增加了库存移动申请", TrendsTypeEnum.CREATE); } - private InventorymoveRequestMainDO validatorToUpdate(InventorymoveRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest"); - InventorymoveRequestMainDO inventorymoveRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + + private InventorymoveRequestMainDO validatorToUpdate(InventorymoveRequestMainUpdateReqVO updateReqVO) { + InventorymoveRequestMainDO inventorymoveRequestMainDO = validateMainMethod(updateReqVO); //子表校验 List subList = updateReqVO.getSubList(); - if(!subList.isEmpty()) { + if (!subList.isEmpty()) { List subDOList = InventorymoveRequestDetailConvert.INSTANCE.convertList05(subList); for (InventorymoveRequestDetailDO inventorymoveRequestDetailDO : subDOList) { - validateDetailMethod(inventorymoveRequestDetailDO, businesstypeDO, inventorymoveRequestMainDO); + validateDetailMethod(inventorymoveRequestDetailDO, inventorymoveRequestMainDO); } inventorymoveRequestDetailMapper.updateBatch(subDOList); } @@ -200,7 +250,6 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest } - @Override public void deleteInventorymoveRequestMain(Long id) { // 校验存在 @@ -209,15 +258,15 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest inventorymoveRequestMainMapper.deleteById(id); } - private void validateInventorymoveRequestMainExists(Long id) { - if (inventorymoveRequestMainMapper.selectById(id) == null) { + private InventorymoveRequestMainDO validateInventorymoveRequestMainExists(Long id) { + InventorymoveRequestMainDO inventorymoveRequestMainDO = inventorymoveRequestMainMapper.selectById(id); + if (inventorymoveRequestMainDO == null) { throw exception(INVENTORYMOVE_REQUEST_MAIN_NOT_EXISTS); + } else { + return inventorymoveRequestMainDO; } } - @Resource - private DictDataApi dictDataApi; - @Override public InventorymoveRequestMainDO getInventorymoveRequestMain(Long id) { return inventorymoveRequestMainMapper.selectById(id); @@ -243,27 +292,14 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest return inventorymoveRequestMainMapper.selectList(exportReqVO); } - private String validateInventorymoveRequestMainImport(InventorymoveRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { + /** + * 主表导入验证 + * + * @param mainDo + * @return + */ + private String validateInventorymoveRequestMainImport(InventorymoveRequestMainDO mainDo) { StringBuilder message = new StringBuilder(); - mainDo.setCreateTime(LocalDateTime.now()); - RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest"); - if (requestsettingDO == null) { - message.append("未查找到制品上架申请的相关申请设置"); - } else { - mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); - mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); - mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); - mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); - } - if (businesstypeDO == null) { - message.append("根据单据设置未查找到制品上架申请的相关业务类型"); - } else { - mainDo.setBusinessType(businesstypeDO.getCode()); - mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); - mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); - mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); - mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); - } try { ValidationUtils.validate(validator, mainDo); } catch (Exception ex) { @@ -271,89 +307,273 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest } return message.toString(); } - private InventorymoveRequestDetailDO validatelocation(InventorymoveRequestDetailDO detailDo){ - LocationDO locationDO = locationService.selectLocation(detailDo.getFromLocationCode()); - if (locationDO != null) { - detailDo.setFromLocationCode(locationDO.getCode()); + + /** + * 校验来源/目标库位基础信息 + * + * @param detailDo + * @return + */ + private void validatelocation(InventorymoveRequestMainDO mainDO, InventorymoveRequestDetailDO detailDo) { + LocationDO fromLocationDO = locationService.selectLocation(detailDo.getFromLocationCode()); + if (fromLocationDO != null) { + detailDo.setFromLocationCode(fromLocationDO.getCode()); + mainDO.setFromWarehouseCode(fromLocationDO.getWarehouseCode()); + mainDO.setFromLocationTypes(fromLocationDO.getType()); + mainDO.setFromAreaCodes(fromLocationDO.getAreaCode()); + } + LocationDO toLocationDO = locationService.selectLocation(detailDo.getToLocationCode()); + if (toLocationDO != null) { + detailDo.setToLocationCode(toLocationDO.getCode()); + mainDO.setToWarehouseCode(toLocationDO.getWarehouseCode()); + mainDO.setToLocationTypes(fromLocationDO.getType()); + mainDO.setToAreaCodes(toLocationDO.getAreaCode()); } - return detailDo; } - - private ItembasicDO validteitem(InventorymoveRequestDetailDO detailDo) { + /** + * 校验物品基础信息 + * + * @param detailDo + * @return + */ + private ItembasicDO validteitembasic(InventorymoveRequestDetailDO detailDo) { ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); + detailDo.setItemDesc1(itembasicDO.getDesc1()); + detailDo.setItemDesc2(itembasicDO.getDesc2()); + detailDo.setItemName(itembasicDO.getName()); + detailDo.setUom(itembasicDO.getUom()); + detailDo.setProjectCode(itembasicDO.getProject()); return itembasicDO; } - private void validtebalance(InventorymoveRequestDetailDO detailDo){ + /** + * 校验库存余额是否存在 + * + * @param detailDo + */ + private void validtebalance(InventorymoveRequestDetailDO detailDo) { List inventoryStatus = new ArrayList<>(); inventoryStatus.add(detailDo.getFromInventoryStatus()); - List balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber() + jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber() , detailDo.getFromBatch(), detailDo.getFromLocationCode(), inventoryStatus); + } -} - - private String validateInventorymoveRequestDetailImport(InventorymoveRequestDetailDO detailDo, InventorymoveRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { - StringBuilder message = new StringBuilder(); + /** + * 导入子表校验 + * @param mainDO + * @param detailDo + * @return + */ + private String validateInventorymoveRequestDetailImport(InventorymoveRequestMainDO mainDO, InventorymoveRequestDetailDO detailDo) { + String messageDetail = new String(); + BusinesstypeDO businesstypeDO; // 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList - try{ - detailDo.setCreateTime(LocalDateTime.now()); - detailDo = validatelocation(detailDo); - }catch (Exception ex) { - message.append(ex.getMessage()).append(","); - } - try{ - ItembasicDO itembasic = validteitem(detailDo); - detailDo.setItemDesc1(itembasic.getDesc1()); - detailDo.setItemDesc2(itembasic.getDesc2()); - detailDo.setItemName(itembasic.getName()); - detailDo.setProjectCode(itembasic.getProject()); - detailDo.setUom(itembasic.getUom()); - - }catch (Exception ex) { - message.append(ex.getMessage()).append(","); - } - try{ - jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO); - }catch (Exception ex) { - message.append(ex.getMessage()).append(","); + try { + validatelocation(mainDO, detailDo); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; } - try{ - jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO); - }catch (Exception ex) { - message.append(ex.getMessage()).append(","); + try { + validteitembasic(detailDo); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } +// mainDo.setRequestTime(LocalDateTime.now()); +// if (businesstypeDO == null) { +// message.append("根据单据设置未查找到制品上架申请的相关业务类型"); +// } else { +// mainDo.setBusinessType(businesstypeDO.getCode()); +// mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); +// mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes()); +// mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); +// mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes()); +// mainDo.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); +// mainDo.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); +// } + //隔离转合格申请 + if ("HOLD".equals(detailDo.getFromInventoryStatus())) { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("HOLD"); + String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_REQUEST.getCode()); + detailDo.setNumber(number); + // 校验业务类型 + try { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRequest"); + mainDO.setBusinessType(businesstypeDO.getCode()); + validationBusinesstype(detailDo,businesstypeDO,messageDetail); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("HoldToOkRequest"); + if (requestsettingDO != null) { + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + mainDO.setRequestTime(LocalDateTime.now()); + } + } + + //合格转隔离申请 + if ("OK".equals(detailDo.getFromInventoryStatus())) { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("OK"); + String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_REQUEST.getCode()); + mainDO.setNumber(number); + // 校验业务类型 + try { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRequest"); + mainDO.setBusinessType(businesstypeDO.getCode()); + validationBusinesstype(detailDo,businesstypeDO,messageDetail); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToHoldRequest"); + if (requestsettingDO != null) { + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + } + + //隔离转报废申请 + if ("HOLD".equals(detailDo.getFromInventoryStatus())) { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("HOLD"); + String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode()); + mainDO.setNumber(number); + // 校验业务类型 + try { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRequest"); + mainDO.setBusinessType(businesstypeDO.getCode()); + validationBusinesstype(detailDo,businesstypeDO,messageDetail); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("HoldToScrapRequest"); + if (requestsettingDO != null) { + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + } + + //报废转隔离申请 + if ("SCRAP".equals(detailDo.getFromInventoryStatus())) { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("SCRAP"); + String number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_REQUEST.getCode()); + mainDO.setNumber(number); + // 校验业务类型 + try { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRequest"); + mainDO.setBusinessType(businesstypeDO.getCode()); + validationBusinesstype(detailDo,businesstypeDO,messageDetail); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("ScrapToHoldRequest"); + if (requestsettingDO != null) { + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } + } + + //合格转报废 + if ("Ok".equals(detailDo.getFromInventoryStatus())) { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add("SCRAP"); + String number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_REQUEST.getCode()); + mainDO.setNumber(number); + + // 校验业务类型 + try { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRequest"); + mainDO.setBusinessType(businesstypeDO.getCode()); + validationBusinesstype(detailDo,businesstypeDO,messageDetail); + } catch (ServiceException ex) { + messageDetail += ex.getMessage() + ","; + } + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("OkToScrapRequest"); + if (requestsettingDO != null) { + mainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + mainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + mainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + } } - try{ + try { validtebalance(detailDo); - }catch (Exception ex) { - message.append(ex.getMessage()).append(","); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; } - return message.toString(); + try { + ValidationUtils.validate(validator, detailDo); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + return messageDetail.toString(); } + //根据业务类型进行对应校验 + private void validationBusinesstype(InventorymoveRequestDetailDO detailDo, BusinesstypeDO businesstypeDO, String messageDetail) { + try { + jobUtils.ifInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + try { + jobUtils.ifInToLocationType(detailDo.getToLocationCode(), businesstypeDO); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + try { + jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO); + } catch (Exception ex) { + messageDetail += ex.getMessage() + ","; + } + } - + /** + * 导入功能 + * @param datas 导入库存转移申请信息列表 + * @param mode 导入模式1更新2追加3覆盖 + * @param fromInventoryStatus + * @param toInventoryStatus + * @param updatePart 是否支持更新 + * @return + */ @Override - public List importInventorymoveRequestMainList(List datas, Integer mode, boolean updatePart) { + public List importInventorymoveRequestMainList(List datas, Integer mode, String fromInventoryStatus , String toInventoryStatus ,boolean updatePart) { if (CollUtil.isEmpty(datas)) { - throw exception(PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY); + throw exception(INVENTORYMOVE_REQUEST_IMPORT_LIST_IS_EMPTY); } List errorList = new ArrayList<>(); datas.forEach(createReqVO -> { - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest"); // 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList //主表的验证 InventorymoveRequestMainDO mainDo = InventorymoveRequestMainConvert.INSTANCE.convert(createReqVO); - String messageMain = validateInventorymoveRequestMainImport(mainDo, businesstypeDO); + String messageMain = validateInventorymoveRequestMainImport(mainDo); + //TODO 暂时不考虑在途库 +// if ("TRUE".equals(businesstypeDO.getUseOnTheWay())) { +// mainDo.setUseOnTheWayLocation("FAC_INTRANSIT"); +// } //子表的验证 List subList = createReqVO.getSubList(); List subDOList = InventorymoveRequestDetailConvert.INSTANCE.convertList03(subList); boolean flag = true; - for (InventorymoveRequestDetailDO purchaseDetailDO : subDOList) { - String messageDetail = validateInventorymoveRequestDetailImport(purchaseDetailDO, mainDo, businesstypeDO); + for (InventorymoveRequestDetailDO detailDO : subDOList) { + detailDO.setFromInventoryStatus(fromInventoryStatus); + detailDO.setToInventoryStatus(toInventoryStatus); + String messageDetail = validateInventorymoveRequestDetailImport(mainDo, detailDO); //校验来源/目标库位基础信息 - if (!"".equals(messageMain) ||!"".equals(messageDetail) ) { - InventorymoveRequestMainImportErrorVO importErrorVO = InventorymoveRequestMainConvert.INSTANCE.convert(createReqVO, purchaseDetailDO); + if (!"".equals(messageMain) || !"".equals(messageDetail)) { + InventorymoveRequestMainImportErrorVO importErrorVO = InventorymoveRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); importErrorVO.setImportStatus("失败"); messageMain = messageMain + messageDetail; importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1)); @@ -363,13 +583,18 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest } //写入数据 if (flag) { - String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_CHANGE_REQUEST.getCode()); - mainDo.setNumber(number); - mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增")); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(mainDo.getAutoCommit(), mainDo.getAutoAgree(), mainDo.getAutoExecute()); + mainDo.setStatus(requestStatusState.getState().getCode()); + mainDo.setRequestTime(LocalDateTime.now()); + mainDo.setDepartmentCode(userApi.getUser(Long.valueOf(mainDo.getCreator())).getDeptId().toString()); inventorymoveRequestMainMapper.insert(mainDo); for (InventorymoveRequestDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDo.getId()); - detailDO.setNumber(number); + detailDO.setNumber(mainDo.getNumber()); + detailDO.setToBatch(detailDO.getFromBatch()); + detailDO.setToPackingNumber(detailDO.getFromPackingNumber()); + detailDO.setToContainerNumber(detailDO.getFromContainerNumber()); } inventorymoveRequestDetailMapper.insertBatch(subDOList); } @@ -378,27 +603,95 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest } /** - * 生成采购收货任务,不要改动事务传播方式,否则会有事务问题 - * @param mainDO 采购收货主 - * @param detailDOList 采购收货子 + * 生成库存转移任务,不要改动事务传播方式,否则会有事务问题 + * + * @param mainDO 库存转移申请主 + * @param detailDOList 库存转移申请子 */ private void generateJob(InventorymoveRequestMainDO mainDO, List detailDOList) { + String number = ""; + JobsettingDO jobsettingDO = null; + RecordsettingDO recordsettingDO = null; + BusinesstypeDO businesstypeDO = null; + //跳过任务直接生成记录 + if ("TRUE".equals(mainDO.getDirectCreateRecord())) { + InventorymoveRecordMainCreateReqVO inventorymoveRecordMainCreateReqVO = new InventorymoveRecordMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, inventorymoveRecordMainCreateReqVO); + inventorymoveRecordMainCreateReqVO.setId(null); + inventorymoveRecordMainCreateReqVO.setCreator(null); + inventorymoveRecordMainCreateReqVO.setCreateTime(null); + inventorymoveRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); + if("HoldToOkRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord"); + } else if("OkToHoldRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord"); + } else if("HoldToScrapRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord"); + } else if("ScrapToHoldRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord"); + } else if("OkToScrapRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); + recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); + } + inventorymoveRecordMainCreateReqVO.setNumber(number); + inventorymoveRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); + inventorymoveRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType()); + inventorymoveRecordMainMapper.insert(InventorymoveRecordMainConvert.INSTANCE.convert(inventorymoveRecordMainCreateReqVO)); + for (InventorymoveRequestDetailDO inventorymoveRequestDetailDO : detailDOList) { + InventorymoveRecordDetailCreateReqVO inventorymoveRecordDetailCreateReqVO = new InventorymoveRecordDetailCreateReqVO(); + BeanUtils.copyProperties(inventorymoveRequestDetailDO, inventorymoveRecordDetailCreateReqVO); + inventorymoveRecordDetailCreateReqVO.setId(null); + inventorymoveRecordDetailCreateReqVO.setCreator(null); + inventorymoveRecordDetailCreateReqVO.setCreateTime(null); + inventorymoveRecordDetailCreateReqVO.setNumber(number); + inventorymoveRecordDetailMapper.insert(InventorymoveRecordDetailConvert.INSTANCE.convert(inventorymoveRecordDetailCreateReqVO)); + } + trendsApi.createTrends(InventorymoveRecordMainConvert.INSTANCE.convert(inventorymoveRecordMainCreateReqVO).getId(), recordsettingDO.getCode(), "库存转移申请生成库存转移记录", TrendsTypeEnum.CREATE); + return; + } InventorymoveJobMainDO inventorymoveJobMainDO = InventorymoveJobMainConvert.INSTANCE.convert(mainDO); BeanUtils.copyProperties(mainDO, inventorymoveJobMainDO); inventorymoveJobMainDO.setRequestNumber(mainDO.getNumber()); inventorymoveJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); - String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_JOB.getCode()); + if("HoldToOkRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_JOB.getCode()); + jobsettingDO = jobsettingService.selectJobsettingExist("HoldToOkJob"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkJob"); + } else if("OkToHoldRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_JOB.getCode()); + jobsettingDO = jobsettingService.selectJobsettingExist("OkToHoldJob"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldJob"); + } else if("HoldToScrapRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_JOB.getCode()); + jobsettingDO = jobsettingService.selectJobsettingExist("HoldToScrapJob"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapJob"); + } else if("ScrapToHoldRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_JOB.getCode()); + jobsettingDO = jobsettingService.selectJobsettingExist("ScrapToHoldJob"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldJob"); + } else if("OkToScrapRequest".equals(mainDO.getBusinessType())){ + number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_JOB.getCode()); + jobsettingDO = jobsettingService.selectJobsettingExist("OkToScrapJob"); + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapJob"); + } inventorymoveJobMainDO.setNumber(number); - inventorymoveJobMainDO.setId(null); inventorymoveJobMainDO.setRequestTime(mainDO.getRequestTime()); inventorymoveJobMainDO.setRequestDueTime(mainDO.getDueTime()); + inventorymoveJobMainDO.setId(null); inventorymoveJobMainDO.setCreator(null); inventorymoveJobMainDO.setCreateTime(null); inventorymoveJobMainDO.setUpdater(null); inventorymoveJobMainDO.setUpdateTime(null); - inventorymoveJobMainDO.setStatus("1"); - // 获取任务单据设置 - JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("InventorymoveJob"); + inventorymoveJobMainDO.setExpiredTime(inventorymoveJobMainDO.getRequestDueTime()); inventorymoveJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); inventorymoveJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); inventorymoveJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); @@ -410,70 +703,177 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest inventorymoveJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); inventorymoveJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); //增加业务类型 - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventorymoveJob"); inventorymoveJobMainDO.setBusinessType(businesstypeDO.getCode()); + inventorymoveJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); + inventorymoveJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); inventorymoveJobMainMapper.insert(inventorymoveJobMainDO); List expectpoutCreateReqVOList = new ArrayList<>(); List expectpinCreateReqVOList = new ArrayList<>(); List deliverJobDetailDOList = new ArrayList<>(); detailDOList.forEach(item -> { - // 根据批次策略/下架策略 返回 库存余额DO - List balanceDOListJob = jobUtils.getBalanceByBatchOffShelf(item.getItemCode(),"OK",item.getProjectCode(),item.getQty(),null); // 根据 查询出所需数据 解析成 任务子表数据 - balanceDOListJob.forEach(balanceDOItem -> { - InventorymoveJobDetailDO inventorymoveJobDetailDO = new InventorymoveJobDetailDO(); - BeanUtils.copyProperties(item, inventorymoveJobDetailDO); - inventorymoveJobDetailDO.setId(null); - inventorymoveJobDetailDO.setCreateTime(null); - inventorymoveJobDetailDO.setCreator(null); - inventorymoveJobDetailDO.setUpdateTime(null); - inventorymoveJobDetailDO.setUpdater(null); - if("TRUE".equals(businesstypeDO.getUseOnTheWay())){ - inventorymoveJobDetailDO.setToLocationCode("FAC_INTRANS"); - }else { - inventorymoveJobDetailDO.setToLocationCode(null); - } - inventorymoveJobDetailDO.setPackingNumber(balanceDOItem.getPackingNumber()); - inventorymoveJobDetailDO.setContainerNumber(balanceDOItem.getContainerNumber()); - inventorymoveJobDetailDO.setBatch(balanceDOItem.getBatch()); - inventorymoveJobDetailDO.setFromLocationCode(balanceDOItem.getLocationCode()); - inventorymoveJobDetailDO.setToLocationCode(item.getToLocationCode()); - inventorymoveJobDetailDO.setItemCode(item.getItemCode()); - inventorymoveJobDetailDO.setItemName(item.getItemName()); - inventorymoveJobDetailDO.setItemDesc1(item.getItemDesc1()); - inventorymoveJobDetailDO.setItemDesc2(item.getItemDesc2()); - inventorymoveJobDetailDO.setProjectCode(item.getProjectCode()); - inventorymoveJobDetailDO.setQty(item.getQty()); - inventorymoveJobDetailDO.setUom(item.getUom()); - inventorymoveJobDetailDO.setNumber(inventorymoveJobMainDO.getNumber()); - inventorymoveJobDetailDO.setMasterId(inventorymoveJobMainDO.getId()); - inventorymoveJobDetailDO.setInventoryStatus(balanceDOItem.getInventoryStatus()); - deliverJobDetailDOList.add(inventorymoveJobDetailDO); - //预计出 - ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO(); - BeanUtils.copyProperties(inventorymoveJobDetailDO, expectoutCreateReqVO); - expectoutCreateReqVO.setJobNumber(number); - expectoutCreateReqVO.setBusinessType(inventorymoveJobMainDO.getBusinessType()); - expectoutCreateReqVO.setLocationCode(inventorymoveJobDetailDO.getFromLocationCode()); - expectoutCreateReqVO.setBatch(inventorymoveJobDetailDO.getBatch()); - expectoutCreateReqVO.setQty(inventorymoveJobDetailDO.getQty()); - expectoutCreateReqVO.setInventoryStatus(balanceDOItem.getInventoryStatus()); - expectpoutCreateReqVOList.add(expectoutCreateReqVO); - ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); - BeanUtils.copyProperties(inventorymoveJobDetailDO, expectinCreateReqVO); - expectinCreateReqVO.setJobNumber(number); - expectinCreateReqVO.setBusinessType(inventorymoveJobMainDO.getBusinessType()); - expectinCreateReqVO.setLocationCode(inventorymoveJobDetailDO.getFromLocationCode()); - expectinCreateReqVO.setBatch(inventorymoveJobDetailDO.getBatch()); - expectinCreateReqVO.setQty(inventorymoveJobDetailDO.getQty()); - expectinCreateReqVO.setInventoryStatus(balanceDOItem.getInventoryStatus()); - expectpinCreateReqVOList.add(expectinCreateReqVO); - }); + InventorymoveJobDetailDO inventorymoveJobDetailDO = new InventorymoveJobDetailDO(); + BeanUtils.copyProperties(item, inventorymoveJobDetailDO); + inventorymoveJobDetailDO.setId(null); + inventorymoveJobDetailDO.setCreateTime(LocalDateTime.now()); + inventorymoveJobDetailDO.setCreator(null); + inventorymoveJobDetailDO.setUpdateTime(null); + inventorymoveJobDetailDO.setUpdater(null); +// if ("TRUE".equals(businesstypeDO.getUseOnTheWay())) { +// inventorymoveJobDetailDO.setToLocationCode("FAC_INTRANS"); +// } else { +// inventorymoveJobDetailDO.setToLocationCode(null); +// } + inventorymoveJobDetailDO.setPackingNumber(item.getFromPackingNumber()); + inventorymoveJobDetailDO.setContainerNumber(item.getFromContainerNumber()); + inventorymoveJobDetailDO.setBatch(item.getFromBatch()); + inventorymoveJobDetailDO.setFromLocationCode(item.getFromLocationCode()); + inventorymoveJobDetailDO.setToLocationCode(item.getToLocationCode()); + inventorymoveJobDetailDO.setItemCode(item.getItemCode()); + inventorymoveJobDetailDO.setItemName(item.getItemName()); + inventorymoveJobDetailDO.setItemDesc1(item.getItemDesc1()); + inventorymoveJobDetailDO.setItemDesc2(item.getItemDesc2()); + inventorymoveJobDetailDO.setProjectCode(item.getProjectCode()); + inventorymoveJobDetailDO.setQty(item.getQty()); + inventorymoveJobDetailDO.setUom(item.getUom()); + inventorymoveJobDetailDO.setNumber(inventorymoveJobMainDO.getNumber()); + inventorymoveJobDetailDO.setMasterId(inventorymoveJobMainDO.getId()); + inventorymoveJobDetailDO.setInventoryStatus(item.getFromInventoryStatus()); + deliverJobDetailDOList.add(inventorymoveJobDetailDO); + //预计出 + ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO(); + BeanUtils.copyProperties(inventorymoveJobDetailDO, expectoutCreateReqVO); + expectoutCreateReqVO.setJobNumber(inventorymoveJobMainDO.getNumber()); + expectoutCreateReqVO.setBusinessType(inventorymoveJobMainDO.getBusinessType()); + expectoutCreateReqVO.setLocationCode(inventorymoveJobDetailDO.getFromLocationCode()); + expectoutCreateReqVO.setBatch(inventorymoveJobDetailDO.getBatch()); + expectoutCreateReqVO.setQty(inventorymoveJobDetailDO.getQty()); + expectoutCreateReqVO.setInventoryStatus(item.getFromInventoryStatus()); + expectpoutCreateReqVOList.add(expectoutCreateReqVO); + //预计入 + ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); + BeanUtils.copyProperties(inventorymoveJobDetailDO, expectinCreateReqVO); + expectinCreateReqVO.setJobNumber(inventorymoveJobMainDO.getNumber()); + expectinCreateReqVO.setBusinessType(inventorymoveJobMainDO.getBusinessType()); + expectinCreateReqVO.setLocationCode(inventorymoveJobDetailDO.getToLocationCode()); + expectinCreateReqVO.setBatch(inventorymoveJobDetailDO.getBatch()); + expectinCreateReqVO.setQty(inventorymoveJobDetailDO.getQty()); + expectinCreateReqVO.setInventoryStatus(item.getToInventoryStatus()); + expectpinCreateReqVOList.add(expectinCreateReqVO); }); inventorymoveJobDetailMapper.insertBatch(deliverJobDetailDOList); //增加预计入 expectoutService.createExpectout(expectpoutCreateReqVOList); expectinService.createExpectin(expectpinCreateReqVOList); - trendsApi.createTrends(inventorymoveJobMainDO.getId(), "InventorymoveJob", "成品发货申请生成成品发货任务", TrendsTypeEnum.CREATE); + trendsApi.createTrends(inventorymoveJobMainDO.getId(), jobsettingDO.getCode(), "库存转移申请生成库存转移任务", TrendsTypeEnum.CREATE); + } + + //关闭 + @Override + public Integer closeInventorymoveRequestMain(Long id) { + // 校验存在存在下级单据 + InventorymoveRequestMainDO mainDO = validateInventorymoveRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if (!flag) { + throw new ServiceException(INVENTORYMOVE_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, mainDO.getBusinessType(), "关闭了库存转移申请", TrendsTypeEnum.UPDATE); + return inventorymoveRequestMainMapper.updateById(mainDO); + } + + //打开 + @Override + @Transactional + public Integer reAddInventorymoveRequestMain(Long id) { + // 校验存在存在下级单据 + InventorymoveRequestMainDO mainDO = validateInventorymoveRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.reAdd(); + if (!flag) { + throw new ServiceException(INVENTORYMOVE_REQUEST_CANNOT_RE_ADD); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, mainDO.getBusinessType(), "打开了库存转移申请", TrendsTypeEnum.UPDATE); + return inventorymoveRequestMainMapper.updateById(mainDO); + } + + //提交 + @Transactional + @Override + public Integer submitInventorymoveRequestMain(Long id) { + InventorymoveRequestMainDO mainDO = validateInventorymoveRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); + if (!flag) { + throw new ServiceException(INVENTORYMOVE_REQUEST_CANNOT_SUBMIT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, inventorymoveRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, mainDO.getBusinessType(), "提交了库存转移申请", TrendsTypeEnum.UPDATE); + return inventorymoveRequestMainMapper.updateById(mainDO); + } + + //审批同意 + @Transactional + @Override + public Integer agreeInventorymoveRequestMain(Long id) { + // 校验存在 + InventorymoveRequestMainDO mainDO = validateInventorymoveRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); + if (!flag) { + throw new ServiceException(INVENTORYMOVE_REQUEST_CANNOT_AGREE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + this.generateJob(mainDO, inventorymoveRequestDetailMapper.selectList(mainDO.getId())); + } + trendsApi.createTrends(id, mainDO.getBusinessType(), "审批同意了库存转移申请", TrendsTypeEnum.UPDATE); + return inventorymoveRequestMainMapper.updateById(mainDO); + } + + //执行 + @Transactional + @Override + public Integer handleInventorymoveRequestMain(Long id) { + // 校验存在 + InventorymoveRequestMainDO mainDO = validateInventorymoveRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if (!flag) { + throw new ServiceException(INVENTORYMOVE_REQUEST_CANNOT_HANDLE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + this.generateJob(mainDO, inventorymoveRequestDetailMapper.selectList(mainDO.getId())); + trendsApi.createTrends(id, mainDO.getBusinessType(), "执行了库存转移申请", TrendsTypeEnum.UPDATE); + return inventorymoveRequestMainMapper.updateById(mainDO); + } + + //审批拒绝 + @Transactional + @Override + public Integer abortInventorymoveRequestMain(Long id) { + // 校验存在 + InventorymoveRequestMainDO mainDO = validateInventorymoveRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.refused(); + if (!flag) { + throw new ServiceException(INVENTORYMOVE_REQUEST_CANNOT_ABORT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + trendsApi.createTrends(id, mainDO.getBusinessType(), "审批拒绝了库存转移申请", TrendsTypeEnum.UPDATE); + return inventorymoveRequestMainMapper.updateById(mainDO); + } + + @Override + public List getInventorymoveRequestMainList(CustomConditions conditions) { + return inventorymoveRequestMainMapper.selectSeniorList(conditions); } }