diff --git a/zt-module-contract-order/zt-module-contract-order-server/pom.xml b/zt-module-contract-order/zt-module-contract-order-server/pom.xml
index cf916c27..3f201f4a 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/pom.xml
+++ b/zt-module-contract-order/zt-module-contract-order-server/pom.xml
@@ -42,6 +42,11 @@
${revision}
+
+ com.zt.plat
+ zt-module-receive-deliver-api
+ ${revision}
+
com.zt.plat
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java
index 76c193f2..adc78767 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/api/OrderApiImpl.java
@@ -104,20 +104,22 @@ public class OrderApiImpl implements OrderApi {
if ("SALE".equals(f.getSplyBsnTp())) {
SalesOrderDetailDO salesOrderDetailDO = salesOrderDetailMapper.selectById(f.getOrderDetailId());
// 处理 trfQty 可能为 null 的情况,默认值 0
- BigDecimal trfQty = Optional.ofNullable(salesOrderDetailDO.getTrfQty())
+ BigDecimal lstQty = Optional.ofNullable(salesOrderDetailDO.getTrfQty())
.orElse(BigDecimal.ZERO);
SalesOrderDetailDO updateDO = new SalesOrderDetailDO();
updateDO.setId(f.getOrderDetailId()); // 给更新对象设 ID
- updateDO.setTrfQty(trfQty.add(f.getLstQty())); // 累加(trfQty )
+ updateDO.setTrfQty(lstQty.add(f.getLstQty())); // 累加(trfQty )
+ log.info("更新销售订单明细:{}", updateDO);
salesOrderDetailMapper.updateById(updateDO);
} else if ("PUR".equals(f.getSplyBsnTp())) {
// 采购
PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(f.getOrderDetailId());
- BigDecimal trfQty = Optional.ofNullable(prchOrdDtlDO.getTrfQty())
+ BigDecimal lstQty = Optional.ofNullable(prchOrdDtlDO.getTrfQty())
.orElse(BigDecimal.ZERO);
PrchOrdDtlDO updateDO = new PrchOrdDtlDO();
updateDO.setId(f.getOrderDetailId());
- updateDO.setTrfQty(trfQty.add(f.getLstQty()));
+ updateDO.setLstQty(lstQty.add(f.getLstQty()));
+ log.info("更新销售订单明细:{}", updateDO);
prchOrdDtlMapper.updateById(updateDO);
} else {
throw new RuntimeException("请求数据错误");
@@ -207,7 +209,7 @@ public class OrderApiImpl implements OrderApi {
ordDtlDTO.setTrfWrhName(p.getTrfWrhName());
ordDtlDTO.setTrfWrhNum(p.getTrfWrhNum());
ordDtlDTO.setRmk(p.getRmk());
-
+ ordDtlDTO.setLstQty(p.getLstQty());
} else if (
t instanceof SalesOrderDetailDO s
@@ -230,8 +232,9 @@ public class OrderApiImpl implements OrderApi {
ordDtlDTO.setElementCode(s.getElementNumber());
ordDtlDTO.setIsEnable(s.getIsEnable());
ordDtlDTO.setTaxNum(s.getTaxAcctasscat());
- ordDtlDTO.setTrfQty(s.getTrfQty());
+ ordDtlDTO.setLstQty(s.getTrfQty());
ordDtlDTO.setRmk(s.getRemark());
+ ordDtlDTO.setTaxRte(s.getTaxRte());
}
return ordDtlDTO;
}
diff --git a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java
index 86e5e431..c98e3a35 100644
--- a/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java
+++ b/zt-module-contract-order/zt-module-contract-order-server/src/main/java/com/zt/plat/module/contractorder/service/purchaseorder/PrchOrdDtlServiceImpl.java
@@ -16,6 +16,7 @@ import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
import java.util.*;
import com.zt.plat.framework.common.pojo.PageParam;
@@ -48,6 +49,7 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService {
// 插入
PrchOrdDtlDO prchOrdDtl = BeanUtils.toBean(createReqVO, PrchOrdDtlDO.class);
log.info("创建采购订单明细,创建数据【{}】", prchOrdDtl);
+ prchOrdDtl.setTrfQty(BigDecimal.ZERO);
prchOrdDtlMapper.insert(prchOrdDtl);
// 返回
return BeanUtils.toBean(prchOrdDtl, PrchOrdDtlRespVO.class);
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..436b5702 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,16 +1,19 @@
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;
import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
import java.util.*;
import com.zt.plat.framework.common.pojo.PageResult;
@@ -33,12 +36,15 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
@Resource
private SalesOrderDetailMapper salesOrderDetailMapper;
+ @Resource
+ private BillMainApi billMainApi;
@Override
@Transactional
public SalesOrderDetailRespVO createSalesOrderDetail(SalesOrderDetailSaveReqVO createReqVO) {
// 插入
SalesOrderDetailDO salesOrderDetail = BeanUtils.toBean(createReqVO, SalesOrderDetailDO.class);
+ salesOrderDetail.setTrfQty(BigDecimal.ZERO);
salesOrderDetail.setOrderId(Long.valueOf(createReqVO.getOrderId()));
salesOrderDetailMapper.insert(salesOrderDetail);
// 返回
@@ -76,12 +82,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()) {