From 1273f2433a8fd8624a4d6b834edbe5537d615e88 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:05:14 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95=E6=98=8E=E7=BB=86=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rpc/config/RpcConfiguration.java | 3 ++- .../purchaseorder/PrchOrdDtlServiceImpl.java | 22 +++++++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/framework/rpc/config/RpcConfiguration.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/framework/rpc/config/RpcConfiguration.java index 10e0fa9e..96542169 100644 --- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/framework/rpc/config/RpcConfiguration.java +++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/framework/rpc/config/RpcConfiguration.java @@ -4,6 +4,7 @@ import com.zt.plat.module.bpm.api.task.BpmProcessInstanceApi; import com.zt.plat.module.bpm.api.task.BpmTaskApi; import com.zt.plat.module.infra.api.businessfile.BusinessFileApi; import com.zt.plat.module.infra.api.file.FileApi; +import com.zt.plat.module.receivedeliver.api.bill.BillMainApi; import com.zt.plat.module.system.api.dept.DeptApi; import com.zt.plat.module.system.api.sequence.SequenceApi; import com.zt.plat.module.system.api.user.AdminUserApi; @@ -11,6 +12,6 @@ import org.springframework.cloud.openfeign.EnableFeignClients; import org.springframework.context.annotation.Configuration; @Configuration(value = "contractorderRpcConfiguration", proxyBeanMethods = false) -@EnableFeignClients(clients = {DeptApi.class, SequenceApi.class, BpmProcessInstanceApi.class, AdminUserApi.class, BpmTaskApi.class, BusinessFileApi.class, FileApi.class}) +@EnableFeignClients(clients = {DeptApi.class, SequenceApi.class, BpmProcessInstanceApi.class, AdminUserApi.class, BpmTaskApi.class, BusinessFileApi.class, FileApi.class, BillMainApi.class}) public class RpcConfiguration { } 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 a9d23de7..86e5e431 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 @@ -2,12 +2,14 @@ package com.zt.plat.module.contractorder.service.purchaseorder; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.zt.plat.framework.common.pojo.CommonResult; import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlPageReqVO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlRespVO; import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlSaveReqVO; import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO; import com.zt.plat.module.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper; +import com.zt.plat.module.receivedeliver.api.bill.BillMainApi; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import jakarta.annotation.Resource; @@ -20,7 +22,6 @@ import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.util.object.BeanUtils; - import static com.zt.plat.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.zt.plat.framework.common.util.collection.CollectionUtils.convertList; import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList; @@ -39,6 +40,8 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { @Resource private PrchOrdDtlMapper prchOrdDtlMapper; + @Resource + private BillMainApi billMainApi; @Override public PrchOrdDtlRespVO createPrchOrdDtl(PrchOrdDtlSaveReqVO createReqVO) { @@ -68,14 +71,25 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService { } @Override - public void deletePrchOrdDtlListByIds(List ids) { + @Transactional(rollbackFor = Exception.class) + public void deletePrchOrdDtlListByIds(List ids) { //校验是否可以删除 - + validateBillMainCanDelete(ids); // 校验存在 validatePrchOrdDtlExists(ids); // 删除 prchOrdDtlMapper.deleteByIds(ids); - } + } + + private void validateBillMainCanDelete(List ids) { + ids.forEach(id -> { + CommonResult booleanCommonResult = billMainApi.notOffsetIsExistOrderDetailId(id); + if (booleanCommonResult.isSuccess() && booleanCommonResult.getData()) { + PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(id); + throw new RuntimeException("行目为【" + prchOrdDtlDO.getOutLineNum() + "】的订单明细存在发货数据。不允许删除"); + } + }); + } private void validatePrchOrdDtlExists(List ids) { List list = prchOrdDtlMapper.selectByIds(ids);