优化修改订单

This commit is contained in:
Mrking 2025-01-19 21:50:46 +08:00
parent ba06f1fb59
commit 1f5872249e
2 changed files with 22 additions and 2 deletions

View File

@ -16,6 +16,7 @@ public interface ErrorCodeConstants extends cn.hangtag.module.system.enums.Erro
ErrorCode SALE_ORDER_NOT_DELETE = new ErrorCode(3601, "OMS销售订单已审核不允许删除");
ErrorCode SALE_ORDER_ENTRY_NOT_EXISTS = new ErrorCode(3700, "OMS销售订单明细不存在");
ErrorCode SALE_ORDER_ENTRY_PRICE_NOT_NULL= new ErrorCode(3701, "单价不允许为空");
ErrorCode SALE_ORDER_ENTRY_QTY_NOT_NULL= new ErrorCode(3701, "数量不允许为空");
ErrorCode SALE_ORDER_SKU_NOT_EXISTS = new ErrorCode(3702, "产品单价记录不存在");
ErrorCode CUSTOMER_BRAND_NOT_EXISTS = new ErrorCode(3800, "客户和品牌关联不存在");
ErrorCode PRODUCT_CARE_ITEM_NOT_EXISTS = new ErrorCode(3900, "产品保养项 不存在");

View File

@ -340,11 +340,17 @@ public class SaleOrderServiceImpl implements SaleOrderService {
if (entrys == null || entrys.isEmpty()) {
throw new ServiceException(001, "产品明细为空");
}
verifySaleContractCodeIsExist(saleOrder,saleContractCode);
for (SaleOrderEntryDO entry : entrys) {
Integer qty = entry.getQty();
BigDecimal price = entry.getPrice();
if (price == null) {
if (price == null){
throw new ServiceException(ErrorCodeConstants.SALE_ORDER_ENTRY_PRICE_NOT_NULL);
}
if (qty == null || qty <=0) {
throw new ServiceException(ErrorCodeConstants.SALE_ORDER_ENTRY_QTY_NOT_NULL);
}
}
saleOrder.setBillStatus(BillStatusEnum.AUDIT.getValue());
@ -354,7 +360,6 @@ public class SaleOrderServiceImpl implements SaleOrderService {
saleOrder.setAuditorTime(LocalDateTime.now());
//生成产品单价记录
for (SaleOrderEntryDO entry : entrys) {
Long parentId = entry.getParentId();
@ -430,6 +435,20 @@ public class SaleOrderServiceImpl implements SaleOrderService {
}
}
/**
* 验证销售合约号是否存在
* @param saleOrder
* @param saleContractCode
*/
private void verifySaleContractCodeIsExist(SaleOrderDO saleOrder, String saleContractCode) {
LambdaQueryWrapper<SaleOrderDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.ne(SaleOrderDO::getId, saleOrder.getId());
lambdaQueryWrapper.eq(SaleOrderDO::getSaleContractCode, saleContractCode);
List<SaleOrderDO> saleOrderDOS = saleOrderMapper.selectList(lambdaQueryWrapper);
if(saleOrderDOS.size()>0){
throw new ServiceException(001, "销售合约号已重复使用,");
}
}
/**
* 生成产品单价记录