销售订单明细删除校验
This commit is contained in:
@@ -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<Long> ids) {
|
||||
//校验是否可以删除
|
||||
validateBillMainCanDelete(ids);
|
||||
// 校验存在
|
||||
validateSalesOrderDetailExists(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) {
|
||||
List<SalesOrderDetailDO> list = salesOrderDetailMapper.selectByIds(ids);
|
||||
if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
|
||||
|
||||
Reference in New Issue
Block a user