订单明细删除校验

This commit is contained in:
潘荣晟
2025-11-27 15:05:14 +08:00
parent 322a454afa
commit 1273f2433a
2 changed files with 20 additions and 5 deletions

View File

@@ -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 {
}

View File

@@ -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<Long> ids) {
@Transactional(rollbackFor = Exception.class)
public void deletePrchOrdDtlListByIds(List<Long> ids) {
//校验是否可以删除
validateBillMainCanDelete(ids);
// 校验存在
validatePrchOrdDtlExists(ids);
// 删除
prchOrdDtlMapper.deleteByIds(ids);
}
}
private void validateBillMainCanDelete(List<Long> ids) {
ids.forEach(id -> {
CommonResult<Boolean> booleanCommonResult = billMainApi.notOffsetIsExistOrderDetailId(id);
if (booleanCommonResult.isSuccess() && booleanCommonResult.getData()) {
PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(id);
throw new RuntimeException("行目为【" + prchOrdDtlDO.getOutLineNum() + "】的订单明细存在发货数据。不允许删除");
}
});
}
private void validatePrchOrdDtlExists(List<Long> ids) {
List<PrchOrdDtlDO> list = prchOrdDtlMapper.selectByIds(ids);