From 1bdbe0fc3b1a54f2327147823e31559de9a2c7e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Tue, 19 Dec 2023 19:36:55 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E6=96=99=20=E5=8F=91=E6=96=99=20?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E9=80=80=E6=96=99=20=E9=9A=94=E7=A6=BB?= =?UTF-8?q?=E9=80=80=E6=96=99=20=E5=88=B6=E5=93=81=E4=B8=8A=E6=9E=B6=20?= =?UTF-8?q?=E5=88=B6=E5=93=81=E6=94=B6=E8=B4=A7=20=E5=88=B6=E5=93=81?= =?UTF-8?q?=E6=8B=86=E8=A7=A3=20=E7=9B=B4=E6=8E=A5=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IssueRecordMainController.java | 8 + .../vo/IssueRecordMainCreateReqVO.java | 8 +- .../ProductdismantleRecordMainController.java | 2 +- ...ProductdismantleRecordMainCreateReqVO.java | 8 +- .../ProductionreturnRecordMainController.java | 2 +- ...ProductionreturnRecordMainCreateReqVO.java | 8 +- .../ProductputawayRecordMainController.java | 2 +- .../ProductputawayRecordMainCreateReqVO.java | 8 +- .../ProductreceiptRecordMainController.java | 2 +- .../ProductreceiptRecordMainCreateReqVO.java | 8 +- .../RepleinshRecordMainController.java | 4 +- .../issueRecord/IssueRecordDetailConvert.java | 4 + .../ProductdismantleRecordDetailaConvert.java | 4 + .../ProductionreturnRecordDetailConvert.java | 4 + .../ProductputawayRecordDetailConvert.java | 4 + .../ProductreceiptRecordDetailConvert.java | 4 + .../issueRecord/IssueRecordMainService.java | 2 +- .../IssueRecordMainServiceImpl.java | 145 ++++++++++++++- .../ProductdismantleRecordMainService.java | 2 +- ...ProductdismantleRecordMainServiceImpl.java | 170 +++++++++++++++++- .../ProductionreturnRecordMainService.java | 2 +- ...ProductionreturnRecordMainServiceImpl.java | 162 ++++++++++++++++- .../ProductputawayRecordMainService.java | 2 +- .../ProductputawayRecordMainServiceImpl.java | 146 ++++++++++++++- ...roductputawayRequestDetailServiceImpl.java | 6 +- .../ProductputawayRequestMainServiceImpl.java | 6 +- .../ProductreceiptRecordMainService.java | 2 +- .../ProductreceiptRecordMainServiceImpl.java | 126 ++++++++++++- .../ProductscrapRequestMainServiceImpl.java | 8 +- .../RepleinshRecordMainService.java | 2 +- .../RepleinshRecordMainServiceImpl.java | 9 +- .../RepleinshRequestMainServiceImpl.java | 1 + 32 files changed, 814 insertions(+), 57 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java index 85762577..05ba2f13 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/IssueRecordMainController.java @@ -4,6 +4,7 @@ import com.win.framework.common.pojo.CustomConditions; import com.win.framework.dict.core.util.DictFrameworkUtils; import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.dto.AdminUserRespDTO; +import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordMainCreateReqVO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; import com.win.module.wms.enums.DictTypeConstants; import com.win.module.wms.service.issueRecord.IssueRecordDetailService; @@ -48,6 +49,13 @@ public class IssueRecordMainController { @Resource private AdminUserApi userApi; + @PostMapping("/create") + @Operation(summary = "创建发料记录") + @PreAuthorize("@ss.hasPermission('wms:issue-record-main:create')") + public CommonResult createIssueRecordMain(@Valid @RequestBody IssueRecordMainCreateReqVO createReqVO) { + return success(issueRecordMainService.createIssueRecordMain(createReqVO)); + } + @GetMapping("/get") @Operation(summary = "获得发料记录主") @Parameter(name = "id", description = "编号", required = true, example = "1024") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainCreateReqVO.java index edf7ccf9..97840b16 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainCreateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.issueRecord.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO; 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 IssueRecordMainCreateReqVO extends IssueRecordMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java index eeb59505..6ed169e9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/ProductdismantleRecordMainController.java @@ -48,7 +48,7 @@ public class ProductdismantleRecordMainController { @PostMapping("/create") @Operation(summary = "创建制品拆解记录主") @PreAuthorize("@ss.hasPermission('wms:productdismantle-record-main:create')") - public CommonResult createProductdismantleRecordMain(@Valid @RequestBody ProductdismantleRecordMainCreateReqVO createReqVO) { + public CommonResult createProductdismantleRecordMain(@Valid @RequestBody ProductdismantleRecordMainCreateReqVO createReqVO) { return success(productdismantleRecordMainService.createProductdismantleRecordMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainCreateReqVO.java index 70b526a7..1e9786e7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productdismantleRecord/vo/ProductdismantleRecordMainCreateReqVO.java @@ -1,14 +1,20 @@ package com.win.module.wms.controller.productdismantleRecord.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; +import java.util.List; + @Schema(description = "管理后台 - 制品拆解记录主创建 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class ProductdismantleRecordMainCreateReqVO extends ProductdismantleRecordMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordMainController.java index 88029f7a..153edd31 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/ProductionreturnRecordMainController.java @@ -52,7 +52,7 @@ public class ProductionreturnRecordMainController { @PostMapping("/create") @Operation(summary = "创建生产退料记录主") @PreAuthorize("@ss.hasPermission('wms:productionreturn-record-main:create')") - public CommonResult createProductionreturnRecordMain(@Valid @RequestBody ProductionreturnRecordMainCreateReqVO createReqVO) { + public CommonResult createProductionreturnRecordMain(@Valid @RequestBody ProductionreturnRecordMainCreateReqVO createReqVO) { return success(productionreturnRecordMainService.createProductionreturnRecordMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/vo/ProductionreturnRecordMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/vo/ProductionreturnRecordMainCreateReqVO.java index d9f79597..39725eca 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/vo/ProductionreturnRecordMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionreturnRecord/vo/ProductionreturnRecordMainCreateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.productionreturnRecord.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO; 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 ProductionreturnRecordMainCreateReqVO extends ProductionreturnRecordMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/ProductputawayRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/ProductputawayRecordMainController.java index facafb4e..0b4e0589 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/ProductputawayRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/ProductputawayRecordMainController.java @@ -48,7 +48,7 @@ public class ProductputawayRecordMainController { @PostMapping("/create") @Operation(summary = "创建制品上架记录主") @PreAuthorize("@ss.hasPermission('wms:productputaway-record-main:create')") - public CommonResult createProductputawayRecordMain(@Valid @RequestBody ProductputawayRecordMainCreateReqVO createReqVO) { + public CommonResult createProductputawayRecordMain(@Valid @RequestBody ProductputawayRecordMainCreateReqVO createReqVO) { return success(productputawayRecordMainService.createProductputawayRecordMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainCreateReqVO.java index 52ed3f6f..2f4e1ee5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayRecord/vo/ProductputawayRecordMainCreateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.productputawayRecord.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO; 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 ProductputawayRecordMainCreateReqVO extends ProductputawayRecordMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java index 3e9d856b..94769f2c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/ProductreceiptRecordMainController.java @@ -53,7 +53,7 @@ public class ProductreceiptRecordMainController { @PostMapping("/create") @Operation(summary = "创建制品收货记录主") @PreAuthorize("@ss.hasPermission('wms:productreceipt-record-main:create')") - public CommonResult createProductreceiptRecordMain(@Valid @RequestBody ProductreceiptRecordMainCreateReqVO createReqVO) { + public CommonResult createProductreceiptRecordMain(@Valid @RequestBody ProductreceiptRecordMainCreateReqVO createReqVO) { return success(productreceiptRecordMainService.createProductreceiptRecordMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainCreateReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainCreateReqVO.java index 685ccf63..10903bdb 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainCreateReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productreceiptRecord/vo/ProductreceiptRecordMainCreateReqVO.java @@ -1,12 +1,18 @@ package com.win.module.wms.controller.productreceiptRecord.vo; +import com.win.framework.excel.core.annotations.SubObject; +import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO; 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 ProductreceiptRecordMainCreateReqVO extends ProductreceiptRecordMainBaseVO { - + @SubObject + @Schema(description = "子表数据") + private List subList; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/RepleinshRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/RepleinshRecordMainController.java index 1c81600d..c88fcc16 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/RepleinshRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/repleinshRecord/RepleinshRecordMainController.java @@ -52,9 +52,9 @@ public class RepleinshRecordMainController { @PostMapping("/create") - @Operation(summary = "创建补料记录记录") + @Operation(summary = "创建补料记录") @PreAuthorize("@ss.hasPermission('wms:repleinsh-record-main:create')") - public CommonResult createRepleinshRecordMain(@Valid @RequestBody RepleinshRecordMainCreateReqVO createReqVO) { + public CommonResult createRepleinshRecordMain(@Valid @RequestBody RepleinshRecordMainCreateReqVO createReqVO) { return success(repleinshRecordMainService.createRepleinshRecordMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java index 79eb5839..1845cd4d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/issueRecord/IssueRecordDetailConvert.java @@ -8,6 +8,8 @@ import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailExcelVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailRespVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailUpdateReqVO; +import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO; +import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; @@ -34,4 +36,6 @@ public interface IssueRecordDetailConvert { List convertList02(List list); + List convertList03(List list); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordDetailaConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordDetailaConvert.java index 7fc08416..214b7d1f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordDetailaConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productdismantleRecord/ProductdismantleRecordDetailaConvert.java @@ -8,6 +8,8 @@ import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleR import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordDetailaExcelVO; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordDetailaRespVO; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordDetailaUpdateReqVO; +import com.win.module.wms.controller.repleinshRecord.vo.RepleinshRecordDetailCreateReqVO; +import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailaDO; @@ -34,4 +36,6 @@ public interface ProductdismantleRecordDetailaConvert { List convertList02(List list); + List convertList03(List list); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRecord/ProductionreturnRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRecord/ProductionreturnRecordDetailConvert.java index cfbb865d..f419ec65 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRecord/ProductionreturnRecordDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productionreturnRecord/ProductionreturnRecordDetailConvert.java @@ -4,10 +4,12 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO; import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailCreateReqVO; import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailExcelVO; import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailRespVO; import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordDetailDO; @@ -34,4 +36,6 @@ public interface ProductionreturnRecordDetailConvert { List convertList02(List list); + List convertList03(List list); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java index 62ae71ff..7e950fa7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayRecord/ProductputawayRecordDetailConvert.java @@ -4,10 +4,12 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO; import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailCreateReqVO; import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailExcelVO; import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailRespVO; import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordDetailDO; @@ -34,4 +36,6 @@ public interface ProductputawayRecordDetailConvert { List convertList02(List list); + List convertList03(List list); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java index e52d52a8..8042d901 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productreceiptRecord/ProductreceiptRecordDetailConvert.java @@ -4,10 +4,12 @@ import java.util.*; import com.win.framework.common.pojo.PageResult; +import com.win.module.wms.controller.issueRecord.vo.IssueRecordDetailCreateReqVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailCreateReqVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailExcelVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailRespVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; import org.mapstruct.Mapper; import org.mapstruct.factory.Mappers; import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO; @@ -34,4 +36,6 @@ public interface ProductreceiptRecordDetailConvert { List convertList02(List list); + List convertList03(List list); + } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java index e96651cd..de934d10 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainService.java @@ -25,7 +25,7 @@ public interface IssueRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createIssueRecordMain(@Valid IssueRecordMainCreateReqVO createReqVO); + String createIssueRecordMain(@Valid IssueRecordMainCreateReqVO createReqVO); /** * 更新发料记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java index 16d41500..35ffb277 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java @@ -1,14 +1,39 @@ package com.win.module.wms.service.issueRecord; import com.win.framework.common.pojo.CustomConditions; +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.issueRecord.vo.IssueRecordMainCreateReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainExportReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainPageReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.mysql.issueRecord.IssueRecordDetailMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +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.issueRecord.IssueRecordMainDO; @@ -18,6 +43,7 @@ import com.win.module.wms.convert.issueRecord.IssueRecordMainConvert; import com.win.module.wms.dal.mysql.issueRecord.IssueRecordMainMapper; 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.*; /** @@ -29,16 +55,127 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*; @Validated public class IssueRecordMainServiceImpl implements IssueRecordMainService { + @Resource + private IssueRecordDetailMapper issueRecordDetailMapper; + @Resource + private TransactionService transactionService; + @Resource + private ItembasicService itembasicService; + @Resource + private LocationService locationService; @Resource private IssueRecordMainMapper issueRecordMainMapper; + @Resource + private TrendsApi trendsApi; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; + @Resource + private RecordsettingService recordsettingService; @Override - public Long createIssueRecordMain(IssueRecordMainCreateReqVO createReqVO) { + @Transactional + public String createIssueRecordMain(IssueRecordMainCreateReqVO createReqVO) { // 插入 - IssueRecordMainDO issueRecordMain = IssueRecordMainConvert.INSTANCE.convert(createReqVO); - issueRecordMainMapper.insert(issueRecordMain); + IssueRecordMainDO mainDO = IssueRecordMainConvert.INSTANCE.convert(createReqVO); + AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()); + List subDOList = IssueRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); + String number = serialNumberApi.generateCode(RuleCodeEnum.ISSUE_RECORD.getCode()); + mainDO.setNumber(number); + mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); + mainDO.setExecuteTime(LocalDateTime.now()); + mainDO.setActiveDate(LocalDateTime.now()); + mainDO.setAvailable("TRUE"); + // 业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("RepleinmentRecord"); + mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setBusinessType(businesstypeDO.getCode()); + // 接口类型 + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("RepleinmentRecord"); + mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); + issueRecordMainMapper.insert(mainDO); + + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for (IssueRecordDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); + LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode()); + if(locationDOFrom != null) { + detailDO.setFromAreaCode(locationDOFrom.getAreaCode()); + detailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode()); + if(locationDOTo != null) { + detailDO.setToAreaCode(locationDOTo.getAreaCode()); + detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + if (itembasicDO != null) { + detailDO.setItemName(itembasicDO.getName()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setProjectCode(itembasicDO.getProject()); + detailDO.setUom(itembasicDO.getUom()); + } else { + throw exception(ITEMBASIC_NOT_EXISTS); + } + // 库存事务——入 + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn); + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOIn.setBatch(detailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO); + transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); + transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + // 库存事务——出 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut); + transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus()); + transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOOut.setBatch(detailDO.getFromBatch()); + transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber()); + transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode()); + transactionCreateReqVOOut.setSinglePrice(BigDecimal.ZERO); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode()); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + } + issueRecordDetailMapper.insertBatch(subDOList); + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //增加操作记录 + trendsApi.createTrends(mainDO.getId(), "issueRecordMain", "增加了发料记录", TrendsTypeEnum.CREATE); // 返回 - return issueRecordMain.getId(); + return mainDO.getNumber(); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java index 4f25c323..8ac0e44f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainService.java @@ -25,7 +25,7 @@ public interface ProductdismantleRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createProductdismantleRecordMain(@Valid ProductdismantleRecordMainCreateReqVO createReqVO); + String createProductdismantleRecordMain(@Valid ProductdismantleRecordMainCreateReqVO createReqVO); /** * 更新制品拆解记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java index 3ecf30fa..a45ea2a5 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRecord/ProductdismantleRecordMainServiceImpl.java @@ -1,23 +1,59 @@ package com.win.module.wms.service.productdismantleRecord; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +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.productdismantleRecord.vo.ProductdismantleRecordMainCreateReqVO; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainExportReqVO; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainPageReqVO; import com.win.module.wms.controller.productdismantleRecord.vo.ProductdismantleRecordMainUpdateReqVO; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.productdismantleRecord.ProductdismantleRecordDetailaConvert; import com.win.module.wms.convert.productdismantleRecord.ProductdismantleRecordMainConvert; +import com.win.module.wms.convert.repleinshRecord.RepleinshRecordDetailConvert; +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.location.LocationDO; +import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailaDO; +import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordDetailbDO; import com.win.module.wms.dal.dataobject.productdismantleRecord.ProductdismantleRecordMainDO; +import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailaDO; +import com.win.module.wms.dal.dataobject.productdismantleRequest.ProductdismantleRequestDetailbDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.dataobject.workstation.WorkstationDO; +import com.win.module.wms.dal.mysql.productdismantleRecord.ProductdismantleRecordDetailaMapper; +import com.win.module.wms.dal.mysql.productdismantleRecord.ProductdismantleRecordDetailbMapper; import com.win.module.wms.dal.mysql.productdismantleRecord.ProductdismantleRecordMainMapper; +import com.win.module.wms.dal.mysql.productdismantleRequest.ProductdismantleRequestDetailbMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +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.service.workstation.WorkstationService; +import com.win.module.wms.util.JobUtils; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTDISMANTLE_RECORD_MAIN_NOT_EXISTS; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 制品拆解记录主 Service 实现类 @@ -28,16 +64,140 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTDISMANTLE_RECOR @Validated public class ProductdismantleRecordMainServiceImpl implements ProductdismantleRecordMainService { + @Resource + private ProductdismantleRecordDetailbMapper productdismantleRecordDetailbMapper; + @Resource + private WorkstationService workstationService; + @Resource + private ProductdismantleRequestDetailbMapper productdismantleRequestDetailbMapper; + @Resource + private ProductdismantleRecordDetailaMapper productdismantleRecordDetailaMapper; + @Resource + private TransactionService transactionService; + @Resource + private ItembasicService itembasicService; + @Resource + private LocationService locationService; + @Resource + private RecordsettingService recordsettingService; + @Resource + private TrendsApi trendsApi; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; @Resource private ProductdismantleRecordMainMapper productdismantleRecordMainMapper; @Override - public Long createProductdismantleRecordMain(ProductdismantleRecordMainCreateReqVO createReqVO) { + @Transactional + public String createProductdismantleRecordMain(ProductdismantleRecordMainCreateReqVO createReqVO) { // 插入 - ProductdismantleRecordMainDO productdismantleRecordMain = ProductdismantleRecordMainConvert.INSTANCE.convert(createReqVO); - productdismantleRecordMainMapper.insert(productdismantleRecordMain); + AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()); + ProductdismantleRecordMainDO mainDO = ProductdismantleRecordMainConvert.INSTANCE.convert(createReqVO); + List subDOList = ProductdismantleRecordDetailaConvert.INSTANCE.convertList03(createReqVO.getSubList()); + String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_RECORD.getCode()); + mainDO.setNumber(number); + mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); + mainDO.setExecuteTime(LocalDateTime.now()); + mainDO.setActiveDate(LocalDateTime.now()); + mainDO.setAvailable("TRUE"); + // 业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductDisassemble"); + mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setBusinessType(businesstypeDO.getCode()); + // 接口类型 + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("ProductDisassembleRecord"); + mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); + productdismantleRecordMainMapper.insert(mainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + // 子表b 集合 + List detailbDOList = new ArrayList<>(); + for(ProductdismantleRecordDetailaDO productdismantleRecordDetailaDO : subDOList) { + LocationDO locationDO = locationService.selectLocation(productdismantleRecordDetailaDO.getFromLocationCode()); + productdismantleRecordDetailaDO.setFromAreaCode(locationDO.getAreaCode()); + productdismantleRecordDetailaDO.setFromLocationGroupCode(locationDO.getLocationGroupCode()); + productdismantleRecordDetailaDO.setMasterId(mainDO.getId()); + productdismantleRecordDetailaMapper.insert(productdismantleRecordDetailaDO); + //添加库存事务list + // 出动作 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(productdismantleRecordDetailaDO, transactionCreateReqVOOut); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setBusinessType(mainDO.getBusinessType()); + transactionCreateReqVOOut.setOwnerCode(productdismantleRecordDetailaDO.getFromOwnerCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOOut.setPackingNumber(productdismantleRecordDetailaDO.getPackingNumber()); + transactionCreateReqVOOut.setBatch(productdismantleRecordDetailaDO.getBatch()); + transactionCreateReqVOOut.setContainerNumber(productdismantleRecordDetailaDO.getContainerNumber()); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode()); + transactionCreateReqVOOut.setLocationCode(productdismantleRecordDetailaDO.getFromLocationCode()); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + // 根据申请子表a id 查询 申请 子表b + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("master_id", productdismantleRecordDetailaDO.getId().toString()); + List productdismantleRequestDetailbDOList = productdismantleRequestDetailbMapper.selectList(queryWrapper); + for(ProductdismantleRequestDetailbDO productdismantleRequestDetailbDO:productdismantleRequestDetailbDOList) { + ProductdismantleRecordDetailbDO productdismantleRecordDetailbDO = new ProductdismantleRecordDetailbDO(); + BeanUtils.copyProperties(productdismantleRequestDetailbDO, productdismantleRecordDetailbDO); + productdismantleRecordDetailbDO.setMasterId(productdismantleRecordDetailaDO.getId()); + productdismantleRecordDetailbDO.setNumber(productdismantleRecordDetailaDO.getNumber()); + productdismantleRecordDetailbDO.setBatch("000000"); + productdismantleRecordDetailbDO.setPackingNumber(""); + productdismantleRecordDetailbDO.setInventoryStatus("OK"); + // 根据成品物品 对应工位 查询 原料库位 + WorkstationDO workstationDO = workstationService.selectWorkstationExist(productdismantleRecordDetailaDO.getWorkStationCode(),mainDO.getWorkshopCode(),productdismantleRecordDetailaDO.getProductionLineCode()); + productdismantleRecordDetailbDO.setToLocationCode(workstationDO.getRawLocationCode()); + LocationDO locationDODetailb = locationService.selectLocation(workstationDO.getRawLocationCode()); + productdismantleRecordDetailbDO.setToAreaCode(locationDODetailb.getAreaCode()); + productdismantleRecordDetailbDO.setToLocationGroupCode(locationDODetailb.getLocationGroupCode()); + productdismantleRecordDetailbDO.setId(null); + productdismantleRecordDetailbDO.setCreateTime(null); + productdismantleRecordDetailbDO.setCreator(null); + productdismantleRecordDetailbDO.setUpdateTime(null); + productdismantleRecordDetailbDO.setUpdater(null); + detailbDOList.add(productdismantleRecordDetailbDO); + //添加库存事务list + // 入动作 + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(productdismantleRecordDetailbDO, transactionCreateReqVO); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setBusinessType(mainDO.getBusinessType()); + transactionCreateReqVO.setOwnerCode(""); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + transactionCreateReqVO.setPackingNumber(productdismantleRecordDetailbDO.getPackingNumber()); + transactionCreateReqVO.setBatch(productdismantleRecordDetailbDO.getBatch()); + transactionCreateReqVO.setContainerNumber(""); + transactionCreateReqVO.setAmount(BigDecimal.ZERO); + transactionCreateReqVO.setWarehouseCode(mainDO.getFromWarehouseCode()); + transactionCreateReqVO.setLocationCode(productdismantleRecordDetailbDO.getToLocationCode()); + transactionCreateReqVOList.add(transactionCreateReqVO); + } + } + if (detailbDOList != null && detailbDOList.size() > 0) { + productdismantleRecordDetailbMapper.insertBatch(detailbDOList); + } + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //增加操作记录 + trendsApi.createTrends(mainDO.getId(), "productdismantleRecordMain", "增加了制品拆解记录", TrendsTypeEnum.CREATE); // 返回 - return productdismantleRecordMain.getId(); + return mainDO.getNumber(); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainService.java index eff77871..89b0f56a 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainService.java @@ -26,7 +26,7 @@ public interface ProductionreturnRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createProductionreturnRecordMain(@Valid ProductionreturnRecordMainCreateReqVO createReqVO); + String createProductionreturnRecordMain(@Valid ProductionreturnRecordMainCreateReqVO createReqVO); /** * 更新生产退料记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java index 1373f14f..8f065140 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionreturnRecord/ProductionreturnRecordMainServiceImpl.java @@ -2,23 +2,52 @@ package com.win.module.wms.service.productionreturnRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +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.productionreturnRecord.vo.ProductionreturnRecordMainCreateReqVO; import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordMainExportReqVO; import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordMainPageReqVO; import com.win.module.wms.controller.productionreturnRecord.vo.ProductionreturnRecordMainUpdateReqVO; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert; +import com.win.module.wms.convert.productionreturnRecord.ProductionreturnRecordDetailConvert; import com.win.module.wms.convert.productionreturnRecord.ProductionreturnRecordMainConvert; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; +import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; +import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; +import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; +import com.win.module.wms.dal.dataobject.location.LocationDO; +import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordDetailDO; import com.win.module.wms.dal.dataobject.productionreturnRecord.ProductionreturnRecordMainDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.mysql.productionreturnRecord.ProductionreturnRecordDetailMapper; import com.win.module.wms.dal.mysql.productionreturnRecord.ProductionreturnRecordMainMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +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 org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_RECORD_MAIN_NOT_EXISTS; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 生产退料记录主 Service 实现类 @@ -29,16 +58,139 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTIONRETURN_RECOR @Validated public class ProductionreturnRecordMainServiceImpl implements ProductionreturnRecordMainService { + @Resource + private ProductionreturnRecordDetailMapper productionreturnRecordDetailMapper; + @Resource + private TransactionService transactionService; + @Resource + private ItembasicService itembasicService; + @Resource + private LocationService locationService; + @Resource + private TrendsApi trendsApi; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; + @Resource + private RecordsettingService recordsettingService; @Resource private ProductionreturnRecordMainMapper productionreturnRecordMainMapper; @Override - public Long createProductionreturnRecordMain(ProductionreturnRecordMainCreateReqVO createReqVO) { + @Transactional + public String createProductionreturnRecordMain(ProductionreturnRecordMainCreateReqVO createReqVO) { // 插入 - ProductionreturnRecordMainDO productionreturnRecordMain = ProductionreturnRecordMainConvert.INSTANCE.convert(createReqVO); - productionreturnRecordMainMapper.insert(productionreturnRecordMain); + AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()); + ProductionreturnRecordMainDO mainDO = ProductionreturnRecordMainConvert.INSTANCE.convert(createReqVO); + List subDOList = ProductionreturnRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); + // 判断是合格还是隔离 + BusinesstypeDO businesstypeDO; + String number; + // 合格 + if (mainDO.getBusinessType().equals("ReturnToStore")) { + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ReturnToStoreRecord"); + number = serialNumberApi.generateCode(RuleCodeEnum.RETURN_TO_STORE_REQUEST.getCode()); + } else { // 隔离 + businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ReturnToHoldRecord"); + number = serialNumberApi.generateCode(RuleCodeEnum.RETURN_TO_HOLD.getCode()); + } + mainDO.setNumber(number); + mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); + mainDO.setExecuteTime(LocalDateTime.now()); + mainDO.setActiveDate(LocalDateTime.now()); + mainDO.setAvailable("TRUE"); + // 业务类型 + mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setBusinessType(businesstypeDO.getCode()); + // 接口类型 + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("ProductionReturnRecord"); + mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); + productionreturnRecordMainMapper.insert(mainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for (ProductionreturnRecordDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); + LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode()); + if(locationDOFrom != null) { + detailDO.setFromAreaCode(locationDOFrom.getAreaCode()); + detailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode()); + if(locationDOTo != null) { + detailDO.setToAreaCode(locationDOTo.getAreaCode()); + detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + if (itembasicDO != null) { + detailDO.setItemName(itembasicDO.getName()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setProjectCode(itembasicDO.getProject()); + detailDO.setUom(itembasicDO.getUom()); + } else { + throw exception(ITEMBASIC_NOT_EXISTS); + } + // 库存事务——入 + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn); + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOIn.setBatch(detailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO); + transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); + transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + // 库存事务——出 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut); + transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus()); + transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOOut.setBatch(detailDO.getFromBatch()); + transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber()); + transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode()); + transactionCreateReqVOOut.setSinglePrice(BigDecimal.ZERO); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode()); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + } + productionreturnRecordDetailMapper.insertBatch(subDOList); + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //增加操作记录 + if (mainDO.getBusinessType().equals("ReturnToStore")) { + trendsApi.createTrends(mainDO.getId(), "productionreturnRecordMain", "增加了合格退料记录", TrendsTypeEnum.CREATE); + } else { + trendsApi.createTrends(mainDO.getId(), "productionreturnRecordMain", "增加了隔离退料记录", TrendsTypeEnum.CREATE); + } // 返回 - return productionreturnRecordMain.getId(); + return mainDO.getNumber(); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainService.java index fbd1166f..a549c3a2 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainService.java @@ -25,7 +25,7 @@ public interface ProductputawayRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createProductputawayRecordMain(@Valid ProductputawayRecordMainCreateReqVO createReqVO); + String createProductputawayRecordMain(@Valid ProductputawayRecordMainCreateReqVO createReqVO); /** * 更新制品上架记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainServiceImpl.java index 2b11f137..70d9436c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRecord/ProductputawayRecordMainServiceImpl.java @@ -2,22 +2,48 @@ package com.win.module.wms.service.productputawayRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +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.productputawayRecord.vo.ProductputawayRecordMainCreateReqVO; import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordMainExportReqVO; import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordMainPageReqVO; import com.win.module.wms.controller.productputawayRecord.vo.ProductputawayRecordMainUpdateReqVO; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.productputawayRecord.ProductputawayRecordDetailConvert; import com.win.module.wms.convert.productputawayRecord.ProductputawayRecordMainConvert; +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.location.LocationDO; +import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordDetailDO; import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordMainDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.mysql.productputawayRecord.ProductputawayRecordDetailMapper; import com.win.module.wms.dal.mysql.productputawayRecord.ProductputawayRecordMainMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +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 org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_RECORD_MAIN_NOT_EXISTS; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 制品上架记录主 Service 实现类 @@ -28,16 +54,126 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_RECORD_ @Validated public class ProductputawayRecordMainServiceImpl implements ProductputawayRecordMainService { + @Resource + private ProductputawayRecordDetailMapper productputawayRecordDetailMapper; + @Resource + private TransactionService transactionService; + @Resource + private ItembasicService itembasicService; + @Resource + private LocationService locationService; + @Resource + private RecordsettingService recordsettingService; + @Resource + private TrendsApi trendsApi; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; @Resource private ProductputawayRecordMainMapper productputawayRecordMainMapper; @Override - public Long createProductputawayRecordMain(ProductputawayRecordMainCreateReqVO createReqVO) { + @Transactional + public String createProductputawayRecordMain(ProductputawayRecordMainCreateReqVO createReqVO) { // 插入 - ProductputawayRecordMainDO productputawayRecordMain = ProductputawayRecordMainConvert.INSTANCE.convert(createReqVO); - productputawayRecordMainMapper.insert(productputawayRecordMain); + AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()); + ProductputawayRecordMainDO mainDO = ProductputawayRecordMainConvert.INSTANCE.convert(createReqVO); + List subDOList = ProductputawayRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); + String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_RECORD.getCode()); + mainDO.setNumber(number); + mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); + mainDO.setExecuteTime(LocalDateTime.now()); + mainDO.setActiveDate(LocalDateTime.now()); + mainDO.setAvailable("TRUE"); + // 业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRecord"); + mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setBusinessType(businesstypeDO.getCode()); + // 接口类型 + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("MaterialReturnRecord"); + mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); + productputawayRecordMainMapper.insert(mainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for (ProductputawayRecordDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); + LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode()); + if(locationDOFrom != null) { + detailDO.setFromAreaCode(locationDOFrom.getAreaCode()); + detailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode()); + if(locationDOTo != null) { + detailDO.setToAreaCode(locationDOTo.getAreaCode()); + detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + if (itembasicDO != null) { + detailDO.setItemName(itembasicDO.getName()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setProjectCode(itembasicDO.getProject()); + detailDO.setUom(itembasicDO.getUom()); + } else { + throw exception(ITEMBASIC_NOT_EXISTS); + } + // 库存事务——入 + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn); + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOIn.setBatch(detailDO.getToBatch()); + transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO); + transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); + transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + // 库存事务——出 + TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut); + transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); + transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); + transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); + transactionCreateReqVOOut.setRecordNumber(number); + transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus()); + transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOOut.setBatch(detailDO.getFromBatch()); + transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber()); + transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode()); + transactionCreateReqVOOut.setSinglePrice(BigDecimal.ZERO); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); + transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode()); + transactionCreateReqVOOut.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOOut); + } + productputawayRecordDetailMapper.insertBatch(subDOList); + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //增加操作记录 + trendsApi.createTrends(mainDO.getId(), "productputawayRecordMain", "增加了制品上架记录", TrendsTypeEnum.CREATE); // 返回 - return productputawayRecordMain.getId(); + return mainDO.getNumber(); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailServiceImpl.java index ee830e9c..c5ed0834 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestDetailServiceImpl.java @@ -98,10 +98,8 @@ public class ProductputawayRequestDetailServiceImpl implements ProductputawayReq return productputawayRequestDetailDO; } - public String isqty(BigDecimal qty1, BigDecimal qty2) { - if(qty1.compareTo(qty2) < 0){ - return "ture"; - } else { + public void isqty(BigDecimal qty1, BigDecimal qty2) { + if(qty1.compareTo(qty2) == 1){ throw exception(QTY_ERRORR,qty2,qty1); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java index a17bf363..409afc51 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java @@ -294,10 +294,8 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque } } - public String isqty(BigDecimal qty1, BigDecimal qty2) { - if(qty1.compareTo(qty2) < 0){ - return "ture"; - } else { + public void isqty(BigDecimal qty1, BigDecimal qty2) { + if(qty1.compareTo(qty2) == 1){ throw exception(QTY_ERRORR,qty2,qty1); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java index f259029e..ef562497 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainService.java @@ -25,7 +25,7 @@ public interface ProductreceiptRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createProductreceiptRecordMain(@Valid ProductreceiptRecordMainCreateReqVO createReqVO); + String createProductreceiptRecordMain(@Valid ProductreceiptRecordMainCreateReqVO createReqVO); /** * 更新制品收货记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java index 65a03c94..d6443e6f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptRecord/ProductreceiptRecordMainServiceImpl.java @@ -2,23 +2,52 @@ package com.win.module.wms.service.productreceiptRecord; import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.PageResult; +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.productreceiptRecord.vo.ProductreceiptRecordMainCreateReqVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainExportReqVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainPageReqVO; import com.win.module.wms.controller.productreceiptRecord.vo.ProductreceiptRecordMainUpdateReqVO; +import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; +import com.win.module.wms.convert.productreceiptRecord.ProductreceiptRecordDetailConvert; import com.win.module.wms.convert.productreceiptRecord.ProductreceiptRecordMainConvert; +import com.win.module.wms.convert.repleinshRecord.RepleinshRecordDetailConvert; import com.win.module.wms.dal.dataobject.accountcalendar.AccountcalendarDO; +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.location.LocationDO; +import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.productreceiptRecord.ProductreceiptRecordMainDO; +import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; +import com.win.module.wms.dal.dataobject.repleinshRecord.RepleinshRecordDetailDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; +import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.productreceiptRecord.ProductreceiptRecordMainMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.location.LocationService; +import com.win.module.wms.service.productreceiptJob.ProductreceiptJobMainService; +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 org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; -import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTRECEIPT_RECORD_MAIN_NOT_EXISTS; +import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; +import static com.win.module.wms.enums.ErrorCodeConstants.*; /** * 制品收货记录主 Service 实现类 @@ -29,16 +58,103 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTRECEIPT_RECORD_ @Validated public class ProductreceiptRecordMainServiceImpl implements ProductreceiptRecordMainService { + @Resource + private ProductreceiptJobMainService productreceiptJobMainService; + @Resource + private ProductreceiptRecordDetailMapper productreceiptRecordDetailMapper; + @Resource + private TransactionService transactionService; + @Resource + private ItembasicService itembasicService; + @Resource + private LocationService locationService; + @Resource + private RecordsettingService recordsettingService; + @Resource + private TrendsApi trendsApi; + @Resource + private JobUtils jobUtils; + @Resource + private SerialNumberApi serialNumberApi; + @Resource + private AdminUserApi userApi; @Resource private ProductreceiptRecordMainMapper productreceiptRecordMainMapper; @Override - public Long createProductreceiptRecordMain(ProductreceiptRecordMainCreateReqVO createReqVO) { + @Transactional + public String createProductreceiptRecordMain(ProductreceiptRecordMainCreateReqVO createReqVO) { // 插入 - ProductreceiptRecordMainDO productreceiptRecordMain = ProductreceiptRecordMainConvert.INSTANCE.convert(createReqVO); - productreceiptRecordMainMapper.insert(productreceiptRecordMain); + AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()); + ProductreceiptRecordMainDO mainDO = ProductreceiptRecordMainConvert.INSTANCE.convert(createReqVO); + List subDOList = ProductreceiptRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); + String number = serialNumberApi.generateCode(RuleCodeEnum.REPLEINMENT_RECORD.getCode()); + mainDO.setNumber(number); + mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); + mainDO.setExecuteTime(LocalDateTime.now()); + mainDO.setActiveDate(LocalDateTime.now()); + mainDO.setAvailable("TRUE"); + // 业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductReceiptRecord"); + mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setBusinessType(businesstypeDO.getCode()); + // 接口类型 + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("ProductPutawayRecord"); + mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); + productreceiptRecordMainMapper.insert(mainDO); + //库存事务 + List transactionCreateReqVOList = new ArrayList<>(); + for (ProductreceiptRecordDetailDO detailDO : subDOList) { + detailDO.setMasterId(mainDO.getId()); + detailDO.setNumber(number); + LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode()); + if(locationDOTo != null) { + detailDO.setToAreaCode(locationDOTo.getAreaCode()); + detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode()); + } else { + throw exception(LOCATION_NOT_EXISTS); + } + ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); + if (itembasicDO != null) { + detailDO.setItemName(itembasicDO.getName()); + detailDO.setItemDesc1(itembasicDO.getDesc1()); + detailDO.setItemDesc2(itembasicDO.getDesc2()); + detailDO.setProjectCode(itembasicDO.getProject()); + detailDO.setUom(itembasicDO.getUom()); + } else { + throw exception(ITEMBASIC_NOT_EXISTS); + } + productreceiptRecordDetailMapper.insert(detailDO); + // 库存事务——入 + TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); + BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn); + transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); + transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); + transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId())); + transactionCreateReqVOIn.setBatch(detailDO.getBatch()); + transactionCreateReqVOIn.setPackingNumber(detailDO.getPackingNumber()); + transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus()); + transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode()); + transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO); + transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); + transactionCreateReqVOIn.setWarehouseCode(mainDO.getToWarehouseCode()); + transactionCreateReqVOIn.setRecordNumber(number); + transactionCreateReqVOIn.setId(null); + transactionCreateReqVOList.add(transactionCreateReqVOIn); + } + // 创建第二子表回冲记录及库存事务 + productreceiptJobMainService.generateBackflushRecord(mainDO,subDOList); + //增加库存事务 + transactionService.createTransaction(transactionCreateReqVOList); + //增加操作记录 + trendsApi.createTrends(mainDO.getId(), "repleinshRecordMain", "增加了补料记录", TrendsTypeEnum.CREATE); // 返回 - return productreceiptRecordMain.getId(); + return mainDO.getNumber(); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java index 012673ea..41ac564e 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java @@ -419,11 +419,9 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa } } - private String validatorQty(BigDecimal qty1, BigDecimal qty2) { - if (qty1.compareTo(qty2) < 0) { - return "ture"; - } else { - throw exception(QTY_ERRORR, qty2, qty1); + private void validatorQty(BigDecimal qty1, BigDecimal qty2) { + if(qty1.compareTo(qty2) == 1){ + throw exception(QTY_ERRORR,qty2,qty1); } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainService.java index 4f8cc4eb..d7d4d203 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainService.java @@ -21,7 +21,7 @@ public interface RepleinshRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createRepleinshRecordMain(@Valid RepleinshRecordMainCreateReqVO createReqVO); + String createRepleinshRecordMain(@Valid RepleinshRecordMainCreateReqVO createReqVO); /** * 获得用高级搜索户分页列表 * diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java index cea00a01..3559ea10 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRecord/RepleinshRecordMainServiceImpl.java @@ -28,6 +28,8 @@ 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; @@ -75,7 +77,8 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic private RepleinshRecordMainMapper repleinshRecordMainMapper; @Override - public Long createRepleinshRecordMain(RepleinshRecordMainCreateReqVO createReqVO) { + @Transactional + public String createRepleinshRecordMain(RepleinshRecordMainCreateReqVO createReqVO) { // 插入 AdminUserRespDTO userRespDTO = userApi.getUser(getLoginUserId()); RepleinshRecordMainDO mainDO = RepleinshRecordMainConvert.INSTANCE.convert(createReqVO); @@ -112,7 +115,7 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic throw exception(LOCATION_NOT_EXISTS); } LocationDO locationDOTo = locationService.selectLocation(detailDO.getToLocationCode()); - if(locationDOFrom != null) { + if(locationDOTo != null) { detailDO.setToAreaCode(locationDOTo.getAreaCode()); detailDO.setToLocationGroupCode(locationDOTo.getLocationGroupCode()); } else { @@ -171,7 +174,7 @@ public class RepleinshRecordMainServiceImpl implements RepleinshRecordMainServic //增加操作记录 trendsApi.createTrends(mainDO.getId(), "repleinshRecordMain", "增加了补料记录", TrendsTypeEnum.CREATE); // 返回 - return mainDO.getId(); + return mainDO.getNumber(); } @Override public PageResult getRepleinshRecordMainSenior(CustomConditions conditions) { diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java index 1b34fa45..150ca72d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/repleinshRequest/RepleinshRequestMainServiceImpl.java @@ -547,6 +547,7 @@ public class RepleinshRequestMainServiceImpl implements RepleinshRequestMainServ // 根据发料申请子表数据进行分析 detailDO.forEach(item -> { // 根据批次策略/下架策略 返回 库存余额DO + // TODO: 任务 会多生成数据 查下原因 List balanceDOListJob = jobUtils.getBalanceByBatchOffShelf(item.getItemCode(),item.getInventoryStatus(),item.getProjectCode(),item.getQty(),mainDO.getFromLocationTypes()); // 根据 查询出所需数据 解析成 任务子表数据 balanceDOListJob.forEach(balanceDOItem -> {