销售订单明细删除校验

This commit is contained in:
潘荣晟
2025-11-27 15:25:49 +08:00
parent 1273f2433a
commit 084cecd7a5

View File

@@ -1,11 +1,13 @@
package com.zt.plat.module.contractorder.service.salesorder; package com.zt.plat.module.contractorder.service.salesorder;
import cn.hutool.core.collection.CollUtil; 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.SalesOrderDetailPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.salesorder.vo.SalesOrderDetailRespVO; 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.controller.admin.salesorder.vo.SalesOrderDetailSaveReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.salesorder.SalesOrderDetailDO; 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.contractorder.dal.mysql.salesorder.SalesOrderDetailMapper;
import com.zt.plat.module.receivedeliver.api.bill.BillMainApi;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@@ -33,6 +35,8 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
@Resource @Resource
private SalesOrderDetailMapper salesOrderDetailMapper; private SalesOrderDetailMapper salesOrderDetailMapper;
@Resource
private BillMainApi billMainApi;
@Override @Override
@Transactional @Transactional
@@ -76,12 +80,22 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void deleteSalesOrderDetailListByIds(List<Long> ids) { public void deleteSalesOrderDetailListByIds(List<Long> ids) {
//校验是否可以删除
validateBillMainCanDelete(ids);
// 校验存在 // 校验存在
validateSalesOrderDetailExists(ids); validateSalesOrderDetailExists(ids);
// 删除 // 删除
salesOrderDetailMapper.deleteByIds(ids); salesOrderDetailMapper.deleteByIds(ids);
} }
private void validateBillMainCanDelete(List<Long> ids) {
ids.forEach(id -> {
CommonResult<Boolean> booleanCommonResult = billMainApi.notOffsetIsExistOrderDetailId(id);
if (booleanCommonResult.isSuccess() && booleanCommonResult.getData()) {
SalesOrderDetailDO salesOrderDetailDO = salesOrderDetailMapper.selectById(id);
throw new RuntimeException("行目为【" + salesOrderDetailDO.getLineNumber() + "】的订单明细存在发货数据。不允许删除");
}
});
}
private void validateSalesOrderDetailExists(List<Long> ids) { private void validateSalesOrderDetailExists(List<Long> ids) {
List<SalesOrderDetailDO> list = salesOrderDetailMapper.selectByIds(ids); List<SalesOrderDetailDO> list = salesOrderDetailMapper.selectByIds(ids);
if (CollUtil.isEmpty(list) || list.size() != ids.size()) { if (CollUtil.isEmpty(list) || list.size() != ids.size()) {