master:系统调优;
parent
a3affaa0b3
commit
173976a170
|
|
@ -4,8 +4,8 @@ import com.ruoyi.common.constant.CacheConstants;
|
|||
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.DoubleRunVO;
|
||||
import com.ruoyi.web.controller.xkt.shipMaster.vo.ShipMasterVO;
|
||||
import com.ruoyi.web.controller.xkt.shipMaster.vo.doubRun.DoubleRunProdVO;
|
||||
import com.ruoyi.web.controller.xkt.shipMaster.vo.shipMaster.ShipMasterProdVO;
|
||||
import com.ruoyi.xkt.service.shipMaster.IShipMasterService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
|
|
@ -37,9 +37,9 @@ public class CompareBizController extends BaseController {
|
|||
Map<String, List<String>> multiSaleSameGoMap = new HashMap<>();
|
||||
Map<String, List<String>> multiOffSaleSameGoMap = new HashMap<>();
|
||||
Map<String, List<String>> multiSameFMap = new HashMap<>();
|
||||
List<DoubleRunVO.DRIArtNoSkuVO> doubleRunSaleBasicList = ObjectUtils.defaultIfNull(redisCache
|
||||
List<DoubleRunProdVO.DRIArtNoSkuVO> doubleRunSaleBasicList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_DOUBLE_RUN_SALE_BASIC_KEY + userId), new ArrayList<>());
|
||||
List<String> doubleRunSaleArtNoList = doubleRunSaleBasicList.stream().map(DoubleRunVO.DRIArtNoSkuVO::getArticle_number)
|
||||
List<String> doubleRunSaleArtNoList = doubleRunSaleBasicList.stream().map(DoubleRunProdVO.DRIArtNoSkuVO::getArticle_number)
|
||||
.distinct().collect(Collectors.toList());
|
||||
// 查看double_run 在售的商品 这边有多少相似的货号
|
||||
doubleRunSaleArtNoList.forEach(article_number -> {
|
||||
|
|
@ -51,9 +51,9 @@ public class CompareBizController extends BaseController {
|
|||
});
|
||||
|
||||
// 查看double_run 下架的商品有多少相似的货号
|
||||
List<DoubleRunVO.DRIArtNoSkuVO> doubleRunOffSaleBasicList = ObjectUtils.defaultIfNull(redisCache
|
||||
List<DoubleRunProdVO.DRIArtNoSkuVO> doubleRunOffSaleBasicList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_DOUBLE_RUN_OFF_SALE_BASIC_KEY + userId), new ArrayList<>());
|
||||
List<String> doubleRunOffSaleArtNoList = doubleRunOffSaleBasicList.stream().map(DoubleRunVO.DRIArtNoSkuVO::getArticle_number)
|
||||
List<String> doubleRunOffSaleArtNoList = doubleRunOffSaleBasicList.stream().map(DoubleRunProdVO.DRIArtNoSkuVO::getArticle_number)
|
||||
.distinct().collect(Collectors.toList());
|
||||
doubleRunOffSaleArtNoList.forEach(article_number -> {
|
||||
// 只保留数字,去除其他所有符号
|
||||
|
|
@ -65,9 +65,9 @@ public class CompareBizController extends BaseController {
|
|||
|
||||
|
||||
// 查看ShipMaster 这边有多少相似的货号
|
||||
List<ShipMasterVO.SMIVO> shipMasterProdList = ObjectUtils.defaultIfNull(redisCache
|
||||
List<ShipMasterProdVO.SMIVO> shipMasterProdList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_SUPPLIER_PROD_KEY + supplierId), new ArrayList<>());
|
||||
List<String> shipArtNoList = shipMasterProdList.stream().map(ShipMasterVO.SMIVO::getArtNo)
|
||||
List<String> shipArtNoList = shipMasterProdList.stream().map(ShipMasterProdVO.SMIVO::getArtNo)
|
||||
.distinct().collect(Collectors.toList());
|
||||
shipArtNoList.forEach(artNo -> {
|
||||
// 只保留数字,去除其他所有符号
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@ import com.ruoyi.common.core.controller.BaseController;
|
|||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.redis.RedisCache;
|
||||
import com.ruoyi.common.exception.ServiceException;
|
||||
import com.ruoyi.web.controller.xkt.shipMaster.vo.DoubleRunAttrVO;
|
||||
import com.ruoyi.web.controller.xkt.shipMaster.vo.DoubleRunVO;
|
||||
import com.ruoyi.web.controller.xkt.shipMaster.vo.doubRun.DoubleRunAttrVO;
|
||||
import com.ruoyi.web.controller.xkt.shipMaster.vo.doubRun.DoubleRunProdVO;
|
||||
import com.ruoyi.xkt.service.shipMaster.IShipMasterService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
|
@ -18,7 +18,6 @@ import org.springframework.validation.annotation.Validated;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
|
|
@ -36,11 +35,11 @@ public class DoubleRunController extends BaseController {
|
|||
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin')")
|
||||
@PostMapping("/sale/cache")
|
||||
public R<Integer> createSaleCache(@Validated @RequestBody DoubleRunVO doubleRunVO) {
|
||||
List<DoubleRunVO.DRIArtNoVO> artNoList = doubleRunVO.getData().getData();
|
||||
public R<Integer> createSaleCache(@Validated @RequestBody DoubleRunProdVO doubleRunVO) {
|
||||
List<DoubleRunProdVO.DRIArtNoVO> artNoList = doubleRunVO.getData().getData();
|
||||
final Integer userId = doubleRunVO.getData().getData().get(0).getUser_id();
|
||||
// 先从redis中获取列表数据
|
||||
List<DoubleRunVO.DRIArtNoSkuVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
List<DoubleRunProdVO.DRIArtNoSkuVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_DOUBLE_RUN_SALE_BASIC_KEY + userId), new ArrayList<>());
|
||||
artNoList.forEach(artNoInfo -> {
|
||||
artNoInfo.getSkus().forEach(x -> x.setColor(this.decodeUnicode(x.getColor()))
|
||||
|
|
@ -54,11 +53,11 @@ public class DoubleRunController extends BaseController {
|
|||
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin')")
|
||||
@PostMapping("/off-sale/cache")
|
||||
public R<Integer> createOffSaleCache(@Validated @RequestBody DoubleRunVO doubleRunVO) {
|
||||
List<DoubleRunVO.DRIArtNoVO> artNoList = doubleRunVO.getData().getData();
|
||||
public R<Integer> createOffSaleCache(@Validated @RequestBody DoubleRunProdVO doubleRunVO) {
|
||||
List<DoubleRunProdVO.DRIArtNoVO> artNoList = doubleRunVO.getData().getData();
|
||||
final Integer userId = doubleRunVO.getData().getData().get(0).getUser_id();
|
||||
// 先从redis中获取列表数据
|
||||
List<DoubleRunVO.DRIArtNoSkuVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
List<DoubleRunProdVO.DRIArtNoSkuVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_DOUBLE_RUN_OFF_SALE_BASIC_KEY + userId), new ArrayList<>());
|
||||
artNoList.forEach(artNoInfo -> {
|
||||
artNoInfo.getSkus().forEach(x -> x.setColor(this.decodeUnicode(x.getColor()))
|
||||
|
|
@ -100,20 +99,20 @@ public class DoubleRunController extends BaseController {
|
|||
@GetMapping("/cache/{userId}")
|
||||
public R<Integer> getCache(@PathVariable Integer userId) {
|
||||
// 从redis中获取数据
|
||||
List<DoubleRunVO.DRIArtNoSkuVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
List<DoubleRunProdVO.DRIArtNoSkuVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_DOUBLE_RUN_SALE_BASIC_KEY + userId), new ArrayList<>());
|
||||
if (CollectionUtils.isEmpty(cacheList)) {
|
||||
return R.fail();
|
||||
}
|
||||
Map<String, List<DoubleRunVO.DRIArtNoSkuVO>> artNoGroup = cacheList.stream()
|
||||
.sorted(Comparator.comparing(DoubleRunVO.DRIArtNoSkuVO::getArticle_number)
|
||||
.thenComparing(DoubleRunVO.DRIArtNoSkuVO::getColor))
|
||||
Map<String, List<DoubleRunProdVO.DRIArtNoSkuVO>> artNoGroup = cacheList.stream()
|
||||
.sorted(Comparator.comparing(DoubleRunProdVO.DRIArtNoSkuVO::getArticle_number)
|
||||
.thenComparing(DoubleRunProdVO.DRIArtNoSkuVO::getColor))
|
||||
.collect(Collectors
|
||||
.groupingBy(DoubleRunVO.DRIArtNoSkuVO::getArticle_number, LinkedHashMap::new, Collectors.toList()));
|
||||
.groupingBy(DoubleRunProdVO.DRIArtNoSkuVO::getArticle_number, LinkedHashMap::new, Collectors.toList()));
|
||||
// 货号 颜色 map
|
||||
Map<String, List<String>> artNoColorMap = new LinkedHashMap<>();
|
||||
artNoGroup.forEach((artNo, colorList) -> {
|
||||
artNoColorMap.put(artNo, colorList.stream().map(DoubleRunVO.DRIArtNoSkuVO::getColor).collect(Collectors.toList()));
|
||||
artNoColorMap.put(artNo, colorList.stream().map(DoubleRunProdVO.DRIArtNoSkuVO::getColor).collect(Collectors.toList()));
|
||||
});
|
||||
|
||||
artNoColorMap.forEach((k,v) -> {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,8 @@ import com.ruoyi.common.constant.CacheConstants;
|
|||
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.ShipMasterVO;
|
||||
import com.ruoyi.web.controller.xkt.shipMaster.vo.shipMaster.ShipMasterCusVO;
|
||||
import com.ruoyi.web.controller.xkt.shipMaster.vo.shipMaster.ShipMasterProdVO;
|
||||
import com.ruoyi.xkt.service.shipMaster.IShipMasterService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
|
|
@ -31,40 +32,62 @@ public class ShipMasterController extends BaseController {
|
|||
final RedisCache redisCache;
|
||||
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin')")
|
||||
@PostMapping("/cache")
|
||||
public R<Integer> createCache(@Validated @RequestBody ShipMasterVO importVO) {
|
||||
@PostMapping("/prod/cache")
|
||||
public R<Integer> createProdCache(@Validated @RequestBody ShipMasterProdVO prodVO) {
|
||||
// 供应商ID
|
||||
final Integer supplierId = importVO.getData().getRecords().get(0).getSupplierId();
|
||||
final Integer supplierId = prodVO.getData().getRecords().get(0).getSupplierId();
|
||||
if (CollectionUtils.isEmpty(prodVO.getData().getRecords())) {
|
||||
return R.ok();
|
||||
}
|
||||
// 先从redis中获取列表数据
|
||||
List<ShipMasterVO.SMIVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
List<ShipMasterProdVO.SMIVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_SUPPLIER_PROD_KEY + supplierId), new ArrayList<>());
|
||||
CollectionUtils.addAll(cacheList, importVO.getData().getRecords());
|
||||
CollectionUtils.addAll(cacheList, prodVO.getData().getRecords());
|
||||
// 存到redis中
|
||||
redisCache.setCacheObject(CacheConstants.MIGRATION_SUPPLIER_PROD_KEY + supplierId, cacheList, 5, TimeUnit.DAYS);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin')")
|
||||
@GetMapping("/cache/{supplierId}")
|
||||
public R<Integer> getCache(@PathVariable Integer supplierId) {
|
||||
@PostMapping("/cus/cache")
|
||||
public R<Integer> createCusCache(@Validated @RequestBody ShipMasterCusVO cusVO) {
|
||||
// 供应商ID
|
||||
final Integer supplierId = cusVO.getData().getRecords().get(0).getSupplierId();
|
||||
if (CollectionUtils.isEmpty(cusVO.getData().getRecords())) {
|
||||
return R.ok();
|
||||
}
|
||||
// 先从redis中获取列表数据
|
||||
List<ShipMasterCusVO.SMCVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_SUPPLIER_CUS_KEY + supplierId), new ArrayList<>());
|
||||
CollectionUtils.addAll(cacheList, cusVO.getData().getRecords());
|
||||
// 存到redis中
|
||||
redisCache.setCacheObject(CacheConstants.MIGRATION_SUPPLIER_CUS_KEY + supplierId, cacheList, 5, TimeUnit.DAYS);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin')")
|
||||
@GetMapping("/prod/cache/{supplierId}")
|
||||
public R<Integer> getProdCache(@PathVariable Integer supplierId) {
|
||||
// 从redis中获取数据
|
||||
List<ShipMasterVO.SMIVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
List<ShipMasterProdVO.SMIVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_SUPPLIER_PROD_KEY + supplierId), new ArrayList<>());
|
||||
if (CollectionUtils.isEmpty(cacheList)) {
|
||||
return R.fail();
|
||||
}
|
||||
// 按照artNo分组
|
||||
Map<String, List<ShipMasterVO.SMIVO>> artNoGroup = cacheList.stream()
|
||||
.sorted(Comparator.comparing(ShipMasterVO.SMIVO::getArtNo)
|
||||
.thenComparing(ShipMasterVO.SMIVO::getColor))
|
||||
Map<String, List<ShipMasterProdVO.SMIVO>> artNoGroup = cacheList.stream()
|
||||
.sorted(Comparator.comparing(ShipMasterProdVO.SMIVO::getArtNo)
|
||||
.thenComparing(ShipMasterProdVO.SMIVO::getColor))
|
||||
.collect(Collectors
|
||||
.groupingBy(ShipMasterVO.SMIVO::getArtNo, LinkedHashMap::new, Collectors.toList()));
|
||||
.groupingBy(ShipMasterProdVO.SMIVO::getArtNo, LinkedHashMap::new, Collectors.toList()));
|
||||
// 货号 颜色 对应的条码前缀
|
||||
Map<String, Map<String, String>> artSnPrefixMap = new LinkedHashMap<>();
|
||||
// 货号 颜色 map
|
||||
Map<String, List<String>> artNoColorMap = new LinkedHashMap<>();
|
||||
artNoGroup.forEach((artNo, colorList) -> {
|
||||
artNoColorMap.put(artNo, colorList.stream().map(ShipMasterVO.SMIVO::getColor).collect(Collectors.toList()));
|
||||
artNoColorMap.put(artNo, colorList.stream().map(ShipMasterProdVO.SMIVO::getColor).collect(Collectors.toList()));
|
||||
Map<String, String> snPrefixMap = new LinkedHashMap<>();
|
||||
// 按照颜色设置条码前缀
|
||||
colorList.forEach(color -> snPrefixMap
|
||||
|
|
@ -81,4 +104,20 @@ public class ShipMasterController extends BaseController {
|
|||
}
|
||||
|
||||
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin')")
|
||||
@GetMapping("/cus/cache/{supplierId}")
|
||||
public R<Integer> getCusCache(@PathVariable Integer supplierId) {
|
||||
// 从redis中获取数据
|
||||
List<ShipMasterCusVO.SMCVO> cacheList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_SUPPLIER_CUS_KEY + supplierId), new ArrayList<>());
|
||||
if (CollectionUtils.isEmpty(cacheList)) {
|
||||
return R.fail();
|
||||
}
|
||||
Map<Integer, List<ShipMasterCusVO.SMCVO>> cusGroupMap = cacheList.stream().collect(Collectors
|
||||
.groupingBy(ShipMasterCusVO.SMCVO::getSupplierId, LinkedHashMap::new, Collectors.toList()));
|
||||
System.err.println(cusGroupMap);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
package com.ruoyi.web.controller.xkt.shipMaster.vo;
|
||||
package com.ruoyi.web.controller.xkt.shipMaster.vo.doubRun;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.ruoyi.web.controller.xkt.shipMaster.vo;
|
||||
package com.ruoyi.web.controller.xkt.shipMaster.vo.doubRun;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
|
@ -11,7 +11,7 @@ import java.util.List;
|
|||
* @date 2025-05-11 23:46
|
||||
*/
|
||||
@Data
|
||||
public class DoubleRunVO {
|
||||
public class DoubleRunProdVO {
|
||||
|
||||
private DRIDataVO data;
|
||||
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package com.ruoyi.web.controller.xkt.shipMaster.vo.shipMaster;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author liangyq
|
||||
* @date 2025-05-11 23:46
|
||||
*/
|
||||
@Data
|
||||
public class ShipMasterCusVO {
|
||||
|
||||
private SMCDataVO data;
|
||||
|
||||
@Data
|
||||
public static class SMCDataVO {
|
||||
private List<SMCVO> records;
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class SMCVO {
|
||||
private Integer supplierId;
|
||||
private String name;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
package com.ruoyi.web.controller.xkt.shipMaster.vo;
|
||||
package com.ruoyi.web.controller.xkt.shipMaster.vo.shipMaster;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
|
@ -9,7 +9,7 @@ import java.util.List;
|
|||
* @date 2025-05-11 23:46
|
||||
*/
|
||||
@Data
|
||||
public class ShipMasterVO {
|
||||
public class ShipMasterProdVO {
|
||||
|
||||
private SMIDataVO data;
|
||||
|
||||
|
|
@ -313,9 +313,13 @@ public class CacheConstants {
|
|||
*/
|
||||
public static final String STORE_PROD_VIEW_COUNT_CACHE = "store_prod_view_count_cache";
|
||||
/**
|
||||
* 供应商缓存
|
||||
* FHB商品缓存
|
||||
*/
|
||||
public static final String MIGRATION_SUPPLIER_PROD_KEY = "mig_supplier_prod:";
|
||||
/**
|
||||
* FHB客户缓存
|
||||
*/
|
||||
public static final String MIGRATION_SUPPLIER_CUS_KEY = "mig_supplier_cus:";
|
||||
/**
|
||||
* double_run在售缓存
|
||||
*/
|
||||
|
|
|
|||
Loading…
Reference in New Issue