diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/GtAndFhbBizController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/GtAndFhbBizController.java index f1f04af1e..938b5c385 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/GtAndFhbBizController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/GtAndFhbBizController.java @@ -9,6 +9,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.DateUtils; +import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.web.controller.xkt.migartion.vo.GtAndFHBCompareDownloadVO; import com.ruoyi.web.controller.xkt.migartion.vo.GtAndFHBInitVO; @@ -72,7 +73,7 @@ public class GtAndFhbBizController extends BaseController { @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/sync-es/{storeId}") + @PostMapping("/sync-es/{storeId}") public void syncToEs(@PathVariable("storeId") Long storeId) { // 同步主图 到 图搜 服务器 @@ -83,7 +84,7 @@ public class GtAndFhbBizController extends BaseController { } @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/sync-pic/{storeId}") + @PostMapping("/sync-pic/{storeId}") public void syncToPicSearch(@PathVariable("storeId") Long storeId) { // 同步主图 到 图搜 服务器 @@ -94,6 +95,9 @@ public class GtAndFhbBizController extends BaseController { } + /** + * step1 + */ @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") @GetMapping("/compare/{userId}/{supplierId}") public void compare(HttpServletResponse response, @PathVariable("userId") Integer userId, @PathVariable("supplierId") Integer supplierId) throws UnsupportedEncodingException { @@ -199,13 +203,18 @@ public class GtAndFhbBizController extends BaseController { } + /** + * step2 + */ // 新增颜色、客户、商品基础数据 @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/init-prod") + @PostMapping("/init-prod") @Transactional public R initProd(@Validated @RequestBody GtAndFHBInitVO initVO) { - // 去掉可能的空格 - initVO.setExcludeArtNoList(initVO.getExcludeArtNoList().stream().map(String::trim).collect(Collectors.toList())); + // 去掉可能存在的空格 + if (CollectionUtils.isNotEmpty(initVO.getExcludeArtNoList())) { + initVO.setExcludeArtNoList(initVO.getExcludeArtNoList().stream().filter(StringUtils::isNotEmpty).map(String::trim).collect(Collectors.toList())); + } Optional.ofNullable(this.storeMapper.selectOne(new LambdaQueryWrapper() .eq(Store::getId, initVO.getStoreId()).eq(Store::getDelFlag, Constants.UNDELETED))) .orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR)); @@ -221,14 +230,15 @@ public class GtAndFhbBizController extends BaseController { .getCacheObject(CacheConstants.MIGRATION_GT_SALE_BASIC_KEY + initVO.getUserId()), new ArrayList<>()); // 查看gt 在售的商品 这边有多少相似的货号 gtSaleBasicList.stream().map(GtProdSkuVO::getArticle_number).distinct() - // 过滤掉需要特殊处理的货号 - .filter(article_number -> !initVO.getExcludeArtNoList().contains(article_number)) .forEach(article_number -> { // 只保留核心连续的数字,去除其他所有符号 String cleanArtNo = this.extractCoreArticleNumber(article_number); - List existList = multiSaleSameGoMap.containsKey(cleanArtNo) ? multiSaleSameGoMap.get(cleanArtNo) : new ArrayList<>(); - existList.add(article_number); - multiSaleSameGoMap.put(cleanArtNo, existList); + // 过滤掉需要特殊处理的货号 + if (CollectionUtils.isEmpty(initVO.getExcludeArtNoList()) || !initVO.getExcludeArtNoList().contains(cleanArtNo)) { + List existList = multiSaleSameGoMap.containsKey(cleanArtNo) ? multiSaleSameGoMap.get(cleanArtNo) : new ArrayList<>(); + existList.add(article_number); + multiSaleSameGoMap.put(cleanArtNo, existList); + } }); // 查看gt 下架的商品有多少相似的货号 @@ -246,16 +256,16 @@ public class GtAndFhbBizController extends BaseController { List fhbProdList = ObjectUtils.defaultIfNull(redisCache .getCacheObject(CacheConstants.MIGRATION_SUPPLIER_PROD_KEY + initVO.getSupplierId()), new ArrayList<>()); // Fhb按照颜色分类 - Map> fhbProdGroupMap = fhbProdList.stream().collect(Collectors.groupingBy(FhbProdVO.SMIVO::getArtNo)); fhbProdList.stream().map(FhbProdVO.SMIVO::getArtNo).distinct() - // 过滤掉需要特殊处理的货号 - .filter(artNo -> !initVO.getExcludeArtNoList().contains(artNo)) .forEach(artNo -> { // 只保留核心连续的数字,去除其他所有符号 String cleanArtNo = this.extractCoreArticleNumber(artNo); - List existList = multiSameFhbMap.containsKey(cleanArtNo) ? multiSameFhbMap.get(cleanArtNo) : new ArrayList<>(); - existList.add(artNo); - multiSameFhbMap.put(cleanArtNo, existList); + // 过滤掉需要特殊处理的货号 + if (CollectionUtils.isEmpty(initVO.getExcludeArtNoList()) || !initVO.getExcludeArtNoList().contains(cleanArtNo)) { + List existList = multiSameFhbMap.containsKey(cleanArtNo) ? multiSameFhbMap.get(cleanArtNo) : new ArrayList<>(); + existList.add(artNo); + multiSameFhbMap.put(cleanArtNo, existList); + } }); // gt按照货号分组 Map> gtSaleGroupMap = gtSaleBasicList.stream().collect(Collectors.groupingBy(GtProdSkuVO::getArticle_number)); @@ -273,7 +283,6 @@ public class GtAndFhbBizController extends BaseController { cateRelationMap.put(gtCate.getId(), cateId); }); - System.err.println("============ 两边系统“一致”的货号 ============"); // 清洗后,相同货号映射 Set commonArtNos = new HashSet<>(multiSaleSameGoMap.keySet()); commonArtNos.retainAll(multiSameFhbMap.keySet()); @@ -325,13 +334,11 @@ public class GtAndFhbBizController extends BaseController { /** + * step3 * 商品颜色及商品颜色尺码 - * - * @param initVO - * @return */ @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/init-color") + @PostMapping("/init-color") @Transactional public R initColor(@Validated @RequestBody GtAndFHBInitVO initVO) { // 从数据库查询最新数据 @@ -341,6 +348,15 @@ public class GtAndFhbBizController extends BaseController { .eq(StoreColor::getStoreId, initVO.getStoreId()).eq(StoreColor::getDelFlag, Constants.UNDELETED)); Map storeColorMap = storeColorList.stream().collect(Collectors.toMap(StoreColor::getColorName, x -> x, (v1, v2) -> v2)); + // TODO 临时处理,10-11之后的数据 + // TODO 临时处理,10-11之后的数据 + // TODO 临时处理,10-11之后的数据 + storeProdList = storeProdList.stream().filter(x -> x.getCreateTime().after(DateUtils.parseDate("2025-10-11 00:00:00"))).collect(Collectors.toList()); + + + + + Map> multiSaleSameGoMap = new HashMap<>(); Map> multiOffSaleSameGoMap = new HashMap<>(); Map> multiSameFhbMap = new HashMap<>(); @@ -348,14 +364,15 @@ public class GtAndFhbBizController extends BaseController { .getCacheObject(CacheConstants.MIGRATION_GT_SALE_BASIC_KEY + initVO.getUserId()), new ArrayList<>()); // 查看gt 在售的商品 这边有多少相似的货号 gtSaleBasicList.stream().map(GtProdSkuVO::getArticle_number).distinct() - // 过滤掉需要特殊处理的货号 - .filter(article_number -> !initVO.getExcludeArtNoList().contains(article_number)) .forEach(article_number -> { // 只保留核心连续的数字,去除其他所有符号 String cleanArtNo = this.extractCoreArticleNumber(article_number); - List existList = multiSaleSameGoMap.containsKey(cleanArtNo) ? multiSaleSameGoMap.get(cleanArtNo) : new ArrayList<>(); - existList.add(article_number); - multiSaleSameGoMap.put(cleanArtNo, existList); + // 过滤掉需要特殊处理的货号 + if (CollectionUtils.isEmpty(initVO.getExcludeArtNoList()) || !initVO.getExcludeArtNoList().contains(cleanArtNo)) { + List existList = multiSaleSameGoMap.containsKey(cleanArtNo) ? multiSaleSameGoMap.get(cleanArtNo) : new ArrayList<>(); + existList.add(article_number); + multiSaleSameGoMap.put(cleanArtNo, existList); + } }); // 查看gt 下架的商品有多少相似的货号 @@ -375,14 +392,15 @@ public class GtAndFhbBizController extends BaseController { // Fhb按照颜色分类 Map> fhbProdGroupMap = fhbProdList.stream().collect(Collectors.groupingBy(FhbProdVO.SMIVO::getArtNo)); fhbProdList.stream().map(FhbProdVO.SMIVO::getArtNo).distinct() - // 过滤掉需要特殊处理的货号 - .filter(artNo -> !initVO.getExcludeArtNoList().contains(artNo)) .forEach(artNo -> { // 只保留核心连续的数字,去除其他所有符号 String cleanArtNo = this.extractCoreArticleNumber(artNo); - List existList = multiSameFhbMap.containsKey(cleanArtNo) ? multiSameFhbMap.get(cleanArtNo) : new ArrayList<>(); - existList.add(artNo); - multiSameFhbMap.put(cleanArtNo, existList); + // 过滤掉需要特殊处理的货号 + if (CollectionUtils.isEmpty(initVO.getExcludeArtNoList()) || !initVO.getExcludeArtNoList().contains(cleanArtNo)) { + List existList = multiSameFhbMap.containsKey(cleanArtNo) ? multiSameFhbMap.get(cleanArtNo) : new ArrayList<>(); + existList.add(artNo); + multiSameFhbMap.put(cleanArtNo, existList); + } }); // gt按照货号分组 Map> gtSaleGroupMap = gtSaleBasicList.stream().collect(Collectors.groupingBy(GtProdSkuVO::getArticle_number)); @@ -432,11 +450,13 @@ public class GtAndFhbBizController extends BaseController { return R.ok(); } + /** + * step4 + */ @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/init-cus-disc") + @PostMapping("/init-cus-disc") @Transactional public R initCusDisc(@Validated @RequestBody GtAndFHBInitVO initVO) { - List storeProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper() .eq(StoreProduct::getStoreId, initVO.getStoreId()).eq(StoreProduct::getDelFlag, Constants.UNDELETED)); List prodColorList = this.prodColorMapper.selectList(new LambdaQueryWrapper() @@ -444,19 +464,28 @@ public class GtAndFhbBizController extends BaseController { List storeCusList = this.storeCusMapper.selectList(new LambdaQueryWrapper() .eq(StoreCustomer::getStoreId, initVO.getStoreId()).eq(StoreCustomer::getDelFlag, Constants.UNDELETED)); + // TODO 临时处理,10-11之后的数据 + // TODO 临时处理,10-11之后的数据 + // TODO 临时处理,10-11之后的数据 + storeProdList = storeProdList.stream().filter(x -> x.getCreateTime().after(DateUtils.parseDate("2025-10-11 00:00:00"))).collect(Collectors.toList()); + storeCusList = storeCusList.stream().filter(x -> x.getCreateTime().after(DateUtils.parseDate("2025-10-11 00:00:00"))).collect(Collectors.toList()); + prodColorList = prodColorList.stream().filter(x -> x.getCreateTime().after(DateUtils.parseDate("2025-10-11 00:00:00"))).collect(Collectors.toList()); + + Map> multiSameFhbMap = new HashMap<>(); // 查看Fhb 这边有多少相似的货号 List fhbProdList = ObjectUtils.defaultIfNull(redisCache .getCacheObject(CacheConstants.MIGRATION_SUPPLIER_PROD_KEY + initVO.getSupplierId()), new ArrayList<>()); fhbProdList.stream().map(FhbProdVO.SMIVO::getArtNo).distinct() - // 过滤掉需要特殊处理的货号 - .filter(artNo -> !initVO.getExcludeArtNoList().contains(artNo)) .forEach(artNo -> { // 只保留核心连续的数字,去除其他所有符号 String cleanArtNo = this.extractCoreArticleNumber(artNo); - List existList = multiSameFhbMap.containsKey(cleanArtNo) ? multiSameFhbMap.get(cleanArtNo) : new ArrayList<>(); - existList.add(artNo); - multiSameFhbMap.put(cleanArtNo, existList); + // 过滤掉需要特殊处理的货号 + if (CollectionUtils.isEmpty(initVO.getExcludeArtNoList()) || !initVO.getExcludeArtNoList().contains(cleanArtNo)) { + List existList = multiSameFhbMap.containsKey(cleanArtNo) ? multiSameFhbMap.get(cleanArtNo) : new ArrayList<>(); + existList.add(artNo); + multiSameFhbMap.put(cleanArtNo, existList); + } }); // 从redis中获取客户优惠数据 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/GtAndTyBizController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/GtAndTyBizController.java index 080df36ac..38d520039 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/GtAndTyBizController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/GtAndTyBizController.java @@ -71,7 +71,7 @@ public class GtAndTyBizController extends BaseController { @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/sync-es/{storeId}") + @PostMapping("/sync-es/{storeId}") public void syncToEs(@PathVariable("storeId") Long storeId) { // 同步主图 到 图搜 服务器 @@ -82,7 +82,7 @@ public class GtAndTyBizController extends BaseController { } @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/sync-pic/{storeId}") + @PostMapping("/sync-pic/{storeId}") public void syncToPicSearch(@PathVariable("storeId") Long storeId) { // 同步主图 到 图搜 服务器 @@ -94,7 +94,7 @@ public class GtAndTyBizController extends BaseController { @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @GetMapping("/-R/compare/{userId}") + @GetMapping("/compare/{userId}") public void compare(HttpServletResponse response, @PathVariable("userId") Integer userId) throws UnsupportedEncodingException { Map> multiSaleSameGoMap = new HashMap<>(); Map> multiOffSaleSameGoMap = new HashMap<>(); @@ -203,7 +203,7 @@ public class GtAndTyBizController extends BaseController { * @return */ @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/init-prod") + @PostMapping("/init-prod") @Transactional public R initProd(@Validated @RequestBody GtAndTYInitVO initVO) { // 去掉可能的空格 @@ -323,7 +323,7 @@ public class GtAndTyBizController extends BaseController { * @return */ @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/init-color") + @PostMapping("/init-color") @Transactional public R initColor(@Validated @RequestBody GtAndTYInitVO initVO) { // 从数据库查询最新数据 @@ -421,7 +421,7 @@ public class GtAndTyBizController extends BaseController { } @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") - @PutMapping("/init-cus-disc") + @PostMapping("/init-cus-disc") @Transactional public R initCusDisc(@Validated @RequestBody GtAndTYInitVO initVO) { diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java index 53d72caf4..78386db9f 100644 --- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java +++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/XktTask.java @@ -424,8 +424,8 @@ public class XktTask { this.tagNewProd(yesterday, oneWeekAgo, tagList); // 5. 打 关注榜 标签,根据关注量,进行排序 this.tagAttentionRank(yesterday, tagList); - // 6. 打 库存榜 标签,根据库存量,进行排序 - this.tagStockTag(yesterday, oneMonthAgo, tagList); + // 6. 打 库存榜 标签,根据库存量,进行排序 2025.10.11 注释 +// this.tagStockTag(yesterday, oneMonthAgo, tagList); // 7. 打 七日上新 标签 this.tag7DaysNewTag(yesterday, oneWeekAgo, tagList); if (CollectionUtils.isEmpty(tagList)) {