Kaynağa Gözat

修改订单

fubin 2 yıl önce
ebeveyn
işleme
a65b18f1dd

+ 6 - 6
src/main/java/com/dk/mdm/service/ivt/OutboundService.java

@@ -169,8 +169,8 @@ public class OutboundService extends BaseService<Outbound> {
 
                 // 反写订单出库中数量、金额
                 orderItemForUpdate = orderItemMapper.selectByIdForUpdate(outboundItem.getFromItemId());
-                // 如果商品数量小于订单+本次出库单上的出库中数量
-                if (orderItemForUpdate.getItemQty().compareTo(orderItemForUpdate.getOutingQty().add(outboundItem.getOutingQty())) == -1) {
+                // 如果商品数量-已出库数量) 小于订单出库中数量+本次出库单出库中数量
+                if ((orderItemForUpdate.getItemQty().subtract(orderItemForUpdate.getOutQty())).compareTo(orderItemForUpdate.getOutingQty().add(outboundItem.getOutingQty())) == -1) {
                     throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
                 }
                 OrderItem orderItemUpdate = new OrderItem();
@@ -219,8 +219,8 @@ public class OutboundService extends BaseService<Outbound> {
             }
             orderItemForUpdate = orderItemMapper.selectByIdForUpdate(outboundItemVO.getFromItemId());
 
-            // 订单的商品数量不能小于(订单之前的出库中数量 - 出库明细之前的出库中数量 + 出库明细现在的出库中数量)
-            if (orderItemForUpdate.getItemQty().compareTo(orderItemForUpdate.getOutingQty().subtract(outboundItemForUpdate.getOutingQty()).add(outboundItemVO.getOutingQty())) == -1) {
+            // 订单的商品数量-订单已出库数量)不能小于(订单之前的出库中数量 - 出库明细之前的出库中数量 + 出库明细现在的出库中数量)
+            if ((orderItemForUpdate.getItemQty().subtract(orderItemForUpdate.getOutQty())).compareTo(orderItemForUpdate.getOutingQty().subtract(outboundItemForUpdate.getOutingQty()).add(outboundItemVO.getOutingQty())) == -1) {
                 throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
             }
             // 更新订单明细出库中数量
@@ -264,8 +264,8 @@ public class OutboundService extends BaseService<Outbound> {
         if(!outboundForUpdate.getFlgValid()){
             throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISFLGVALID_FALSE.getMessage());
         }
-        // 如果退货数量不是0,不能作废
-        if (outboundForUpdate.getReturnQty().compareTo(BigDecimal.ZERO) != 0) {
+        // 如果出库数量或退货数量不是0,不能作废
+        if (outboundForUpdate.getOutQty().compareTo(BigDecimal.ZERO) != 0 || outboundForUpdate.getReturnQty().compareTo(BigDecimal.ZERO) != 0) {
             throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISEXISTS_AFTER_OPERATE.getMessage());
         }
 

+ 4 - 4
src/main/java/com/dk/mdm/service/sale/OrderService.java

@@ -194,8 +194,8 @@ public class OrderService extends BaseService<Order> {
         List<OrderItemVO> editOrderItemVOList = orderVO.getItemList().stream().filter(it -> it.getItemId() != null).collect(Collectors.toList());
         for (OrderItemVO orderItemVO : editOrderItemVOList) {
             orderItemForUpdate = orderItemMapper.selectByIdForUpdate(orderItemVO.getItemId());
-            // 商品数量不能小于出库中数量
-            if (orderItemVO.getItemQty().compareTo(orderItemForUpdate.getOutingQty()) == -1) {
+            // 商品数量不能小于出库中数量+已出库数量)
+            if (orderItemVO.getItemQty().compareTo(orderItemForUpdate.getOutingQty().add(orderItemForUpdate.getOutQty())) == -1) {
                 throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ITEMQTY_NO_LESS_OUTQTY.getMessage());
             }
             OrderItem orderItem = orderItemConvert.convertToPo(orderItemVO);
@@ -218,8 +218,8 @@ public class OrderService extends BaseService<Order> {
             throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISFLGVALID_FALSE.getMessage());
         }
 
-        // 如果出库中数量不是0,不能作废
-        if (orderForUpdate.getOutingQty().compareTo(BigDecimal.ZERO) != 0) {
+        // 如果出库中数量或已出库数量不是0,不能作废
+        if (orderForUpdate.getOutingQty().compareTo(BigDecimal.ZERO) != 0 || orderForUpdate.getOutQty().compareTo(BigDecimal.ZERO) != 0) {
             throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISEXISTS_AFTER_OPERATE.getMessage());
         }
         // 作废

+ 4 - 4
src/main/java/com/dk/mdm/service/sale/OutReturnService.java

@@ -247,8 +247,8 @@ public class OutReturnService extends BaseService<OutReturn> {
             }
 
             outReturnItemForUpdate = outReturnItemMapper.selectByIdForUpdate(outReturnItemVO.getItemId());
-            // 退货数量不能小于入库中数量
-            if (outReturnItemVO.getItemQty().compareTo(outReturnItemForUpdate.getIntoingQty()) == -1) {
+            // 退货数量不能小于入库中数量+已入库数量)
+            if (outReturnItemVO.getItemQty().compareTo(outReturnItemForUpdate.getIntoingQty().add(outReturnItemForUpdate.getIntoQty())) == -1) {
                 throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.RETURNQTY_NO_LESS_INTOINGQTY.getMessage());
             }
 
@@ -324,8 +324,8 @@ public class OutReturnService extends BaseService<OutReturn> {
             throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISFLGVALID_FALSE.getMessage());
         }
 
-        // 如果入库数量不是0,不能作废
-        if (outReturnForUpdate.getIntoQty().compareTo(BigDecimal.ZERO) != 0) {
+        // 如果入库中或入库数量不是0,不能作废
+        if (outReturnForUpdate.getIntoingQty().compareTo(BigDecimal.ZERO) != 0 || outReturnForUpdate.getIntoQty().compareTo(BigDecimal.ZERO) != 0) {
             throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.ISEXISTS_AFTER_OPERATE.getMessage());
         }