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>
</dependency>
<dependency>
<groupId>com.zt.plat</groupId>
<artifactId>zt-module-receive-deliver-api</artifactId>
<version>${revision}</version>
</dependency>
<!-- 业务组件 -->
<dependency>
<groupId>com.zt.plat</groupId>

View File

@@ -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;
}

View File

@@ -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);

View File

@@ -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<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()) {