Merge remote-tracking branch 'origin/dev' into test
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user