From a5049fd165f8fc6f2925422eeb90762dfb380a7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E8=96=AA=E5=90=8D?= <942005050@qq.com> Date: Fri, 22 Dec 2023 10:22:11 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E6=89=B9=E6=AC=A1?= =?UTF-8?q?=E7=AD=96=E7=95=A5/=E4=B8=8B=E6=9E=B6=E7=AD=96=E7=95=A5=20?= =?UTF-8?q?=E8=BF=94=E5=9B=9E=20=E5=BA=93=E5=AD=98=E4=BD=99=E9=A2=9DDO=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/win/module/wms/util/JobUtils.java | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java index 0c3e523e..c4434f5c 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java @@ -870,54 +870,54 @@ public class JobUtils { } // 根据批次策略 作为查询库存余额排序 // 批次类型——按 生产时间 - if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("0")) { + if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("PRODUCTION_TIME")) { // ASC = 0,正向 - if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("0")) { + if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("ASC")) { queryWrapper.orderByAsc("produce_date"); } // DESC = 1,逆向 - if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("1")) { + if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("DESC")) { queryWrapper.orderByDesc("produce_date"); } } // 批次类型——按 到货时间 - if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("1")) { + if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("ARRIVE_TIME")) { // ASC = 0,正向 - if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("0")) { + if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("ASC")) { queryWrapper.orderByAsc("arrive_date"); } // DESC = 1,逆向 - if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("1")) { + if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("DESC")) { queryWrapper.orderByDesc("arrive_date"); } } // 批次类型——按 失效时间 - if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("2")) { + if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("EXPIRE_TIME")) { // ASC = 0,正向 - if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("0")) { + if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("ASC")) { queryWrapper.orderByAsc("expire_date"); } // DESC = 1,逆向 - if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("1")) { + if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("DESC")) { queryWrapper.orderByDesc("expire_date"); } } // 批次类型——按 供应商批次 - if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("3")) { + if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("SUPPLIER_BATCH")) { // TODO: 供应商批次 ??? 不知道怎么搞了 } // 批次类型——按 供应商优先级 - if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("4")) { + if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("SUPPLIER_PRIORITY")) { // TODO: 供应商优先级 ??? 不知道怎么搞了 } // 批次类型——按 其它批次 - if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("5")) { + if (jsonObjectBatch.get("BatchType") != null && jsonObjectBatch.get("BatchType").equals("OTHER_BATCH")) { // ASC = 0,正向 - if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("0")) { + if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("ASC")) { queryWrapper.orderByAsc("batch"); } // DESC = 1,逆向 - if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("1")) { + if (jsonObjectBatch.get("BatchDirection") != null && jsonObjectBatch.get("BatchDirection").equals("DESC")) { queryWrapper.orderByDesc("batch"); } } From 6c602768c36bad5fe1a2e5e971b822e364d91e81 Mon Sep 17 00:00:00 2001 From: chenfang Date: Fri, 22 Dec 2023 10:40:20 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=8F=91=E8=B4=A7=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CustomerreturnRecordMainController.java | 12 +- .../DeliverRecordMainController.java | 2 +- .../InventorymoveRecordMainController.java | 2 +- .../vo/InventorymoveRecordMainBaseVO.java | 1 - .../transaction/vo/TransactionBaseVO.java | 2 - .../CustomerreturnRecordMainService.java | 2 +- .../CustomerreturnRecordMainServiceImpl.java | 20 ++- .../deliverJob/DeliverJobMainServiceImpl.java | 10 +- .../deliverPlan/DeliverPlanMainService.java | 8 - .../DeliverPlanMainServiceImpl.java | 166 +++++++++--------- .../DeliverRecordMainService.java | 2 +- .../DeliverRecordMainServiceImpl.java | 6 +- .../DeliverRequestMainServiceImpl.java | 17 +- .../InventorymoveRecordMainService.java | 2 +- .../InventorymoveRecordMainServiceImpl.java | 24 ++- 15 files changed, 148 insertions(+), 128 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java index 537e79d2..6f3b9b21 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/CustomerreturnRecordMainController.java @@ -53,12 +53,12 @@ public class CustomerreturnRecordMainController { @Resource private AdminUserApi userApi; -// @PostMapping("/create") -// @Operation(summary = "创建客户退货记录主") -// @PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:create')") -// public CommonResult createCustomerreturnRecordMain(@Valid @RequestBody CustomerreturnRecordMainCreateReqVO createReqVO) { -// return success(customerreturnRecordMainService.createCustomerreturnRecordMain(createReqVO)); -// } + @PostMapping("/create") + @Operation(summary = "创建客户退货记录主") + @PreAuthorize("@ss.hasPermission('wms:customerreturn-record-main:create')") + public CommonResult createCustomerreturnRecordMain(@Valid @RequestBody CustomerreturnRecordMainCreateReqVO createReqVO) { + return success(customerreturnRecordMainService.createCustomerreturnRecordMain(createReqVO)); + } // // @PutMapping("/update") // @Operation(summary = "更新客户退货记录主") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordMainController.java index 1ca4d7a3..54c81198 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordMainController.java @@ -55,7 +55,7 @@ public class DeliverRecordMainController { @PostMapping("/create") @Operation(summary = "创建发货记录主") @PreAuthorize("@ss.hasPermission('wms:deliver-record-main:create')") - public CommonResult createDeliverRecordMain(@Valid @RequestBody DeliverRecordMainCreateReqVO createReqVO) { + public CommonResult createDeliverRecordMain(@Valid @RequestBody DeliverRecordMainCreateReqVO createReqVO) { return success(deliverRecordMainService.createDeliverRecordMain(createReqVO)); } // diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java index 33e69a60..a94f9f23 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/InventorymoveRecordMainController.java @@ -60,7 +60,7 @@ public class InventorymoveRecordMainController { @PostMapping("/create") @Operation(summary = "创建库存转移记录主") @PreAuthorize("@ss.hasPermission('wms:inventorymove-record-main:create')") - public CommonResult createInventorymoveRecordMain(@Valid @RequestBody InventorymoveRecordMainCreateReqVO createReqVO) { + public CommonResult createInventorymoveRecordMain(@Valid @RequestBody InventorymoveRecordMainCreateReqVO createReqVO) { return success(inventorymoveRecordMainService.createInventorymoveRecordMain(createReqVO)); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainBaseVO.java index 40daa23a..734fcc57 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainBaseVO.java @@ -61,7 +61,6 @@ public class InventorymoveRecordMainBaseVO { private String interfaceType; @Schema(description = "代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "代码不能为空") private String code; @Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionBaseVO.java index e664f845..14df930d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/transaction/vo/TransactionBaseVO.java @@ -48,7 +48,6 @@ public class TransactionBaseVO { private LocalDateTime activeTime; @Schema(description = "物料代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "物料代码不能为空") private String itemCode; @Schema(description = "批次", requiredMode = Schema.RequiredMode.REQUIRED) @@ -56,7 +55,6 @@ public class TransactionBaseVO { private String batch; @Schema(description = "库存状态", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "库存状态不能为空") private String inventoryStatus; @Schema(description = "计量单位") diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainService.java index a1d7b629..d083bcc9 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainService.java @@ -24,7 +24,7 @@ public interface CustomerreturnRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createCustomerreturnRecordMain(@Valid CustomerreturnRecordMainCreateReqVO createReqVO); + String createCustomerreturnRecordMain(@Valid CustomerreturnRecordMainCreateReqVO createReqVO); /** * 更新客户退货记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainServiceImpl.java index 375b7870..a7ecdf66 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainServiceImpl.java @@ -20,10 +20,12 @@ import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnReco import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordMainDO; import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO; 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.balance.BalanceMapper; import com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordDetailMapper; 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; @@ -73,10 +75,12 @@ public class CustomerreturnRecordMainServiceImpl implements CustomerreturnRecord private AdminUserApi userApi; @Resource private LocationService locationService; + @Resource + private RecordsettingService recordsettingService; @Override @Transactional - public Long createCustomerreturnRecordMain(CustomerreturnRecordMainCreateReqVO createReqVO) { + public String createCustomerreturnRecordMain(CustomerreturnRecordMainCreateReqVO createReqVO) { // 插入 CustomerreturnRecordMainDO customerreturnRecordMain = CustomerreturnRecordMainConvert.INSTANCE.convert(createReqVO); customerreturnRecordMainMapper.insert(customerreturnRecordMain); @@ -85,9 +89,18 @@ public class CustomerreturnRecordMainServiceImpl implements CustomerreturnRecord String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_RECORD.getCode()); mainDO.setNumber(number); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerreturnRecord"); + RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("CustomerreturnRecord"); mainDO.setBusinessType(businesstypeDO.getCode()); - AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(createReqVO.getCreator())); + mainDO.setCreator(createReqVO.getCreator()); mainDO.setDepartmentCode(user.getDeptId().toString()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); mainDO.setExecuteTime(LocalDateTime.now()); mainDO.setActiveDate(LocalDateTime.now()); mainDO.setAvailable("TRUE"); @@ -99,6 +112,7 @@ public class CustomerreturnRecordMainServiceImpl implements CustomerreturnRecord for (CustomerreturnRecordDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDO.getId().toString()); detailDO.setNumber(number); + detailDO.setId(null); //由PDA给值进行赋值 LocationDO fromLocationDO = locationService.selectLocation(detailDO.getFromLocationCode()); detailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode()); @@ -156,7 +170,7 @@ public class CustomerreturnRecordMainServiceImpl implements CustomerreturnRecord //增加操作记录 trendsApi.createTrends(mainDO.getId(), "customerreturnRecordMain", "增加了客户退货记录", TrendsTypeEnum.CREATE); // 返回 - return customerreturnRecordMain.getId(); + return customerreturnRecordMain.getNumber(); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java index a65415ef..9d467df0 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java @@ -42,6 +42,7 @@ import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.customerreceiptRequest.CustomerreceiptRequestMainService; import com.win.module.wms.service.customersettleRequest.CustomersettleRequestMainService; +import com.win.module.wms.service.deliverPlan.DeliverPlanMainService; import com.win.module.wms.service.expectout.ExpectoutService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.purchase.PurchaseMainService; @@ -283,7 +284,7 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService { deliverRecordMainDO.setJobNumber(deliverJobMainDO.getNumber()); deliverRecordMainDO.setId(null); deliverRecordMainDO.setAvailable("TRUE"); - BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverJob"); + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRecord"); deliverRecordMainDO.setBusinessType(businesstypeDO.getCode()); deliverRecordMainMapper.insert(deliverRecordMainDO); //添加客户结算申请主表 @@ -389,10 +390,10 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService { transactionCreateReqVO.setId(null); transactionCreateReqVO.setAmount(BigDecimal.ZERO); transactionCreateReqVOList.add(transactionCreateReqVO); - if(businesstypeDO.getInTransactionType() != null && "".equals(businesstypeDO.getInTransactionType())){ + if(businesstypeDO.getInTransactionType() != null && !"".equals(businesstypeDO.getInTransactionType())){ //添加库存事务list TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); - BeanUtils.copyProperties(deliverRecordDetailDO, transactionCreateReqVO); + BeanUtils.copyProperties(deliverRecordDetailDO, transactionCreateReqVOIn); //增加业务类型 transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode()); TransactiontypeDO transactionCreateReqVOInDo = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); @@ -414,6 +415,9 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService { }); }); deliverRecordDetailMapper.insertBatch(deliverRecordDetailDOList); + for (DeliverRecordDetailDO deliverRecordDetailDO : deliverRecordDetailDOList) { + jobUtils.updatePlanDeliveShippedQty(deliverRecordMainDO.getDeliverPlanNumber(),deliverRecordDetailDO.getItemCode(),deliverRecordDetailDO.getQty()); + } customerreceiptRequestMainCreateReqVO.setSubList(customerreceiptRequestDetailCreateReqVOS); customersettleRequestMainCreateReqVO.setSubList(customersettleRequestDetailCreateReqVOS); customersettleRequestMainService.createCustomersettleRequestMain(customersettleRequestMainCreateReqVO); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java index 65620399..7b8b4d44 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainService.java @@ -95,14 +95,6 @@ public interface DeliverPlanMainService { */ List importDeliverPlanMainList(List datas, Integer mode, boolean updatePart); - /** - * 更新发货计划的已发货数量 - * @param pnumber - * @param pitemCode - * @param pshippedQty - */ - void updatePlanDeliveShippedQty(String pnumber, String pitemCode, BigDecimal pshippedQty); - /** * 关闭 * @param id diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java index 0de896fd..f0d4dd3b 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverPlan/DeliverPlanMainServiceImpl.java @@ -8,16 +8,22 @@ import com.win.framework.common.pojo.PageResult; import com.win.framework.common.util.validation.ValidationUtils; import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.enums.TrendsTypeEnum; +import com.win.module.system.api.dept.DeptApi; +import com.win.module.system.api.dept.dto.DeptRespDTO; import com.win.module.system.api.dict.DictDataApi; import com.win.module.system.api.serialnumber.SerialNumberApi; +import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.wms.controller.deliverPlan.vo.*; +import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestDetailCreateReqVO; +import com.win.module.wms.controller.deliverRequest.vo.DeliverRequestMainCreateReqVO; import com.win.module.wms.convert.deliverPlan.DeliverPlanDetailConvert; import com.win.module.wms.convert.deliverPlan.DeliverPlanMainConvert; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.customer.CustomerDO; import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanDetailDO; import com.win.module.wms.dal.dataobject.deliverPlan.DeliverPlanMainDO; +import com.win.module.wms.dal.dataobject.deliverRequest.DeliverRequestMainDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO; import com.win.module.wms.dal.mysql.deliverPlan.DeliverPlanDetailMapper; @@ -25,15 +31,18 @@ import com.win.module.wms.dal.mysql.deliverPlan.DeliverPlanMainMapper; import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestMainMapper; import com.win.module.wms.enums.plan.PlanStatusEnum; import com.win.module.wms.enums.plan.PlanStatusState; +import com.win.module.wms.enums.request.RequestStatusState; import com.win.module.wms.service.businesstype.BusinesstypeService; import com.win.module.wms.service.customer.CustomerService; -import com.win.module.wms.service.deliverJob.DeliverJobMainService; +import com.win.module.wms.service.deliverRequest.DeliverRequestDetailService; +import com.win.module.wms.service.deliverRequest.DeliverRequestMainService; import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itempackaging.ItempackagingService; import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.supplieritem.SupplieritemService; 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; @@ -79,8 +88,6 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { @Resource private BusinesstypeService businesstypeService; @Resource - private DeliverJobMainService deliverJobMainService; - @Resource private SerialNumberApi serialNumberApi; @Resource private TrendsApi trendsApi; @@ -90,6 +97,16 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { private DictDataApi dictDataApi; @Resource private Validator validator; + @Resource + private DeliverRequestMainService deliverRequestMainService; + @Resource + private DeliverRequestDetailService deliverRequestDetailService; + @Resource + private DeliverPlanDetailService deliverPlanDetailService; + @Resource + private DeptApi deptApi; + @Resource + private AdminUserApi userApi; @Override @Transactional @@ -105,7 +122,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { public void updateDeliverPlanMain(DeliverPlanMainUpdateReqVO updateReqVO) { // 校验存在 DeliverPlanMainDO deliverPlanMainDO = validateDeliverPlanMainExists(updateReqVO.getId()); - if(!PlanStatusEnum.NEW.getCode().equals(deliverPlanMainDO.getStatus())) { + if (!PlanStatusEnum.NEW.getCode().equals(deliverPlanMainDO.getStatus())) { throw exception(DELIVER_PLAN_STATUS_NOT_NEW); } DeliverPlanMainDO mainDO = DeliverPlanMainConvert.INSTANCE.convert(updateReqVO); @@ -129,77 +146,18 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { return deliverPlanMainDO; } - /** - * 更新发货计划的已发货数量 - * @param pnumber - * @param pitemCode - * @param pshippedQty - */ - @Override - public void updatePlanDeliveShippedQty(String pnumber, String pitemCode, BigDecimal pshippedQty){ - QueryWrapper mainDOQueryWrapper = new QueryWrapper<>(); - DeliverPlanDetailDO deliverPlanDetailDO = null; - mainDOQueryWrapper.eq("number",pnumber); - mainDOQueryWrapper.eq("status","6"); - DeliverPlanMainDO deliverPlanMainDO = deliverPlanMainMapper.selectOne(mainDOQueryWrapper); - if(deliverPlanMainDO != null){ - QueryWrapper detailDOQueryWrapper = new QueryWrapper<>(); - detailDOQueryWrapper.eq("number",pnumber); - detailDOQueryWrapper.eq("itembasic",pitemCode); - detailDOQueryWrapper.eq("available","TRUE"); - deliverPlanDetailDO = deliverPlanDetailMapper.selectOne(detailDOQueryWrapper); -// 如果已发货数量=计划数量,更新计划明细状态为(开放 => 关闭) - deliverPlanDetailDO.setShippedQty(pshippedQty); - if(deliverPlanDetailDO.getPlanQty() == deliverPlanDetailDO.getShippedQty()){ - deliverPlanDetailDO.setAvailable("FALSE"); - } -// 如果全部明细状态为(关闭),更新计划状态为(已接受 => 完成) - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("master_id",deliverPlanMainDO.getId()); - List deliverPlanDetailDOS = deliverPlanDetailMapper.selectList(queryWrapper); - int size = deliverPlanDetailDOS.size(); - int count = 0 ; - for (DeliverPlanDetailDO planDetailDO : deliverPlanDetailDOS) { - if("FALSE".equals(planDetailDO.getAvailable())){ - count++; - } - } - if(count == size){ - deliverPlanMainDO.setStatus("7"); - deliverPlanMainMapper.updateById(deliverPlanMainDO); - } - } - ifDetailAllFinish(deliverPlanMainDO); - } - - //判断如果主表下子表状态全为FALSE 则修改计划状态为完成 - private void ifDetailAllFinish(DeliverPlanMainDO deliverPlanMainDO){ - QueryWrapper detailDOQueryWrapper = new QueryWrapper<>(); - detailDOQueryWrapper.eq("master_id",deliverPlanMainDO.getId()); - List deliverPlanDetailDOS = deliverPlanDetailMapper.selectList(detailDOQueryWrapper); - Integer count = 0; - for (DeliverPlanDetailDO deliverPlanDetailDO : deliverPlanDetailDOS) { - if("TRUE".equals(deliverPlanDetailDO.getAvailable())){ - count++; - } - } - if(count <= 0){ - deliverPlanMainDO.setStatus("7"); - } - } - @Override @Transactional public Integer closeDeliverPlanMain(Long id) { // 校验存在存在下级单据 DeliverPlanMainDO mainDO = validateDeliverPlanMainExists(id); Long count = deliverRequestMainMapper.selectByDeliverPlanNumber(mainDO.getNumber()); - if(count > 0) { + if (count > 0) { throw new ServiceException(DELIVER_PLAN_REQUEST_EXISTS); } PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); boolean flag = planStatusState.close(); - if(!flag) { + if (!flag) { throw new ServiceException(DELIVER_PLAN_CANNOT_CLOSE); } mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 @@ -213,12 +171,12 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { // 校验存在存在下级单据 DeliverPlanMainDO mainDO = validateDeliverPlanMainExists(id); Long count = deliverRequestMainMapper.selectByDeliverPlanNumber(mainDO.getNumber()); - if(count > 0) { + if (count > 0) { throw new ServiceException(DELIVER_PLAN_REQUEST_EXISTS); } PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); boolean flag = planStatusState.open(); - if(!flag) { + if (!flag) { throw new ServiceException(DELIVER_PLAN_CANNOT_OPEN); } mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 @@ -233,7 +191,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { DeliverPlanMainDO mainDO = validateDeliverPlanMainExists(id); PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); boolean flag = planStatusState.submit(); - if(!flag) { + if (!flag) { throw new ServiceException(DELIVER_PLAN_CANNOT_SUBMIT); } mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 @@ -248,7 +206,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { DeliverPlanMainDO mainDO = validateDeliverPlanMainExists(id); PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); boolean flag = planStatusState.agree(); - if(!flag) { + if (!flag) { throw new ServiceException(DELIVER_PLAN_CANNOT_AGREE); } mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 @@ -263,7 +221,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { DeliverPlanMainDO mainDO = validateDeliverPlanMainExists(id); PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); boolean flag = planStatusState.reject(); - if(!flag) { + if (!flag) { throw new ServiceException(DELIVER_PLAN_CANNOT_REFUSE); } mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 @@ -279,10 +237,42 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { DeliverPlanMainDO mainDO = validateDeliverPlanMainExists(id); PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); boolean flag = planStatusState.publish(); - if(!flag) { + if (!flag) { throw new ServiceException(DELIVER_PLAN_CANNOT_PUBLISH); } mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 + //发布发货计划同时生成成品发货申请 + DeliverRequestMainCreateReqVO requestMainCreateReqVO = new DeliverRequestMainCreateReqVO(); + BeanUtils.copyProperties(mainDO, requestMainCreateReqVO); + BusinesstypeDO requestBusinesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRequest"); + requestMainCreateReqVO.setBusinessType(requestBusinesstypeDO.getCode()); + RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("DeliverRequest"); + requestMainCreateReqVO.setAutoAgree(requestsettingDO.getAutoAgree()); + requestMainCreateReqVO.setAutoCommit(requestsettingDO.getAutoCommit()); + requestMainCreateReqVO.setAutoExecute(requestsettingDO.getAutoExecute()); + requestMainCreateReqVO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); + requestMainCreateReqVO.setDueTime(mainDO.getEndTime()); + requestMainCreateReqVO.setDeliverPlanNumber(mainDO.getNumber()); + DeptRespDTO dept = deptApi.getDept(userApi.getUser(Long.valueOf(mainDO.getCreator())).getDeptId()); + requestMainCreateReqVO.setDepartmentCode(dept.getId().toString()); + RequestStatusState requestStatusState = new RequestStatusState(); + requestStatusState.newObject(requestMainCreateReqVO.getAutoCommit(), requestMainCreateReqVO.getAutoAgree(), requestMainCreateReqVO.getAutoExecute()); + requestMainCreateReqVO.setStatus(requestStatusState.getState().getCode()); + List deliverPlanDetailDOS = deliverPlanDetailService.selectListByMasterID(mainDO.getId()); + DeliverRequestDetailCreateReqVO deliverRequestDetailCreateReqVO = new DeliverRequestDetailCreateReqVO(); + List requestSubList = new ArrayList<>(); + for (DeliverPlanDetailDO deliverPlanDetailDO : deliverPlanDetailDOS) { + BeanUtils.copyProperties(deliverPlanDetailDO, deliverRequestDetailCreateReqVO); + deliverRequestDetailCreateReqVO.setId(null); + deliverRequestDetailCreateReqVO.setCreator(null); + deliverRequestDetailCreateReqVO.setCreateTime(null); + deliverRequestDetailCreateReqVO.setUpdater(null); + deliverRequestDetailCreateReqVO.setUpdateTime(null); + deliverRequestDetailCreateReqVO.setQty(deliverPlanDetailDO.getPlanQty()); + requestSubList.add(deliverRequestDetailCreateReqVO); + } + requestMainCreateReqVO.setSubList(requestSubList); + deliverRequestMainService.createDeliverRequestMain(requestMainCreateReqVO); trendsApi.createTrends(id, "deliverPlan", "发布了发货计划", TrendsTypeEnum.UPDATE); return deliverPlanMainMapper.updateById(mainDO); } @@ -294,7 +284,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { DeliverPlanMainDO mainDO = validateDeliverPlanMainExists(id); PlanStatusState planStatusState = new PlanStatusState(mainDO.getStatus()); boolean flag = planStatusState.resetting(); - if(!flag) { + if (!flag) { throw new ServiceException(DELIVER_PLAN_CANNOT_RESETTING); } mainDO.setStatus(planStatusState.getState().getCode());//增加操作记录 @@ -305,12 +295,12 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { @Override public DeliverPlanMainDO selectDeliverPlanExist(String code) { QueryWrapper deliverPlanMainDOQueryWrapper = new QueryWrapper<>(); - deliverPlanMainDOQueryWrapper.eq("number",code); - deliverPlanMainDOQueryWrapper.eq("available","TRUE"); + deliverPlanMainDOQueryWrapper.eq("number", code); + deliverPlanMainDOQueryWrapper.eq("available", "TRUE"); DeliverPlanMainDO deliverPlanMainDO = deliverPlanMainMapper.selectOne(deliverPlanMainDOQueryWrapper); - if(deliverPlanMainDO != null){ + if (deliverPlanMainDO != null) { return deliverPlanMainDO; - }else { + } else { throw exception(DELIVER_PLAN_MAIN_NOT_EXISTS); } } @@ -443,13 +433,13 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { */ private String validateDeliverPlanDetailImport(DeliverPlanDetailDO detailDo, DeliverPlanMainDO mainDo) { String messageDetail = ""; - if(detailDo.getShippedQty() == null){ + if (detailDo.getShippedQty() == null) { detailDo.setShippedQty(BigDecimal.ZERO); } // 校验物品基础信息 try { ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); - if ( !detailDo.getUom().equals(itembasicDO.getUom())) { + if (!detailDo.getUom().equals(itembasicDO.getUom())) { messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + detailDo.getUom() + ","; } } catch (ServiceException ex) { @@ -474,7 +464,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { //新增方法(主和子) private DeliverPlanMainDO validatorToCreate(DeliverPlanMainCreateReqVO createReqVO) { BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverPlan"); - DeliverPlanMainDO deliverPlanMainDO = validateMainMethod(createReqVO,businesstypeDO); + DeliverPlanMainDO deliverPlanMainDO = validateMainMethod(createReqVO, businesstypeDO); //子表校验 List subList = createReqVO.getSubList(); List subDOList = DeliverPlanDetailConvert.INSTANCE.convertList03(subList); @@ -490,7 +480,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { deliverPlanDetailDO.setMasterId(deliverPlanMainDO.getId()); deliverPlanDetailDO.setCustomerDockCode(null); deliverPlanDetailDO.setAvailable("TRUE"); - if(deliverPlanDetailDO.getShippedQty() == null){ + if (deliverPlanDetailDO.getShippedQty() == null) { deliverPlanDetailDO.setShippedQty(BigDecimal.ZERO); } } @@ -499,7 +489,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { } //校验主表公共方法(适用于新增/修改) - private DeliverPlanMainDO validateMainMethod(DeliverPlanMainBaseVO baseVO, BusinesstypeDO businesstypeDO){ + private DeliverPlanMainDO validateMainMethod(DeliverPlanMainBaseVO baseVO, BusinesstypeDO businesstypeDO) { DeliverPlanMainDO deliverPlanMainDO = DeliverPlanMainConvert.INSTANCE.convert(baseVO); this.validatorCustomerExist(deliverPlanMainDO.getCustomerCode()); deliverPlanMainDO.setBusinessType(businesstypeDO.getCode()); @@ -509,7 +499,7 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { //校验子表公共方法(适用于新增/修改) private void validateDetailMethod(DeliverPlanDetailDO deliverPlanDetailDO) { ItembasicDO itembasicDO = this.validatorItembasic(deliverPlanDetailDO.getItemCode()); - if ( !deliverPlanDetailDO.getUom().equals(itembasicDO.getUom())) { + if (!deliverPlanDetailDO.getUom().equals(itembasicDO.getUom())) { String label = dictDataApi.selectDictValue(itembasicDO.getUom()).getLabel(); throw exception(UOM_ERROR, label); } @@ -520,12 +510,14 @@ public class DeliverPlanMainServiceImpl implements DeliverPlanMainService { private void validatorCustomerExist(String customerCode) { customerService.selectCustomerExist(customerCode); } + //子表校验物品基础信息 private ItembasicDO validatorItembasic(String itemCode) { - return itembasicService.selectItembasic(itemCode); - } - //子表校验销售订单明细 - private void validatorDetailExist(String soNumber, String soLine, String itemCode) { - deliverJobMainService.saleDetailExist(soNumber, soLine, itemCode); + return itembasicService.selectItembasic(itemCode); } + +// //子表校验销售订单明细 +// private void validatorDetailExist(String soNumber, String soLine, String itemCode) { +// deliverJobMainService.saleDetailExist(soNumber, soLine, itemCode); +// } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java index d6facebf..677a9d30 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainService.java @@ -24,7 +24,7 @@ public interface DeliverRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createDeliverRecordMain(@Valid DeliverRecordMainCreateReqVO createReqVO); + String createDeliverRecordMain(@Valid DeliverRecordMainCreateReqVO createReqVO); /** * 更新发货记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java index d1fcd239..95c801a1 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java @@ -81,13 +81,14 @@ public class DeliverRecordMainServiceImpl implements DeliverRecordMainService { @Override @Transactional - public Long createDeliverRecordMain(DeliverRecordMainCreateReqVO createReqVO) { + public String createDeliverRecordMain(DeliverRecordMainCreateReqVO createReqVO) { // 插入 DeliverRecordMainDO deliverRecordMain = DeliverRecordMainConvert.INSTANCE.convert(createReqVO); DeliverRecordMainDO mainDO = DeliverRecordMainConvert.INSTANCE.convert(createReqVO); List subDOList = DeliverRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_RECORD.getCode()); mainDO.setNumber(number); + mainDO.setCreator(createReqVO.getCreator()); AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); mainDO.setDepartmentCode(user.getDeptId().toString()); mainDO.setExecuteTime(LocalDateTime.now()); @@ -118,6 +119,7 @@ public class DeliverRecordMainServiceImpl implements DeliverRecordMainService { for (DeliverRecordDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDO.getId().toString()); detailDO.setNumber(number); + detailDO.setId(null); //由PDA给值进行赋值 LocationDO fromLocationDO = locationService.selectLocation(detailDO.getFromLocationCode()); detailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode()); @@ -176,7 +178,7 @@ public class DeliverRecordMainServiceImpl implements DeliverRecordMainService { //增加操作记录 trendsApi.createTrends(mainDO.getId(), "deliverRecordMain", "增加了发货记录", TrendsTypeEnum.CREATE); // 返回 - return deliverRecordMain.getId(); + return mainDO.getNumber(); } @Override diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java index 2b88f77d..24ce7b46 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRequest/DeliverRequestMainServiceImpl.java @@ -36,6 +36,7 @@ import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.customerreturnJob.CustomerreturnJobDetailMapper; import com.win.module.wms.dal.mysql.deliverJob.DeliverJobDetailMapper; import com.win.module.wms.dal.mysql.deliverJob.DeliverJobMainMapper; +import com.win.module.wms.dal.mysql.deliverPlan.DeliverPlanMainMapper; import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestDetailMapper; import com.win.module.wms.dal.mysql.deliverRequest.DeliverRequestMainMapper; import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper; @@ -110,7 +111,7 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService private CustomerService customerService; @Resource - private DeliverPlanMainService deliverPlanMainService; + private DeliverPlanMainMapper deliverPlanMainMapper; @Resource private DeliverPlanDetailService deliverPlanDetailService; @@ -655,8 +656,8 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService } //校验发货计划是否存在 - private DeliverPlanMainDO validatorDeliverPlanExist(String code){ - return deliverPlanMainService.selectDeliverPlanExist(code); + private DeliverPlanMainDO validatorDeliverPlanExist(String number){ + return deliverPlanMainMapper.selectByNumber(number); } //校验客户是否存在 @@ -678,10 +679,12 @@ public class DeliverRequestMainServiceImpl implements DeliverRequestMainService //校验发货计划数量是否大于已发货数量 private void validatorIfPlanQtyBigThanShipedQty(String number,String itemCode){ DeliverPlanDetailDO deliverPlanDetailDO = deliverPlanDetailService.selectDeliverPlanDetail(number, itemCode); - BigDecimal planQty = deliverPlanDetailDO.getPlanQty(); - BigDecimal shippedQty = deliverPlanDetailDO.getShippedQty(); - if(shippedQty.compareTo(planQty) == 1){ - throw new UtilException("发货计划" + deliverPlanDetailDO.getNumber() + "的已发货数量" + shippedQty + "大于" + "计划数量" + planQty + ",超出了" + shippedQty.subtract(planQty)); + if(deliverPlanDetailDO != null){ + BigDecimal planQty = deliverPlanDetailDO.getPlanQty(); + BigDecimal shippedQty = deliverPlanDetailDO.getShippedQty(); + if(shippedQty.compareTo(planQty) == 1){ + throw new UtilException("发货计划" + deliverPlanDetailDO.getNumber() + "的已发货数量" + shippedQty + "大于" + "计划数量" + planQty + ",超出了" + shippedQty.subtract(planQty)); + } } } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java index 282b2cff..68893c71 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainService.java @@ -25,7 +25,7 @@ public interface InventorymoveRecordMainService { * @param createReqVO 创建信息 * @return 编号 */ - Long createInventorymoveRecordMain(@Valid InventorymoveRecordMainCreateReqVO createReqVO); + String createInventorymoveRecordMain(@Valid InventorymoveRecordMainCreateReqVO createReqVO); /** * 更新库存转移记录主 diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java index 33bed38c..00dc6673 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java @@ -30,6 +30,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import org.springframework.validation.annotation.Validated; +import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.*; @@ -73,37 +74,49 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa @Resource private RecordsettingService recordsettingService; @Override - public Long createInventorymoveRecordMain(InventorymoveRecordMainCreateReqVO createReqVO) { + public String createInventorymoveRecordMain(InventorymoveRecordMainCreateReqVO createReqVO) { String number = ""; RecordsettingDO recordsettingDO = null; BusinesstypeDO businesstypeDO = null; // 插入 InventorymoveRecordMainDO mainDO = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO); - inventorymoveRecordMainMapper.insert(mainDO); List subDOList = InventorymoveRecordMainConvert.INSTANCE.convertList03(createReqVO.getSubList()); if("HoldToOkRecord".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord"); + recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord"); } else if("OkToHoldRecord".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord"); + recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord"); } else if("HoldToScrapRecord".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord"); + recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord"); } else if("ScrapToHoldRecord".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord"); + recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord"); } else if("OkToScrapRecord".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord"); + recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord"); }else if("InventoryMoveRecord".equals(mainDO.getBusinessType())){ number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_RECORD.getCode()); businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InventoryMoveRecord"); + recordsettingDO = recordsettingService.selectRecordsettingExist("InventoryMoveRecord"); } mainDO.setNumber(number); mainDO.setBusinessType(businesstypeDO.getCode()); mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); - AdminUserRespDTO user = userApi.getUser(Long.valueOf(mainDO.getCreator())); + mainDO.setCreator(createReqVO.getCreator()); + mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType()); + mainDO.setInTransactionType(businesstypeDO.getInTransactionType()); + mainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); + mainDO.setToLocationTypes(businesstypeDO.getInLocationTypes()); + mainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); + mainDO.setToAreaCodes(businesstypeDO.getInAreaCodes()); + AdminUserRespDTO user = userApi.getUser(Long.valueOf(createReqVO.getCreator())); mainDO.setDepartmentCode(user.getDeptId().toString()); mainDO.setExecuteTime(LocalDateTime.now()); mainDO.setActiveDate(LocalDateTime.now()); @@ -116,6 +129,7 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa for (InventorymoveRecordDetailDO detailDO : subDOList) { detailDO.setMasterId(mainDO.getId().toString()); detailDO.setNumber(number); + detailDO.setId(null); //由PDA给值进行赋值 LocationDO fromLocationDO = locationService.selectLocation(detailDO.getFromLocationCode()); detailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode()); @@ -142,6 +156,7 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber()); transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode()); transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode()); + transactionCreateReqVOOut.setAmount(BigDecimal.ZERO); transactionCreateReqVOOut.setId(null); transactionCreateReqVOList.add(transactionCreateReqVOOut); //判断businesstypeDO.getInTransactionType()是否为空,不为空时增加入库存事务 @@ -157,6 +172,7 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa transactionCreateReqVOIn.setInventoryStatus(detailDO.getToInventoryStatus()); transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode()); transactionCreateReqVOIn.setWarehouseCode(mainDO.getToWarehouseCode()); + transactionCreateReqVOIn.setAmount(BigDecimal.ZERO); transactionCreateReqVOIn.setRecordNumber(number); transactionCreateReqVOIn.setId(null); //待确定库存事务信息 @@ -169,7 +185,7 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa //增加操作记录 trendsApi.createTrends(mainDO.getId(), "inventorymoveRecordMain", "增加了库存转移记录", TrendsTypeEnum.CREATE); // 返回 - return mainDO.getId(); + return mainDO.getNumber(); } @Override