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

销售退货作废后上游单据销售订单和销售出库中的退货相关字段反写

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

+ 31 - 10
src/main/java/com/dk/mdm/service/ivt/outbound/OutboundSaleReturnService.java

@@ -124,12 +124,14 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         Map<String, List<OutboundItemVO>> outboundItemVOListOutPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOutId));
         for (String str : outboundItemVOListOutPri.keySet()) {
             List<OutboundItemVO> outboundItemList = outboundItemVOListOutPri.get(str);
+
             //region 汇总退货数量 金额
             BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
             BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             BigDecimal returnIngSumQty = outboundItemList.stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
             BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
             //endregion
+
             //查询原单
             OutboundResponse outboundResponse = outboundMapper.selectById(str);
             //校验数据
@@ -154,6 +156,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
         Map<String, List<OutboundItemVO>> outboundItemVOListOrderPri = outboundVO.getItemList().stream().collect(Collectors.groupingBy(OutboundItemVO::getSOrderId));
         for (String str : outboundItemVOListOrderPri.keySet()) {
             List<OutboundItemVO> outboundItemList = outboundItemVOListOrderPri.get(str);
+
             //region 汇总退货数量 金额
             BigDecimal returnSumQty = outboundItemList.stream().map(OutboundItemVO::getOutQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(6, BigDecimal.ROUND_HALF_UP);
             BigDecimal returnSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
@@ -161,6 +164,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
             BigDecimal returnIngSumAmt = outboundItemList.stream().map(OutboundItemVO::getOutingAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
 
             //endregion
+
             //查询原单
             OrderResponse orderResponse = orderMapper.selectById(str);
             //校验数据
@@ -248,6 +252,7 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
      */
     @Transactional(rollbackFor = {Exception.class})
     public void rollBackTotalAndDetail(List<OutboundItemVO> deleteItemList) {
+        //注意:销售退货生成的出库单 数据是负数的,销售退货上游单据销售订单和销售出库的退货相应字段是正数,所以下面的代码 不用取负数
         if (deleteItemList.size() > 0 ) {
             if(deleteItemList.get(0).getSOutId() != null ) {
                 //出库单
@@ -261,15 +266,23 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                     //总单
                     Outbound outboundPri = new Outbound();
                     outboundPri.setOutId(outId);
-                    outboundPri.setReturnQty((delOutQty.add(delOutingQty)).negate());
-                    outboundPri.setReturnAmt(delOutAmt.add(delOutingAmt).negate());
+                    outboundPri.setReturnQty((delOutQty.add(delOutingQty)));
+                    outboundPri.setReturnAmt((delOutAmt.add(delOutingAmt)));
                     outboundMapper.updateReturnMessage(outboundPri);
                     //明细
                     for (OutboundItemVO outboundItemVO : outboundItemVOList) {
                         OutboundItem outboundItemPri = new OutboundItem();
-                        outboundItemPri.setItemId(outboundItemVO.getItemId());
-                        outboundItemPri.setReturnQty(outboundItemVO.getOutingQty());
-                        outboundItemPri.setReturnAmt(outboundItemVO.getOutingAmt());
+                        outboundItemPri.setItemId(outboundItemVO.getSOutItemId());
+                        //已出库
+                        if (Constant.OutStatus.YICHUKU.getName().equals(outboundItemVO.getOutStatus())) {
+                            outboundItemPri.setReturnQty(outboundItemVO.getOutQty());
+                            outboundItemPri.setReturnAmt(outboundItemVO.getOutAmt());
+                        }
+                        //出库中
+                        else if(Constant.OutStatus.CHUKUZHONG.getName().equals(outboundItemVO.getOutStatus())){
+                            outboundItemPri.setReturnQty(outboundItemVO.getOutingQty());
+                            outboundItemPri.setReturnAmt(outboundItemVO.getOutingAmt());
+                        }
                         outboundItemMapper.updateReturnMessage(outboundItemPri);
                     }
                 }
@@ -286,15 +299,23 @@ public class OutboundSaleReturnService extends BaseService<Outbound> {
                     //总单
                     Order orderPri = new Order();
                     orderPri.setOrderId(orderId);
-                    orderPri.setReturnQty((delOutQty.add(delOutingQty)).negate());
-                    orderPri.setReturnAmt(delOutAmt.add(delOutingAmt).negate());
+                    orderPri.setReturnQty((delOutQty.add(delOutingQty)));
+                    orderPri.setReturnAmt((delOutAmt.add(delOutingAmt)));
                     orderMapper.updateReturnMessage(orderPri);
                     //明细
                     for (OutboundItemVO outboundItemVO : outboundItemVOList) {
                         OrderItem orderItemPri = new OrderItem();
-                        orderItemPri.setItemId(outboundItemVO.getItemId());
-                        orderItemPri.setReturnQty(outboundItemVO.getOutingQty());
-                        orderItemPri.setReturnAmt(outboundItemVO.getOutingAmt());
+                        orderItemPri.setItemId(outboundItemVO.getSOrderItemId());
+                        //已出库
+                        if (Constant.OutStatus.YICHUKU.getName().equals(outboundItemVO.getOutStatus())) {
+                            orderItemPri.setReturnQty(outboundItemVO.getOutQty());
+                            orderItemPri.setReturnAmt(outboundItemVO.getOutAmt());
+                        }
+                        //出库中
+                        else if(Constant.OutStatus.CHUKUZHONG.getName().equals(outboundItemVO.getOutStatus())){
+                            orderItemPri.setReturnQty(outboundItemVO.getOutingQty());
+                            orderItemPri.setReturnAmt(outboundItemVO.getOutingAmt());
+                        }
                         orderItemMapper.updateReturnMessage(orderItemPri);
                     }
                 }