koushanshan 2 лет назад
Родитель
Сommit
9aa5068f46

+ 7 - 0
src/main/java/com/dk/mdm/infrastructure/convert/ivt/InboundItemConvert.java

@@ -28,4 +28,11 @@ public interface InboundItemConvert {
      * @author : 寇珊珊
      */
     InboundItemVO  convertResTVO(InboundItemResponse inboundItemResponse);
+
+    /**
+     * @desc   : vo转res
+     * @date   : 2024/4/17 11:00
+     * @author : 寇珊珊
+     */
+    InboundItemResponse  convertVOToRes(InboundItemVO inboundItemVO);
 }

+ 2 - 0
src/main/java/com/dk/mdm/model/response/ivt/InboundItemResponse.java

@@ -389,6 +389,8 @@ public class InboundItemResponse  {
     @ApiModelProperty(value = "可售量")
     private BigDecimal usableQty;
 
+    @ApiModelProperty(value = "新建编辑标识true:新建,false:编辑")
+    private Boolean addOrEditFlag;
 
 
 

+ 4 - 0
src/main/java/com/dk/mdm/model/response/ivt/OutboundItemResponse.java

@@ -301,6 +301,10 @@ public class OutboundItemResponse {
     private String skuSpec;
 
 
+    @ApiModelProperty(value = "新建编辑标识true:新建,false:编辑")
+    private Boolean addOrEditFlag;
+
+
 
     private static final long serialVersionUID = 1L;
 

+ 3 - 0
src/main/java/com/dk/mdm/model/vo/ivt/OutboundItemVO.java

@@ -226,6 +226,9 @@ public class OutboundItemVO {
     @ApiModelProperty(value = "仓库")
     private String whId;
 
+    @ApiModelProperty(value = "新建编辑标识true:新建,false:编辑")
+    private Boolean addOrEditFlag;
+
     private static final long serialVersionUID = 1L;
 
 }

+ 27 - 11
src/main/java/com/dk/mdm/service/ivt/inbound/InboundCheckService.java

@@ -123,12 +123,7 @@ public class InboundCheckService extends BaseService<Inbound> {
                     ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getMessage());
         }
         for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
-            //region 将库存需要的参数赋值
-            inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-            inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.INVENTORY_PROFIT.getValue());
-            //endregion
-
-
+            //region 明细
             //总单id
             inboundItemVO.setIntoId(inboundVO.getIntoId());
             //入库类型
@@ -147,15 +142,29 @@ public class InboundCheckService extends BaseService<Inbound> {
             //实体转换
             InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
             inboundItemMapper.insert(inboundItem);
+            inboundItemVO.setItemId(inboundItem.getItemId());
+            //endregion
+
+            //region 将库存需要的参数赋值
+            inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+            //盘盈入库
+            if(Constant.IntoType.PROFIT.getName().equals(inboundVO.getIntoType())){
+                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.INVENTORY_PROFIT.getValue());
+            }
+            //仓库调整
+            else{
+                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.MOVE.getValue());
+            }
+            inboundItemVO.setAddOrEditFlag(true);
             //endregion
 
         }
         //endregion
 
         //region 修改库存
-//		Map<String, Object> invMap = new HashMap<>();
-//		invMap.put("intoDetail", inboundVO.getItemList());
-//		inventoryService.operatingInventoryInformation(invMap);
+		Map<String, Object> invMap = new HashMap<>();
+		invMap.put("intoDetail", inboundVO.getItemList());
+		inventoryService.operatingInventoryInformation(invMap);
         //endregion
 
         return inboundVO;
@@ -179,7 +188,14 @@ public class InboundCheckService extends BaseService<Inbound> {
         for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
             //region 将库存需要的参数赋值
             inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
-            inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+            //盘盈入库
+            if(Constant.IntoType.PROFIT.getName().equals(inboundItemResponse.getIntoType())){
+                inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.INVENTORY_PROFIT.getValue());
+            }
+            //仓库调整
+            else{
+                inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.MOVE.getValue());
+            }
             inboundItemResponse.setIntoQty(inboundItemResponse.getIntoQty().negate());
             inboundItemResponse.setIntoAmt(inboundItemResponse.getIntoAmt().negate());
             //endregion
@@ -208,7 +224,7 @@ public class InboundCheckService extends BaseService<Inbound> {
 
         //region 库存
         Map<String, Object> map = new HashMap<>();
-        map.put("intoDetail", inboundItemResponseList);
+        map.put("delIntoDetail", inboundItemResponseList);
         inventoryService.operatingInventoryInformation(map);
         //endregion
 

+ 39 - 21
src/main/java/com/dk/mdm/service/ivt/inbound/InboundOtherService.java

@@ -204,7 +204,6 @@ public class InboundOtherService extends BaseService<Inbound> {
         }
         //endregion
 
-
         //region 库存
         if (Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())) {
             Map<String, Object> invMap = new HashMap<>();
@@ -260,22 +259,22 @@ public class InboundOtherService extends BaseService<Inbound> {
                 //region 修改明细
                 List<InboundItemVO> itemList = inboundVO.getItemList();
                 for (InboundItemVO inboundItemVO : itemList) {
-                    //根据id查询
-                    InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
-                    //region 将库存需要的参数赋值
-                    inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-                    inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
-                    //编辑之前的数
-                    inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
-                    inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
-                    //编辑之后的数
-                    inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
-                    inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
-                    inboundItemVO.setAddOrEditFlag(true);
-                    //endregion
-
                     //region 编辑明细赋值
                     if (inboundItemVO.getItemId() != null) {
+                        //根据id查询
+                        InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
+                        //region 将库存需要的参数赋值
+                        inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                        inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+                        //编辑之前的数
+                        inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
+                        inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
+                        //编辑之后的数
+                        inboundItemVO.setIntoQty(inboundItemVO.getIntoingQty());
+                        inboundItemVO.setIntoAmt(inboundItemVO.getIntoingAmt());
+                        inboundItemVO.setAddOrEditFlag(false);
+                        //endregion
+
                         InboundItem inboundItem = new InboundItem();
                         inboundItem.setItemId(inboundItemVO.getItemId());
                         inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
@@ -307,6 +306,13 @@ public class InboundOtherService extends BaseService<Inbound> {
                         //实体转换
                         InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                         inboundItemMapper.insert(inboundItem);
+                        //region 将库存需要的参数赋值
+                        inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                        inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+                        inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
+                        inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
+                        inboundItemVO.setAddOrEditFlag(true);
+                        //endregion
                     }
                     //endregion
                 }
@@ -319,6 +325,7 @@ public class InboundOtherService extends BaseService<Inbound> {
                         inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
                         inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
                         //endregion
+
                         if (inboundItemVO.getItemId() != null) {
                             InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                             inboundItem.setFlgValid(false);
@@ -537,12 +544,6 @@ public class InboundOtherService extends BaseService<Inbound> {
                     ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getMessage());
         }
         for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
-            //region 将库存需要的参数赋值
-            inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-            inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
-            inboundItemVO.setAddOrEditFlag(true);
-            //endregion
-
             //region  修改明细
             if (inboundItemVO.getIntoId() != null) {
                 InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
@@ -573,6 +574,15 @@ public class InboundOtherService extends BaseService<Inbound> {
                                 .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
                 );
                 //endregion
+
+                //region 将库存需要的参数赋值
+                inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+                //编辑之前的数
+                inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
+                inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
+                inboundItemVO.setAddOrEditFlag(false);
+                //endregion
             }
             //endregion
 
@@ -595,6 +605,12 @@ public class InboundOtherService extends BaseService<Inbound> {
                 InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                 //新建
                 inboundItemMapper.insert(inboundItem);
+
+                //region 将库存需要的参数赋值
+                inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+                inboundItemVO.setAddOrEditFlag(true);
+                //endregion
             }
             //endregion
         }
@@ -681,6 +697,8 @@ public class InboundOtherService extends BaseService<Inbound> {
             //region 将库存需要的参数赋值
             inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
             inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+            inboundItemResponse.setIntoQty(inboundItemResponse.getIntoQty().negate());
+            inboundItemResponse.setIntoAmt(inboundItemResponse.getIntoAmt().negate());
             //region
             InboundItem inboundItem = new InboundItem();
             inboundItem

+ 68 - 41
src/main/java/com/dk/mdm/service/ivt/inbound/InboundPurchaseReturnService.java

@@ -183,6 +183,7 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
             //region 将库存需要的参数赋值
             inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
             inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
+            inboundItemVO.setAddOrEditFlag(true);
             //endregion
 
             //总单id
@@ -221,11 +222,11 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
         //endregion
 
         //region 库存
-//        if(Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())){
-//            Map<String, Object> invMap = new HashMap<>();
-//            invMap.put("intoDetail",inboundVO.getItemList());
-//            inventoryService.operatingInventoryInformation(map);
-//        }
+        if (Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())) {
+            Map<String, Object> invMap = new HashMap<>();
+            invMap.put("intoDetail", inboundVO.getItemList());
+            inventoryService.operatingInventoryInformation(map);
+        }
         //endregion
 
         return ResponseResultUtil.success(inboundVO);
@@ -290,20 +291,21 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
                     //根据id查询
                     InboundItemResponse inboundItemResponse = inboundItemMapper.selectById(inboundItemVO.getItemId());
 
-                    //region 将库存需要的参数赋值
-                    inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-                    inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
-                    //编辑之前的数
-                    inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
-                    inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
-                    //编辑之后的数
-                    inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
-                    inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
-
-                    //endregion
-
                     //region  编辑明细
                     if (inboundItemVO.getItemId() != null) {
+
+                        //region 将库存需要的参数赋值
+                        inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                        inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
+                        //编辑之前的数
+                        inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
+                        inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
+                        //编辑之后的数
+                        inboundItemVO.setIntoQty(inboundItemVO.getIntoingQty());
+                        inboundItemVO.setIntoAmt(inboundItemVO.getIntoingAmt());
+                        inboundItemVO.setAddOrEditFlag(false);
+                        //endregion
+
                         InboundItem inboundItem = new InboundItem();
                         inboundItem.setItemId(inboundItemVO.getItemId());
                         inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
@@ -335,6 +337,12 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
                         //实体转换
                         InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                         inboundItemMapper.insert(inboundItem);
+
+                        //region 将库存需要的参数赋值
+                        inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                        inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
+                        inboundItemVO.setAddOrEditFlag(true);
+                        //endregion
                     }
                     //endregion
 
@@ -345,6 +353,11 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
                 if (inboundVO.getDeleteItemList() != null) {
                     for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
                         if (inboundItemVO.getItemId() != null) {
+                            //region 将库存需要的参数赋值
+                            inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                            inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
+                            //endregion
+
                             InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                             inboundItem.setFlgValid(false);
                             //修改
@@ -374,10 +387,11 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
                 }
                 //endregion
 
-                //region  todo 调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("intoDetail",inboundVO.getItemList());
-//                inventoryService.operatingInventoryInformation(map);
+                //region  调用库存
+                Map<String, Object> map = new HashMap<>();
+                map.put("intoDetail",inboundVO.getItemList());
+                map.put("delIntoDetail",inboundVO.getDeleteItemList());
+                inventoryService.operatingInventoryInformation(map);
                 //endregion
             }
             //endregion
@@ -472,6 +486,7 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
 
             //region 修改明细
             for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
+
                 //region 将库存需要的参数赋值
                 inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
                 inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
@@ -508,10 +523,10 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
             //endregion
 
 
-            //region  todo 调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("intoDetail",inboundItemResponseList);
-//                inventoryService.operatingInventoryInformation(map);
+            //region   调用库存
+            Map<String, Object> map = new HashMap<>();
+            map.put("delIntoDetail", inboundItemResponseList);
+            inventoryService.operatingInventoryInformation(map);
             //endregion
         }
         //endregion
@@ -582,11 +597,6 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
             }
             //endregion
 
-            //region 将库存需要的参数赋值
-            inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
-            inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
-            //endregion
-
             //region 编辑明细
             if (inboundItemVO.getItemId() != null) {
                 inboundItemVO
@@ -606,6 +616,14 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
                         new UpdateWrapper<InboundItem>().lambda()
                                 .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
                 );
+                //region 将库存需要的参数赋值
+                inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
+                //编辑之前的数
+                inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
+                inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
+                inboundItemVO.setAddOrEditFlag(false);
+                //endregion
             }
             //endregion
 
@@ -628,6 +646,11 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
                 InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                 //新建
                 inboundItemMapper.insert(inboundItem);
+                //region 将库存需要的参数赋值
+                inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
+                inboundItemVO.setAddOrEditFlag(true);
+                //endregion
             }
             //endregion
         }
@@ -637,6 +660,10 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
         if (inboundVO.getDeleteItemList() != null) {
             for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
                 if (inboundItemVO.getItemId() != null) {
+                    //region 将库存需要的参数赋值
+                    inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                    inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
+                    //endregion
                     InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                     inboundItem.setFlgValid(false);
                     //修改
@@ -673,10 +700,11 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
         accountService.accPayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
         //endregion
 
-        //region  todo 调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("intoDetail",inboundVO.getItemList());
-//                inventoryService.operatingInventoryInformation(map);
+        //region   调用库存
+        Map<String, Object> map = new HashMap<>();
+        map.put("intoDetail", inboundVO.getItemList());
+        map.put("delIntoDetail", inboundVO.getDeleteItemList());
+        inventoryService.operatingInventoryInformation(map);
         //endregion
 
         return ResponseResultUtil.success(inboundVO);
@@ -718,8 +746,8 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
 
         //region 明细数据
         //根据总单id查明细
-        List<InboundItemResponse> orderEntryItemResponsesList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inbound.getIntoId()));
-        for (InboundItemResponse inboundItemResponse : orderEntryItemResponsesList) {
+        List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inbound.getIntoId()));
+        for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
             //region 将库存需要的参数赋值
             inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
             inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_RETURN.getValue());
@@ -749,17 +777,16 @@ public class InboundPurchaseReturnService extends BaseService<Inbound> {
         }
         //endregion
 
-
         //region  账款
         if (inboundVO.getReceivableId() != null) {
             accountService.accPayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
         }
         //endregion
 
-        //region  todo 调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("intoDetail",inboundItemResponseList);
-//                inventoryService.operatingInventoryInformation(map);
+        //region   调用库存
+        Map<String, Object> map = new HashMap<>();
+        map.put("delIntoDetail", inboundItemResponseList);
+        inventoryService.operatingInventoryInformation(map);
         //endregion
 
         return ResponseResultUtil.success();

+ 77 - 41
src/main/java/com/dk/mdm/service/ivt/inbound/InboundPurchaseService.java

@@ -212,10 +212,13 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                     ErrorCodeEnum.INBOUND_ITEM_NOT_EXIST.getMessage());
         }
         for (InboundItemVO inboundItemVO : inboundVO.getItemList()) {
+
             //region 将库存需要的参数赋值
             inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
             inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+            inboundItemVO.setAddOrEditFlag(true);
             //endregion
+
             //总单id
             inboundItemVO.setIntoId(inboundVO.getIntoId());
             //入库类型
@@ -284,11 +287,11 @@ public class InboundPurchaseService extends BaseService<Inbound> {
         //endregion
 
         //region 库存
-//        if(Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())){
-//            Map<String, Object> invMap = new HashMap<>();
-//            invMap.put("intoDetail",inboundVO.getItemList());
-//            inventoryService.operatingInventoryInformation(map);
-//        }
+        if (Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())) {
+            Map<String, Object> invMap = new HashMap<>();
+            invMap.put("intoDetail", inboundVO.getItemList());
+            inventoryService.operatingInventoryInformation(map);
+        }
         //endregion
 
 
@@ -353,19 +356,21 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                     }
                     //endregion
 
-                    //region 将库存需要的参数赋值
-                    inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-                    inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
-                    //编辑之前的数
-                    inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
-                    inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
-                    //编辑之后的数
-                    inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
-                    inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
-                    //endregion
-
                     //region 编辑明细 赋值
                     if (inboundItemVO.getItemId() != null) {
+
+                        //region 将库存需要的参数赋值
+                        inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                        inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                        //编辑之前的数
+                        inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
+                        inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
+                        //编辑之后的数
+                        inboundItemVO.setIntoQty(inboundItemVO.getIntoingQty());
+                        inboundItemVO.setIntoAmt(inboundItemVO.getIntoingAmt());
+                        inboundItemVO.setAddOrEditFlag(false);
+                        //endregion
+
                         InboundItem inboundItem = new InboundItem();
                         inboundItem.setItemId(inboundItemVO.getItemId());
                         inboundItem.setIntoQty(inboundItemVO.getIntoingQty());
@@ -397,6 +402,14 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                         //实体转换
                         InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                         inboundItemMapper.insert(inboundItem);
+
+                        //region 将库存需要的参数赋值
+                        inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                        inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                        inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
+                        inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
+                        inboundItemVO.setAddOrEditFlag(true);
+                        //endregion
                     }
                     //endregion
 
@@ -430,6 +443,14 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                     delIntoAmt = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
                     for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
                         if (inboundItemVO.getItemId() != null) {
+
+                            //region 将库存需要的参数赋值
+                            inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                            inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                            inboundItemVO.setIntoQty(inboundItemVO.getIntoQty());
+                            inboundItemVO.setIntoAmt(inboundItemVO.getIntoAmt());
+                            //endregion
+
                             InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                             inboundItem.setFlgValid(false);
                             //修改
@@ -503,10 +524,11 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 }
                 //endregion
 
-                //region  todo调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("intoDetail",inboundVO.getItemList());
-//                inventoryService.operatingInventoryInformation(map);
+                //region  调用库存
+                Map<String, Object> map = new HashMap<>();
+                map.put("intoDetail", inboundVO.getItemList());
+                map.put("delIntoDetail", inboundVO.getDeleteItemList());
+                inventoryService.operatingInventoryInformation(map);
                 //endregion
             }
             //endregion
@@ -768,10 +790,10 @@ public class InboundPurchaseService extends BaseService<Inbound> {
             }
             //endregion
 
-            //region  todo 调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("intoDetail",inboundItemResponseList);
-//                inventoryService.operatingInventoryInformation(map);
+            //region   调用库存
+            Map<String, Object> map = new HashMap<>();
+            map.put("delIntoDetail", inboundItemResponseList);
+            inventoryService.operatingInventoryInformation(map);
             //endregion
         }
         //endregion
@@ -887,12 +909,7 @@ public class InboundPurchaseService extends BaseService<Inbound> {
             }
             //endregion
 
-            //region 将库存需要的参数赋值
-            inboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
-            inboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
-            //endregion
-
-            //region 编辑入库明细
+            //region 编辑明细
             if (inboundItemVO.getItemId() != null) {
                 inboundItemVO
                         .setIntoQty(inboundItemResponse.getIntoQty().add(inboundItemVO.getIntoingQty()))
@@ -912,6 +929,15 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                         new UpdateWrapper<InboundItem>().lambda()
                                 .eq(InboundItem::getItemId, UUID.fromString(inboundItem.getItemId()))
                 );
+
+                //region 将库存需要的参数赋值
+                inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                //编辑之前的数
+                inboundItemVO.setQtyBeforeUpdate(inboundItemResponse.getIntoQty());
+                inboundItemVO.setAmtBeforeUpdate(inboundItemResponse.getIntoAmt());
+                inboundItemVO.setAddOrEditFlag(false);
+                //endregion
             }
             //endregion
 
@@ -934,6 +960,12 @@ public class InboundPurchaseService extends BaseService<Inbound> {
                 InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                 //新建
                 inboundItemMapper.insert(inboundItem);
+
+                //region 将库存需要的参数赋值
+                inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                inboundItemVO.setAddOrEditFlag(true);
+                //endregion
             }
             //endregion
 
@@ -972,6 +1004,10 @@ public class InboundPurchaseService extends BaseService<Inbound> {
             delIntoAmt = inboundVO.getDeleteItemList().stream().map(InboundItemVO::getIntoingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             for (InboundItemVO inboundItemVO : inboundVO.getDeleteItemList()) {
                 if (inboundItemVO.getItemId() != null) {
+                    //region 将库存需要的参数赋值
+                    inboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
+                    inboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+                    //endregion
                     InboundItem inboundItem = inboundItemConvert.convertToPo(inboundItemVO);
                     inboundItem.setFlgValid(false);
                     //修改
@@ -1056,10 +1092,11 @@ public class InboundPurchaseService extends BaseService<Inbound> {
         accountService.accPayable(inboundVO.getIntoId(), Constant.InventoryDocCode.INTOBOUND.getTableName());
         //endregion
 
-        //region  todo 调用库存 这里后续把删除的明细也加上
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("intoDetail",inboundItemResponseList);
-//                inventoryService.operatingInventoryInformation(map);
+        //region  调用库存
+        Map<String, Object> map = new HashMap<>();
+        map.put("intoDetail", inboundVO.getItemList());
+        map.put("delIntoDetail", inboundVO.getDeleteItemList());
+        inventoryService.operatingInventoryInformation(map);
         //endregion
 
         //endregion
@@ -1125,8 +1162,8 @@ public class InboundPurchaseService extends BaseService<Inbound> {
 
         //region 明细数据
         //根据总单id查明细
-        List<InboundItemResponse> orderEntryItemResponsesList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inbound.getIntoId()));
-        for (InboundItemResponse inboundItemResponse : orderEntryItemResponsesList) {
+        List<InboundItemResponse> inboundItemResponseList = inboundItemMapper.selectByCond(new InboundItemQuery().setIntoId(inbound.getIntoId()));
+        for (InboundItemResponse inboundItemResponse : inboundItemResponseList) {
             //region 修改采购明细数据信息
             if (inboundItemResponse.getFromItemId() != null) {
                 //根据id查询
@@ -1183,11 +1220,10 @@ public class InboundPurchaseService extends BaseService<Inbound> {
         }
         //endregion
 
-
-        //region  todo 调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("intoDetail",inboundItemResponseList);
-//                inventoryService.operatingInventoryInformation(map);
+        //region   调用库存
+        Map<String, Object> map = new HashMap<>();
+        map.put("delIntoDetail", inboundItemResponseList);
+        inventoryService.operatingInventoryInformation(map);
         //endregion
 
         return ResponseResultUtil.success();

+ 56 - 35
src/main/java/com/dk/mdm/service/ivt/inventory/InventoryService.java

@@ -265,10 +265,23 @@ public class InventoryService extends BaseService<Inventory> {
         //region json转实体  ----用来存储传过来的数据转完jsonArray后再转成对应实体List
         //入库集合
         List<InOutRecordVO> intoList = new ArrayList<>();
+        //入库新建集合
+        List<InOutRecordVO> intoAddList = new ArrayList<>();
+        //入库编辑集合
+        List<InOutRecordVO> intoEditList = new ArrayList<>();
         //入库删除集合
         List<InOutRecordVO> delIntoList = new ArrayList<>();
+
         //出库集合
         List<InOutRecordVO> outList = new ArrayList<>();
+        //出库新建集合
+        List<InOutRecordVO> outAddList = new ArrayList<>();
+        //出库编辑集合
+        List<InOutRecordVO> outEditList = new ArrayList<>();
+        //负出库新建集合
+        List<InOutRecordVO> outNegAddList = new ArrayList<>();
+        //负出库编辑集合
+        List<InOutRecordVO> outNegEditList = new ArrayList<>();
         //出库删除集合
         List<InOutRecordVO> delOutList = new ArrayList<>();
         //endregion
@@ -351,7 +364,6 @@ public class InventoryService extends BaseService<Inventory> {
 
                 //出库
                 if (delOutList.size() > 0) {
-
                     delOutList = delOutDetail.toJavaList(InOutRecordVO.class);
                     //赋值并校验库存流水数据
                     delOutList = this.setInOutRecordMessageByInto(delOutList);
@@ -398,13 +410,19 @@ public class InventoryService extends BaseService<Inventory> {
                 intoList = intoDetail.toJavaList(InOutRecordVO.class);
                 //赋值并校验库存流水数据
                 intoList = this.setInOutRecordMessageByInto(intoList);
+                //入库新建
+                intoAddList = intoList.stream().filter(it->it.getAddOrEditFlag()).collect(Collectors.toList());
+                //入库编辑
+                intoEditList = intoList.stream().filter(it->!it.getAddOrEditFlag()).collect(Collectors.toList());
                 //新建
-                if (intoList.get(0).getAddOrEditFlag()) {
+                if (intoAddList.size() > 0) {
                     //正常逻辑 新建库存
-                    this.operatingInsertInventory(intoList);
-                } else {
+                    this.operatingInsertInventory(intoAddList);
+                }
+                //编辑
+                if (intoEditList.size() > 0) {
                     //正常逻辑 编辑库存
-                    this.operatingUpdateInventory(intoList);
+                    this.operatingUpdateInventory(intoEditList);
                 }
             }
             //endregion
@@ -414,34 +432,37 @@ public class InventoryService extends BaseService<Inventory> {
                 outList = outDetail.toJavaList(InOutRecordVO.class);
                 //赋值并校验库存流水数据
                 outList = this.setInOutRecordMessageByOut(outList);
-                //是否可以输入负数出库标
-                //可以 走负库存逻辑
-                if (outList.get(0).getCanNegativeFlag()) {
-                    //新建
-                    if (outList.get(0).getAddOrEditFlag()) {
-                        //新建入库单
-                        outList = this.insertOrUpdateInbound(outList);
-                        //操作负库存
-                        this.operatingNegativeInventory(outList);
-                    }
-                    //编辑
-                    else {
-                        //编辑入库单
-                        outList = this.insertOrUpdateInbound(outList);
-                        //操作负库存
-                        this.operatingNegativeInventory(outList);
-                    }
+                //出库新建
+                outAddList = intoList.stream().filter(it->it.getAddOrEditFlag() && !it.getCanNegativeFlag() ).collect(Collectors.toList());
+                //出库编辑
+                outEditList = intoList.stream().filter(it->!it.getAddOrEditFlag() && !it.getCanNegativeFlag() ).collect(Collectors.toList());
+                //负出库新建
+                outNegAddList = intoList.stream().filter(it->it.getAddOrEditFlag() && it.getCanNegativeFlag() ).collect(Collectors.toList());
+                //负出库编辑
+                outNegEditList = intoList.stream().filter(it->!it.getAddOrEditFlag() && it.getCanNegativeFlag() ).collect(Collectors.toList());
+                //走负库存逻辑 -- 新建
+                if (outNegAddList.size()>0) {
+                    //新建入库单
+                    outList = this.insertOrUpdateInbound(outList);
+                    //操作负库存
+                    this.operatingNegativeInventory(outList);
                 }
-                //不可以走正常逻辑
-                else {
-                    //新建
-                    if (outList.get(0).getAddOrEditFlag()) {
-                        //正常逻辑 新建库存
-                        this.operatingInsertInventory(outList);
-                    } else {
-                        //正常逻辑 编辑库存
-                        this.operatingUpdateInventory(outList);
-                    }
+                //走负库存逻辑 -- 编辑
+                if (outNegEditList.size() > 0) {
+                    //编辑入库单
+                    outList = this.insertOrUpdateInbound(outList);
+                    //操作负库存
+                    this.operatingNegativeInventory(outList);
+                }
+                //正常库存逻辑 -- 新建
+                if (outAddList.size()>0) {
+                    //正常逻辑 新建库存
+                    this.operatingInsertInventory(outList);
+                }
+                //正常库存逻辑 -- 编辑
+                if (outEditList.size() > 0) {
+                    //正常逻辑 编辑库存
+                    this.operatingUpdateInventory(outList);
                 }
             }
             //endregion
@@ -1050,7 +1071,6 @@ public class InventoryService extends BaseService<Inventory> {
 
             //endregion
 
-
             //region  修改库存数量,可用量,金额等信息
             this.updateInventoryMessageDelete(inventoryResponse, inOutRecordVO);
             //endregion
@@ -1101,18 +1121,19 @@ public class InventoryService extends BaseService<Inventory> {
         //endregion
 
         //region 库存数量重算   库存数量-删除数量
+        BigDecimal qty = inOutRecordVO.getQtyBeforeUpdate().compareTo(BigDecimal.ZERO)>0 ?inOutRecordVO.getQtyBeforeUpdate():inOutRecordVO.getIntoQty();
         Inventory inventory = new Inventory();
         //库存id
         inventory.setInvId(inventoryResponse.getInvId());
         //入库
         if (Constant.InventoryType.INBOUND.getName().equals(inOutRecordVO.getInventoryType())) {
             //库存数量 入库 -
-            inventory.setInvQty(inventoryResponse.getInvQty().subtract(inOutRecordVO.getIntoQty()));
+            inventory.setInvQty(inventoryResponse.getInvQty().subtract(qty));
         }
         //出库
         else if (Constant.InventoryType.OUTBOUND.getName().equals(inOutRecordVO.getInventoryType())) {
             //库存数量 出库+
-            inventory.setInvQty(inventoryResponse.getInvQty().add(inOutRecordVO.getIntoQty()));
+            inventory.setInvQty(inventoryResponse.getInvQty().add(qty));
         }
         //可用量  库存数量-出库中数量-冻结数量
         inventory.setUsableQty(inventory.getInvQty().subtract(inventoryResponse.getFreezeQty()).subtract(inventoryResponse.getOutingQty()));

+ 29 - 13
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundCheckService.java

@@ -113,7 +113,6 @@ public class OutboundCheckService extends BaseService<Outbound> {
         outboundMapper.insert(outbound);
         //endregion
 
-
         //region 明细
         //校验明细
         if (outboundVO.getItemList().size() == 0) {
@@ -121,12 +120,8 @@ public class OutboundCheckService extends BaseService<Outbound> {
                     ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getMessage());
         }
         for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
-            //region 将库存需要的参数赋值
-            outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
-            outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.INVENTORY_LOSS.getValue());
-            //endregion
-
-            //总单id
+            //region 明细
+            // 总单id
             outboundItemVO.setOutId(outboundVO.getOutId());
             //出库类型
             outboundItemVO.setOutType(outboundVO.getOutType());
@@ -138,22 +133,36 @@ public class OutboundCheckService extends BaseService<Outbound> {
                     .setOutingAmt(BigDecimal.ZERO)
                     .setCostPrice(outboundItemVO.getPriceOut())
                     .setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(2, BigDecimal.ROUND_HALF_UP))
+                    .setInvId(outboundItemVO.getInvId())
             ;
             //入库状态
             outboundItemVO.setOutStatus(outboundVO.getOutStatus());
             //实体转换
             OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
+            outboundItemVO.setItemId(outboundItem.getItemId());
+
             outboundItemMapper.insert(outboundItem);
             //endregion
 
-
+            //region 将库存需要的参数赋值
+            outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+            //盘亏出库
+            if(Constant.OutType.INVENTORY_LOSS.getName().equals(outboundItemVO.getOutType())){
+                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.INVENTORY_LOSS.getValue());
+            }
+            //仓库调整
+            else{
+                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.INVENTORY_LOSS.getValue());
+            }
+            outboundItemVO.setAddOrEditFlag(true);
+            //endregion
         }
         //endregion
 
         //region 修改库存
-//            Map<String, Object> invMap = new HashMap<>();
-//            invMap.put("outDetail",outboundVO.getItemList());
-//            inventoryService.operatingInventoryInformation(invMap);
+        Map<String, Object> invMap = new HashMap<>();
+        invMap.put("outDetail", outboundVO.getItemList());
+        inventoryService.operatingInventoryInformation(invMap);
         //endregion
 
         //1.入库需要的值 附上 掉用接口
@@ -180,7 +189,14 @@ public class OutboundCheckService extends BaseService<Outbound> {
         for (OutboundItemResponse outboundItemResponse : outboundItemResponseList) {
             //region 将库存需要的参数赋值
             outboundItemResponse.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
-            outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+            //盘亏出库
+            if(Constant.OutType.INVENTORY_LOSS.getName().equals(outboundResponse.getOutType())){
+                outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.INVENTORY_LOSS.getValue());
+            }
+            //仓库调整
+            else{
+                outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.INVENTORY_LOSS.getValue());
+            }
             outboundItemResponse.setOutQty(outboundItemResponse.getOutQty().negate());
             outboundItemResponse.setOutAmt(outboundItemResponse.getOutAmt().negate());
             //endregion
@@ -209,7 +225,7 @@ public class OutboundCheckService extends BaseService<Outbound> {
 
         //region  修改库存
         Map<String, Object> map = new HashMap<>();
-        map.put("outDetail", outboundItemResponseList);
+        map.put("delOutDetail", outboundItemResponseList);
         inventoryService.operatingInventoryInformation(map);
         //endregion
 

+ 55 - 26
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundOtherService.java

@@ -161,7 +161,6 @@ public class OutboundOtherService extends BaseService<Outbound> {
         outboundMapper.insert(outbound);
         //endregion
 
-
         //region 明细
         //校验明细
         if (outboundVO.getItemList().size() == 0) {
@@ -172,6 +171,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
             //region 将库存需要的参数赋值
             outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
             outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
+            outboundItemVO.setAddOrEditFlag(true);
             //endregion
 
             //总单id
@@ -200,7 +200,6 @@ public class OutboundOtherService extends BaseService<Outbound> {
             outboundItemMapper.insert(outboundItem);
             //endregion
 
-
         }
         //endregion
 
@@ -261,20 +260,21 @@ public class OutboundOtherService extends BaseService<Outbound> {
                 for (OutboundItemVO outboundItemVO : itemList) {
                     //根据id查询
                     OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
-
-                    //region 将库存需要的参数赋值
-                    outboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-                    outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
-                    //编辑之前的数
-                    outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
-                    outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
-                    //编辑之后的数
-                    outboundItemVO.setOutQty(outboundItemVO.getOutQty());
-                    outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
-                    //endregion
-
                     //region  编辑明细
                     if (outboundItemVO.getItemId() != null) {
+                        
+                        //region 将库存需要的参数赋值
+                        outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                        outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
+                        //编辑之前的数
+                        outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
+                        outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
+                        //编辑之后的数
+                        outboundItemVO.setOutQty(outboundItemVO.getOutingQty());
+                        outboundItemVO.setOutAmt(outboundItemVO.getOutingAmt());
+                        outboundItemVO.setAddOrEditFlag(false);
+                        //endregion
+                        
                         OutboundItem outboundItem = new OutboundItem();
                         outboundItem.setItemId(outboundItemVO.getItemId());
                         outboundItem.setOutQty(outboundItemVO.getOutingQty());
@@ -286,6 +286,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
                                 new UpdateWrapper<OutboundItem>().lambda()
                                         .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
                         );
+                      
                     }
                     //endregion
 
@@ -306,6 +307,14 @@ public class OutboundOtherService extends BaseService<Outbound> {
                         //实体转换
                         OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                         outboundItemMapper.insert(outboundItem);
+                        
+                        //region 将库存需要的参数赋值
+                        outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                        outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
+                        outboundItemVO.setOutQty(outboundItemVO.getOutQty());
+                        outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
+                        outboundItemVO.setAddOrEditFlag(true);
+                        //endregion
                     }
                     //endregion
 
@@ -316,6 +325,11 @@ public class OutboundOtherService extends BaseService<Outbound> {
                 if (outboundVO.getDeleteItemList() != null) {
                     for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                         if (outboundItemVO.getItemId() != null) {
+                            //region 将库存需要的参数赋值
+                            outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                            outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
+                            //endregion
+
                             OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                             outboundItem.setFlgValid(false);
                             //修改
@@ -343,6 +357,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
                 if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
                     Map<String, Object> invMap = new HashMap<>();
                     invMap.put("outDetail", outboundVO.getItemList());
+                    invMap.put("delOutDetail", outboundVO.getDeleteItemList());
                     inventoryService.operatingInventoryInformation(invMap);
                 }
                 //endregion
@@ -421,8 +436,6 @@ public class OutboundOtherService extends BaseService<Outbound> {
             //endregion
         }
         //endregion
-
-
         return ResponseResultUtil.success(outboundVO);
     }
 
@@ -449,7 +462,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
             for (OutboundItemResponse outboundItemResponse : outboundItemResponseList) {
                 //region 将库存需要的参数赋值
                 outboundItemResponse.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
-                outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.OTHER_INBOUND.getValue());
+                outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
                 outboundItemResponse.setOutQty(outboundItemResponse.getOutQty().negate());
                 outboundItemResponse.setOutAmt(outboundItemResponse.getOutAmt().negate());
                 //endregion
@@ -478,7 +491,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
 
             //region  修改库存
             Map<String, Object> map = new HashMap<>();
-            map.put("outDetail", outboundItemResponseList);
+            map.put("delOutDetail", outboundItemResponseList);
             inventoryService.operatingInventoryInformation(map);
             //endregion
         }
@@ -542,11 +555,6 @@ public class OutboundOtherService extends BaseService<Outbound> {
             }
             //endregion
 
-            //region 将库存需要的参数赋值
-            outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
-            outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
-            //endregion
-
             //region  编辑明细
             if (outboundItemVO.getItemId() != null) {
                 outboundItemVO
@@ -567,7 +575,14 @@ public class OutboundOtherService extends BaseService<Outbound> {
                         new UpdateWrapper<OutboundItem>().lambda()
                                 .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
                 );
-
+                //region 将库存需要的参数赋值
+                outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
+                //编辑之前的数
+                outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
+                outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
+                outboundItemVO.setAddOrEditFlag(false);
+                //endregion
             }
             //endregion
 
@@ -590,6 +605,12 @@ public class OutboundOtherService extends BaseService<Outbound> {
                 OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                 //新建
                 outboundItemMapper.insert(outboundItem);
+
+                //region 将库存需要的参数赋值
+                outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
+                outboundItemVO.setAddOrEditFlag(true);
+                //endregion
             }
             //endregion
 
@@ -600,6 +621,11 @@ public class OutboundOtherService extends BaseService<Outbound> {
         if (outboundVO.getDeleteItemList() != null) {
             for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                 if (outboundItemVO.getItemId() != null) {
+                    //region 将库存需要的参数赋值
+                    outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                    outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
+                    //endregion
+
                     OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                     outboundItem.setFlgValid(false);
                     //修改
@@ -635,6 +661,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
         //region 修改库存
         Map<String, Object> map = new HashMap<>();
         map.put("outDetail", outboundVO.getItemList());
+        map.put("delOutDetail", outboundVO.getDeleteItemList());
         inventoryService.operatingInventoryInformation(map);
         //endregion
 
@@ -676,7 +703,9 @@ public class OutboundOtherService extends BaseService<Outbound> {
             //region 将库存需要的参数赋值
             outboundItemResponse.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
             outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.OTHER_OUTBOUND.getValue());
-            //region
+            outboundItemResponse.setOutQty(outboundItemResponse.getOutQty().negate());
+            outboundItemResponse.setOutAmt(outboundItemResponse.getOutAmt().negate());
+            //endregion
 
             //region修改出库明细信息
             OutboundItem outboundItem = new OutboundItem();
@@ -702,7 +731,7 @@ public class OutboundOtherService extends BaseService<Outbound> {
 
         //region 修改库存
         Map<String, Object> map = new HashMap<>();
-        map.put("outDetail", outboundItemResponseList);
+        map.put("delOutDetail", outboundItemResponseList);
         inventoryService.operatingInventoryInformation(map);
         //endregion
 

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

@@ -203,10 +203,13 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getMessage());
         }
         for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
+
             //region 将库存需要的参数赋值
             outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
             outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
+            outboundItemVO.setAddOrEditFlag(true);
             //endregion
+
             //总单id
             outboundItemVO.setOutId(outboundVO.getOutId());
             //出库类型
@@ -277,11 +280,11 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region 库存
-//        if(Constant.IntoStatus.YIRUKU.getName().equals(inboundVO.getIntoStatus())){
-//            Map<String, Object> invMap = new HashMap<>();
-//            invMap.put("outDetail",outboundVO.getItemList());
-//            inventoryService.operatingInventoryInformation(map);
-//        }
+        if(Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())){
+            Map<String, Object> invMap = new HashMap<>();
+            invMap.put("outDetail",outboundVO.getItemList());
+            inventoryService.operatingInventoryInformation(map);
+        }
         //endregion
 
         return ResponseResultUtil.success(outboundVO);
@@ -345,19 +348,21 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     }
                     //endregion
 
-                    //region 将库存需要的参数赋值
-                    outboundItemVO.setInventoryType(Constant.InventoryType.INBOUND.getName());
-                    outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
-                    //编辑之前的数
-                    outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
-                    outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
-                    //编辑之后的数
-                    outboundItemVO.setOutQty(outboundItemVO.getOutQty());
-                    outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
-                    //endregion
-
                     //region  编辑明细
                     if (outboundItemVO.getItemId() != null) {
+
+                        //region 将库存需要的参数赋值
+                        outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                        outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
+                        //编辑之前的数
+                        outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
+                        outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
+                        //编辑之后的数
+                        outboundItemVO.setOutQty(outboundItemVO.getOutingQty());
+                        outboundItemVO.setOutAmt(outboundItemVO.getOutingAmt());
+                        outboundItemVO.setAddOrEditFlag(false);
+                        //endregion
+                        
                         OutboundItem outboundItem = new OutboundItem();
                         outboundItem.setItemId(outboundItemVO.getItemId());
                         outboundItem.setOutQty(outboundItemVO.getOutingQty());
@@ -391,6 +396,12 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                         OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                         //新建
                         outboundItemMapper.insert(outboundItem);
+
+                        //region 将库存需要的参数赋值
+                        outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                        outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
+                        outboundItemVO.setAddOrEditFlag(true);
+                        //endregion
                     }
                     //endregion
 
@@ -426,6 +437,10 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     delOutAmt = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
                     for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                         if (outboundItemVO.getItemId() != null) {
+                            //region 将库存需要的参数赋值
+                            outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                            outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
+                            //endregion
                             OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                             outboundItem.setFlgValid(false);
                             //修改
@@ -500,9 +515,10 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 //endregion
 
                 //region 修改库存
-//                Map<String, Object> invMap = new HashMap<>();
-//                invMap.put("outDetail", outboundVO.getItemList());
-//                inventoryService.operatingInventoryInformation(invMap);
+                Map<String, Object> invMap = new HashMap<>();
+                invMap.put("outDetail", outboundVO.getItemList());
+                invMap.put("delOutDetail", outboundVO.getDeleteItemList());
+                inventoryService.operatingInventoryInformation(invMap);
                 //endregion
             }
             //endregion
@@ -762,9 +778,9 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             //endregion
 
             //region  修改库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("outDetail",outboundItemResponseList);
-//                inventoryService.operatingInventoryInformation(map);
+            Map<String, Object> map = new HashMap<>();
+            map.put("delOutDetail", outboundItemResponseList);
+            inventoryService.operatingInventoryInformation(map);
             //endregion
         }
         //endregion
@@ -883,11 +899,6 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             }
             //endregion
 
-            //region 将库存需要的参数赋值
-            outboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
-            outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
-            //endregion
-
             //region  编辑明细
             if (outboundItemVO.getFromItemId() != null) {
                 outboundItemVO
@@ -908,6 +919,15 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                         new UpdateWrapper<OutboundItem>().lambda()
                                 .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
                 );
+                //region 将库存需要的参数赋值
+                outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
+                //编辑之前的数
+                outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
+                outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
+                outboundItemVO.setAddOrEditFlag(false);
+                //endregion
+
             }
 
             //endregion
@@ -931,6 +951,12 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                 OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                 //新建
                 outboundItemMapper.insert(outboundItem);
+
+                //region 将库存需要的参数赋值
+                outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
+                outboundItemVO.setAddOrEditFlag(true);
+                //endregion
             }
             //endregion
 
@@ -973,6 +999,12 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             delOutAmt = outboundVO.getDeleteItemList().stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                 if (outboundItemVO.getItemId() != null) {
+
+                    //region 将库存需要的参数赋值
+                    outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                    outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
+                    //endregion
+
                     OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                     outboundItem.setFlgValid(false);
                     //修改
@@ -1056,9 +1088,10 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region   调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("outDetail",outboundVO.getItemList());
-//                inventoryService.operatingInventoryInformation(map);
+        Map<String, Object> map = new HashMap<>();
+        map.put("outDetail", outboundVO.getItemList());
+        map.put("delOutDetail", outboundVO.getDeleteItemList());
+        inventoryService.operatingInventoryInformation(map);
         //endregion
         return ResponseResultUtil.success(outboundVO);
     }
@@ -1154,8 +1187,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             OutboundItem outboundItem = new OutboundItem();
 
             //region 将库存需要的参数赋值
-            outboundItemResponse.setInventoryType(Constant.InventoryType.INBOUND.getName());
-            outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.PURCHASE_ORDER.getValue());
+            outboundItemResponse.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+            outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.SALE_ORDER.getValue());
             outboundItemResponse.setOutQty(outboundItemResponse.getOutQty().negate());
             outboundItemResponse.setOutQty(outboundItemResponse.getOutQty().negate());
             //endregion
@@ -1180,9 +1213,9 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         //endregion
 
         //region   调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("outDetail",outboundItemResponseList);
-//                inventoryService.operatingInventoryInformation(map);
+        Map<String, Object> map = new HashMap<>();
+        map.put("delOutDetail", outboundItemResponseList);
+        inventoryService.operatingInventoryInformation(map);
         //endregion
 
         return ResponseResultUtil.success();

+ 65 - 35
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleReturnService.java

@@ -354,9 +354,11 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                     ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getMessage());
         }
         for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
+
             //region 将库存需要的参数赋值
             outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
             outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
+            outboundItemVO.setAddOrEditFlag(true);
             //endregion
 
             //region  新建明细
@@ -395,8 +397,6 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
             OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
             outboundItemMapper.insert(outboundItem);
             //endregion
-
-
         }
         //endregion
 
@@ -408,9 +408,9 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
 
         //region 修改库存
         if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
-//            Map<String, Object> invMap = new HashMap<>();
-//            invMap.put("outDetail",outboundVO.getItemList());
-//            inventoryService.operatingInventoryInformation(invMap);
+            Map<String, Object> invMap = new HashMap<>();
+            invMap.put("outDetail", outboundVO.getItemList());
+            inventoryService.operatingInventoryInformation(invMap);
         }
         //endregion
 
@@ -481,19 +481,21 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                     //根据id查询
                     OutboundItemResponse outboundItemResponse = outboundItemMapper.selectById(outboundItemVO.getItemId());
 
-                    //region 将库存需要的参数赋值
-                    outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
-                    outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
-                    //编辑之前的数
-                    outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
-                    outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
-                    //编辑之后的数
-                    outboundItemVO.setOutQty(outboundItemVO.getOutQty());
-                    outboundItemVO.setOutAmt(outboundItemVO.getOutAmt());
-                    //endregion
-
                     //region 编辑明细赋值
                     if (outboundItemVO.getItemId() != null) {
+
+                        //region 将库存需要的参数赋值
+                        outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                        outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
+                        //编辑之前的数
+                        outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
+                        outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
+                        //编辑之后的数
+                        outboundItemVO.setOutQty(outboundItemVO.getOutingQty());
+                        outboundItemVO.setOutAmt(outboundItemVO.getOutingAmt());
+                        outboundItemVO.setAddOrEditFlag(false);
+                        //endregion
+
                         OutboundItem outboundItem = new OutboundItem();
                         outboundItem.setItemId(outboundItemVO.getItemId());
                         outboundItem.setOutQty(outboundItemVO.getOutingQty());
@@ -527,6 +529,12 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                         OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                         //新建
                         outboundItemMapper.insert(outboundItem);
+
+                        //region 将库存需要的参数赋值
+                        outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                        outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
+                        outboundItemVO.setAddOrEditFlag(true);
+                        //endregion
                     }
                     //endregion
 
@@ -540,6 +548,12 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                 if (outboundVO.getDeleteItemList() != null) {
                     for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                         if (outboundItemVO.getItemId() != null) {
+
+                            //region 将库存需要的参数赋值
+                            outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                            outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
+                            //endregion
+
                             OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                             outboundItem.setFlgValid(false);
                             //修改
@@ -577,9 +591,10 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                 //endregion
 
                 //region 修改库存
-//                Map<String, Object> invMap = new HashMap<>();
-//                invMap.put("outDetail", outboundVO.getItemList());
-//                inventoryService.operatingInventoryInformation(invMap);
+                Map<String, Object> invMap = new HashMap<>();
+                invMap.put("outDetail", outboundVO.getItemList());
+                invMap.put("delOutDetail", outboundVO.getDeleteItemList());
+                inventoryService.operatingInventoryInformation(invMap);
                 //endregion
             }
             //endregion
@@ -680,6 +695,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
             //endregion
         }
         //endregion
+
         return ResponseResultUtil.success(outboundVO);
     }
 
@@ -743,7 +759,6 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
             );
             //endregion
 
-
             //region  入账
             if (outboundResponse.getReceivableId() != null) {
                 accountService.reversePayable(outboundResponse.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
@@ -751,9 +766,9 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
             //endregion
 
             //region  修改库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("outDetail",outboundItemResponseList);
-//                inventoryService.operatingInventoryInformation(map);
+            Map<String, Object> map = new HashMap<>();
+            map.put("delOutDetail", outboundItemResponseList);
+            inventoryService.operatingInventoryInformation(map);
             //endregion
         }
         //endregion
@@ -848,11 +863,6 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
             }
             //endregion
 
-            //region 将库存需要的参数赋值
-            outboundItemResponse.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
-            outboundItemResponse.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
-            //endregion
-
             //region 编辑明细
             if (outboundItemVO.getItemId() != null) {
                 outboundItemVO
@@ -873,6 +883,14 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                         new UpdateWrapper<OutboundItem>().lambda()
                                 .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
                 );
+                //region 将库存需要的参数赋值
+                outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
+                //编辑之前的数
+                outboundItemVO.setQtyBeforeUpdate(outboundItemResponse.getOutQty());
+                outboundItemVO.setAmtBeforeUpdate(outboundItemResponse.getOutAmt());
+                outboundItemVO.setAddOrEditFlag(false);
+                //endregion
             }
             //endregion
 
@@ -895,6 +913,11 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                 OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                 //新建
                 outboundItemMapper.insert(outboundItem);
+                //region 将库存需要的参数赋值
+                outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
+                outboundItemVO.setAddOrEditFlag(true);
+                //endregion
             }
             //endregion
 
@@ -908,6 +931,12 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         if (outboundVO.getDeleteItemList() != null) {
             for (OutboundItemVO outboundItemVO : outboundVO.getDeleteItemList()) {
                 if (outboundItemVO.getItemId() != null) {
+
+                    //region 将库存需要的参数赋值
+                    outboundItemVO.setInventoryType(Constant.InventoryType.OUTBOUND.getName());
+                    outboundItemVO.setInventoryDocCode(Constant.InventoryDocCode.SALE_RETURN.getValue());
+                    //endregion
+
                     OutboundItem outboundItem = outboundItemConvert.convertToPo(outboundItemVO);
                     outboundItem.setFlgValid(false);
                     //修改
@@ -951,10 +980,12 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         //endregion
 
         //region   调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("outDetail",outboundVO.getItemList());
-//                inventoryService.operatingInventoryInformation(map);
+        Map<String, Object> map = new HashMap<>();
+        map.put("outDetail", outboundVO.getItemList());
+        map.put("delOutDetail", outboundVO.getDeleteItemList());
+        inventoryService.operatingInventoryInformation(map);
         //endregion
+
         return ResponseResultUtil.success(outboundVO);
     }
 
@@ -1028,11 +1059,10 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         this.rollBackTotalAndDetail(outboundItemVOList);
         //endregion
 
-
         //region   调用库存
-//                Map<String, Object> map = new HashMap<>();
-//                map.put("outDetail",outboundItemResponseList);
-//                inventoryService.operatingInventoryInformation(map);
+        Map<String, Object> map = new HashMap<>();
+        map.put("outDetail", outboundItemResponseList);
+        inventoryService.operatingInventoryInformation(map);
         //endregion
 
         return ResponseResultUtil.success();