From 90f3fe37a9e815c98f1a57e3e21bc40b1520b734 Mon Sep 17 00:00:00 2001 From: liujiang <569804566@qq.com> Date: Mon, 22 Sep 2025 09:45:26 +0800 Subject: [PATCH] =?UTF-8?q?master=EF=BC=9A=E7=B3=BB=E7=BB=9F=E8=B0=83?= =?UTF-8?q?=E4=BC=98=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xkt/shipMaster/DoubleRunController.java | 84 +++++++++---------- .../xkt/shipMaster/ShipMasterController.java | 7 ++ .../xkt/shipMaster/vo/DoubleRunImportVO.java | 4 + .../ruoyi/common/constant/CacheConstants.java | 4 + .../impl/StoreProductStockServiceImpl.java | 5 +- 5 files changed, 59 insertions(+), 45 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/DoubleRunController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/DoubleRunController.java index f1d21b83b..ff22783a3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/DoubleRunController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/DoubleRunController.java @@ -5,7 +5,6 @@ import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.web.controller.xkt.shipMaster.vo.DoubleRunImportVO; -import com.ruoyi.web.controller.xkt.shipMaster.vo.ShipMasterImportVO; import com.ruoyi.xkt.service.shipMaster.IShipMasterService; import lombok.RequiredArgsConstructor; import org.apache.commons.collections4.CollectionUtils; @@ -34,60 +33,61 @@ public class DoubleRunController extends BaseController { @PostMapping("/cache") public R createCache(@Validated @RequestBody DoubleRunImportVO importVO) { List artNoList = importVO.getData().getData(); - Map>> artNoMap = new LinkedHashMap<>(); - artNoList.forEach(artNoInfo -> { - artNoInfo.getSkus().forEach(x -> x.setColor(this.decodeUnicode(x.getColor()))); - artNoMap.put(artNoInfo.getArticle_number(), artNoInfo.getSkus().stream().collect(Collectors - .groupingBy(DoubleRunImportVO.DRIArtNoSkuVO::getColor))); - }); - - - artNoMap.forEach((artNo, colorSkuMap) -> { - colorSkuMap.forEach((color, skuList) -> { - skuList.sort(Comparator.comparing(DoubleRunImportVO.DRIArtNoSkuVO::getSize)); - System.err.println(artNo + ":" + color + ":" + skuList); - }); - }); - - - /* // 供应商ID - final Integer supplierId = importVO.getData().getRecords().get(0).getSupplierId(); + final Integer userId = importVO.getData().getData().get(0).getUserId(); // 先从redis中获取列表数据 - List cacheList = ObjectUtils.defaultIfNull(redisCache - .getCacheObject(CacheConstants.SUPPLIER_KEY + supplierId), new ArrayList<>()); - CollectionUtils.addAll(cacheList, importVO.getData().getRecords()); + List cacheList = ObjectUtils.defaultIfNull(redisCache + .getCacheObject(CacheConstants.DOUBLE_RUN_KEY + userId), new ArrayList<>()); +// Map>> artNoMap = new LinkedHashMap<>(); + artNoList.forEach(artNoInfo -> { + artNoInfo.getSkus().forEach(x -> x.setColor(this.decodeUnicode(x.getColor())) + .setArticle_number(artNoInfo.getArticle_number())); + cacheList.addAll(artNoInfo.getSkus()); +// artNoMap.put(artNoInfo.getArticle_number(), artNoInfo.getSkus().stream().collect(Collectors +// .groupingBy(DoubleRunImportVO.DRIArtNoSkuVO::getColor))); + }); +// CollectionUtils.addAll(cacheList, artNoList); // 存到redis中 - redisCache.setCacheObject(CacheConstants.SUPPLIER_KEY + supplierId, cacheList);*/ + redisCache.setCacheObject(CacheConstants.DOUBLE_RUN_KEY + userId, cacheList); + +// Map> artNoColorMap = new LinkedHashMap<>(); +// artNoMap.forEach((artNo, colorSkuMap) -> { +// artNoColorMap.put(artNo, new ArrayList<>(colorSkuMap.keySet())); +// colorSkuMap.forEach((color, skuList) -> { +// skuList.sort(Comparator.comparing(DoubleRunImportVO.DRIArtNoSkuVO::getSize)); +// System.err.println(artNo + ":" + color + ":" + skuList); +// }); +// }); + return R.ok(); } @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @GetMapping("/cache/{supplierId}") - public R getCache(@PathVariable Integer supplierId) { - /*// 从redis中获取数据 - List cacheList = ObjectUtils.defaultIfNull(redisCache - .getCacheObject(CacheConstants.SUPPLIER_KEY + supplierId), new ArrayList<>()); + @GetMapping("/cache/{userId}") + public R getCache(@PathVariable Integer userId) { + // 从redis中获取数据 + List cacheList = ObjectUtils.defaultIfNull(redisCache + .getCacheObject(CacheConstants.DOUBLE_RUN_KEY + userId), new ArrayList<>()); if (CollectionUtils.isEmpty(cacheList)) { return R.fail(); } - // 按照artNo分组 - Map> artNoGroup = cacheList.stream() - .sorted(Comparator.comparing(ShipMasterImportVO.SMIVO::getArtNo) - .thenComparing(ShipMasterImportVO.SMIVO::getColor)) + Map> artNoGroup = cacheList.stream() + .sorted(Comparator.comparing(DoubleRunImportVO.DRIArtNoSkuVO::getArticle_number) + .thenComparing(DoubleRunImportVO.DRIArtNoSkuVO::getColor)) .collect(Collectors - .groupingBy(ShipMasterImportVO.SMIVO::getArtNo, LinkedHashMap::new, Collectors.toList())); - Map> artSnPrefixMap = new LinkedHashMap<>(); + .groupingBy(DoubleRunImportVO.DRIArtNoSkuVO::getArticle_number, LinkedHashMap::new, Collectors.toList())); + // 货号 颜色 map + Map> artNoColorMap = new LinkedHashMap<>(); artNoGroup.forEach((artNo, colorList) -> { - Map snPrefixMap = new LinkedHashMap<>(); - // 按照颜色设置条码前缀 - colorList.forEach(color -> snPrefixMap - .put(color.getColor(), color.getSupplierId() + String.format("%05d", color.getSupplierSkuId()))); - artSnPrefixMap.put(artNo, snPrefixMap); + artNoColorMap.put(artNo, colorList.stream().map(DoubleRunImportVO.DRIArtNoSkuVO::getColor).collect(Collectors.toList())); }); - artSnPrefixMap.forEach((k,v) -> { - System.err.println(k + ":" + v); - });*/ + + // TODO 如何对比?? + + + + + return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/ShipMasterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/ShipMasterController.java index b125ec488..eaf43363c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/ShipMasterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/ShipMasterController.java @@ -58,8 +58,12 @@ public class ShipMasterController extends BaseController { .thenComparing(ShipMasterImportVO.SMIVO::getColor)) .collect(Collectors .groupingBy(ShipMasterImportVO.SMIVO::getArtNo, LinkedHashMap::new, Collectors.toList())); + // 货号 颜色 对应的条码前缀 Map> artSnPrefixMap = new LinkedHashMap<>(); + // 货号 颜色 map + Map> artNoColorMap = new LinkedHashMap<>(); artNoGroup.forEach((artNo, colorList) -> { + artNoColorMap.put(artNo, colorList.stream().map(ShipMasterImportVO.SMIVO::getColor).collect(Collectors.toList())); Map snPrefixMap = new LinkedHashMap<>(); // 按照颜色设置条码前缀 colorList.forEach(color -> snPrefixMap @@ -69,6 +73,9 @@ public class ShipMasterController extends BaseController { artSnPrefixMap.forEach((k,v) -> { System.err.println(k + ":" + v); }); + artNoColorMap.forEach((k,v) -> { + System.err.println(k + ":" + v); + }); return R.ok(); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/vo/DoubleRunImportVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/vo/DoubleRunImportVO.java index 184ead389..a8a0893c6 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/vo/DoubleRunImportVO.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/shipMaster/vo/DoubleRunImportVO.java @@ -1,6 +1,7 @@ package com.ruoyi.web.controller.xkt.shipMaster.vo; import lombok.Data; +import lombok.experimental.Accessors; import java.math.BigDecimal; import java.util.List; @@ -21,12 +22,15 @@ public class DoubleRunImportVO { @Data public static class DRIArtNoVO { + private Integer userId; private String article_number; private List skus; } @Data + @Accessors(chain = true) public static class DRIArtNoSkuVO { + private String article_number; private String color; private Integer size; private BigDecimal weight; diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java index 7b1299118..dfcc2340b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java @@ -316,5 +316,9 @@ public class CacheConstants { * 供应商缓存 */ public static final String SUPPLIER_KEY = "supplier:"; + /** + * 主网站缓存 + */ + public static final String DOUBLE_RUN_KEY = "double_run:"; } diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStockServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStockServiceImpl.java index c348cb9b6..cc5c4739c 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStockServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreProductStockServiceImpl.java @@ -134,9 +134,8 @@ public class StoreProductStockServiceImpl implements IStoreProductStockService { List stockList = this.storeProdStockMapper.selectList(new LambdaQueryWrapper() .eq(StoreProductStock::getStoreId, storeId).eq(StoreProductStock::getStoreProdId, storeProdId) .eq(StoreProductStock::getDelFlag, Constants.UNDELETED)); - Map storeProdColorStockMap = stockList.stream().collect(Collectors.toMap(StoreProductStock::getStoreColorId, x -> x)); // 商品颜色对应的库存map - Map colorSizeStockMap = stockList.stream().collect(Collectors.toMap(StoreProductStock::getStoreColorId, x -> x)); + Map storeProdColorStockMap = stockList.stream().collect(Collectors.toMap(StoreProductStock::getStoreColorId, x -> x)); // 档口商品颜色 List storeProdColorList = this.prodColorMapper.selectList(new LambdaQueryWrapper() .eq(StoreProductColor::getDelFlag, Constants.UNDELETED).eq(StoreProductColor::getStoreId, storeId) @@ -156,7 +155,7 @@ public class StoreProductStockServiceImpl implements IStoreProductStockService { // 商品对应颜色的库存 .setSizeStockList(colorSizeList.stream().sorted(Comparator.comparing(StoreProductColorSize::getSize)) .map(x -> new StoreProdStockTakeResDTO.SPSTSizeStockDTO().setStoreProdColorSizeId(x.getId()).setSize(x.getSize()) - .setStock(this.getSizeStock(x.getSize(), colorSizeStockMap.get(storeColorId)))) + .setStock(this.getSizeStock(x.getSize(), storeProdColorStockMap.get(storeColorId)))) .collect(Collectors.toList())); colorResList.add(color); });