Kaynağa Gözat

采购入库编辑

koushanshan 1 yıl önce
ebeveyn
işleme
ac4b79ef1d

+ 10 - 8
src/main/java/com/dk/mdm/service/ivt/inbound/InboundPurchaseService.java

@@ -781,8 +781,10 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                         //region  提取新建分组后的明细
                         List<InboundItemVO> purchaseIntoItemVOListGroup = purchaseIntoItemVOListMap.get(fromId);
                         //分组后的明细 出库数量和金额总和
-                        BigDecimal purchaseSumQty = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
-                        BigDecimal purchaseSumAmt = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                        BigDecimal purchaseSumQtying = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                        BigDecimal purchaseSumAmting = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+                        BigDecimal purchaseSumQty = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
+                        BigDecimal purchaseSumAmt = purchaseIntoItemVOListGroup.stream().map(InboundItemVO::getIntoAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
                         //分组后的明细 原出库数量和金额总和
                         BigDecimal updatePurchaseIntoQty = BigDecimal.ZERO;
                         BigDecimal updatePurchaseIntoAmt = BigDecimal.ZERO;
@@ -835,8 +837,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                         }
                         //入库中
                         else if (Constant.IntoStatus.RUKUZHONG.getName().equals(inboundResponse.getIntoStatus())) {
-                            purchase.setIntoingQty(purchaseSumQty.subtract(updatePurchaseIntoingQty).subtract(purchaseDelOutQty));
-                            purchase.setIntoingAmt(purchaseSumAmt.subtract(updatePurchaseIntoingAmt).subtract(purchaseDelOutAmt));
+                            purchase.setIntoingQty(purchaseSumQtying.subtract(updatePurchaseIntoingQty).subtract(purchaseDelOutQty));
+                            purchase.setIntoingAmt(purchaseSumAmting.subtract(updatePurchaseIntoingAmt).subtract(purchaseDelOutAmt));
                             purchase.setUpdateIntoingMessageFlag(true);
                             //入库状态
                             String intoStatus = this.setIntoStatus(purchaseResponse.getIntoingQty().add(purchase.getIntoingQty()),
@@ -1783,8 +1785,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
     public String setIntoStatus(BigDecimal intoingQty, BigDecimal intoQty, BigDecimal sumQty) {
         //入库状态
         String intoStatus = null;
-        //入库中小于等于总数,已入库小于总数,并且入库中+已入库大于0
-        if (intoingQty.compareTo(sumQty) <= 0 && intoQty.compareTo(sumQty) < 0 && intoingQty.add(intoQty).compareTo(BigDecimal.ZERO) > 0) {
+        //已入库数量>=0 入库中数量>0
+        if (intoQty.compareTo(BigDecimal.ZERO) >= 0 && intoingQty.compareTo(BigDecimal.ZERO) > 0) {
             //入库中
             intoStatus = Constant.IntoStatus.RUKUZHONG.getName();
         }
@@ -1793,8 +1795,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
             //待入库
             intoStatus = Constant.IntoStatus.DAIRUKU.getName();
         }
-        //入库中+已入库 等于 总数 并且 入库中数量小于等于订单总数量
-        else if (intoingQty.compareTo(sumQty) < 0 && intoingQty.add(intoQty).compareTo(sumQty) == 0) {
+        //已入库 数量>0 入库中数量=0
+        else if (intoQty.compareTo(BigDecimal.ZERO) > 0 && intoingQty.compareTo(BigDecimal.ZERO) == 0) {
             //已入库
             intoStatus = Constant.IntoStatus.YIRUKU.getName();
         }

+ 5 - 3
src/main/java/com/dk/mdm/service/ivt/inventory/InventoryService.java

@@ -326,9 +326,11 @@ public class InventoryService extends BaseService<Inventory> {
         //入库
         if (map.get("intoDetail") != null) {
             intoDetail = (JSONArray) JSON.toJSON(map.get("intoDetail"));
-            JSONObject obj = (JSONObject) intoDetail.get(0);
-            inventoryDocCode = obj.get("inventoryDocCode").toString();
-            addOrEditFlag = obj.getBoolean("addOrEditFlag");
+            if (intoDetail.size() > 0) {
+                JSONObject obj = (JSONObject) intoDetail.get(0);
+                inventoryDocCode = obj.get("inventoryDocCode").toString();
+                addOrEditFlag = obj.getBoolean("addOrEditFlag");
+            }
         }
         //入库删除
         if (map.get("delIntoDetail") != null) {

+ 1 - 1
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleOrderService.java

@@ -2074,7 +2074,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
     public String setOutStatus(BigDecimal outingQty, BigDecimal outQty) {
         //出库状态
         String outStatus = null;
-        //已出库数量>0 出库中数量>0
+        //已出库数量>=0 出库中数量>0
         if (outQty.compareTo(BigDecimal.ZERO) >= 0 && outingQty.compareTo(BigDecimal.ZERO) > 0) {
             //出库中
             outStatus = Constant.OutStatus.CHUKUZHONG.getName();