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()) {