Merge remote-tracking branch 'origin/dev' into test

This commit is contained in:
qianshijiang
2025-11-27 15:11:23 +08:00
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.bpm.api.task.BpmTaskApi;
import com.zt.plat.module.infra.api.businessfile.BusinessFileApi; import com.zt.plat.module.infra.api.businessfile.BusinessFileApi;
import com.zt.plat.module.infra.api.file.FileApi; 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.dept.DeptApi;
import com.zt.plat.module.system.api.sequence.SequenceApi; import com.zt.plat.module.system.api.sequence.SequenceApi;
import com.zt.plat.module.system.api.user.AdminUserApi; 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; import org.springframework.context.annotation.Configuration;
@Configuration(value = "contractorderRpcConfiguration", proxyBeanMethods = false) @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 { public class RpcConfiguration {
} }

View File

@@ -2,12 +2,14 @@ package com.zt.plat.module.contractorder.service.purchaseorder;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.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.PrchOrdDtlPageReqVO;
import com.zt.plat.module.contractorder.controller.admin.purchaseorder.vo.PrchOrdDtlRespVO; 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.controller.admin.purchaseorder.vo.PrchOrdDtlSaveReqVO;
import com.zt.plat.module.contractorder.dal.dataobject.purchaseorder.PrchOrdDtlDO; 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.contractorder.dal.mysql.purchaseorder.PrchOrdDtlMapper;
import com.zt.plat.module.receivedeliver.api.bill.BillMainApi;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import jakarta.annotation.Resource; 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 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.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.convertList;
import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList; import static com.zt.plat.framework.common.util.collection.CollectionUtils.diffList;
@@ -39,6 +40,8 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService {
@Resource @Resource
private PrchOrdDtlMapper prchOrdDtlMapper; private PrchOrdDtlMapper prchOrdDtlMapper;
@Resource
private BillMainApi billMainApi;
@Override @Override
public PrchOrdDtlRespVO createPrchOrdDtl(PrchOrdDtlSaveReqVO createReqVO) { public PrchOrdDtlRespVO createPrchOrdDtl(PrchOrdDtlSaveReqVO createReqVO) {
@@ -68,14 +71,25 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService {
} }
@Override @Override
public void deletePrchOrdDtlListByIds(List<Long> ids) { @Transactional(rollbackFor = Exception.class)
public void deletePrchOrdDtlListByIds(List<Long> ids) {
//校验是否可以删除 //校验是否可以删除
validateBillMainCanDelete(ids);
// 校验存在 // 校验存在
validatePrchOrdDtlExists(ids); validatePrchOrdDtlExists(ids);
// 删除 // 删除
prchOrdDtlMapper.deleteByIds(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) { private void validatePrchOrdDtlExists(List<Long> ids) {
List<PrchOrdDtlDO> list = prchOrdDtlMapper.selectByIds(ids); List<PrchOrdDtlDO> list = prchOrdDtlMapper.selectByIds(ids);