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

This commit is contained in:
qianshijiang
2025-11-27 17:07:31 +08:00
4 changed files with 33 additions and 7 deletions

View File

@@ -42,6 +42,11 @@
<version>${revision}</version> <version>${revision}</version>
</dependency> </dependency>
<dependency>
<groupId>com.zt.plat</groupId>
<artifactId>zt-module-receive-deliver-api</artifactId>
<version>${revision}</version>
</dependency>
<!-- 业务组件 --> <!-- 业务组件 -->
<dependency> <dependency>
<groupId>com.zt.plat</groupId> <groupId>com.zt.plat</groupId>

View File

@@ -104,20 +104,22 @@ public class OrderApiImpl implements OrderApi {
if ("SALE".equals(f.getSplyBsnTp())) { if ("SALE".equals(f.getSplyBsnTp())) {
SalesOrderDetailDO salesOrderDetailDO = salesOrderDetailMapper.selectById(f.getOrderDetailId()); SalesOrderDetailDO salesOrderDetailDO = salesOrderDetailMapper.selectById(f.getOrderDetailId());
// 处理 trfQty 可能为 null 的情况,默认值 0 // 处理 trfQty 可能为 null 的情况,默认值 0
BigDecimal trfQty = Optional.ofNullable(salesOrderDetailDO.getTrfQty()) BigDecimal lstQty = Optional.ofNullable(salesOrderDetailDO.getTrfQty())
.orElse(BigDecimal.ZERO); .orElse(BigDecimal.ZERO);
SalesOrderDetailDO updateDO = new SalesOrderDetailDO(); SalesOrderDetailDO updateDO = new SalesOrderDetailDO();
updateDO.setId(f.getOrderDetailId()); // 给更新对象设 ID 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); salesOrderDetailMapper.updateById(updateDO);
} else if ("PUR".equals(f.getSplyBsnTp())) { } else if ("PUR".equals(f.getSplyBsnTp())) {
// 采购 // 采购
PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(f.getOrderDetailId()); PrchOrdDtlDO prchOrdDtlDO = prchOrdDtlMapper.selectById(f.getOrderDetailId());
BigDecimal trfQty = Optional.ofNullable(prchOrdDtlDO.getTrfQty()) BigDecimal lstQty = Optional.ofNullable(prchOrdDtlDO.getTrfQty())
.orElse(BigDecimal.ZERO); .orElse(BigDecimal.ZERO);
PrchOrdDtlDO updateDO = new PrchOrdDtlDO(); PrchOrdDtlDO updateDO = new PrchOrdDtlDO();
updateDO.setId(f.getOrderDetailId()); updateDO.setId(f.getOrderDetailId());
updateDO.setTrfQty(trfQty.add(f.getLstQty())); updateDO.setLstQty(lstQty.add(f.getLstQty()));
log.info("更新销售订单明细:{}", updateDO);
prchOrdDtlMapper.updateById(updateDO); prchOrdDtlMapper.updateById(updateDO);
} else { } else {
throw new RuntimeException("请求数据错误"); throw new RuntimeException("请求数据错误");
@@ -207,7 +209,7 @@ public class OrderApiImpl implements OrderApi {
ordDtlDTO.setTrfWrhName(p.getTrfWrhName()); ordDtlDTO.setTrfWrhName(p.getTrfWrhName());
ordDtlDTO.setTrfWrhNum(p.getTrfWrhNum()); ordDtlDTO.setTrfWrhNum(p.getTrfWrhNum());
ordDtlDTO.setRmk(p.getRmk()); ordDtlDTO.setRmk(p.getRmk());
ordDtlDTO.setLstQty(p.getLstQty());
} else if ( } else if (
t instanceof SalesOrderDetailDO s t instanceof SalesOrderDetailDO s
@@ -230,8 +232,9 @@ public class OrderApiImpl implements OrderApi {
ordDtlDTO.setElementCode(s.getElementNumber()); ordDtlDTO.setElementCode(s.getElementNumber());
ordDtlDTO.setIsEnable(s.getIsEnable()); ordDtlDTO.setIsEnable(s.getIsEnable());
ordDtlDTO.setTaxNum(s.getTaxAcctasscat()); ordDtlDTO.setTaxNum(s.getTaxAcctasscat());
ordDtlDTO.setTrfQty(s.getTrfQty()); ordDtlDTO.setLstQty(s.getTrfQty());
ordDtlDTO.setRmk(s.getRemark()); ordDtlDTO.setRmk(s.getRemark());
ordDtlDTO.setTaxRte(s.getTaxRte());
} }
return ordDtlDTO; return ordDtlDTO;
} }

View File

@@ -16,6 +16,7 @@ import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import com.zt.plat.framework.common.pojo.PageParam; import com.zt.plat.framework.common.pojo.PageParam;
@@ -48,6 +49,7 @@ public class PrchOrdDtlServiceImpl implements PrchOrdDtlService {
// 插入 // 插入
PrchOrdDtlDO prchOrdDtl = BeanUtils.toBean(createReqVO, PrchOrdDtlDO.class); PrchOrdDtlDO prchOrdDtl = BeanUtils.toBean(createReqVO, PrchOrdDtlDO.class);
log.info("创建采购订单明细,创建数据【{}】", prchOrdDtl); log.info("创建采购订单明细,创建数据【{}】", prchOrdDtl);
prchOrdDtl.setTrfQty(BigDecimal.ZERO);
prchOrdDtlMapper.insert(prchOrdDtl); prchOrdDtlMapper.insert(prchOrdDtl);
// 返回 // 返回
return BeanUtils.toBean(prchOrdDtl, PrchOrdDtlRespVO.class); return BeanUtils.toBean(prchOrdDtl, PrchOrdDtlRespVO.class);

View File

@@ -1,16 +1,19 @@
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;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import com.zt.plat.framework.common.pojo.PageResult; import com.zt.plat.framework.common.pojo.PageResult;
@@ -33,12 +36,15 @@ public class SalesOrderDetailServiceImpl implements SalesOrderDetailService {
@Resource @Resource
private SalesOrderDetailMapper salesOrderDetailMapper; private SalesOrderDetailMapper salesOrderDetailMapper;
@Resource
private BillMainApi billMainApi;
@Override @Override
@Transactional @Transactional
public SalesOrderDetailRespVO createSalesOrderDetail(SalesOrderDetailSaveReqVO createReqVO) { public SalesOrderDetailRespVO createSalesOrderDetail(SalesOrderDetailSaveReqVO createReqVO) {
// 插入 // 插入
SalesOrderDetailDO salesOrderDetail = BeanUtils.toBean(createReqVO, SalesOrderDetailDO.class); SalesOrderDetailDO salesOrderDetail = BeanUtils.toBean(createReqVO, SalesOrderDetailDO.class);
salesOrderDetail.setTrfQty(BigDecimal.ZERO);
salesOrderDetail.setOrderId(Long.valueOf(createReqVO.getOrderId())); salesOrderDetail.setOrderId(Long.valueOf(createReqVO.getOrderId()));
salesOrderDetailMapper.insert(salesOrderDetail); salesOrderDetailMapper.insert(salesOrderDetail);
// 返回 // 返回
@@ -76,12 +82,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()) {