diff --git a/hangtag-module-oms/hangtag-module-oms-api/src/main/java/cn/hangtag/module/oms/enums/ErrorCodeConstants.java b/hangtag-module-oms/hangtag-module-oms-api/src/main/java/cn/hangtag/module/oms/enums/ErrorCodeConstants.java index 9e42397..0906d0d 100644 --- a/hangtag-module-oms/hangtag-module-oms-api/src/main/java/cn/hangtag/module/oms/enums/ErrorCodeConstants.java +++ b/hangtag-module-oms/hangtag-module-oms-api/src/main/java/cn/hangtag/module/oms/enums/ErrorCodeConstants.java @@ -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, "产品保养项 不存在"); diff --git a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java index 555884e..96fd012 100644 --- a/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java +++ b/hangtag-module-oms/hangtag-module-oms-biz/src/main/java/cn/hangtag/module/oms/service/saleorder/SaleOrderServiceImpl.java @@ -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 lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.ne(SaleOrderDO::getId, saleOrder.getId()); + lambdaQueryWrapper.eq(SaleOrderDO::getSaleContractCode, saleContractCode); + List saleOrderDOS = saleOrderMapper.selectList(lambdaQueryWrapper); + if(saleOrderDOS.size()>0){ + throw new ServiceException(001, "销售合约号已重复使用,"); + } + } /** * 生成产品单价记录