Forráskód Böngészése

fix: 修复批量初始化航次库存问题

luofeiyun 3 hete
szülő
commit
55c210cf19

+ 5 - 0
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/dal/mysql/voyagestockdetail/VoyageStockDetailMapper.java

@@ -27,4 +27,9 @@ public interface VoyageStockDetailMapper extends BaseMapperX<VoyageStockDetailDO
         delete(new LambdaQueryWrapperX<VoyageStockDetailDO>()
                 .eq(VoyageStockDetailDO::getVoyageId, voyageId));
     }
+
+    default void deleteByVoyageIds(List<Long> voyageIds) {
+        delete(new LambdaQueryWrapperX<VoyageStockDetailDO>()
+                .in(VoyageStockDetailDO::getVoyageId, voyageIds));
+    }
 }

+ 19 - 3
ship-module-product/ship-module-product-biz/src/main/java/com/yc/ship/module/product/service/voyagestockdetail/VoyageStockDetailServiceImpl.java

@@ -173,17 +173,33 @@ public class VoyageStockDetailServiceImpl implements VoyageStockDetailService {
         }
         List<VoyageStockDetailDO> list = BeanUtils.toBean(createReqVO.getList(), VoyageStockDetailDO.class);
         List<VoyageStockDetailDO> insertList = new ArrayList<>();
+        voyageStockDetailMapper.deleteByVoyageIds(voyageIds);
         voyageIds.stream().forEach(voyageId -> {
-            voyageStockDetailMapper.deleteByVoyageId(voyageId);
             list.stream().forEach(item -> {
+
                 item.setVoyageId(voyageId);
-                item.setId(IdUtil.getSnowflakeNextId());
                 if(ProductStockStaticsName.TOTAL.equals(item.getRoomModelName())) {
                     VoyageStockDO stockDO = BeanUtils.toBean(item, VoyageStockDO.class);
                     stockDO.setShareNum(stockDO.getCanSellNum());
                     voyageStockMapper.updateById(stockDO);
                 }else {
-                    insertList.add(item);
+                    VoyageStockDetailDO voyageStockDetailDO = new VoyageStockDetailDO();
+                    voyageStockDetailDO.setVoyageId(voyageId)
+                            .setId(IdUtil.getSnowflakeNextId())
+                            .setFloor(item.getFloor())
+                            .setVirtualNum(item.getVirtualNum())
+                            .setRoomModelId(item.getRoomModelId())
+                            .setRoomModelName(item.getRoomModelName())
+                            .setTotalNum(item.getTotalNum())
+                            .setShelfNum(item.getShelfNum())
+                            .setNotShelfNum(item.getNotShelfNum())
+                            .setShelfedNum(item.getShelfedNum())
+                            .setBookNum(item.getBookNum())
+                            .setCanSellNum(item.getCanSellNum())
+                            .setOversoldNum(item.getOversoldNum())
+                            .setSurplusNum(item.getSurplusNum())
+                            .setRealTotalNum(item.getRealTotalNum());
+                    insertList.add(voyageStockDetailDO);
                 }
             });
         });