Переглянути джерело

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss-server-mdm

姜永辉 1 рік тому
батько
коміт
97eda073c3

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

@@ -409,8 +409,8 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         BigDecimal sumIntoPriceAmt = BigDecimal.ZERO;
         if (orderTransmitFlag) {
             sumIntoQty = outboundVO.getItemList().stream().map(OutboundItemVO::getOutingQty).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-            sumIntoPriceAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getPriceOut).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
-        }
+            sumIntoPriceAmt = outboundVO.getItemList().stream().map(OutboundItemVO::getFactAmt).reduce(BigDecimal.ZERO, BigDecimal::add).setScale(2, BigDecimal.ROUND_HALF_UP);
+      }
         //获取 id/单号
         Map<String, Object> codeMap = commonService.getUniqueNoteCode(Constant.docNameConstant.SALEORDER.getName(), false);
         outboundVO.setOutId(codeMap.get("outId").toString()).
@@ -429,7 +429,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
         if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
             outboundVO
                     .setOutQty(orderTransmitFlag ? sumIntoQty : outboundVO.getOutingQty())
-                    .setOutAmt(orderTransmitFlag ? sumIntoQty.multiply(sumIntoPriceAmt) : outboundVO.getOutingAmt())
+                    .setOutAmt(orderTransmitFlag ? sumIntoPriceAmt : outboundVO.getOutingAmt())
                     .setOutingQty(BigDecimal.ZERO)
                     .setOutingAmt(BigDecimal.ZERO)
             ;
@@ -439,7 +439,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     .setOutAmt(BigDecimal.ZERO)
                     //用于销售订单自动创建出库单
                     .setOutingQty(orderTransmitFlag ? sumIntoQty : outboundVO.getOutingQty())
-                    .setOutingAmt(orderTransmitFlag ? sumIntoQty.multiply(sumIntoPriceAmt) : outboundVO.getOutingAmt())
+                    .setOutingAmt(orderTransmitFlag ? sumIntoPriceAmt : outboundVO.getOutingAmt())
             ;
         }
 
@@ -485,13 +485,14 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
             }
         }
         //endregion
-
+        BigDecimal factAmt = BigDecimal.ZERO; //总单的实际金额
         //region 明细
         //校验明细
         if (outboundVO.getItemList().size() == 0) {
             throw new BaseBusinessException(ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getCode(),
                     ErrorCodeEnum.OUTBOUND_ITEM_NOT_EXIST.getMessage());
         }
+
         for (OutboundItemVO outboundItemVO : outboundVO.getItemList()) {
             outboundItemVO.setItemId(null);
             //region 将库存需要的参数赋值
@@ -512,13 +513,13 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                         .setOutingQty(BigDecimal.ZERO)
                         .setOutingAmt(BigDecimal.ZERO)
                         .setCostPrice(outboundItemVO.getPriceOut())
-                        .setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(2, BigDecimal.ROUND_HALF_UP))
-                ;
+                        .setCostAmt(outboundItemVO.getOutQty().multiply(outboundItemVO.getPriceOut()).setScale(2, BigDecimal.ROUND_HALF_UP)) ;
             } else {
                 outboundItemVO
                         .setOutQty(BigDecimal.ZERO)
                         .setOutAmt(BigDecimal.ZERO);
             }
+            factAmt = factAmt.add(outboundItemVO.getFactAmt()); //把明细的 实际金额相加就是总单的
             //出库状态
             outboundItemVO.setOutStatus(outboundVO.getOutStatus());
             //实体转换
@@ -549,6 +550,7 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
                     orderItem.setOutQty(BigDecimal.ZERO);
                     orderItem.setOutAmt(BigDecimal.ZERO);
                 }
+
                 //出库状态
                 String outStatus = this.setOutStatus(orderItemResponse.getOutingQty().add(orderItem.getOutingQty()),
                         orderItemResponse.getOutQty().add(orderItem.getOutQty()), orderItemResponse.getItemQty());
@@ -564,7 +566,13 @@ public class OutboundSaleOrderService extends BaseService<Outbound> {
 
         }
         //endregion
-
+        Outbound outboundup = new Outbound();
+        outboundup.setOutId(outbound.getOutId()).setFactAmt(factAmt);
+        //反写总单实际金额
+        outboundMapper.update(outboundup,
+                new UpdateWrapper<Outbound>().lambda()
+                        .eq(Outbound::getOutId, UUID.fromString(outbound.getOutId()))
+        );
         //region  已出库  应收记账
         if (Constant.OutStatus.YICHUKU.getName().equals(outboundVO.getOutStatus())) {
             accountService.accReceivable(outboundVO.getOutId(), Constant.InventoryDocCode.OUTBOUND.getTableName());