Ver código fonte

修复每日看板BUG

fgd 1 ano atrás
pai
commit
3c754668b4

+ 35 - 17
sd-business/src/main/java/com/sd/business/service/board/impl/DailyBoardServiceImpl.java

@@ -1,5 +1,6 @@
 package com.sd.business.service.board.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.ruoyi.common.core.domain.BaseIdPo;
@@ -123,7 +124,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
         // 查询今日出库单出库数据
         Map<String, List<OutboundOrder>> outboundOrderMap = outboundOrderService.mapKGroup(OutboundOrder::getOrderWlnCode,
                 q -> q.between(OutboundOrder::getOutboundTime, beginDate, endDate)
-                        .groupBy(Arrays.asList(OutboundOrder::getCode, OutboundOrder::getOrderWlnCode, OutboundOrder::getSkuSpecCode, OutboundOrder::getStorageCode)));
+                        .groupBy(Arrays.asList(OutboundOrder::getCode, OutboundOrder::getOrderWlnCode, OutboundOrder::getSkuSpecCode, OutboundOrder::getStorageCode, OutboundOrder::getQuantity)));
 
         // 获取今日订单sku列表
         List<Long> orderIds = orderInfoList.stream().map(BaseIdPo::getId).collect(Collectors.toList());
@@ -147,7 +148,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
             for (OrderSku orderSku : orderSkus) {
                 Long orderSkuId = orderSku.getSkuSpecId();
                 BomSpecBo bomSpecBo = bomSpecBoMap.get(orderSku.getBomSpecId());
-                if (bomSpecBo == null || Objects.equals(bomSpecBo.getClassifyParentId(), 1L)) {
+                if (bomSpecBo == null || !Objects.equals(bomSpecBo.getClassifyParentId(), 1L)) {
                     continue;
                 }
                 OrderBomDifferenceVo bomDifferenceVo = differenceMap.computeIfAbsent(orderSku.getBomSpecId(), item -> {
@@ -197,7 +198,7 @@ public class DailyBoardServiceImpl implements DailyBoardService {
         // 查询今日出库单出库数据
         Map<String, List<OutboundOrder>> outboundOrderMap = outboundOrderService.mapKGroup(OutboundOrder::getOrderWlnCode,
                 q -> q.between(OutboundOrder::getOutboundTime, beginDate, endDate)
-                        .groupBy(Arrays.asList(OutboundOrder::getCode, OutboundOrder::getOrderWlnCode, OutboundOrder::getSkuSpecCode, OutboundOrder::getStorageCode)));
+                        .groupBy(Arrays.asList(OutboundOrder::getCode, OutboundOrder::getOrderWlnCode, OutboundOrder::getSkuSpecCode, OutboundOrder::getStorageCode, OutboundOrder::getQuantity)));
         if (ObjectUtil.isEmpty(outboundOrderMap)) {
             return vo;
         }
@@ -230,6 +231,9 @@ public class DailyBoardServiceImpl implements DailyBoardService {
             List<DailyBoardOutStorageBomVo> outStorageBomVoList = new ArrayList<>();
             for (OutboundOrder outboundOrder : outboundOrderList) {
                 SkuSpec skuSpec = skuSpecMap.get(outboundOrder.getSkuSpecCode());
+                if (skuSpec == null) {
+                    continue;
+                }
                 BomSpecBo bomSpecBo = bomSpecBoMap.get(skuSpec.getBomSpecId());
                 if (bomSpecBo == null) {
                     continue;
@@ -252,8 +256,10 @@ public class DailyBoardServiceImpl implements DailyBoardService {
                             DailyBoardOutStorageBomVo::getBomSpecId,
                             Function.identity(),
                             (v1, v2) -> {
-                                v1.setQuantity(v1.getQuantity().add(v2.getQuantity()));
-                                return v1;
+                                DailyBoardOutStorageBomVo tempVo = new DailyBoardOutStorageBomVo();
+                                BeanUtil.copyProperties(v1, tempVo);
+                                tempVo.setQuantity(v1.getQuantity().add(v2.getQuantity()));
+                                return tempVo;
                             }
                     ));
             // 佰卓订单
@@ -265,8 +271,10 @@ public class DailyBoardServiceImpl implements DailyBoardService {
                                 DailyBoardOutStorageBomVo::getBomSpecId,
                                 Function.identity(),
                                 (v1, v2) -> {
-                                    v1.setQuantity(v1.getQuantity().add(v2.getQuantity()));
-                                    return v1;
+                                    DailyBoardOutStorageBomVo tempVo = new DailyBoardOutStorageBomVo();
+                                    BeanUtil.copyProperties(v1, tempVo);
+                                    tempVo.setQuantity(v1.getQuantity().add(v2.getQuantity()));
+                                    return tempVo;
                                 }
                         ));
                 vo.setBzSumBomCount(vo.getBzSumBomCount().add(quantity));
@@ -278,8 +286,10 @@ public class DailyBoardServiceImpl implements DailyBoardService {
                                 DailyBoardOutStorageBomVo::getBomSpecId,
                                 Function.identity(),
                                 (v1, v2) -> {
-                                    v1.setQuantity(v1.getQuantity().add(v2.getQuantity()));
-                                    return v1;
+                                    DailyBoardOutStorageBomVo tempVo = new DailyBoardOutStorageBomVo();
+                                    BeanUtil.copyProperties(v1, tempVo);
+                                    tempVo.setQuantity(v1.getQuantity().add(v2.getQuantity()));
+                                    return tempVo;
                                 }
                         ));
                 vo.setSySumBomCount(vo.getSySumBomCount().add(quantity));
@@ -357,8 +367,10 @@ public class DailyBoardServiceImpl implements DailyBoardService {
                             DailyBoardOutStorageBomVo::getBomSpecId,
                             Function.identity(),
                             (v1, v2) -> {
-                                v1.setQuantity(v1.getQuantity().add(v2.getQuantity()));
-                                return v1;
+                                DailyBoardOutStorageBomVo tempVo = new DailyBoardOutStorageBomVo();
+                                BeanUtil.copyProperties(v1, tempVo);
+                                tempVo.setQuantity(v1.getQuantity().add(v2.getQuantity()));
+                                return tempVo;
                             }
                     ));
             // 佰卓订单
@@ -370,8 +382,10 @@ public class DailyBoardServiceImpl implements DailyBoardService {
                                 DailyBoardOutStorageBomVo::getBomSpecId,
                                 Function.identity(),
                                 (v1, v2) -> {
-                                    v1.setQuantity(v1.getQuantity().add(v2.getQuantity()));
-                                    return v1;
+                                    DailyBoardOutStorageBomVo tempVo = new DailyBoardOutStorageBomVo();
+                                    BeanUtil.copyProperties(v1, tempVo);
+                                    tempVo.setQuantity(v1.getQuantity().add(v2.getQuantity()));
+                                    return tempVo;
                                 }
                         ));
                 vo.setBzSumBomCount(vo.getBzSumBomCount().add(quantity));
@@ -383,8 +397,10 @@ public class DailyBoardServiceImpl implements DailyBoardService {
                                 DailyBoardOutStorageBomVo::getBomSpecId,
                                 Function.identity(),
                                 (v1, v2) -> {
-                                    v1.setQuantity(v1.getQuantity().add(v2.getQuantity()));
-                                    return v1;
+                                    DailyBoardOutStorageBomVo tempVo = new DailyBoardOutStorageBomVo();
+                                    BeanUtil.copyProperties(v1, tempVo);
+                                    tempVo.setQuantity(v1.getQuantity().add(v2.getQuantity()));
+                                    return tempVo;
                                 }
                         ));
                 vo.setSySumBomCount(vo.getSySumBomCount().add(quantity));
@@ -450,8 +466,10 @@ public class DailyBoardServiceImpl implements DailyBoardService {
                             DailyBoardOutStorageBomVo::getBomSpecId,
                             Function.identity(),
                             (v1, v2) -> {
-                                v1.setQuantity(v1.getQuantity().add(v2.getQuantity()));
-                                return v1;
+                                DailyBoardOutStorageBomVo tempVo = new DailyBoardOutStorageBomVo();
+                                BeanUtil.copyProperties(v1, tempVo);
+                                tempVo.setQuantity(v1.getQuantity().add(v2.getQuantity()));
+                                return tempVo;
                             }
                     ));
         }