diff --git a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java index f9e08f68..092301d3 100644 --- a/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java +++ b/win-module-system/win-module-system-api/src/main/java/com/win/module/system/enums/serialNumber/RuleCodeEnum.java @@ -142,6 +142,7 @@ public enum RuleCodeEnum { PACKING_NUMBER("PackingNumber"), // 包装号 CUSTOMER_DELIVER_NUMBER("CustomerDeliverNumber"), // 客户发货单号 LABEL_NUMBER("LabelNumber"), // 标签流水号 + TRANSFER_RECEIPT_REQUEST("TransferReceiptRequest"),// 调拨接收申请 ; 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 c9fcaae9..9f05558e 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 @@ -868,16 +868,29 @@ public interface ErrorCodeConstants { //调拨出库记录ErrorCode ErrorCode TRANSFERISSUE_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_139_000, "调拨出库记录主不存在"); ErrorCode TRANSFERISSUE_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_139_001, "调拨出库记录子不存在"); + //调拨入库申请ErrorCode ErrorCode TRANSFERRECEIPT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_140_000, "调拨入库申请主不存在"); ErrorCode TRANSFERRECEIPT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_140_001, "调拨入库申请子不存在"); + ErrorCode TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS = new ErrorCode(1_000_140_002, "库位【{}】无效"); + ErrorCode TRANSFERRECEIPT_REQUEST_DETAIL_ITEM_NOT_EXISTS = new ErrorCode(1_000_140_003, "物品【{}】无效"); + ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_140_004, "调拨入库申请状态不支持关闭"); + ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_140_005, "调拨入库申请状态不支持关闭"); + ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_140_006, "调拨入库申请状态不支持提交"); + ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_140_007, "调拨入库申请状态不支持审批拒绝"); + ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_140_008, "调拨入库申请状态不支持审批同意"); + ErrorCode TRANSFERRECEIPT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_140_009, "调拨入库申请状态不支持处理"); + //调拨入库任务ErrorCode ErrorCode TRANSFERRECEIPT_JOB_MAIN_NOT_EXISTS = new ErrorCode(1_000_141_000, "调拨入库任务主不存在"); ErrorCode TRANSFERRECEIPT_JOB_DETAIL_NOT_EXISTS = new ErrorCode(1_000_141_001, "调拨入库任务子不存在"); ErrorCode TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR = new ErrorCode(1_000_141_002, "调拨入库任务状态错误"); + ErrorCode TRANSFERRECEIPT_JOB_MAIN_EXISTS = new ErrorCode(1_000_141_003, "调拨入库任务存在调拨入库任务单"); + //调拨入库记录ErrorCode ErrorCode TRANSFERRECEIPT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_142_000, "调拨入库记录主不存在"); ErrorCode TRANSFERRECEIPT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_142_001, "调拨入库记录子不存在"); + //计划外出库申请ErrorCode ErrorCode UNPLANNEDISSUE_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_143_000, "计划外出库申请主不存在"); ErrorCode UNPLANNEDISSUE_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_143_001, "计划外出库申请子不存在"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueJob/vo/TransferissueJobDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueJob/vo/TransferissueJobDetailPageReqVO.java index 7daf327f..a898d578 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueJob/vo/TransferissueJobDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueJob/vo/TransferissueJobDetailPageReqVO.java @@ -75,4 +75,6 @@ public class TransferissueJobDetailPageReqVO 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/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java index 585b4ed8..0e8b97a2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailExportReqVO.java @@ -103,4 +103,7 @@ public class TransferissueRecordDetailExportReqVO { @Schema(description = "到批次") private String toBatch; + @Schema(description = "主键Id") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailPageReqVO.java index 59391c4b..abfaefe2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferissueRecord/vo/TransferissueRecordDetailPageReqVO.java @@ -105,4 +105,7 @@ public class TransferissueRecordDetailPageReqVO extends PageParam { @Schema(description = "到批次") private String toBatch; + @Schema(description = "主键ID") + private String masterId; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/TransferreceiptJobMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/TransferreceiptJobMainController.java index 8ae3df13..2c9ac666 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/TransferreceiptJobMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/TransferreceiptJobMainController.java @@ -3,6 +3,7 @@ package com.win.module.wms.controller.transferreceiptJob; 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.controller.transferissueJob.vo.TransferissueJobMainUpdateReqVO; import com.win.module.wms.controller.transferreceiptJob.vo.*; import com.win.module.wms.convert.transferreceiptJob.TransferreceiptJobDetailConvert; import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO; @@ -158,4 +159,45 @@ public class TransferreceiptJobMainController { return success(countByStatus); } + @PutMapping(value = "/accept") + @Operation(summary = "承接任务") + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-job-main:accept')") + public CommonResult acceptTransferreceiptJobMain(@RequestParam("id") Long id) { + int result = transferreceiptJobMainService.acceptTransferreceiptJobMain(id); + return success(result > 0); + } + + @PutMapping(value = "/abandon") + @Operation(summary = "放弃任务") + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-job-main:abandon')") + public CommonResult abandonTransferreceiptJobMain(@RequestParam("id") Long id) { + int result = transferreceiptJobMainService.abandonTransferreceiptJobMain(id); + return success(result > 0); + } + + @PutMapping(value = "/close") + @Operation(summary = "关闭任务") + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-job-main:close')") + public CommonResult closeTransferreceiptJobMain(@RequestParam("id") Long id) { + int result = transferreceiptJobMainService.closeTransferreceiptJobMain(id); + return success(result > 0); + } + + @PutMapping("/execute") + @Operation(summary = "执行调拨出库任务主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-job-main:execute')") + public CommonResult executeTransferreceiptJobMain(@Valid @RequestBody TransferreceiptJobMainUpdateReqVO updateReqVO) { + String number = transferreceiptJobMainService.executeTransferreceiptJobMain(updateReqVO); + return success(number); + } + + @PutMapping("/getExecuteJson") + @Operation(summary = "获取执行请求参数") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult getExecuteJson(@RequestParam("id") Long id) { + TransferreceiptJobMainUpdateReqVO updateReqVO = transferreceiptJobMainService.getExecuteJson(id); + return success(updateReqVO); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobDetailUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobDetailUpdateReqVO.java index c3b09e7c..9ad9aaf6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobDetailUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobDetailUpdateReqVO.java @@ -9,4 +9,18 @@ import lombok.*; @ToString(callSuper = true) public class TransferreceiptJobDetailUpdateReqVO extends TransferreceiptJobDetailBaseVO { + @Schema(description = "实际收货数量") + private String toQty; + + @Schema(description = "到包装") + private String toPackingNumber; + + @Schema(description = "到包装") + private String toContainerNumber; + + @Schema(description = "到批次") + private String toBatch; + + @Schema(description = "到库存状态") + private String toInventoryStatus; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobMainUpdateReqVO.java index 38f3e929..f96e7267 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptJob/vo/TransferreceiptJobMainUpdateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.transferreceiptJob.vo; +import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobDetailUpdateReqVO; 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 TransferreceiptJobMainUpdateReqVO extends TransferreceiptJobMainBaseVO { + @Schema(description = "子表数据") + private List<@Valid TransferreceiptJobDetailUpdateReqVO> subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java index 6ef1817a..a402aac8 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRecord/vo/TransferreceiptRecordDetailBaseVO.java @@ -114,4 +114,6 @@ public class TransferreceiptRecordDetailBaseVO { @Schema(description = "到批次") private String toBatch; + @Schema(description = "主表ID") + private String masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/TransferreceiptRequestMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/TransferreceiptRequestMainController.java index 8e3f7e2a..838d1522 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/TransferreceiptRequestMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/TransferreceiptRequestMainController.java @@ -119,4 +119,58 @@ public class TransferreceiptRequestMainController { ExcelUtils.write(response, "调拨入库申请主.xls", "数据", TransferreceiptRequestMainExcelVO.class, datas); } + @PutMapping("/close") + @Operation(summary = "关闭调拨入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:close')") + public CommonResult closeTransferreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = transferreceiptRequestMainService.closeTransferreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/reAdd") + @Operation(summary = "重新添加调拨入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:reAdd')") + public CommonResult reAddTransferreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = transferreceiptRequestMainService.reAddTransferreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/submit") + @Operation(summary = "提交调拨入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:submit')") + public CommonResult submitTransferreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = transferreceiptRequestMainService.submitTransferreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/refused") + @Operation(summary = "审批拒绝调拨入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:refused')") + public CommonResult abortTransferreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = transferreceiptRequestMainService.abortTransferreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/agree") + @Operation(summary = "审批通过调拨入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:agree')") + public CommonResult agreeTransferreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = transferreceiptRequestMainService.agreeTransferreceiptRequestMain(id); + return success(count > 0); + } + + @PutMapping("/handle") + @Operation(summary = "处理调拨入库申请主") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('wms:transferreceipt-request-main:handle')") + public CommonResult handleTransferreceiptRequestMain(@RequestParam("id") Long id) { + Integer count = transferreceiptRequestMainService.handleTransferreceiptRequestMain(id); + return success(count > 0); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java index 139eadbf..6b20a0cd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestDetailBaseVO.java @@ -87,4 +87,7 @@ public class TransferreceiptRequestDetailBaseVO { @Schema(description = "到货主代码") private String toOwnerCode; + @Schema(description = "到库位代码") + private String toLocationCode; + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainCreateReqVO.java index 313be948..217dfebd 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainCreateReqVO.java @@ -1,12 +1,19 @@ package com.win.module.wms.controller.transferreceiptRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailCreateReqVO; import lombok.*; import io.swagger.v3.oas.annotations.media.Schema; +import java.util.List; + @Schema(description = "管理后台 - 调拨入库申请主创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class TransferreceiptRequestMainCreateReqVO extends TransferreceiptRequestMainBaseVO { + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainUpdateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainUpdateReqVO.java index a0974f80..b3a4e169 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainUpdateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transferreceiptRequest/vo/TransferreceiptRequestMainUpdateReqVO.java @@ -1,12 +1,20 @@ package com.win.module.wms.controller.transferreceiptRequest.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; +import java.util.List; + @Schema(description = "管理后台 - 调拨入库申请主更新 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class TransferreceiptRequestMainUpdateReqVO extends TransferreceiptRequestMainBaseVO { + + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobDetailConvert.java index 7506b1ad..b7b00283 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobDetailConvert.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDet import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailExcelVO; import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailRespVO; import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO; @@ -34,4 +35,5 @@ public interface TransferreceiptJobDetailConvert { List convertList02(List list); + TransferreceiptJobDetailDO convert(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobMainConvert.java index 2ddea30f..424c6486 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptJob/TransferreceiptJobMainConvert.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMai import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainExcelVO; import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainRespVO; import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainUpdateReqVO; +import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO; @@ -34,4 +35,5 @@ public interface TransferreceiptJobMainConvert { List convertList02(List list); + TransferreceiptJobMainDO convert(TransferreceiptRequestMainDO mainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestDetailConvert.java index 3816d56a..5997f2f7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestDetailConvert.java @@ -34,4 +34,7 @@ public interface TransferreceiptRequestDetailConvert { List convertList02(List list); + List convertList03(List subList); + + List convertList05(List subList); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestMainConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestMainConvert.java index 4973d013..4847930e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestMainConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/transferreceiptRequest/TransferreceiptRequestMainConvert.java @@ -4,10 +4,8 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; -import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO; -import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainExcelVO; -import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainRespVO; -import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainUpdateReqVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainBaseVO; +import com.win.module.wms.controller.transferreceiptRequest.vo.*; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO; @@ -34,4 +32,5 @@ public interface TransferreceiptRequestMainConvert { List convertList02(List list); + TransferreceiptRequestMainDO convert(TransferreceiptRequestMainBaseVO baseVO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferissueRequest/TransferissueRequestMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferissueRequest/TransferissueRequestMainDO.java index 7020fe9a..fd6084f5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferissueRequest/TransferissueRequestMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferissueRequest/TransferissueRequestMainDO.java @@ -146,5 +146,14 @@ public class TransferissueRequestMainDO 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/dataobject/transferreceiptJob/TransferreceiptJobMainDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptJob/TransferreceiptJobMainDO.java index 909aeb45..a9dc6f69 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptJob/TransferreceiptJobMainDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptJob/TransferreceiptJobMainDO.java @@ -223,5 +223,14 @@ public class TransferreceiptJobMainDO 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/transferreceiptRequest/TransferreceiptRequestDetailDO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptRequest/TransferreceiptRequestDetailDO.java index fff06e49..607a58bc 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptRequest/TransferreceiptRequestDetailDO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/transferreceiptRequest/TransferreceiptRequestDetailDO.java @@ -107,5 +107,9 @@ public class TransferreceiptRequestDetailDO extends BaseDO { * 到货主代码 */ private String toOwnerCode; + /** + * 到库位代码 + */ + private String toLocationCode; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobDetailMapper.java index f756faeb..9c3f86d6 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobDetailMapper.java @@ -42,6 +42,7 @@ public interface TransferissueJobDetailMapper extends BaseMapperX selectSenior(CustomConditions conditions) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobMainMapper.java index e814951b..2f4ff456 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueJob/TransferissueJobMainMapper.java @@ -10,7 +10,9 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobMainExportReqVO; import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobMainPageReqVO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; +import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; /** @@ -128,4 +130,9 @@ public interface TransferissueJobMainMapper extends BaseMapperX() + .eq(TransferissueJobMainDO::getRequestNumber, requestNumber) + .ne(TransferissueJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueRecord/TransferissueRecordDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueRecord/TransferissueRecordDetailMapper.java index 4d5de0b0..8e797825 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueRecord/TransferissueRecordDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferissueRecord/TransferissueRecordDetailMapper.java @@ -51,6 +51,7 @@ public interface TransferissueRecordDetailMapper extends BaseMapperX selectSenior(CustomConditions conditions) { @@ -87,6 +88,7 @@ public interface TransferissueRecordDetailMapper extends BaseMapperX selectList(Long masterId) { + return selectList(new LambdaQueryWrapperX() + .eq(TransferreceiptJobDetailDO::getMasterId, masterId)); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptJob/TransferreceiptJobMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptJob/TransferreceiptJobMainMapper.java index ff0539e2..bb85b672 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptJob/TransferreceiptJobMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptJob/TransferreceiptJobMainMapper.java @@ -11,6 +11,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMai import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainPageReqVO; import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO; import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; /** @@ -126,4 +127,9 @@ public interface TransferreceiptJobMainMapper extends BaseMapperX() + .eq(TransferreceiptJobMainDO::getRequestNumber,requestNumber) + .ne(TransferreceiptJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestDetailMapper.java index 670ad7e3..8ef6c876 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestDetailMapper.java @@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX; import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailExportReqVO; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailPageReqVO; +import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestDetailDO; import org.apache.ibatis.annotations.Mapper; @@ -74,4 +75,8 @@ public interface TransferreceiptRequestDetailMapper extends BaseMapperX selectList(Long masterId){ + return selectList(new LambdaQueryWrapperX() + .eq(TransferreceiptRequestDetailDO::getMasterId, masterId)); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestMainMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestMainMapper.java index 4bff4633..2413ad53 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestMainMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/transferreceiptRequest/TransferreceiptRequestMainMapper.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.transferreceiptRequest.vo.TransferreceiptRequestMainExportReqVO; import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainPageReqVO; +import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO; +import com.win.module.wms.enums.order.OrderStatusEnum; import org.apache.ibatis.annotations.Mapper; /** @@ -84,4 +86,9 @@ public interface TransferreceiptRequestMainMapper extends BaseMapperX() + .eq(TransferreceiptRequestMainDO::getNumber, requestNumber) + .ne(TransferreceiptRequestMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java index d0379568..cbf94628 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueJob/TransferissueJobMainServiceImpl.java @@ -11,9 +11,12 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transferissueJob.vo.*; +import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestDetailCreateReqVO; +import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; +import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordDetailDO; @@ -24,8 +27,11 @@ import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.service.expectin.ExpectinService; 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.transaction.TransactionService; +import com.win.module.wms.service.transferreceiptRequest.TransferreceiptRequestMainService; import com.win.module.wms.util.JobUtils; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -53,6 +59,7 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; * * @author 超级管理员 */ +@Slf4j @Service @Validated public class TransferissueJobMainServiceImpl implements TransferissueJobMainService { @@ -81,6 +88,10 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ private TransferissueRecordDetailMapper transferissueRecordDetailMapper; @Resource private RecordsettingService recordsettingService; + @Resource + private TransferreceiptRequestMainService transferreceiptRequestMainService; + @Resource + private RequestsettingService requestsettingService; @Override @@ -219,7 +230,6 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ if(!flag) { throw new ServiceException(TRANSFERISSUE_JOB_MAIN_STATUS_ERROR); } - //更新完成信息 Long userId = getLoginUserId(); AdminUserRespDTO userRespDTO = userApi.getUser(userId); @@ -236,7 +246,7 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRecord"); transferissueRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); transferissueRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); - String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_REQUEST.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_RECORD.getCode()); String interFaceType = recordsettingService.selectRecordsettingExist("TransferDeliverRecord").getInterfaceType(); transferissueRecordMainDO.setInterfaceType(interFaceType); transferissueRecordMainDO.setNumber(number); @@ -256,6 +266,8 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ List reqSubList = updateReqVO.getSubList(); List transferissueRecordDetailDOList = new ArrayList<>(); + + List transferreceiptReqSubList = new ArrayList<>(); //库存事务 List transactionCreateReqVOList = new ArrayList<>(); for(TransferissueJobDetailDO transferissueJobDetailDO:subList) { @@ -271,6 +283,7 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ if(isExists) { TransferissueRecordDetailDO transferissueRecordDetailDO = new TransferissueRecordDetailDO(); BeanUtils.copyProperties(transferissueJobDetailUpdateReqVO, transferissueRecordDetailDO); + // transferissueRecordDetailDO.setInterfaceType() transferissueRecordDetailDO.setMasterId(String.valueOf(transferissueRecordMainDO.getId())); transferissueRecordDetailDO.setNumber(number); transferissueRecordDetailDO.setJobDetailId(String.valueOf(transferissueJobDetailDO.getId())); @@ -291,6 +304,15 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ transferissueRecordDetailDO.setInventoryStatus(transferissueJobDetailUpdateReqVO.getToInventoryStatus());//toInventoryStatus transferissueRecordDetailDO.setQty(new BigDecimal(transferissueJobDetailUpdateReqVO.getToQty() == null?"0":transferissueJobDetailUpdateReqVO.getToQty()));//toQty transferissueRecordDetailDOList.add(transferissueRecordDetailDO); + + TransferreceiptRequestDetailCreateReqVO transferreceiptRequestDetailCreateReqVO = new TransferreceiptRequestDetailCreateReqVO(); + BeanUtils.copyProperties(transferissueJobDetailUpdateReqVO,transferreceiptRequestDetailCreateReqVO); + transferreceiptRequestDetailCreateReqVO.setToLocationCode(transferissueJobDetailUpdateReqVO.getToLocationCode()); + transferreceiptRequestDetailCreateReqVO.setFromLocationCode(transferissueJobDetailUpdateReqVO.getFromLocationCode()); + transferreceiptRequestDetailCreateReqVO.setPackingNumber(transferissueJobDetailUpdateReqVO.getPackingNumber()); + transferreceiptRequestDetailCreateReqVO.setBatch(transferissueJobDetailUpdateReqVO.getBatch()); + transferreceiptReqSubList.add(transferreceiptRequestDetailCreateReqVO); + //添加库存事务list TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); BeanUtils.copyProperties(transferissueRecordDetailDO, transactionCreateReqVO); @@ -313,6 +335,18 @@ public class TransferissueJobMainServiceImpl implements TransferissueJobMainServ } if(!transferissueRecordDetailDOList.isEmpty()) { transferissueRecordDetailMapper.insertBatch(transferissueRecordDetailDOList); + //创建调拨入库申请 + TransferreceiptRequestMainCreateReqVO createReqVO = new TransferreceiptRequestMainCreateReqVO(); + BeanUtils.copyProperties(transferissueJobMainDO,createReqVO); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferReceiptRequest"); + // 自动执行相关内容获取配置信息 + createReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); + createReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); + createReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); + createReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + createReqVO.setSubList(transferreceiptReqSubList); + log.info("请求参数查看:{}",createReqVO); + transferreceiptRequestMainService.createTransferreceiptRequestMain(createReqVO); } //增加库存事务 transactionService.createTransaction(transactionCreateReqVOList); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java index 223d3955..7a5a45e1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferissueRequest/TransferissueRequestMainServiceImpl.java @@ -147,6 +147,8 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest AdminUserRespDTO userRespDTO = userApi.getUser(userId); transferissueRequestMainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); transferissueRequestMainDO.setStatus(requestStatusState.getState().getCode()); + transferissueRequestMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses()); + transferissueRequestMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses()); transferissueRequestMainMapper.insert(transferissueRequestMainDO); for(TransferissueRequestDetailDO transferissueRequestDetailDO: subDOList){ transferissueRequestDetailDO.setMasterId(transferissueRequestMainDO.getId()); @@ -458,7 +460,7 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest public Integer closeTransferissueRequestMain(Long id) { // 校验存在存在下级单据 TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id); - Long count = transferissueRequestMainMapper.selectByRequestNumber(mainDO.getNumber()); + Long count = transferissueJobMainMapper.selectByRequestNumber(mainDO.getNumber()); if(count > 0) { throw new ServiceException(TRANSFERISSUE_JOB_MAIN_EXISTS); } @@ -477,7 +479,7 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest public Integer reAddTransferissueRequestMain(Long id) { // 校验存在存在下级单据 TransferissueRequestMainDO mainDO = validateTransferissueRequestMainExists(id); - Long count = transferissueRequestMainMapper.selectByRequestNumber(mainDO.getNumber()); + Long count = transferissueJobMainMapper.selectByRequestNumber(mainDO.getNumber()); if(count > 0) { throw new ServiceException(TRANSFERISSUE_JOB_MAIN_EXISTS); } @@ -571,7 +573,7 @@ public class TransferissueRequestMainServiceImpl implements TransferissueRequest TransferissueRecordMainCreateReqVO transferissueRecordMainCreateReqVO = new TransferissueRecordMainCreateReqVO(); BeanUtils.copyProperties(mainDO, transferissueRecordMainCreateReqVO); transferissueRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); - String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_REQUEST.getCode()); + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_RECORD.getCode()); transferissueRecordMainCreateReqVO.setNumber(number); //增加业务类型 BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferDeliverRecord"); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailService.java index 57811783..50a7c473 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailService.java @@ -8,6 +8,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDet import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailExportReqVO; import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailPageReqVO; import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO; import com.win.framework.common.pojo.PageResult; @@ -79,4 +80,10 @@ public interface TransferreceiptJobDetailService { */ List getTransferreceiptJobDetailList(TransferreceiptJobDetailExportReqVO exportReqVO); + /** + * 获取任务子表数据 + * @param id + * @return + */ + List selectList(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailServiceImpl.java index 1536e076..ea2128ef 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobDetailServiceImpl.java @@ -5,6 +5,7 @@ import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDet import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailExportReqVO; import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailPageReqVO; import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -87,4 +88,9 @@ public class TransferreceiptJobDetailServiceImpl implements TransferreceiptJobDe return transferreceiptJobDetailMapper.selectList(exportReqVO); } + @Override + public List selectList(Long masterId) { + return transferreceiptJobDetailMapper.selectList(masterId); + } + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainService.java index a8847833..74b327b1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainService.java @@ -94,4 +94,39 @@ public interface TransferreceiptJobMainService { * @return */ Map getCountByStatus(@Nullable Collection types); + + /** + * 承接任务 + * @param id 主键Id + * @return 更新数量 + */ + int acceptTransferreceiptJobMain(Long id); + + /** + * 放弃任务 + * @param id 主键Id + * @return 更新数量 + */ + int abandonTransferreceiptJobMain(Long id); + + /** + * 关闭任务 + * @param id 主键Id + * @return 更新数量 + */ + int closeTransferreceiptJobMain(Long id); + + /** + * 执行调拨入库任务 + * @param updateReqVO 执行传参 + * @return + */ + String executeTransferreceiptJobMain(TransferreceiptJobMainUpdateReqVO updateReqVO); + + /** + * 获取执行请求参数 + * @param id 主键ID + * @return TransferreceiptJobMainUpdateReqVO + */ + TransferreceiptJobMainUpdateReqVO getExecuteJson(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java index 4d39cc3f..4095acc7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptJob/TransferreceiptJobMainServiceImpl.java @@ -1,15 +1,45 @@ package com.win.module.wms.service.transferreceiptJob; 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.transferreceiptJob.vo.TransferreceiptJobMainCreateReqVO; -import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainExportReqVO; -import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainPageReqVO; -import com.win.module.wms.controller.transferreceiptJob.vo.TransferreceiptJobMainUpdateReqVO; +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.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobDetailUpdateReqVO; +import com.win.module.wms.controller.transferissueJob.vo.TransferissueJobMainUpdateReqVO; +import com.win.module.wms.controller.transferreceiptJob.vo.*; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO; +import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordDetailDO; +import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO; +import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO; +import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordDetailDO; +import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordMainDO; +import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordDetailMapper; +import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordMainMapper; +import com.win.module.wms.enums.job.JobStatusState; +import com.win.module.wms.service.expectin.ExpectinService; +import com.win.module.wms.service.location.LocationService; +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.transferreceiptJob.TransferreceiptJobMainDO; @@ -19,6 +49,7 @@ import com.win.module.wms.convert.transferreceiptJob.TransferreceiptJobMainConve import com.win.module.wms.dal.mysql.transferreceiptJob.TransferreceiptJobMainMapper; 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,28 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain @Resource private TransferreceiptJobMainMapper transferreceiptJobMainMapper; + @Resource + private AdminUserApi userApi; + @Resource + private TrendsApi trendsApi; + @Resource + private TransferreceiptJobDetailService transferreceiptJobDetailService; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private RecordsettingService recordsettingService; + @Resource + private TransferreceiptRecordMainMapper transferreceiptRecordMainMapper; + @Resource + private LocationService locationService; + @Resource + private TransferreceiptRecordDetailMapper transferreceiptRecordDetailMapper; + @Resource + private TransactionService transactionService; + @Resource + private ExpectinService expectinService; @Override public Long createTransferreceiptJobMain(TransferreceiptJobMainCreateReqVO createReqVO) { @@ -62,10 +115,12 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain transferreceiptJobMainMapper.deleteById(id); } - private void validateTransferreceiptJobMainExists(Long id) { - if (transferreceiptJobMainMapper.selectById(id) == null) { + private TransferreceiptJobMainDO validateTransferreceiptJobMainExists(Long id) { + TransferreceiptJobMainDO transferreceiptJobMainDO = transferreceiptJobMainMapper.selectById(id); + if (transferreceiptJobMainDO == null) { throw exception(TRANSFERRECEIPT_JOB_MAIN_NOT_EXISTS); } + return transferreceiptJobMainDO; } @Override @@ -108,4 +163,181 @@ public class TransferreceiptJobMainServiceImpl implements TransferreceiptJobMain map.put("count", l.intValue()); return map; } + + @Transactional + @Override + public int acceptTransferreceiptJobMain(Long id) { + TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(transferreceiptJobMainDO.getStatus()); + if(!jobStatusState.accept()) { + throw exception(TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR); + } + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + transferreceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + transferreceiptJobMainDO.setAcceptUserId(String.valueOf(userId)); + transferreceiptJobMainDO.setAcceptUserName(userRespDTO.getNickname()); + transferreceiptJobMainDO.setAcceptTime(LocalDateTime.now()); + trendsApi.createTrends(id, "TransferReceiptJob", "承接了调拨入库任务", TrendsTypeEnum.UPDATE); + return transferreceiptJobMainMapper.updateById(transferreceiptJobMainDO); + } + + @Transactional + @Override + public int abandonTransferreceiptJobMain(Long id) { + TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(transferreceiptJobMainDO.getStatus()); + if(!jobStatusState.cancelAccept()) { + throw exception(TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR); + } + transferreceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + transferreceiptJobMainDO.setAcceptUserId(null); + transferreceiptJobMainDO.setAcceptUserName(null); + transferreceiptJobMainDO.setAcceptTime(null); + trendsApi.createTrends(id, "TransferReceiptJob", "取消了调拨入库任务", TrendsTypeEnum.UPDATE); + return transferreceiptJobMainMapper.updateById(transferreceiptJobMainDO); + } + + @Transactional + @Override + public int closeTransferreceiptJobMain(Long id) { + TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(id); + JobStatusState jobStatusState = new JobStatusState(transferreceiptJobMainDO.getStatus()); + if(!jobStatusState.close()) { + throw exception(TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR); + } + transferreceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + trendsApi.createTrends(id, "TransferReceiptJob", "关闭了调拨入库任务", TrendsTypeEnum.UPDATE); + return transferreceiptJobMainMapper.updateById(transferreceiptJobMainDO); + } + + @Transactional + @Override + public String executeTransferreceiptJobMain(TransferreceiptJobMainUpdateReqVO updateReqVO) { + // 查询任务主表与子表 + TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(updateReqVO.getId()); + List subList = transferreceiptJobDetailService.selectList(transferreceiptJobMainDO.getId()); + JobStatusState jobStatusState = new JobStatusState(transferreceiptJobMainDO.getStatus()); + boolean flag = jobStatusState.execute(); + if(!flag) { + throw new ServiceException(TRANSFERRECEIPT_JOB_MAIN_STATUS_ERROR); + } + //更新完成信息 + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + transferreceiptJobMainDO.setStatus(jobStatusState.getState().getCode()); + transferreceiptJobMainDO.setCompleteTime(LocalDateTime.now()); + transferreceiptJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId())); + transferreceiptJobMainDO.setCompleteUserName(userRespDTO.getNickname()); + //更新任务表状态 + transferreceiptJobMainMapper.updateById(transferreceiptJobMainDO); + + // 创建调拨发出记录 + TransferreceiptRecordMainDO transferreceiptRecordMainDO = new TransferreceiptRecordMainDO(); + BeanUtils.copyProperties(transferreceiptJobMainDO, transferreceiptRecordMainDO); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRecord"); + transferreceiptRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + transferreceiptRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_RECORD.getCode()); + String interFaceType = recordsettingService.selectRecordsettingExist("TransferReceiptRecord").getInterfaceType(); + transferreceiptRecordMainDO.setInterfaceType(interFaceType); + transferreceiptRecordMainDO.setNumber(number); + transferreceiptRecordMainDO.setBusinessType(businesstypeDO.getCode()); + transferreceiptRecordMainDO.setJobNumber(transferreceiptJobMainDO.getNumber()); + transferreceiptRecordMainDO.setExecuteTime(LocalDateTime.now()); + transferreceiptRecordMainDO.setActiveDate(LocalDateTime.now()); + transferreceiptRecordMainDO.setDueTime(transferreceiptJobMainDO.getRequestDueTime()); + transferreceiptRecordMainDO.setAvailable("TRUE"); + transferreceiptRecordMainDO.setId(null); + transferreceiptRecordMainDO.setCreateTime(null); + transferreceiptRecordMainDO.setCreator(null); + transferreceiptRecordMainDO.setUpdateTime(null); + transferreceiptRecordMainDO.setUpdater(null); + transferreceiptRecordMainMapper.insert(transferreceiptRecordMainDO); + // 创建调拨发出记录明细 + List reqSubList = updateReqVO.getSubList(); + List transferreceiptRecordDetailDOList = new ArrayList<>(); + + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for(TransferreceiptJobDetailDO transferreceiptJobDetailDO:subList) { + boolean isExists = false; + TransferreceiptJobDetailUpdateReqVO transferreceiptJobDetailUpdateReqVO = null; + for(TransferreceiptJobDetailUpdateReqVO temp:reqSubList) { + if(temp.getId().equals(transferreceiptJobDetailDO.getId())) { + transferreceiptJobDetailUpdateReqVO = temp; + isExists = true; + break; + } + } + if(isExists) { + TransferreceiptRecordDetailDO transferreceiptRecordDetailDO = new TransferreceiptRecordDetailDO(); + BeanUtils.copyProperties(transferreceiptJobDetailUpdateReqVO, transferreceiptRecordDetailDO); + transferreceiptRecordDetailDO.setMasterId(String.valueOf(transferreceiptRecordMainDO.getId())); + transferreceiptRecordDetailDO.setNumber(number); + transferreceiptRecordDetailDO.setJobDetailId(String.valueOf(transferreceiptJobDetailDO.getId())); + transferreceiptRecordDetailDO.setFromPackingNumber(transferreceiptJobDetailDO.getPackingNumber()); + transferreceiptRecordDetailDO.setToPackingNumber(transferreceiptJobDetailUpdateReqVO.getToPackingNumber());// toPackingNumber + transferreceiptRecordDetailDO.setFromContainerNumber(transferreceiptJobDetailUpdateReqVO.getContainerNumber()); + transferreceiptRecordDetailDO.setToContainerNumber(transferreceiptJobDetailUpdateReqVO.getToContainerNumber()); // toContainerNumber + transferreceiptRecordDetailDO.setFromBatch(transferreceiptJobDetailDO.getBatch()); + transferreceiptRecordDetailDO.setToBatch(transferreceiptJobDetailUpdateReqVO.getToBatch()); // toBatch + LocationDO locationDO1 = locationService.selectLocation(transferreceiptJobDetailDO.getFromLocationCode()); + transferreceiptRecordDetailDO.setFromLocationCode(locationDO1.getCode()); + transferreceiptRecordDetailDO.setFromAreaCode(locationDO1.getAreaCode()); + transferreceiptRecordDetailDO.setFromLocationGroupCode(locationDO1.getLocationGroupCode()); + LocationDO locationDO2 = locationService.selectLocation(transferreceiptJobDetailDO.getToLocationCode());//toLocationCode + transferreceiptRecordDetailDO.setToLocationCode(locationDO2.getCode()); + transferreceiptRecordDetailDO.setToAreaCode(locationDO2.getAreaCode()); + transferreceiptRecordDetailDO.setToLocationGroupCode(locationDO2.getLocationGroupCode()); + transferreceiptRecordDetailDO.setInventoryStatus(transferreceiptJobDetailUpdateReqVO.getToInventoryStatus());//toInventoryStatus + transferreceiptRecordDetailDO.setQty(new BigDecimal(transferreceiptJobDetailUpdateReqVO.getToQty() == null?"0":transferreceiptJobDetailUpdateReqVO.getToQty()));//toQty + transferreceiptRecordDetailDOList.add(transferreceiptRecordDetailDO); + //添加库存事务list + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(transferreceiptJobDetailDO, transactionCreateReqVO); + //增加业务类型 + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(transferreceiptRecordMainDO.getBusinessType()); + transactionCreateReqVO.setLocationCode(transferreceiptJobDetailDO.getToLocationCode()); + transactionCreateReqVO.setOwnerCode(transferreceiptJobDetailDO.getFromOwnerCode()); + transactionCreateReqVO.setPackingNumber(transferreceiptJobDetailDO.getPackingNumber()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setBatch(transferreceiptJobDetailDO.getBatch()); + transactionCreateReqVO.setWarehouseCode(transferreceiptRecordMainDO.getToWarehouseCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVO); + } + } + if(!transferreceiptRecordDetailDOList.isEmpty()) { + transferreceiptRecordDetailMapper.insertBatch(transferreceiptRecordDetailDOList); + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //移除预计入 + expectinService.deleteExpectinByJobNumber(transferreceiptJobMainDO.getNumber()); + //变更记录 + trendsApi.createTrends(transferreceiptJobMainDO.getId(), "TransferReceiptJob", "执行调拨入库任务", TrendsTypeEnum.UPDATE); + return number; + } + + @Override + public TransferreceiptJobMainUpdateReqVO getExecuteJson(Long id) { + TransferreceiptJobMainUpdateReqVO transferreceiptJobMainUpdateReqVO = new TransferreceiptJobMainUpdateReqVO(); + TransferreceiptJobMainDO transferreceiptJobMainDO = this.validateTransferreceiptJobMainExists(id); + List subList = transferreceiptJobDetailService.selectList(transferreceiptJobMainDO.getId()); + BeanUtils.copyProperties(transferreceiptJobMainDO,transferreceiptJobMainUpdateReqVO); + List transferreceiptJobDetailUpdateReqVOList = new ArrayList<>(); + for(TransferreceiptJobDetailDO transferreceiptJobDetailDO:subList){ + TransferreceiptJobDetailUpdateReqVO transferreceiptJobDetailUpdateReqVO = new TransferreceiptJobDetailUpdateReqVO(); + BeanUtils.copyProperties(transferreceiptJobDetailDO,transferreceiptJobDetailUpdateReqVO); + transferreceiptJobDetailUpdateReqVOList.add(transferreceiptJobDetailUpdateReqVO); + } + transferreceiptJobMainUpdateReqVO.setSubList(transferreceiptJobDetailUpdateReqVOList); + return transferreceiptJobMainUpdateReqVO; + } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainService.java index 7545b3d8..de998ad4 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainService.java @@ -79,4 +79,45 @@ public interface TransferreceiptRequestMainService { */ List getTransferreceiptRequestMainList(TransferreceiptRequestMainExportReqVO exportReqVO); + /** + * 关闭调拨入库申请主 + * @param id 主键ID + * @return + */ + Integer closeTransferreceiptRequestMain(Long id); + + /** + * 重新添加调拨入库申请主 + * @param id 主键ID + * @return 更新条数 + */ + Integer reAddTransferreceiptRequestMain(Long id); + + /** + * 提交调拨入库申请主 + * @param id 主键ID + * @return 更新条数 + */ + Integer submitTransferreceiptRequestMain(Long id); + + /** + * 审批拒绝调拨入库申请主 + * @param id 主键ID + * @return 更新条数 + */ + Integer abortTransferreceiptRequestMain(Long id); + + /** + * 审批通过调拨入库申请主 + * @param id 主键ID + * @return 更新条数 + */ + Integer agreeTransferreceiptRequestMain(Long id); + + /** + * 处理调拨入库申请主 + * @param id 主键ID + * @return 更新条数 + */ + Integer handleTransferreceiptRequestMain(Long id); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java index cde12788..e491b49c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/transferreceiptRequest/TransferreceiptRequestMainServiceImpl.java @@ -1,23 +1,80 @@ package com.win.module.wms.service.transferreceiptRequest; +import com.win.framework.common.exception.ServiceException; import com.win.framework.common.pojo.CustomConditions; -import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainCreateReqVO; -import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainExportReqVO; -import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainPageReqVO; -import com.win.module.wms.controller.transferreceiptRequest.vo.TransferreceiptRequestMainUpdateReqVO; +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.transferissueRecord.vo.TransferissueRecordDetailCreateReqVO; +import com.win.module.wms.controller.transferissueRecord.vo.TransferissueRecordMainCreateReqVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailCreateReqVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestDetailUpdateReqVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainBaseVO; +import com.win.module.wms.controller.transferissueRequest.vo.TransferissueRequestMainUpdateReqVO; +import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordDetailCreateReqVO; +import com.win.module.wms.controller.transferreceiptRecord.vo.TransferreceiptRecordMainCreateReqVO; +import com.win.module.wms.controller.transferreceiptRequest.vo.*; +import com.win.module.wms.convert.transferissueJob.TransferissueJobDetailConvert; +import com.win.module.wms.convert.transferissueJob.TransferissueJobMainConvert; +import com.win.module.wms.convert.transferissueRecord.TransferissueRecordDetailConvert; +import com.win.module.wms.convert.transferissueRecord.TransferissueRecordMainConvert; +import com.win.module.wms.convert.transferissueRequest.TransferissueRequestDetailConvert; +import com.win.module.wms.convert.transferissueRequest.TransferissueRequestMainConvert; +import com.win.module.wms.convert.transferreceiptJob.TransferreceiptJobDetailConvert; +import com.win.module.wms.convert.transferreceiptJob.TransferreceiptJobMainConvert; +import com.win.module.wms.convert.transferreceiptRecord.TransferreceiptRecordDetailConvert; +import com.win.module.wms.convert.transferreceiptRecord.TransferreceiptRecordMainConvert; +import com.win.module.wms.convert.transferreceiptRequest.TransferreceiptRequestDetailConvert; +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.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.requestsetting.RequestsettingDO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobDetailDO; +import com.win.module.wms.dal.dataobject.transferissueJob.TransferissueJobMainDO; +import com.win.module.wms.dal.dataobject.transferissueRecord.TransferissueRecordMainDO; +import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestDetailDO; +import com.win.module.wms.dal.dataobject.transferissueRequest.TransferissueRequestMainDO; +import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobDetailDO; +import com.win.module.wms.dal.dataobject.transferreceiptJob.TransferreceiptJobMainDO; +import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordDetailDO; +import com.win.module.wms.dal.dataobject.transferreceiptRecord.TransferreceiptRecordMainDO; +import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestDetailDO; +import com.win.module.wms.dal.mysql.transferreceiptJob.TransferreceiptJobDetailMapper; +import com.win.module.wms.dal.mysql.transferreceiptJob.TransferreceiptJobMainMapper; +import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordDetailMapper; +import com.win.module.wms.dal.mysql.transferreceiptRecord.TransferreceiptRecordMainMapper; +import com.win.module.wms.dal.mysql.transferreceiptRequest.TransferreceiptRequestDetailMapper; +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.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 javax.annotation.Resource; + +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; +import java.time.LocalDateTime; import java.util.*; - import com.win.module.wms.dal.dataobject.transferreceiptRequest.TransferreceiptRequestMainDO; import com.win.framework.common.pojo.PageResult; - import com.win.module.wms.convert.transferreceiptRequest.TransferreceiptRequestMainConvert; import com.win.module.wms.dal.mysql.transferreceiptRequest.TransferreceiptRequestMainMapper; - 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.*; /** @@ -31,14 +88,270 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq @Resource private TransferreceiptRequestMainMapper transferreceiptRequestMainMapper; + @Resource + private RequestsettingService requestsettingService; + @Resource + private JobUtils jobUtils; + @Resource + private LocationService locationService; + @Resource + private ItembasicService itembasicService; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; + @Resource + private TransferreceiptRequestDetailMapper transferreceiptRequestDetailMapper; + @Resource + private TrendsApi trendsApi; + @Resource + private TransferreceiptRecordMainMapper transferreceiptRecordMainMapper; + @Resource + private RecordsettingService recordsettingService; + @Resource + private TransferreceiptRecordDetailMapper transferreceiptRecordDetailMapper; + @Resource + private JobsettingService jobsettingService; + @Resource + private TransferreceiptJobMainMapper transferreceiptJobMainMapper; + @Resource + private TransferreceiptJobDetailMapper transferreceiptJobDetailMapper; + @Resource + private ExpectinService expectinService; @Override public Long createTransferreceiptRequestMain(TransferreceiptRequestMainCreateReqVO createReqVO) { - // 插入 - TransferreceiptRequestMainDO transferreceiptRequestMain = TransferreceiptRequestMainConvert.INSTANCE.convert(createReqVO); - transferreceiptRequestMainMapper.insert(transferreceiptRequestMain); - // 返回 - return transferreceiptRequestMain.getId(); + // Setting-----QReqs + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferReceiptRequest"); + TransferreceiptRequestMainDO transferreceiptRequestMainDO = validatorToCreate(createReqVO,requestsettingDO); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(transferreceiptRequestMainDO.getStatus())) { + List detailDOList = transferreceiptRequestDetailMapper.selectList(transferreceiptRequestMainDO.getId()); + this.generateJob(transferreceiptRequestMainDO,detailDOList); + } + trendsApi.createTrends(requestsettingDO.getId(), "TransferReceiptRequest", "增加了调拨入库申请", TrendsTypeEnum.CREATE); + return transferreceiptRequestMainDO.getId(); + } + + private void generateJob(TransferreceiptRequestMainDO mainDO, List detailDOList) { + //跳过任务直接生成记录 + if("TRUE".equals(mainDO.getDirectCreateRecord())) { + TransferreceiptRecordMainCreateReqVO transferreceiptRecordMainCreateReqVO = new TransferreceiptRecordMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, transferreceiptRecordMainCreateReqVO); + transferreceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber()); + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_RECORD.getCode()); + transferreceiptRecordMainCreateReqVO.setNumber(number); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRecord"); + transferreceiptRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); + transferreceiptRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + transferreceiptRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType()); + String interFaceType = recordsettingService.selectRecordsettingExist("TransferReceiptRecord").getInterfaceType(); + transferreceiptRecordMainCreateReqVO.setInterfaceType(interFaceType); + transferreceiptRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now()); + transferreceiptRecordMainCreateReqVO.setActiveDate(LocalDateTime.now()); + transferreceiptRecordMainCreateReqVO.setAvailable("TRUE"); + transferreceiptRecordMainCreateReqVO.setDueTime(mainDO.getDueTime()); + transferreceiptRecordMainCreateReqVO.setId(null); + transferreceiptRecordMainCreateReqVO.setCreator(null); + transferreceiptRecordMainCreateReqVO.setCreateTime(null); + TransferreceiptRecordMainDO transferreceiptRecordMainDO = TransferreceiptRecordMainConvert.INSTANCE.convert(transferreceiptRecordMainCreateReqVO); + transferreceiptRecordMainMapper.insert(transferreceiptRecordMainDO); + for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO : detailDOList) { + TransferreceiptRecordDetailCreateReqVO transferreceiptRecordDetailCreateReqVO = new TransferreceiptRecordDetailCreateReqVO(); + BeanUtils.copyProperties(transferreceiptRequestDetailDO, transferreceiptRecordDetailCreateReqVO); + transferreceiptRecordDetailCreateReqVO.setNumber(number); + transferreceiptRecordDetailCreateReqVO.setMasterId(String.valueOf(transferreceiptRequestDetailDO.getId())); + transferreceiptRecordDetailCreateReqVO.setFromPackingNumber(transferreceiptRequestDetailDO.getPackingNumber()); + transferreceiptRecordDetailCreateReqVO.setToPackingNumber(transferreceiptRequestDetailDO.getPackingNumber()); + transferreceiptRecordDetailCreateReqVO.setFromContainerNumber(transferreceiptRequestDetailDO.getContainerNumber()); + transferreceiptRecordDetailCreateReqVO.setToContainerNumber(transferreceiptRequestDetailDO.getContainerNumber()); + transferreceiptRecordDetailCreateReqVO.setFromBatch(transferreceiptRequestDetailDO.getBatch()); + transferreceiptRecordDetailCreateReqVO.setToBatch(transferreceiptRequestDetailDO.getBatch()); + transferreceiptRecordDetailCreateReqVO.setInventoryStatus(transferreceiptRequestDetailDO.getInventoryStatus()); + transferreceiptRecordDetailCreateReqVO.setFromLocationGroupCode(transferreceiptRequestDetailDO.getFromLocationCode()); + transferreceiptRecordDetailCreateReqVO.setFromAreaCode(transferreceiptRequestDetailDO.getFromLocationCode()); + TransferreceiptRecordDetailDO transferreceiptRecordDetailDO = TransferreceiptRecordDetailConvert.INSTANCE.convert(transferreceiptRecordDetailCreateReqVO); + transferreceiptRecordDetailMapper.insert(transferreceiptRecordDetailDO); + } + return; + } + // 任务 主表数据创建 + TransferreceiptJobMainDO transferreceiptJobMainDO = TransferreceiptJobMainConvert.INSTANCE.convert(mainDO); + BeanUtils.copyProperties(mainDO,transferreceiptJobMainDO); + // DBT——>DBT3("TransferReceiptJob") + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptJob"); + transferreceiptJobMainDO.setBusinessType(businesstypeDO.getCode()); + // Setting——>QJobS("TransferReceiptJob") + JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("TransferReceiptJob"); + transferreceiptJobMainDO.setRequestNumber(mainDO.getNumber()); + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_DELIVER_JOB.getCode()); + transferreceiptJobMainDO.setRequestDueTime(mainDO.getDueTime()); + transferreceiptJobMainDO.setNumber(number); + transferreceiptJobMainDO.setId(null); + transferreceiptJobMainDO.setCreateTime(null); + transferreceiptJobMainDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); + transferreceiptJobMainDO.setUpdateTime(null); + transferreceiptJobMainDO.setUpdater(null); + transferreceiptJobMainDO.setAutoComplete(jobsettingDO.getAutoComplete()); + transferreceiptJobMainDO.setAllowModifyLocation(jobsettingDO.getAllowModifyLocation()); + transferreceiptJobMainDO.setAllowModifyQty(jobsettingDO.getAllowModifyQty()); + transferreceiptJobMainDO.setAllowBiggerQty(jobsettingDO.getAllowBiggerQty()); + transferreceiptJobMainDO.setAllowSmallerQty(jobsettingDO.getAllowSmallerQty()); + transferreceiptJobMainDO.setAllowModifyInventoryStatus(jobsettingDO.getAllowModifyInventoryStatus()); + transferreceiptJobMainDO.setAllowContinuousScanning(jobsettingDO.getAllowContinuousScanning()); + transferreceiptJobMainDO.setAllowPartialComplete(jobsettingDO.getAllowPartialComplete()); + transferreceiptJobMainDO.setAllowModifyPackingNumber(jobsettingDO.getAllowModifyPackingNumber()); + transferreceiptJobMainDO.setAllowModifyBatch(jobsettingDO.getAllowModifyBach()); + transferreceiptJobMainDO.setStatus(JobStatusEnum.PENDING.getCode()); + transferreceiptJobMainDO.setInInventoryStatuses(businesstypeDO.getInInventoryStatuses());//入库库存状态范围 + transferreceiptJobMainDO.setOutInventoryStatuses(businesstypeDO.getOutInventoryStatuses());//出库库存状态范围 + transferreceiptJobMainMapper.insert(transferreceiptJobMainDO); + + // 任务 子表数据创建 + List expectinCreateReqVOList = new ArrayList<>(); + List transferreceiptJobDetailDOList = new ArrayList<>(); + for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO:detailDOList){ + TransferreceiptJobDetailDO transferreceiptJobDetailDO = TransferreceiptJobDetailConvert.INSTANCE.convert(transferreceiptRequestDetailDO); + BeanUtils.copyProperties(transferreceiptRequestDetailDO, transferreceiptJobDetailDO); + transferreceiptJobDetailDO.setId(null); + transferreceiptJobDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); + transferreceiptJobDetailDO.setCreateTime(null); + transferreceiptJobDetailDO.setUpdater(null); + transferreceiptJobDetailDO.setUpdateTime(null); + transferreceiptJobDetailDO.setMasterId(transferreceiptJobMainDO.getId()); + transferreceiptJobDetailDO.setNumber(number); + transferreceiptJobDetailDOList.add(transferreceiptJobDetailDO); + //预计出 + ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); + BeanUtils.copyProperties(transferreceiptRequestDetailDO, expectinCreateReqVO); + expectinCreateReqVO.setJobNumber(number); + expectinCreateReqVO.setBusinessType(transferreceiptJobMainDO.getBusinessType()); + expectinCreateReqVO.setLocationCode(transferreceiptRequestDetailDO.getFromLocationCode()); + expectinCreateReqVO.setOwnerCode(transferreceiptRequestDetailDO.getFromOwnerCode()); + expectinCreateReqVO.setQty(transferreceiptRequestDetailDO.getQty()); + expectinCreateReqVOList.add(expectinCreateReqVO); + } + if(transferreceiptJobDetailDOList.size() > 0){ + transferreceiptJobDetailMapper.insertBatch(transferreceiptJobDetailDOList); + } + //增加预计入 + expectinService.createExpectin(expectinCreateReqVOList); + trendsApi.createTrends(transferreceiptJobMainDO.getId(), "TransferReceiptJob", "调拨入库申请生成调拨入库任务", TrendsTypeEnum.CREATE); + } + + private TransferreceiptRequestMainDO validatorToCreate(TransferreceiptRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) { + // DBT——>DBT3("TransferReceiptRequest") + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRequest"); + + TransferreceiptRequestMainDO transferreceiptRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO); + List subList = createReqVO.getSubList(); + List subDOList = TransferreceiptRequestDetailConvert.INSTANCE.convertList03(subList); + for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO: subDOList){ + // 校验业务类型 + validateDetailMethod(transferreceiptRequestDetailDO,businesstypeDO,transferreceiptRequestMainDO); + } + String number = serialNumberApi.generateCode(RuleCodeEnum.TRANSFER_RECEIPT_REQUEST.getCode()); + transferreceiptRequestMainDO.setNumber(number); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute()); + transferreceiptRequestMainDO.setStatus(requestStatusState.getState().getCode()); + transferreceiptRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + transferreceiptRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + transferreceiptRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + transferreceiptRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + // 设置部门 + Long userId = getLoginUserId(); + AdminUserRespDTO userRespDTO = userApi.getUser(userId); + transferreceiptRequestMainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); + transferreceiptRequestMainDO.setStatus(requestStatusState.getState().getCode()); + transferreceiptRequestMainMapper.insert(transferreceiptRequestMainDO); + for(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO: subDOList){ + transferreceiptRequestDetailDO.setMasterId(transferreceiptRequestMainDO.getId()); + transferreceiptRequestDetailDO.setNumber(transferreceiptRequestMainDO.getNumber()); + } + transferreceiptRequestDetailMapper.insertBatch(subDOList); + return transferreceiptRequestMainDO; + } + + private void validateDetailMethod(TransferreceiptRequestDetailDO transferreceiptRequestDetailDO, BusinesstypeDO businesstypeDO, TransferreceiptRequestMainDO transferreceiptRequestMainDO) { + transferreceiptRequestDetailDO.setCreateTime(LocalDateTime.now()); + // BQ——>QL 校验来源/目标库位基础信息 + LocationDO tolocationDO = validatorLocation(transferreceiptRequestDetailDO.getToLocationCode()); + if(tolocationDO == null){ + throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferreceiptRequestDetailDO.getToLocationCode()); + } + LocationDO fromlocationDO = validatorLocation(transferreceiptRequestDetailDO.getFromLocationCode()); + if(fromlocationDO == null){ + throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_LOCALTIONCODE_NOT_EXISTS, transferreceiptRequestDetailDO.getFromLocationCode()); + } + // BQ----QI 校验物品基础信息 + ItembasicDO item = validatorItembasic(transferreceiptRequestDetailDO.getItemCode()); + if(item == null){ + throw exception(TRANSFERRECEIPT_REQUEST_DETAIL_ITEM_NOT_EXISTS, transferreceiptRequestDetailDO.getItemCode()); + } + transferreceiptRequestDetailDO.setItemDesc1(item.getDesc1()); + transferreceiptRequestDetailDO.setItemDesc2(item.getDesc2()); + transferreceiptRequestDetailDO.setItemName(item.getName()); + transferreceiptRequestDetailDO.setUom(item.getUom()); + transferreceiptRequestDetailDO.setProjectCode(item.getProject()); + // DBT——>DBT2——>LO 校验来源库位 + jobUtils.ifInToLocationType(transferreceiptRequestDetailDO.getFromLocationCode(), businesstypeDO); + // DBT——>DBT2——>LO 校验目标库位 + jobUtils.ifInToLocationType(transferreceiptRequestDetailDO.getToLocationCode(), businesstypeDO); + // DBT——>DBT2——>SO 校验库存状态 + jobUtils.ifOutInventoryStatuses(transferreceiptRequestDetailDO.getInventoryStatus(), businesstypeDO); + // TB——>TB1 校验库存余额是否存在 + List balance = validatebalance(transferreceiptRequestDetailDO); + for(BalanceDO balancedo: balance ) { + transferreceiptRequestMainDO.setFromWarehouseCode(balancedo.getWarehouseCode()); + } + transferreceiptRequestMainDO.setBusinessType(businesstypeDO.getCode()); + transferreceiptRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + transferreceiptRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + transferreceiptRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + transferreceiptRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + } + + private List validatebalance(TransferreceiptRequestDetailDO detailDo) { + List inventoryStatus = new ArrayList<>(); + inventoryStatus.add(detailDo.getInventoryStatus()); + List balanceDO = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), detailDo.getBatch(), detailDo.getToLocationCode(), inventoryStatus); + return balanceDO; + } + + private LocationDO validatorLocation(String Location){ + return locationService.selectLocation(Location); + } + + private ItembasicDO validatorItembasic(String itemCode) { + return itembasicService.selectItembasic(itemCode); + } + + private TransferreceiptRequestMainDO validateMainMethod(TransferreceiptRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) { + TransferreceiptRequestMainDO transferreceiptRequestMainDO = TransferreceiptRequestMainConvert.INSTANCE.convert(baseVO); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(transferreceiptRequestMainDO.getAutoCommit(), transferreceiptRequestMainDO.getAutoAgree(), transferreceiptRequestMainDO.getAutoExecute()); + transferreceiptRequestMainDO.setStatus(requestStatusState.getState().getCode()); + transferreceiptRequestMainDO.setRequestTime(LocalDateTime.now()); + transferreceiptRequestMainDO.setCreateTime(LocalDateTime.now()); + // validordurtime(transferreceiptRequestMainDO.getDueTime()); + transferreceiptRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree()); + transferreceiptRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit()); + transferreceiptRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute()); + transferreceiptRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + transferreceiptRequestMainDO.setBusinessType(businesstypeDO.getCode()); + transferreceiptRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + transferreceiptRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + transferreceiptRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + transferreceiptRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + return transferreceiptRequestMainDO; + } + + private void validordurtime(LocalDateTime dueTime) { + if(!dueTime.isAfter(LocalDateTime.now())){ + throw exception(TIME_AFTER,LocalDateTime.now(),dueTime); + } } @Override @@ -48,13 +361,34 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq @Override public void updateTransferreceiptRequestMain(TransferreceiptRequestMainUpdateReqVO updateReqVO) { + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferReceiptRequest"); // 校验存在 validateTransferreceiptRequestMainExists(updateReqVO.getId()); - // 更新 - TransferreceiptRequestMainDO updateObj = TransferreceiptRequestMainConvert.INSTANCE.convert(updateReqVO); - transferreceiptRequestMainMapper.updateById(updateObj); + TransferreceiptRequestMainDO transferreceiptRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO); + if(RequestStatusEnum.HANDLING.getCode().equals(transferreceiptRequestMainDO.getStatus())) { + List detailDOList = transferreceiptRequestDetailMapper.selectList(transferreceiptRequestMainDO.getId()); + this.generateJob(transferreceiptRequestMainDO,detailDOList); + } + trendsApi.createTrends(requestsettingDO.getId(), "TransferReceiptRequest", "增加了调拨入库申请", TrendsTypeEnum.CREATE); } + public TransferreceiptRequestMainDO validatorToUpdate(TransferreceiptRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) { + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("TransferReceiptRequest"); + TransferreceiptRequestMainDO transferissueRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO); + //子表校验 + List subList = updateReqVO.getSubList(); + if(!subList.isEmpty()) { + List subDOList = TransferreceiptRequestDetailConvert.INSTANCE.convertList05(subList); + for (TransferreceiptRequestDetailDO transferreceiptRequestDetailDO : subDOList) { + validateDetailMethod(transferreceiptRequestDetailDO, businesstypeDO, transferissueRequestMainDO); + } + transferreceiptRequestDetailMapper.updateBatch(subDOList); + } + transferreceiptRequestMainMapper.updateById(transferissueRequestMainDO); + return transferissueRequestMainDO; + } + + @Override public void deleteTransferreceiptRequestMain(Long id) { // 校验存在 @@ -63,10 +397,12 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq transferreceiptRequestMainMapper.deleteById(id); } - private void validateTransferreceiptRequestMainExists(Long id) { - if (transferreceiptRequestMainMapper.selectById(id) == null) { + private TransferreceiptRequestMainDO validateTransferreceiptRequestMainExists(Long id) { + TransferreceiptRequestMainDO transferreceiptRequestMainDO = transferreceiptRequestMainMapper.selectById(id); + if (transferreceiptRequestMainDO == null) { throw exception(TRANSFERRECEIPT_REQUEST_MAIN_NOT_EXISTS); } + return transferreceiptRequestMainDO; } @Override @@ -89,4 +425,113 @@ public class TransferreceiptRequestMainServiceImpl implements TransferreceiptReq return transferreceiptRequestMainMapper.selectList(exportReqVO); } + @Transactional + @Override + public Integer closeTransferreceiptRequestMain(Long id) { + // 校验存在存在下级单据 + TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id); + Long count = transferreceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(TRANSFERRECEIPT_JOB_MAIN_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.close(); + if(!flag) { + throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_CLOSE); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "TransferReceiptRequest", "关闭了调拨入库申请", TrendsTypeEnum.UPDATE); + return transferreceiptRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer reAddTransferreceiptRequestMain(Long id) { + // 校验存在存在下级单据 + TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id); + Long count = transferreceiptJobMainMapper.selectByRequestNumber(mainDO.getNumber()); + if(count > 0) { + throw new ServiceException(TRANSFERRECEIPT_JOB_MAIN_EXISTS); + } + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.reAdd(); + if(!flag) { + throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_RE_ADD); + } + mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录 + trendsApi.createTrends(id, "TransferReceiptRequest", "打开了调拨入库申请", TrendsTypeEnum.UPDATE); + return transferreceiptRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer submitTransferreceiptRequestMain(Long id) { + TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute()); + if(!flag) { + throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_SUBMIT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + List detailDOList = transferreceiptRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO, detailDOList); + } + trendsApi.createTrends(id, "TransferReceiptRequest", "提交了调拨入库申请", TrendsTypeEnum.UPDATE); + return transferreceiptRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer abortTransferreceiptRequestMain(Long id) { + // 校验存在 + TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.refused(); + if(!flag) { + throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_ABORT); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + trendsApi.createTrends(id, "TransferReceiptRequest", "审批拒绝了调拨入库申请", TrendsTypeEnum.UPDATE); + return transferreceiptRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer agreeTransferreceiptRequestMain(Long id) { + // 校验存在 + TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.agree(mainDO.getAutoAgree()); + if(!flag) { + throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_AGREE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用自动执行方法 + if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) { + List detailDOList = transferreceiptRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO, detailDOList); + } + trendsApi.createTrends(id, "TransferReceiptRequest", "审批同意了调拨入库申请", TrendsTypeEnum.UPDATE); + return transferreceiptRequestMainMapper.updateById(mainDO); + } + + @Transactional + @Override + public Integer handleTransferreceiptRequestMain(Long id) { + // 校验存在 + TransferreceiptRequestMainDO mainDO = validateTransferreceiptRequestMainExists(id); + RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus()); + boolean flag = requestStatusState.handle(); + if(!flag) { + throw new ServiceException(TRANSFERRECEIPT_REQUEST_CANNOT_HANDLE); + } + mainDO.setStatus(requestStatusState.getState().getCode()); + //调用执行方法 + List detailDOList = transferreceiptRequestDetailMapper.selectList(mainDO.getId()); + this.generateJob(mainDO, detailDOList); + trendsApi.createTrends(id, "TransferReceiptRequest", "执行了调拨入库申请", TrendsTypeEnum.UPDATE); + return transferreceiptRequestMainMapper.updateById(mainDO); + } }