From 084cecd7a5c4cfbc4641b40377064a355234e926 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: Thu, 27 Nov 2025 15:25:49 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E6=98=8E=E7=BB=86=E5=88=A0=E9=99=A4=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../salesorder/SalesOrderDetailServiceImpl.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java index c846def0..d7077791 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java @@ -1,11 +1,13 @@ package com.zt.plat.module.contractorder.service.salesorder; import cn.hutool.core.collection.CollUtil; +import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailPageReqVO; import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO; import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO; import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; import com.zt.plat.module.contractorder.dal.mysql.salesorder.SalesOrderDetailMapper; +import com.zt.plat.module.receivedeliver.api.bill.BillMainApi; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; @@ -33,6 +35,8 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService { @Resource private SalesOrderDetailMapper salesOrderDetailMapper; + @Resource + private BillMainApi billMainApi; @Override @Transactional @@ -76,12 +80,22 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService { @Override @Transactional(rollbackFor = Exception.class) public void deleteSalesOrderDetailListByIds(List ids) { + //校验是否可以删除 + validateBillMainCanDelete(ids); // 校验存在 validateSalesOrderDetailExists(ids); // 删除 salesOrderDetailMapper.deleteByIds(ids); } - + private void validateBillMainCanDelete(List ids) { + ids.forEach(id -> { + CommonResult booleanCommonResult = billMainApi.notOffsetIsExistOrderDetailId(id); + if (booleanCommonResult.isSuccess() && booleanCommonResult.getData()) { + SalesOrderDetailDO salesOrderDetailDO = salesOrderDetailMapper.selectById(id); + throw new RuntimeException("行目为【" + salesOrderDetailDO.getLineNumber() + "】的订单明细存在发货数据。不允许删除"); + } + }); + } private void validateSalesOrderDetailExists(List ids) { List list = salesOrderDetailMapper.selectByIds(ids); if (CollUtil.isEmpty(list) || list.size() != ids.size()) { From 66bb1f633455fb4590bc774a83f1dd76aa3f05f2 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: Thu, 27 Nov 2025 15:51:29 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E9=87=8F=E9=BB=98=E8=AE=A4=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/purchaseorder/PrchOrdDtlServiceImpl.java | 2 ++ .../service/salesorder/SalesOrderDetailServiceImpl.java | 2 ++ 2 files changed, 4 insertions(+) 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 86e5e431..c98e3a35 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 @@ -16,6 +16,7 @@ import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import com.zt.plat.framework.common.pojo.PageParam; @@ -48,6 +49,7 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { // 插入 PrchOrdDtlDO prchOrdDtl = BeanUtils.toBean(createReqVO, PrchOrdDtlDO.class); log.info("创建采购订单明细,创建数据【{}】", prchOrdDtl); + prchOrdDtl.setTrfQty(BigDecimal.ZERO); prchOrdDtlMapper.insert(prchOrdDtl); // 返回 return BeanUtils.toBean(prchOrdDtl, PrchOrdDtlRespVO.class); diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java index d7077791..436b5702 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/salesorder/SalesOrderDetailServiceImpl.java @@ -13,6 +13,7 @@ import jakarta.annotation.Resource; import org.springframework.validation.annotation.Validated; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.util.*; import com.zt.plat.framework.common.pojo.PageResult; @@ -43,6 +44,7 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService { public SalesOrderDetailRespVO createSalesOrderDetail(SalesOrderDetailSaveReqVO createReqVO) { // 插入 SalesOrderDetailDO salesOrderDetail = BeanUtils.toBean(createReqVO, SalesOrderDetailDO.class); + salesOrderDetail.setTrfQty(BigDecimal.ZERO); salesOrderDetail.setOrderId(Long.valueOf(createReqVO.getOrderId())); salesOrderDetailMapper.insert(salesOrderDetail); // 返回 From c936f5a5d3aae1cf22a7acf91bfce15b62b4d13a 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: Thu, 27 Nov 2025 15:52:05 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E9=87=8F=E9=BB=98=E8=AE=A4=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zt-module-contract-order-server/pom.xml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/zt-module-contract-order/zt-module-contract-order-server/pom.xml b/zt-module-contract-order/zt-module-contract-order-server/pom.xml index cf916c27..3f201f4a 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/pom.xml +++ b/zt-module-contract-order/zt-module-contract-order-server/pom.xml @@ -42,6 +42,11 @@ ${revision} + + com.zt.plat + zt-module-receive-deliver-api + ${revision} + com.zt.plat From c4095ebe0183221a2462643f21d5385d18064de1 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: Thu, 27 Nov 2025 16:38:35 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E9=87=8F=E9=BB=98=E8=AE=A4=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zt/plat/module/contractorder/api/OrderApiImpl.java | 2 ++ 1 file changed, 2 insertions(+) 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 76c193f2..eb43dda4 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 @@ -109,6 +109,7 @@ public class OrderApiImpl implements OrderApi { SalesOrderDetailDO updateDO = new SalesOrderDetailDO(); updateDO.setId(f.getOrderDetailId()); // 给更新对象设 ID updateDO.setTrfQty(trfQty.add(f.getLstQty())); // 累加(trfQty ) + log.info("更新销售订单明细:{}", updateDO); salesOrderDetailMapper.updateById(updateDO); } else if ("PUR".equals(f.getSplyBsnTp())) { // 采购 @@ -118,6 +119,7 @@ public class OrderApiImpl implements OrderApi { PrchOrdDtlDO updateDO = new PrchOrdDtlDO(); updateDO.setId(f.getOrderDetailId()); updateDO.setTrfQty(trfQty.add(f.getLstQty())); + log.info("更新销售订单明细:{}", updateDO); prchOrdDtlMapper.updateById(updateDO); } else { throw new RuntimeException("请求数据错误"); From 843dc283736658ba6ba8b0543116b562e3402dd1 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: Thu, 27 Nov 2025 16:51:06 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E9=87=8F=E9=BB=98=E8=AE=A4=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plat/module/contractorder/api/OrderApiImpl.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 eb43dda4..b7b9a28e 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 @@ -104,21 +104,21 @@ public class OrderApiImpl implements OrderApi { if ("SALE".equals(f.getSplyBsnTp())) { SalesOrderDetailDO salesOrderDetailDO = salesOrderDetailMapper.selectById(f.getOrderDetailId()); // 处理 trfQty 可能为 null 的情况,默认值 0 - BigDecimal trfQty = Optional.ofNullable(salesOrderDetailDO.getTrfQty()) + BigDecimal lstQty = Optional.ofNullable(salesOrderDetailDO.getTrfQty()) .orElse(BigDecimal.ZERO); SalesOrderDetailDO updateDO = new SalesOrderDetailDO(); updateDO.setId(f.getOrderDetailId()); // 给更新对象设 ID - updateDO.setTrfQty(trfQty.add(f.getLstQty())); // 累加(trfQty ) + updateDO.setTrfQty(lstQty.add(f.getLstQty())); // 累加(trfQty ) log.info("更新销售订单明细:{}", updateDO); salesOrderDetailMapper.updateById(updateDO); } else if ("PUR".equals(f.getSplyBsnTp())) { // 采购 PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(f.getOrderDetailId()); - BigDecimal trfQty = Optional.ofNullable(prchOrdDtlDO.getTrfQty()) + BigDecimal lstQty = Optional.ofNullable(prchOrdDtlDO.getTrfQty()) .orElse(BigDecimal.ZERO); PrchOrdDtlDO updateDO = new PrchOrdDtlDO(); updateDO.setId(f.getOrderDetailId()); - updateDO.setTrfQty(trfQty.add(f.getLstQty())); + updateDO.setLstQty(lstQty.add(f.getLstQty())); log.info("更新销售订单明细:{}", updateDO); prchOrdDtlMapper.updateById(updateDO); } else { @@ -209,7 +209,7 @@ public class OrderApiImpl implements OrderApi { ordDtlDTO.setTrfWrhName(p.getTrfWrhName()); ordDtlDTO.setTrfWrhNum(p.getTrfWrhNum()); ordDtlDTO.setRmk(p.getRmk()); - + ordDtlDTO.setLstQty(p.getLstQty()); } else if ( t instanceof SalesOrderDetailDO s @@ -232,7 +232,7 @@ public class OrderApiImpl implements OrderApi { ordDtlDTO.setElementCode(s.getElementNumber()); ordDtlDTO.setIsEnable(s.getIsEnable()); ordDtlDTO.setTaxNum(s.getTaxAcctasscat()); - ordDtlDTO.setTrfQty(s.getTrfQty()); + ordDtlDTO.setLstQty(s.getTrfQty()); ordDtlDTO.setRmk(s.getRemark()); } return ordDtlDTO; From d356f0af463c0febd6b90947a07df786f2ce0d78 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: Thu, 27 Nov 2025 16:51:56 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E9=87=8F=E9=BB=98=E8=AE=A4=E4=B8=BA0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/zt/plat/module/contractorder/api/OrderApiImpl.java | 1 + 1 file changed, 1 insertion(+) 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 b7b9a28e..adc78767 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 @@ -234,6 +234,7 @@ public class OrderApiImpl implements OrderApi { ordDtlDTO.setTaxNum(s.getTaxAcctasscat()); ordDtlDTO.setLstQty(s.getTrfQty()); ordDtlDTO.setRmk(s.getRemark()); + ordDtlDTO.setTaxRte(s.getTaxRte()); } return ordDtlDTO; }