Просмотр исходного кода

库存-销售出库编辑
销售退货新建反写上游单据调用的地方修改

koushanshan 1 год назад
Родитель
Сommit
c82b018d22

+ 31 - 20
src/main/java/com/dk/mdm/service/ivt/inventory/InventoryService.java

@@ -722,6 +722,7 @@ public class InventoryService extends BaseService<Inventory> {
         inOutRecordVOList = this.deleteInventory(inOutRecordVOList);
         //新建
         inOutRecordVOList = this.operatingInsertInventory(inOutRecordVOList);
+
         //入库
         if (Constant.InventoryType.INBOUND.getName().equals(inOutRecordVOList.get(0).getInventoryType())) {
             //修改入库单单价、金额、成本等信息
@@ -729,8 +730,9 @@ public class InventoryService extends BaseService<Inventory> {
         }
         //出库
         else {
-            //出库类型不是销退出库在反写源单出库信息
-            if(!Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVOList.get(0).getInventoryDocCode())){
+            //出库类型不是销售出库和销退出库在反写源单出库信息
+            if(!Constant.InventoryDocCode.SALE_ORDER.getValue().equals(inOutRecordVOList.get(0).getInventoryDocCode()) ||
+                    !Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVOList.get(0).getInventoryDocCode())){
                 //修改源出库信息
                 this.updateOutboundPri(inOutRecordVOList);
             }
@@ -1132,6 +1134,11 @@ public class InventoryService extends BaseService<Inventory> {
                 outboundItem.setItemId(inOutRecordVO.getBiznisItemId());
                 outboundItem.setCostAmt(notEnoughAmount.compareTo(BigDecimal.ZERO)>0 ? notEnoughAmount : inOutRecordVO.getIntoAmt());
                 outboundItem.setCostPrice(outboundItem.getCostAmt().divide(inOutRecordVO.getIntoQty(), 2, BigDecimal.ROUND_HALF_UP));
+                //不是销售出库反写出库金额和出库单价
+                if (!Constant.InventoryDocCode.SALE_ORDER.getValue().equals(inOutRecordVO.getInventoryDocCode())) {
+                    outboundItem.setOutAmt(inOutRecordVO.getIntoAmt());
+                    outboundItem.setPriceOut(inOutRecordVO.getCostPrice());
+                }
                 outboundItemMapper.update(outboundItem,
                         new UpdateWrapper<OutboundItem>().lambda()
                                 .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
@@ -1324,25 +1331,29 @@ public class InventoryService extends BaseService<Inventory> {
             //提取总额,总量
 //            BigDecimal sumOutQty = inOutRecordVOListGroup.stream().map(InOutRecordVO::getIntoQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
             BigDecimal sumOutAmt = inOutRecordVOListGroup.stream().map(InOutRecordVO::getIntoAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-            for (InOutRecordVO inOutRecordVO : inOutRecordVOListGroup) {
-                //修改明细
-                OutboundItem outboundItem = new OutboundItem();
-                outboundItem.setItemId(inOutRecordVO.getBiznisItemId());
-                if (!Constant.InventoryDocCode.SALE_ORDER.getValue().equals(inOutRecordVOList.get(0).getInventoryDocCode())) {
-//                    outboundItem.setOutQty(inOutRecordVO.getIntoQty());
-                    outboundItem.setOutAmt(inOutRecordVO.getIntoAmt());
-                    outboundItem.setPriceOut(inOutRecordVO.getCostPrice());
-                }
-                outboundItem.setCostPrice(inOutRecordVO.getCostPrice());
-                outboundItem.setCostAmt(inOutRecordVO.getIntoAmt());
-                //修改
-                outboundItemMapper.update(outboundItem,
-                        new UpdateWrapper<OutboundItem>().lambda()
-                                .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
-                );
-            }
+            //region  todo 注释掉 2024年7月9日11:13:37  在调用这个方法之前 明细的成本金额等信息已经在扣减批次的时候进行反写了
+//            for (InOutRecordVO inOutRecordVO : inOutRecordVOListGroup) {
+//                //修改明细
+//                OutboundItem outboundItem = new OutboundItem();
+//                outboundItem.setItemId(inOutRecordVO.getBiznisItemId());
+//                if (!Constant.InventoryDocCode.SALE_ORDER.getValue().equals(inOutRecordVOList.get(0).getInventoryDocCode())) {
+////                    outboundItem.setOutQty(inOutRecordVO.getIntoQty());
+//                    outboundItem.setOutAmt(inOutRecordVO.getIntoAmt());
+//                    outboundItem.setPriceOut(inOutRecordVO.getCostPrice());
+//                }
+//                outboundItem.setCostPrice(inOutRecordVO.getCostPrice());
+//                outboundItem.setCostAmt(inOutRecordVO.getIntoAmt());
+//                //修改
+//                outboundItemMapper.update(outboundItem,
+//                        new UpdateWrapper<OutboundItem>().lambda()
+//                                .eq(OutboundItem::getItemId, UUID.fromString(outboundItem.getItemId()))
+//                );
+//            }
+            //endregion
+
             //修改总单
-            if (!Constant.InventoryDocCode.SALE_ORDER.getValue().equals(inOutRecordVOList.get(0).getInventoryDocCode())) {
+            if (!Constant.InventoryDocCode.SALE_ORDER.getValue().equals(inOutRecordVOList.get(0).getInventoryDocCode()) ||
+                    !Constant.InventoryDocCode.SALE_RETURN.getValue().equals(inOutRecordVOList.get(0).getInventoryDocCode())) {
                 Outbound outbound = new Outbound();
                 outbound.setOutId(str);
 //                outbound.setOutQty(sumOutQty);

+ 16 - 20
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleReturnService.java

@@ -121,6 +121,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public void updatePrimaryTotal(OutboundVO outboundVO, Boolean posNegFlag) {
+
         //region 原入库单
         Map<String, List<OutboundItemVO>> outboundItemVOListOutPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOutId));
         for (String str : outboundItemVOListOutPri.keySet()) {
@@ -415,11 +416,10 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                 //查询库存批次最近一条入库价
                 InboundItemResponse inboundItemResponse = this.selectPriceInto(outboundItemVO);
                 //todo 2024年7月5日15:57:01   priceOut和outingAmt 前台传 z确认修改
-                //todo 2024年7月9日08:52:55  入库价和入库价总和后台计算  z确认修改
+//                outboundItemVO.setPriceOut(inboundItemResponse != null ? inboundItemResponse.getPriceInto() : BigDecimal.ZERO);
+//                outboundItemVO.setOutingAmt(inboundItemResponse != null ? inboundItemResponse.getPriceInto().multiply(outboundItemVO.getOutingQty()).setScale(2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
                 outboundItemVO.setCostPrice(inboundItemResponse != null ? inboundItemResponse.getCostPrice() : BigDecimal.ZERO);
                 outboundItemVO.setCostAmt(inboundItemResponse != null ? inboundItemResponse.getCostPrice().multiply(outboundItemVO.getOutingQty()).setScale(2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
-                outboundItemVO.setPriceOut(inboundItemResponse != null ? inboundItemResponse.getCostPrice() : BigDecimal.ZERO);
-                outboundItemVO.setOutingAmt(inboundItemResponse != null ? inboundItemResponse.getCostPrice().multiply(outboundItemVO.getOutingQty()).setScale(2, BigDecimal.ROUND_HALF_UP) : BigDecimal.ZERO);
             }
         }
         if (priceIntoFlag) {
@@ -447,10 +447,8 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         }
         //endregion
 
-        //region 原入库单  原销售订单
-        if (outboundVO.getFromId() != null) {
-            this.updatePrimaryTotal(outboundVO, true);
-        }
+        //region  新建多业务归属
+        outCommon.insertMultiOwner(outboundVO);
         //endregion
 
         //region  总单
@@ -487,9 +485,6 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         outboundMapper.insert(outbound);
         //endregion
 
-        //region  新建多业务归属
-        outCommon.insertMultiOwner(outboundVO);
-        //endregion
 
         //region 明细
         for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
@@ -542,6 +537,12 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         }
         //endregion
 
+        //region 原入库单  原销售订单
+        if (outboundVO.getFromId() != null) {
+            this.updatePrimaryTotal(outboundVO, true);
+        }
+        //endregion
+
         //region  账款
         if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
             accountService.accReceivable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
@@ -601,9 +602,8 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
             BigDecimal sumAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             //endregion
 
-            //region  自动办理参数为true  已出库编辑
-            //自动办理参数为true
-            if (Constant.FlgHandleSetting.TRUE.getValue().equals(outboundVO.getFlgHandleSetting())) {
+            //region    已出库编辑
+            if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
                 //region 退账
                 if (outboundVO.getReceivableId() != null) {
                     accountService.reverseReceivable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());
@@ -737,14 +737,12 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                 invMap.put("delOutDetail", outboundVO.getDeleteItemList());
                 inventoryService.operatingInventoryInformation(invMap);
                 //endregion
-            } else {
-                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.FLG_HANDLE_SETTING_NOT_ENABLED_OUT.getMessage());
             }
             //endregion
 
-            //region 自动办理参数false  出库中编辑
-            //自动办理标识为false 并且 自动办理参数为false  出库中
-            if (!outboundVO.getFlgAutoHandle() && Constant.FlgHandleSetting.FALSE.getValue().equals(outboundVO.getFlgHandleSetting())) {
+            //region   出库中编辑
+            if (Constant.OutStatus.CHUKUZHONG.getName().equals(outboundVO.getOutStatus()) ||
+                    Constant.OutStatus.DAICHUKU.getName().equals(outboundVO.getOutStatus())) {
 
                 //region  反写出库总单和明细 反写订单总单和明细
                 this.rollBackTotalAndDetail(outboundVO.getItemList());
@@ -829,8 +827,6 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                 //region  反写出库总单 反写订单总单
                 this.updatePrimaryTotal(outboundVO, true);
                 //endregion
-            } else {
-                throw new BaseBusinessException(ResponseCodeEnum.OPERATE_FAIL.getCode(), ErrorCodeEnum.FLG_HANDLE_SETTING_NOT_ENABLED_OUT.getMessage());
             }
             //endregion
         }