From e803bee452588bf9ff4dd7b1236b697afc1da0db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Mon, 1 Dec 2025 16:10:44 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E5=88=A0=E9=99=A4=E6=8F=90=E7=A4=BA=E8=AF=8D?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/purchaseorder/PrchOrdDtlServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java index e8458108..69203e24 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java @@ -89,7 +89,7 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { CommonResult booleanCommonResult = billMainApi.notOffsetIsExistOrderDetailId(id); if (booleanCommonResult.isSuccess() && booleanCommonResult.getData()) { PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(id); - throw exception(new ErrorCode(1_008_00_600, "销售订单明细【" + prchOrdDtlDO.getOutLineNum() + "】已生成销售订单,不能删除")); + throw exception(new ErrorCode(1_008_00_600, "采购订单明细【" + prchOrdDtlDO.getLineNum() + "】已生成采购订单,不能删除")); } }); } From 4ffa9eeb8fedfbfe7ac52d1fb1845f9aebb43510 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=BD=98=E8=8D=A3=E6=99=9F?= <9691125+pan-rongsheng@user.noreply.gitee.com> Date: Mon, 1 Dec 2025 16:42:44 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=86=B2=E9=94=80=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/contractorder/api/OrderApi.java | 5 +++ .../contractorder/api/OrderApiImpl.java | 43 +++++++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/OrderApi.java b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/OrderApi.java index 5255bf8e..83ec87e1 100644 --- a/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/OrderApi.java +++ b/zt-module-contract-order/zt-module-contract-order-api/src/main/java/com/zt/plat/module/contractorder/api/OrderApi.java @@ -29,4 +29,9 @@ public interface OrderApi { @PostMapping(PREFIX + "/update-lst-qty-by-order-id") @Operation(summary = "根据订单明细id更新累积量", description = "根据订单明细id更新收货量") CommonResult UpdateOrderLstQty(@RequestBody @Validated List updateOrderLstQtyDTOS); + + @PostMapping(PREFIX + "/void -lst-qty-by-order-id") + @Operation(summary = "根据订单明细id更新累积量(冲销)", description = "根据订单明细id更新收货量(冲销)") + CommonResult voidOrderLstQty(@RequestBody @Validated List updateOrderLstQtyDTOS); + } diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java index 3249fc20..51d5f1ac 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java @@ -1,6 +1,7 @@ package com.zt.plat.module.contractorder.api; import cn.hutool.extra.spring.SpringUtil; +import com.zt.plat.framework.common.exception.ErrorCode; import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.util.object.BeanUtils; import com.zt.plat.module.contractorder.api.dto.order.*; @@ -25,6 +26,7 @@ import java.util.List; import java.util.Objects; import java.util.Optional; +import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.pojo.CommonResult.success; @RestController @@ -128,6 +130,47 @@ public class OrderApiImpl implements OrderApi { return success(true); } + @Override + public CommonResult voidOrderLstQty(List updateOrderLstQtyDTOS) { + if (updateOrderLstQtyDTOS == null || updateOrderLstQtyDTOS.isEmpty()) { + throw new RuntimeException("请求数据错误"); + } + SalesOrderDetailMapper salesOrderDetailMapper = SpringUtil.getBean(SalesOrderDetailMapper.class); + PrchOrdDtlMapper prchOrdDtlMapper = SpringUtil.getBean(PrchOrdDtlMapper.class); + updateOrderLstQtyDTOS.forEach(f -> { + if ("SALE".equals(f.getSplyBsnTp())) { + SalesOrderDetailDO salesOrderDetailDO = salesOrderDetailMapper.selectById(f.getOrderDetailId()); + // 处理 trfQty 可能为 null 的情况,默认值 0 + BigDecimal lstQty = Optional.ofNullable(salesOrderDetailDO.getTrfQty()) + .orElse(BigDecimal.ZERO); + if (lstQty.equals(BigDecimal.ZERO)) { + throw exception(new ErrorCode(1_008_00_609,"积累量不能等于0")); + } + SalesOrderDetailDO updateDO = new SalesOrderDetailDO(); + updateDO.setId(f.getOrderDetailId()); // 给更新对象设 ID + updateDO.setTrfQty(lstQty.subtract(f.getLstQty())); // 减法 + log.info("更新销售订单明细:{}", updateDO); + salesOrderDetailMapper.updateById(updateDO); + } else if ("PUR".equals(f.getSplyBsnTp())) { + // 采购 + PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(f.getOrderDetailId()); + BigDecimal lstQty = Optional.ofNullable(prchOrdDtlDO.getTrfQty()) + .orElse(BigDecimal.ZERO); + if (lstQty.equals(BigDecimal.ZERO)) { + throw exception(new ErrorCode(1_008_00_609,"积累量不能等于0")); + } + PrchOrdDtlDO updateDO = new PrchOrdDtlDO(); + updateDO.setId(f.getOrderDetailId()); + updateDO.setLstQty(lstQty.subtract(f.getLstQty())); + log.info("更新销售订单明细:{}", updateDO); + prchOrdDtlMapper.updateById(updateDO); + } else { + throw new RuntimeException("请求数据错误"); + } + }); + return success(true); + } + private List getOrderByIds(List ids) { return SpringUtil.getBean(SalesOrderMapper.class).selectByIds(ids); // 采购订单与销售订单的 }