From b5fb5259543b1c6b113dfbb7e2bd9051b6ff8fe9 Mon Sep 17 00:00:00 2001 From: yejiaxing <591141169@qq.com> Date: Tue, 5 Dec 2023 17:21:39 +0800 Subject: [PATCH] =?UTF-8?q?BUG=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SupplierdeliverRequestDetailBaseVO.java | 22 +++--- ...SupplierdeliverRequestDetailPageReqVO.java | 4 + .../SupplierdeliverRequestDetailMapper.java | 1 + .../purchase/PurchaseMainServiceImpl.java | 7 +- ...pplierdeliverRequestDetailServiceImpl.java | 76 ++++++++++++++++++- 5 files changed, 94 insertions(+), 16 deletions(-) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailBaseVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailBaseVO.java index 16161978..a05cac0f 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailBaseVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailBaseVO.java @@ -34,34 +34,34 @@ public class SupplierdeliverRequestDetailBaseVO { private String altBatch; @Schema(description = "到货日期", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "到货日期不能为空") +// @NotNull(message = "到货日期不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime arriveDate; @Schema(description = "生产日期", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "生产日期不能为空") +// @NotNull(message = "生产日期不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime produceDate; @Schema(description = "过期日期", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "过期日期不能为空") +// @NotNull(message = "过期日期不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime expireDate; @Schema(description = "订单号", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "订单号不能为空") +// @NotNull(message = "订单号不能为空") private String poNumber; @Schema(description = "订单行", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "订单行不能为空") +// @NotNull(message = "订单行不能为空") private String poLine; @Schema(description = "标包数量", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "标包数量不能为空") +// @NotNull(message = "标包数量不能为空") private BigDecimal stdPackQty; @Schema(description = "标包单位", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "标包单位不能为空") +// @NotNull(message = "标包单位不能为空") private String stdPackUnit; @Schema(description = "供应商计量数量") @@ -71,14 +71,14 @@ public class SupplierdeliverRequestDetailBaseVO { private String supplierPackUnit; @Schema(description = "转换率", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "转换率不能为空") +// @NotNull(message = "转换率不能为空") private BigDecimal convertRate; @Schema(description = "单据号") private String number; @Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "物品代码不能为空") +// @NotNull(message = "物品代码不能为空") private String itemCode; @Schema(description = "备注") @@ -121,5 +121,9 @@ public class SupplierdeliverRequestDetailBaseVO { @Schema(description = "到货主代码") private String toOwnerCode; + /** + * 主表ID + */ + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailPageReqVO.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailPageReqVO.java index 45bb56ff..7249eb66 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailPageReqVO.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/supplierdeliverRequest/vo/SupplierdeliverRequestDetailPageReqVO.java @@ -102,5 +102,9 @@ public class SupplierdeliverRequestDetailPageReqVO extends PageParam { @Schema(description = "到货主代码") private String toOwnerCode; + /** + * 主表ID + */ + private Long masterId; } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierdeliverRequest/SupplierdeliverRequestDetailMapper.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierdeliverRequest/SupplierdeliverRequestDetailMapper.java index 330aa1bd..72b54e3d 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierdeliverRequest/SupplierdeliverRequestDetailMapper.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/supplierdeliverRequest/SupplierdeliverRequestDetailMapper.java @@ -22,6 +22,7 @@ public interface SupplierdeliverRequestDetailMapper extends BaseMapperX selectPage(SupplierdeliverRequestDetailPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(SupplierdeliverRequestDetailDO::getMasterId, reqVO.getMasterId()) .eqIfPresent(SupplierdeliverRequestDetailDO::getBatch, reqVO.getBatch()) .eqIfPresent(SupplierdeliverRequestDetailDO::getAltBatch, reqVO.getAltBatch()) .betweenIfPresent(SupplierdeliverRequestDetailDO::getArriveDate, reqVO.getArriveDate()) diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java index b229f6ae..8be055c7 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchase/PurchaseMainServiceImpl.java @@ -629,10 +629,10 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { purchaseDetailDOQueryWrapper.eq("item_code", itemCode); purchaseDetailDOQueryWrapper.eq("available", "TRUE"); List purchaseDetailDOList = purchaseDetailMapper.selectList(purchaseDetailDOQueryWrapper); - boolean res = false; + boolean res = true; for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { if ("TRUE".equals(purchaseDetailDO.getAvailable())) { - res = true; + res = false; } } if ("DISCRETE".equals(purchaseMainDO.getType()) && res) { @@ -641,12 +641,11 @@ public class PurchaseMainServiceImpl implements PurchaseMainService { for (PurchaseDetailDO purchaseDetailDO : purchaseDetailDOList) { //如果是离散单 if ("DISCRETE".equals(purchaseMainDO.getType())) { + purchaseDetailDO.setReceivedQty(receivedQty); if (purchaseDetailDO.getReceivedQty().compareTo(purchaseDetailDO.getOrderQty()) == 0 || purchaseDetailDO.getReceivedQty().compareTo(purchaseDetailDO.getOrderQty().multiply(new BigDecimal(1).add(purchaseDetailDO.getOverReceivingPercent()))) >= 0) { purchaseDetailDO.setAvailable("FALSE"); - } else { - purchaseDetailDO.setReceivedQty(receivedQty); } } else { purchaseDetailDO.setReceivedQty(purchaseDetailDO.getReceivedQty().add(receivedQty)); diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestDetailServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestDetailServiceImpl.java index e8088c77..22cc5510 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestDetailServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/supplierdeliverRequest/SupplierdeliverRequestDetailServiceImpl.java @@ -1,14 +1,27 @@ package com.win.module.wms.service.supplierdeliverRequest; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.win.framework.common.pojo.CustomConditions; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailCreateReqVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailExportReqVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailPageReqVO; import com.win.module.wms.controller.supplierdeliverRequest.vo.SupplierdeliverRequestDetailUpdateReqVO; +import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO; +import com.win.module.wms.dal.dataobject.purchasePlan.PurchasePlanDetailDO; +import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestMainDO; +import com.win.module.wms.dal.dataobject.supplieritem.SupplieritemDO; +import com.win.module.wms.dal.mysql.supplierdeliverRequest.SupplierdeliverRequestMainMapper; +import com.win.module.wms.service.itembasic.ItembasicService; +import com.win.module.wms.service.itempackaging.ItempackagingService; +import com.win.module.wms.service.purchasePlan.PurchasePlanMainService; +import com.win.module.wms.service.supplieritem.SupplieritemService; import org.springframework.stereotype.Service; + import javax.annotation.Resource; + import org.springframework.validation.annotation.Validated; +import java.math.BigDecimal; import java.util.*; import com.win.module.wms.dal.dataobject.supplierdeliverRequest.SupplierdeliverRequestDetailDO; @@ -31,14 +44,32 @@ public class SupplierdeliverRequestDetailServiceImpl implements SupplierdeliverR @Resource private SupplierdeliverRequestDetailMapper supplierdeliverRequestDetailMapper; + @Resource + private SupplierdeliverRequestMainMapper supplierdeliverRequestMainMapper; + @Resource + private ItembasicService itembasicService; + @Resource + private SupplieritemService supplieritemService; + @Resource + private ItempackagingService itempackagingService; + @Resource + private PurchasePlanMainService purchasePlanMainService; + @Override public Long createSupplierdeliverRequestDetail(SupplierdeliverRequestDetailCreateReqVO createReqVO) { // 插入 - SupplierdeliverRequestDetailDO supplierdeliverRequestDetail = SupplierdeliverRequestDetailConvert.INSTANCE.convert(createReqVO); - supplierdeliverRequestDetailMapper.insert(supplierdeliverRequestDetail); + SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO = SupplierdeliverRequestDetailConvert.INSTANCE.convert(createReqVO); + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("number", createReqVO.getNumber()); + SupplierdeliverRequestMainDO mainDO = supplierdeliverRequestMainMapper.selectOne(queryWrapper); + validatorDetailMethod(supplierdeliverRequestDetailDO, mainDO); + supplierdeliverRequestDetailDO.setMasterId(mainDO.getId()); + supplierdeliverRequestDetailDO.setNumber(mainDO.getNumber()); + supplierdeliverRequestDetailDO.setConvertRate(new BigDecimal(0)); + supplierdeliverRequestDetailMapper.insert(supplierdeliverRequestDetailDO); // 返回 - return supplierdeliverRequestDetail.getId(); + return supplierdeliverRequestDetailDO.getId(); } @Override @@ -49,6 +80,7 @@ public class SupplierdeliverRequestDetailServiceImpl implements SupplierdeliverR SupplierdeliverRequestDetailDO updateObj = SupplierdeliverRequestDetailConvert.INSTANCE.convert(updateReqVO); supplierdeliverRequestDetailMapper.updateById(updateObj); } + @Override public PageResult getSupplierdeliverRequestDetailSenior(CustomConditions conditions) { return supplierdeliverRequestDetailMapper.selectSenior(conditions); @@ -88,4 +120,42 @@ public class SupplierdeliverRequestDetailServiceImpl implements SupplierdeliverR return supplierdeliverRequestDetailMapper.selectList(exportReqVO); } + //子表校验 校验供应商基础信息 + private void validatorItembasic(String itemCode) { + itembasicService.selectItembasic(itemCode); + } + + //子表校验 校验供应商物品 + private SupplieritemDO validatorSupplierItemExist(String supplierCode, String itemCode) { + return supplieritemService.selectSupplierItemExist(supplierCode, itemCode); + } + + //子表校验 校验物品标包信息 + private ItempackagingDO validatorItemPackagingExist(String itemCode) { + return itempackagingService.selectItemPackagingExist(itemCode); + } + + //子表校验 校验要货计划 + private PurchasePlanDetailDO validatorPurchasePlan(SupplierdeliverRequestMainDO supplierdeliverRequestMainDO, SupplierdeliverRequestDetailDO supplierdeliverRequestDetailDO) { + PurchasePlanDetailDO purchasePlanDetailDO = + purchasePlanMainService.selectPurchasePlan(supplierdeliverRequestMainDO.getPpNumber(), supplierdeliverRequestMainDO.getSupplierCode(), + supplierdeliverRequestDetailDO.getPoNumber(), supplierdeliverRequestDetailDO.getPoLine(), supplierdeliverRequestDetailDO.getItemCode()); + return purchasePlanDetailDO; + } + + //校验子表公共方法(适用于新增/修改) + private void validatorDetailMethod(SupplierdeliverRequestDetailDO detailDo, SupplierdeliverRequestMainDO mainDo) { + this.validatorItembasic(detailDo.getItemCode()); + this.validatorSupplierItemExist(mainDo.getSupplierCode(), detailDo.getItemCode()); + PurchasePlanDetailDO purchasePlanDetailDO = this.validatorPurchasePlan(mainDo, detailDo); + if ((purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())).compareTo(detailDo.getQty()) == -1) { + throw exception(QTY_ERROR, detailDo.getQty(), null, detailDo.getPoLine(), null, purchasePlanDetailDO.getPlanQty().subtract(purchasePlanDetailDO.getShippedQty())); + } + ItempackagingDO itempackagingDO = itempackagingService.selectItemPackagingExist(detailDo.getItemCode()); + if (itempackagingDO != null) { + detailDo.setStdPackUnit(itempackagingDO.getStdPackUnit()); + detailDo.setStdPackQty(itempackagingDO.getStdPackQty()); + } + } + }