master:系统调优;
parent
71bbe5b5f8
commit
905a759e99
|
|
@ -412,8 +412,9 @@ public class GtAndFhbBizController extends BaseController {
|
|||
+ String.format("%05d", smivo.getSupplierSkuId()) + Constants.SIZE_LIST.get(j);
|
||||
prodColorSizeList.add(new StoreProductColorSize().setSize(Constants.SIZE_LIST.get(j)).setStoreColorId(storeColor.getId())
|
||||
.setStoreProdId(storeProd.getId()).setStandard(gtStandardSizeList.contains(Constants.SIZE_LIST.get(j)) ? 1 : 0)
|
||||
// 销售价格以FHB价格为准
|
||||
.setPrice(smivo.getSalePrice())
|
||||
// 销售价格以FHB价格为准 非标尺码价格需要加价
|
||||
.setPrice(gtStandardSizeList.contains(Constants.SIZE_LIST.get(j)) ? smivo.getSalePrice()
|
||||
: smivo.getSalePrice().add(ObjectUtils.defaultIfNull(initVO.getAddOverPrice(), BigDecimal.ZERO)))
|
||||
.setOtherSnPrefix(otherSnPrefix).setNextSn(0));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -326,7 +326,9 @@ public class GtAndTyBiz2Controller extends BaseController {
|
|||
// TY系统条码前缀
|
||||
final String otherSnPrefix = tyProdImportVO.getSn() + Constants.SIZE_LIST.get(j);
|
||||
prodColorSizeList.add(new StoreProductColorSize().setSize(Constants.SIZE_LIST.get(j)).setStoreColorId(storeColor.getId())
|
||||
.setStoreProdId(storeProd.getId()).setPrice(tyProdImportVO.getPrice()).setOtherSnPrefix(otherSnPrefix).setNextSn(0)
|
||||
.setStoreProdId(storeProd.getId()).setOtherSnPrefix(otherSnPrefix).setNextSn(0)
|
||||
.setPrice(gtStandardSizeList.contains(Constants.SIZE_LIST.get(j)) ? tyProdImportVO.getPrice()
|
||||
: tyProdImportVO.getPrice().add(ObjectUtils.defaultIfNull(initVO.getAddOverPrice(), BigDecimal.ZERO)))
|
||||
.setStandard(gtStandardSizeList.contains(Constants.SIZE_LIST.get(j)) ? 1 : 0));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -374,7 +374,9 @@ public class GtAndTyBizController extends BaseController {
|
|||
// TY系统条码前缀
|
||||
final String otherSnPrefix = tyProdImportVO.getSn() + Constants.SIZE_LIST.get(j);
|
||||
prodColorSizeList.add(new StoreProductColorSize().setSize(Constants.SIZE_LIST.get(j)).setStoreColorId(storeColor.getId())
|
||||
.setStoreProdId(storeProd.getId()).setPrice(tyProdImportVO.getPrice()).setOtherSnPrefix(otherSnPrefix).setNextSn(0)
|
||||
.setStoreProdId(storeProd.getId()).setOtherSnPrefix(otherSnPrefix).setNextSn(0)
|
||||
.setPrice(gtStandardSizeList.contains(Constants.SIZE_LIST.get(j)) ? tyProdImportVO.getPrice()
|
||||
: tyProdImportVO.getPrice().add(ObjectUtils.defaultIfNull(initVO.getAddOverPrice(), BigDecimal.ZERO)))
|
||||
.setStandard(gtStandardSizeList.contains(Constants.SIZE_LIST.get(j)) ? 1 : 0));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,7 +171,9 @@ public class GtOtherBizAfterController extends BaseController {
|
|||
.collect(Collectors.toList());
|
||||
// 从数据库查询最新数据
|
||||
List<StoreProduct> storeProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper<StoreProduct>()
|
||||
.eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED));
|
||||
.eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED)
|
||||
// TODO 特殊处理,只保留GT单独处理的部分 important important important
|
||||
.in(StoreProduct::getProdArtNum, gtAfterArtNumList));
|
||||
List<StoreColor> storeColorList = this.storeColorMapper.selectList(new LambdaQueryWrapper<StoreColor>()
|
||||
.eq(StoreColor::getStoreId, storeId).eq(StoreColor::getDelFlag, Constants.UNDELETED));
|
||||
Map<String, StoreColor> storeColorMap = storeColorList.stream().collect(Collectors.toMap(StoreColor::getColorName, x -> x, (v1, v2) -> v2));
|
||||
|
|
@ -183,40 +185,37 @@ public class GtOtherBizAfterController extends BaseController {
|
|||
// 商品所有颜色 尺码 颜色库存初始化
|
||||
List<StoreProductColor> prodColorList = new ArrayList<>();
|
||||
List<StoreProductColorSize> prodColorSizeList = new ArrayList<>();
|
||||
storeProdList.stream()
|
||||
// TODO 特殊处理,只保留GT单独处理的部分 important important important
|
||||
.filter(storeProd -> gtAfterArtNumList.contains(storeProd.getProdArtNum()))
|
||||
.forEach(storeProd -> {
|
||||
// 获取GT匹配的商品sku列表
|
||||
List<GtProdSkuVO> gtMatchSkuList = gtProdSkuMap.get(storeProd.getProdArtNum());
|
||||
// 当前货号在GT的所有尺码,作为标准尺码
|
||||
List<Integer> gtStandardSizeList = gtMatchSkuList.stream().map(sku -> (int) Math.floor(Double.parseDouble(sku.getSize()))).collect(Collectors.toList());
|
||||
Map<String, String> prodColorMap = gtMatchSkuList.stream().collect(Collectors.toMap(GtProdSkuVO::getColor, GtProdSkuVO::getColor, (s1, s2) -> s2));
|
||||
// GT颜色下尺码价格map
|
||||
Map<String, Map<Integer, BigDecimal>> colorSizePriceMap = gtMatchSkuList.stream().collect(Collectors
|
||||
.groupingBy(GtProdSkuVO::getColor, Collectors.toMap(x -> (int) Math.floor(Double.parseDouble(x.getSize())), GtProdSkuVO::getPrice, (v1, v2) -> v2)));
|
||||
AtomicInteger orderNum = new AtomicInteger();
|
||||
prodColorMap.forEach((color, gtColor) -> {
|
||||
StoreColor storeColor = Optional.ofNullable(storeColorMap.get(gtColor))
|
||||
.orElseThrow(() -> new ServiceException("没有GT商品颜色!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 该商品的颜色
|
||||
prodColorList.add(new StoreProductColor().setStoreId(storeProd.getStoreId()).setStoreProdId(storeProd.getId()).setOrderNum(orderNum.addAndGet(1))
|
||||
.setColorName(storeColor.getColorName()).setStoreColorId(storeColor.getId()).setProdStatus(EProductStatus.ON_SALE.getValue()));
|
||||
Map<Integer, BigDecimal> sizePriceMap = Optional.ofNullable(colorSizePriceMap.get(gtColor))
|
||||
.orElseThrow(() -> new ServiceException("没有GT商品颜色尺码价格!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 该颜色最低价格
|
||||
BigDecimal minPrice = sizePriceMap.values().stream().min(BigDecimal::compareTo).orElse(BigDecimal.ZERO);
|
||||
// 该颜色所有的尺码
|
||||
for (int j = 0; j < Constants.SIZE_LIST.size(); j++) {
|
||||
final boolean isStandard = gtStandardSizeList.contains(Constants.SIZE_LIST.get(j));
|
||||
prodColorSizeList.add(new StoreProductColorSize().setSize(Constants.SIZE_LIST.get(j)).setStoreColorId(storeColor.getId())
|
||||
.setStoreProdId(storeProd.getId()).setStandard(isStandard ? 1 : 0).setNextSn(0)
|
||||
// 销售价格以FHB价格为准
|
||||
.setPrice(sizePriceMap.getOrDefault(Constants.SIZE_LIST.get(j), minPrice)
|
||||
.add(ObjectUtils.defaultIfNull(addOverPrice, BigDecimal.ZERO))));
|
||||
}
|
||||
});
|
||||
});
|
||||
storeProdList.forEach(storeProd -> {
|
||||
// 获取GT匹配的商品sku列表
|
||||
List<GtProdSkuVO> gtMatchSkuList = gtProdSkuMap.get(storeProd.getProdArtNum());
|
||||
// 当前货号在GT的所有尺码,作为标准尺码
|
||||
List<Integer> gtStandardSizeList = gtMatchSkuList.stream().map(sku -> (int) Math.floor(Double.parseDouble(sku.getSize()))).collect(Collectors.toList());
|
||||
Map<String, String> prodColorMap = gtMatchSkuList.stream().collect(Collectors.toMap(GtProdSkuVO::getColor, GtProdSkuVO::getColor, (s1, s2) -> s2));
|
||||
// GT颜色下尺码价格map
|
||||
Map<String, Map<Integer, BigDecimal>> colorSizePriceMap = gtMatchSkuList.stream().collect(Collectors
|
||||
.groupingBy(GtProdSkuVO::getColor, Collectors.toMap(x -> (int) Math.floor(Double.parseDouble(x.getSize())), GtProdSkuVO::getPrice, (v1, v2) -> v2)));
|
||||
AtomicInteger orderNum = new AtomicInteger();
|
||||
prodColorMap.forEach((color, gtColor) -> {
|
||||
StoreColor storeColor = Optional.ofNullable(storeColorMap.get(gtColor))
|
||||
.orElseThrow(() -> new ServiceException("没有GT商品颜色!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 该商品的颜色
|
||||
prodColorList.add(new StoreProductColor().setStoreId(storeProd.getStoreId()).setStoreProdId(storeProd.getId()).setOrderNum(orderNum.addAndGet(1))
|
||||
.setColorName(storeColor.getColorName()).setStoreColorId(storeColor.getId()).setProdStatus(EProductStatus.ON_SALE.getValue()));
|
||||
Map<Integer, BigDecimal> sizePriceMap = Optional.ofNullable(colorSizePriceMap.get(gtColor))
|
||||
.orElseThrow(() -> new ServiceException("没有GT商品颜色尺码价格!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 该颜色最低价格
|
||||
BigDecimal minPrice = sizePriceMap.values().stream().min(BigDecimal::compareTo).orElse(BigDecimal.ZERO);
|
||||
// 该颜色所有的尺码
|
||||
for (int j = 0; j < Constants.SIZE_LIST.size(); j++) {
|
||||
final boolean isStandard = gtStandardSizeList.contains(Constants.SIZE_LIST.get(j));
|
||||
prodColorSizeList.add(new StoreProductColorSize().setSize(Constants.SIZE_LIST.get(j)).setStoreColorId(storeColor.getId())
|
||||
.setStoreProdId(storeProd.getId()).setStandard(isStandard ? 1 : 0).setNextSn(0)
|
||||
// 销售价格以GT价格为准 能取到的价格,则取,否则视为非标尺码 需要加价
|
||||
.setPrice(sizePriceMap.containsKey(Constants.SIZE_LIST.get(j)) ? sizePriceMap.get(Constants.SIZE_LIST.get(j))
|
||||
: minPrice.add(ObjectUtils.defaultIfNull(addOverPrice, BigDecimal.ZERO))));
|
||||
}
|
||||
});
|
||||
});
|
||||
// 插入商品颜色及颜色对应的尺码,档口服务承诺
|
||||
this.prodColorMapper.insert(prodColorList);
|
||||
prodColorSizeList.sort(Comparator.comparing(StoreProductColorSize::getStoreProdId).thenComparing(StoreProductColorSize::getSize));
|
||||
|
|
|
|||
|
|
@ -1,26 +1,21 @@
|
|||
package com.ruoyi.web.controller.xkt.migartion;
|
||||
|
||||
import co.elastic.clients.elasticsearch.core.BulkResponse;
|
||||
import co.elastic.clients.elasticsearch.core.bulk.BulkOperation;
|
||||
import co.elastic.clients.elasticsearch.core.bulk.BulkResponseItem;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.ruoyi.common.constant.CacheConstants;
|
||||
import com.ruoyi.common.constant.Constants;
|
||||
import com.ruoyi.common.constant.HttpStatus;
|
||||
import com.ruoyi.common.core.controller.BaseController;
|
||||
import com.ruoyi.common.core.domain.R;
|
||||
import com.ruoyi.common.core.domain.entity.SysDictData;
|
||||
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.framework.es.EsClientWrapper;
|
||||
import com.ruoyi.framework.notice.fs.FsNotice;
|
||||
import com.ruoyi.web.controller.xkt.migartion.vo.gt.GtCateVO;
|
||||
import com.ruoyi.web.controller.xkt.migartion.vo.gt.GtProdSkuVO;
|
||||
import com.ruoyi.web.controller.xkt.migartion.vo.gtOnly.GtOnlyInitVO;
|
||||
import com.ruoyi.system.mapper.SysDictDataMapper;
|
||||
import com.ruoyi.web.controller.xkt.migartion.vo.ty.TyProdImportVO;
|
||||
import com.ruoyi.web.controller.xkt.migartion.vo.tyBizAfter.TyBizAfterImportVO;
|
||||
import com.ruoyi.xkt.domain.*;
|
||||
import com.ruoyi.xkt.dto.es.ESProductDTO;
|
||||
import com.ruoyi.xkt.dto.storeProdColorPrice.StoreProdMinPriceDTO;
|
||||
import com.ruoyi.xkt.enums.EProductStatus;
|
||||
import com.ruoyi.xkt.enums.ListingType;
|
||||
import com.ruoyi.xkt.mapper.*;
|
||||
|
|
@ -30,21 +25,24 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.MapUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.ruoyi.common.constant.Constants.WEIGHT_DEFAULT_ZERO;
|
||||
|
||||
/**
|
||||
* 只有GT处理 相关
|
||||
* 只有TY处理 相关
|
||||
*
|
||||
* @author ruoyi
|
||||
*/
|
||||
|
|
@ -67,8 +65,393 @@ public class TYOtherBizAfterController extends BaseController {
|
|||
final EsClientWrapper esClientWrapper;
|
||||
final IPictureService pictureService;
|
||||
final FsNotice fsNotice;
|
||||
final StoreCustomerMapper storeCusMapper;
|
||||
final SysDictDataMapper dictDataMapper;
|
||||
|
||||
// 系统枚举 鞋面材质
|
||||
private static final String DICT_TYPE_SHAFT_MATERIAL = "shaft_material";
|
||||
// 系统枚举 鞋面内里材质
|
||||
private static final String DICT_TYPE_SHOE_UPPER_LINING_MATERIAL = "shoe_upper_lining_material";
|
||||
|
||||
/**
|
||||
* step1
|
||||
* 颜色、客户、商品初始化(包含类目属性及服务等)
|
||||
*/
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin')")
|
||||
@PostMapping("/init-prod")
|
||||
@Transactional
|
||||
public R<Integer> initProd(@RequestParam(value = "storeId") Long storeId, @RequestParam(value = "userId") Integer userId, MultipartFile file) throws IOException {
|
||||
Optional.ofNullable(this.storeMapper.selectOne(new LambdaQueryWrapper<Store>().eq(Store::getId, storeId).eq(Store::getDelFlag, Constants.UNDELETED)))
|
||||
.orElseThrow(() -> new ServiceException("档口不存在!", HttpStatus.ERROR));
|
||||
ExcelUtil<TyBizAfterImportVO> util = new ExcelUtil<>(TyBizAfterImportVO.class);
|
||||
List<TyBizAfterImportVO> tyAfterImportVOList = util.importExcel(file.getInputStream());
|
||||
// 待处理的TY独有的货号
|
||||
List<String> tyAfterArtNumList = tyAfterImportVOList.stream().map(TyBizAfterImportVO::getTyAfterArtNum).map(String::trim)
|
||||
.filter(StringUtils::isNotBlank).map(item -> item.contains("(") ? item.substring(0, item.indexOf("(")) : item)
|
||||
.collect(Collectors.toList());
|
||||
// 绒里货号map
|
||||
Map<String, String> waitMatchMap = tyAfterArtNumList.stream().filter(x -> x.contains("R")).collect(Collectors.toMap(x -> x, x -> x));
|
||||
// 按照货号 和 单里绒里匹配关系进行分组
|
||||
Map<String, List<String>> tyAfterArtNumGroupMap = new HashMap<>();
|
||||
tyAfterArtNumList.stream().filter(x -> !x.contains("R")).distinct().forEach(x -> {
|
||||
List<String> matchList = new ArrayList<>(Collections.singletonList(x));
|
||||
if (waitMatchMap.containsKey(x + "R")) {
|
||||
matchList.add(waitMatchMap.get(x + "R"));
|
||||
} else if (waitMatchMap.containsKey(x + "-R")) {
|
||||
matchList.add(waitMatchMap.get(x + "-R"));
|
||||
}
|
||||
tyAfterArtNumGroupMap.put(x, matchList);
|
||||
});
|
||||
// 找到TY对应的商品
|
||||
List<TyProdImportVO> tyProdList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_TY_PROD_KEY + userId), new ArrayList<>());
|
||||
|
||||
// 步骤1: 颜色初始化
|
||||
this.initStoreColorList(storeId, tyProdList, tyAfterArtNumList);
|
||||
|
||||
// 步骤2: 新增商品
|
||||
List<StoreProduct> storeProdList = new ArrayList<>();
|
||||
// 当天
|
||||
final Date voucherDate = java.sql.Date.valueOf(LocalDate.now());
|
||||
// 默认为 单鞋下 弹力靴/袜靴 分类
|
||||
final Long prodCateId = 13L;
|
||||
Map<String, TyProdImportVO> tyProdMap = tyProdList.stream().collect(Collectors.toMap(TyProdImportVO::getProdArtNum, x -> x, (v1, v2) -> v2));
|
||||
tyAfterArtNumGroupMap.forEach((tyArtNum, matchList) -> {
|
||||
// 初始化档口商品 默认为私款,只能打印条码出库等,不可在平台展示
|
||||
StoreProduct storeProd = new StoreProduct().setStoreId(storeId).setProdCateId(prodCateId).setPrivateItem(1)
|
||||
.setProdArtNum(tyArtNum).setProdTitle("上架大卖").setListingWay(ListingType.RIGHT_NOW.getValue())
|
||||
.setVoucherDate(voucherDate).setProdStatus(EProductStatus.ON_SALE.getValue()).setRecommendWeight(0L).setSaleWeight(0L).setPopularityWeight(0L);
|
||||
storeProdList.add(storeProd);
|
||||
});
|
||||
this.storeProdMapper.insert(storeProdList);
|
||||
|
||||
// 找到枚举的 鞋面材质 和 鞋面内里材质
|
||||
List<SysDictData> attrList = Optional.ofNullable(this.dictDataMapper.selectList(new LambdaQueryWrapper<SysDictData>()
|
||||
.in(SysDictData::getDictType, Arrays.asList(DICT_TYPE_SHAFT_MATERIAL, DICT_TYPE_SHOE_UPPER_LINING_MATERIAL))
|
||||
.eq(SysDictData::getDelFlag, Constants.UNDELETED)))
|
||||
.orElseThrow(() -> new ServiceException("系统枚举 鞋面材质及鞋面内里材质 不存在!", HttpStatus.ERROR));
|
||||
Map<String, String> shaftMaterialMap = attrList.stream().filter(x -> Objects.equals(x.getDictType(), DICT_TYPE_SHAFT_MATERIAL))
|
||||
.collect(Collectors.toMap(SysDictData::getDictLabel, SysDictData::getDictValue));
|
||||
Map<String, String> shoeUpperLiningMaterialMap = attrList.stream().filter(x -> Objects.equals(x.getDictType(), DICT_TYPE_SHOE_UPPER_LINING_MATERIAL))
|
||||
.collect(Collectors.toMap(SysDictData::getDictLabel, SysDictData::getDictValue));
|
||||
List<StoreProductCategoryAttribute> prodCateAttrList = new ArrayList<>();
|
||||
List<StoreProductService> prodSvcList = new ArrayList<>();
|
||||
Map<String, String> newShaftMaterialMap = new HashMap<>();
|
||||
Map<String, String> newShoeUpperLiningMaterialMap = new HashMap<>();
|
||||
storeProdList.forEach(storeProd -> {
|
||||
TyProdImportVO tyProdVO = Optional.ofNullable(tyProdMap.get(storeProd.getProdArtNum()))
|
||||
.orElseThrow(() -> new ServiceException("TY独有商品,未找到TY对应的商品!", HttpStatus.ERROR));
|
||||
// 鞋面材质 为数据库不存在的属性,则新增
|
||||
if (StringUtils.isNotBlank(tyProdVO.getShaftMaterial()) && !shaftMaterialMap.containsKey(tyProdVO.getShaftMaterial())) {
|
||||
newShaftMaterialMap.put(tyProdVO.getShaftMaterial(), tyProdVO.getShaftMaterial());
|
||||
|
||||
}
|
||||
if (StringUtils.isNotBlank(tyProdVO.getShoeUpperLiningMaterial()) && !shoeUpperLiningMaterialMap.containsKey(tyProdVO.getShoeUpperLiningMaterial())) {
|
||||
newShoeUpperLiningMaterialMap.put(tyProdVO.getShoeUpperLiningMaterial(), tyProdVO.getShoeUpperLiningMaterial());
|
||||
|
||||
}
|
||||
// 只设置鞋面材质 和 鞋面内里材质
|
||||
prodCateAttrList.add(new StoreProductCategoryAttribute().setStoreId(storeProd.getStoreId()).setStoreProdId(storeProd.getId())
|
||||
.setShaftMaterial(tyProdVO.getShaftMaterial()).setShoeUpperLiningMaterial(tyProdVO.getShoeUpperLiningMaterial()));
|
||||
// 初始化商品服务承诺
|
||||
prodSvcList.add(new StoreProductService().setStoreProdId(storeProd.getId()).setCustomRefund("0")
|
||||
.setThirtyDayRefund("0").setOneBatchSale("1").setRefundWithinThreeDay("0"));
|
||||
});
|
||||
|
||||
List<SysDictData> newDictDataList = new ArrayList<>();
|
||||
if (MapUtils.isNotEmpty(newShaftMaterialMap)) {
|
||||
newShaftMaterialMap.forEach((k, v) -> newDictDataList.add(new SysDictData().setDictLabel(k).setDictValue(k).setDictType(DICT_TYPE_SHAFT_MATERIAL).setStatus("0").setDictSort(100L)));
|
||||
}
|
||||
if (MapUtils.isNotEmpty(newShoeUpperLiningMaterialMap)) {
|
||||
newShoeUpperLiningMaterialMap.forEach((k, v) -> newDictDataList.add(new SysDictData().setDictLabel(k).setDictValue(k)
|
||||
.setDictType(DICT_TYPE_SHOE_UPPER_LINING_MATERIAL).setStatus("0").setDictSort(100L)));
|
||||
}
|
||||
if (CollectionUtils.isNotEmpty(newDictDataList)) {
|
||||
this.dictDataMapper.insert(newDictDataList);
|
||||
}
|
||||
this.prodCateAttrMapper.insert(prodCateAttrList);
|
||||
this.prodSvcMapper.insert(prodSvcList);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* step2
|
||||
* 商品颜色及商品颜色尺码
|
||||
*/
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin')")
|
||||
@PostMapping("/init-color")
|
||||
@Transactional
|
||||
public R<Integer> initColor(@RequestParam(value = "storeId") Long storeId, @RequestParam(value = "userId") Integer userId,
|
||||
@RequestParam(value = "addOverPrice") BigDecimal addOverPrice, MultipartFile file) throws IOException {
|
||||
ExcelUtil<TyBizAfterImportVO> util = new ExcelUtil<>(TyBizAfterImportVO.class);
|
||||
List<TyBizAfterImportVO> tyAfterImportVOList = util.importExcel(file.getInputStream());
|
||||
// 待处理的TY独有的货号
|
||||
List<String> tyAfterArtNumList = tyAfterImportVOList.stream().map(TyBizAfterImportVO::getTyAfterArtNum).map(String::trim)
|
||||
.filter(StringUtils::isNotBlank).map(item -> item.contains("(") ? item.substring(0, item.indexOf("(")) : item)
|
||||
.collect(Collectors.toList());
|
||||
// 绒里货号map
|
||||
Map<String, String> waitMatchMap = tyAfterArtNumList.stream().filter(x -> x.contains("R")).collect(Collectors.toMap(x -> x, x -> x));
|
||||
// 按照货号 和 单里绒里匹配关系进行分组
|
||||
Map<String, List<String>> tyAfterArtNumGroupMap = new HashMap<>();
|
||||
tyAfterArtNumList.stream().filter(x -> !x.contains("R")).distinct().forEach(x -> {
|
||||
List<String> matchList = new ArrayList<>(Collections.singletonList(x));
|
||||
if (waitMatchMap.containsKey(x + "R")) {
|
||||
matchList.add(waitMatchMap.get(x + "R"));
|
||||
} else if (waitMatchMap.containsKey(x + "-R")) {
|
||||
matchList.add(waitMatchMap.get(x + "-R"));
|
||||
}
|
||||
tyAfterArtNumGroupMap.put(x, matchList);
|
||||
});
|
||||
|
||||
// 从数据库查询最新数据
|
||||
List<StoreProduct> storeProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper<StoreProduct>()
|
||||
.eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED)
|
||||
// TODO 特殊处理,只保留GT单独处理的部分 important important important
|
||||
.in(StoreProduct::getProdArtNum, tyAfterArtNumGroupMap.keySet()));
|
||||
List<StoreColor> storeColorList = this.storeColorMapper.selectList(new LambdaQueryWrapper<StoreColor>()
|
||||
.eq(StoreColor::getStoreId, storeId).eq(StoreColor::getDelFlag, Constants.UNDELETED));
|
||||
Map<String, StoreColor> storeColorMap = storeColorList.stream().collect(Collectors.toMap(StoreColor::getColorName, x -> x, (v1, v2) -> v2));
|
||||
|
||||
// 找到TY对应的商品
|
||||
List<TyProdImportVO> tyProdList = ObjectUtils.defaultIfNull(redisCache
|
||||
.getCacheObject(CacheConstants.MIGRATION_TY_PROD_KEY + userId), new ArrayList<>());
|
||||
Map<String, List<TyProdImportVO>> tyProdSkuMap = tyProdList.stream().collect(Collectors.groupingBy(TyProdImportVO::getProdArtNum));
|
||||
// 商品所有颜色 尺码 颜色库存初始化
|
||||
List<StoreProductColor> prodColorList = new ArrayList<>();
|
||||
List<StoreProductColorSize> prodColorSizeList = new ArrayList<>();
|
||||
storeProdList.forEach(storeProd -> {
|
||||
Optional.ofNullable(tyAfterArtNumGroupMap.get(storeProd.getProdArtNum()))
|
||||
.orElseThrow(() -> new ServiceException("没有TY[独有]商品货号!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 单里绒里匹配到的所有颜色
|
||||
List<TyProdImportVO> tyMatchColorList = tyAfterArtNumGroupMap.get(storeProd.getProdArtNum()).stream()
|
||||
.map(tyProdSkuMap::get).filter(Objects::nonNull).flatMap(List::stream).collect(Collectors.toList());
|
||||
AtomicInteger orderNum = new AtomicInteger();
|
||||
tyMatchColorList.forEach(tyProdColor -> {
|
||||
StoreColor storeColor = Optional.ofNullable(storeColorMap.get(tyProdColor.getColorName()))
|
||||
.orElseThrow(() -> new ServiceException("没有TY[独有]商品颜色!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 该商品的颜色
|
||||
prodColorList.add(new StoreProductColor().setStoreId(storeProd.getStoreId()).setStoreProdId(storeProd.getId()).setOrderNum(orderNum.addAndGet(1))
|
||||
.setColorName(storeColor.getColorName()).setStoreColorId(storeColor.getId()).setProdStatus(EProductStatus.ON_SALE.getValue()));
|
||||
// 该颜色最低价格
|
||||
BigDecimal minPrice = ObjectUtils.defaultIfNull(tyProdColor.getPrice(), BigDecimal.ZERO);
|
||||
// 该颜色所有的尺码 默认34-40为标准尺码
|
||||
for (int j = 0; j < Constants.SIZE_LIST.size(); j++) {
|
||||
// TY系统条码前缀
|
||||
final String otherSnPrefix = tyProdColor.getSn() + Constants.SIZE_LIST.get(j);
|
||||
prodColorSizeList.add(new StoreProductColorSize().setSize(Constants.SIZE_LIST.get(j)).setStoreColorId(storeColor.getId())
|
||||
.setStoreProdId(storeProd.getId()).setOtherSnPrefix(otherSnPrefix).setNextSn(0)
|
||||
.setStandard(Constants.STANDARD_SIZE_LIST.contains(Constants.SIZE_LIST.get(j)) ? 1 : 0)
|
||||
// 销售价格以TY价格为准
|
||||
.setPrice(Constants.STANDARD_SIZE_LIST.contains(Constants.SIZE_LIST.get(j)) ? minPrice
|
||||
: minPrice.add(ObjectUtils.defaultIfNull(addOverPrice, BigDecimal.ZERO))));
|
||||
}
|
||||
});
|
||||
});
|
||||
// 插入商品颜色及颜色对应的尺码,档口服务承诺
|
||||
this.prodColorMapper.insert(prodColorList);
|
||||
// 按照货号颜色尺码升序排列
|
||||
prodColorSizeList.sort(Comparator.comparing(StoreProductColorSize::getStoreProdId)
|
||||
.thenComparing(StoreProductColorSize::getStoreColorId).thenComparing(StoreProductColorSize::getSize));
|
||||
this.prodColorSizeMapper.insert(prodColorSizeList);
|
||||
// 还要更新步橘系统的条码前缀
|
||||
prodColorSizeList.forEach(x -> x.setSnPrefix(storeId + String.format("%08d", x.getId())));
|
||||
this.prodColorSizeMapper.updateById(prodColorSizeList);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
/**
|
||||
* step4
|
||||
*/
|
||||
@PreAuthorize("@ss.hasAnyRoles('admin,general_admin')")
|
||||
@PostMapping("/init-cus-disc")
|
||||
@Transactional
|
||||
public R<Integer> initCusDisc(@RequestParam(value = "storeId") Long storeId, @RequestParam(value = "userId") Integer userId, MultipartFile file) throws IOException {
|
||||
/* ExcelUtil<TyBizAfterImportVO> util = new ExcelUtil<>(TyBizAfterImportVO.class);
|
||||
List<TyBizAfterImportVO> tyAfterImportVOList = util.importExcel(file.getInputStream());
|
||||
// 待处理的TY独有的货号
|
||||
List<String> tyAfterArtNumList = tyAfterImportVOList.stream().map(TyBizAfterImportVO::getTyAfterArtNum).map(String::trim)
|
||||
.filter(StringUtils::isNotBlank).map(item -> item.contains("(") ? item.substring(0, item.indexOf("(")) : item)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
List<StoreProduct> storeProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper<StoreProduct>()
|
||||
.eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED)
|
||||
// TODO 特殊处理,只保留GT单独处理的部分 important important important
|
||||
.in(StoreProduct::getProdArtNum, tyAfterArtNumList));
|
||||
List<StoreProductColor> prodColorList = this.prodColorMapper.selectList(new LambdaQueryWrapper<StoreProductColor>()
|
||||
.eq(StoreProductColor::getStoreId, storeId).eq(StoreProductColor::getDelFlag, Constants.UNDELETED));
|
||||
List<StoreCustomer> storeCusList = this.storeCusMapper.selectList(new LambdaQueryWrapper<StoreCustomer>()
|
||||
.eq(StoreCustomer::getStoreId, storeId).eq(StoreCustomer::getDelFlag, Constants.UNDELETED));
|
||||
|
||||
// 找到TY对应的商品
|
||||
List<TyProdImportVO> tyProdList = redisCache.getCacheObject(CacheConstants.MIGRATION_TY_PROD_KEY + userId);
|
||||
if (CollectionUtils.isEmpty(tyProdList)) {
|
||||
throw new ServiceException("TY商品列表为空", HttpStatus.ERROR);
|
||||
}
|
||||
|
||||
// 从redis中获取已存在的客户优惠数据
|
||||
List<TyCusDiscImportVO> tyCusDiscCacheList = redisCache.getCacheObject(CacheConstants.MIGRATION_TY_CUS_DISCOUNT_KEY + userId);
|
||||
if (CollectionUtils.isEmpty(tyCusDiscCacheList)) {
|
||||
throw new ServiceException("ty供应商客户优惠列表为空!" + userId, HttpStatus.ERROR);
|
||||
}
|
||||
// 增加一重保险,客户优惠必须大于0
|
||||
tyCusDiscCacheList = tyCusDiscCacheList.stream().filter(x -> x.getDiscount() > 0).collect(Collectors.toList());
|
||||
|
||||
// 从redis中获取已存在的商品库存数据
|
||||
List<TyProdStockVO> tyStockList = redisCache.getCacheObject(CacheConstants.MIGRATION_TY_PROD_STOCK_KEY + userId);
|
||||
if (CollectionUtils.isEmpty(tyStockList)) {
|
||||
throw new ServiceException("ty供应商商品库存列表为空!" + userId, HttpStatus.ERROR);
|
||||
}
|
||||
// TY 货号颜色的库存对应关系
|
||||
Map<String, Map<String, TyProdStockVO>> tyProdStockMap = tyStockList.stream().collect(Collectors
|
||||
.groupingBy(TyProdStockVO::getProdArtNum, Collectors.toMap(TyProdStockVO::getColorName, x -> x)));
|
||||
// TY 货号颜色优惠对应关系
|
||||
Map<String, Map<String, List<TyCusDiscImportVO>>> tyCusDiscGroupMap = tyCusDiscCacheList.stream().collect(Collectors
|
||||
.groupingBy(TyCusDiscImportVO::getProdArtNum, Collectors.groupingBy(TyCusDiscImportVO::getColorName)));
|
||||
// 步橘系统商品所有颜色maps
|
||||
Map<Long, Map<String, StoreProductColor>> prodColorGroupMap = prodColorList.stream().collect(Collectors
|
||||
.groupingBy(StoreProductColor::getStoreProdId, Collectors.toMap(StoreProductColor::getColorName, x -> x)));
|
||||
// 步橘系统客户名称map
|
||||
Map<String, StoreCustomer> buJuStoreCusMap = storeCusList.stream().collect(Collectors.toMap(StoreCustomer::getCusName, x -> x));
|
||||
List<StoreCustomerProductDiscount> prodCusDiscList = new ArrayList<>();
|
||||
List<StoreProductStock> prodStockList = new ArrayList<>();
|
||||
// 依次遍历商品列表,找到货号和FHB货号对应关系,然后用颜色进行匹配,建立客户优惠关系
|
||||
storeProdList.forEach(storeProd -> {
|
||||
// 当前商品颜色列表 key 颜色中文名称
|
||||
Map<String, StoreProductColor> buJuProdColorMap = Optional.ofNullable(prodColorGroupMap.get(storeProd.getId())).orElseThrow(() -> new ServiceException("没有商品颜色!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 根据步橘货号 找到TY对应的货号,可能是列表
|
||||
List<String> tyAtrNoList = Optional.ofNullable(gtMatchTyArtNoMap.get(storeProd.getProdArtNum())).orElseThrow(() -> new ServiceException("没有TY货号!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 处理档口商品库存
|
||||
this.handleProdStock(tyAtrNoList, tyProdStockMap, buJuProdColorMap, storeProd.getStoreId(), storeProd.getId(), storeProd.getProdArtNum(), prodStockList);
|
||||
|
||||
|
||||
tyAtrNoList.forEach(tyAtrNo -> {
|
||||
// 处理客户优惠
|
||||
this.handleCusDisc(tyAtrNo, tyExistArtNoColorMap, tyCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, prodCusDiscList, storeProd.getStoreId(), storeProd.getId());
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// 处理的思路,以GT为主,根据GT的货号 去匹配TY的货号,有些档口写的比较规范,这种就比较好处理
|
||||
List<GtProdSkuVO> gtOnSaleList = ObjectUtils.defaultIfNull(redisCache.getCacheObject(CacheConstants.MIGRATION_GT_SALE_BASIC_KEY + initVO.getUserId()), new ArrayList<>());
|
||||
// gt所有在售的货号列表
|
||||
List<String> gtArtNoList = gtOnSaleList.stream().map(GtProdSkuVO::getArticle_number).map(String::trim).distinct().collect(Collectors.toList());
|
||||
|
||||
|
||||
// ty货号正在生效的颜色map,因为客户优惠有些是删除的颜色,需要通过这里去过滤
|
||||
Map<String, Set<String>> tyExistArtNoColorMap = tyProdList.stream().collect(Collectors
|
||||
.groupingBy(TyProdImportVO::getProdArtNum, Collectors.mapping(TyProdImportVO::getColorName, Collectors.toSet())));
|
||||
// TY货号下颜色的map
|
||||
Map<String, String> tyArtNoColorMap = tyProdList.stream().collect(Collectors.groupingBy(TyProdImportVO::getProdArtNum,
|
||||
Collectors.collectingAndThen(Collectors.mapping(TyProdImportVO::getColorName, Collectors.toList()),
|
||||
list -> "(" + list.stream().distinct().collect(Collectors.joining(",")) + ")")));
|
||||
// GT和TY匹配的货号map
|
||||
Map<String, List<String>> gtMatchTyArtNoMap = new HashMap<>();
|
||||
// 以GT为准在,找TY匹配的货号
|
||||
gtArtNoList.forEach(gtOnSaleArtNo -> tyArtNoColorMap.forEach((tyArtNo, tyArtNoColorStr) -> {
|
||||
// 3种情况 1:1 货号 2:货号R 3:货号-R
|
||||
if (Objects.equals(tyArtNo, gtOnSaleArtNo) || Objects.equals(tyArtNo, gtOnSaleArtNo + "R") || Objects.equals(tyArtNo, gtOnSaleArtNo + "-R")) {
|
||||
List<String> existMatchArtNoList = gtMatchTyArtNoMap.getOrDefault(gtOnSaleArtNo, new ArrayList<>());
|
||||
existMatchArtNoList.add(tyArtNo);
|
||||
gtMatchTyArtNoMap.put(gtOnSaleArtNo, existMatchArtNoList);
|
||||
}
|
||||
}));
|
||||
|
||||
// 从redis中获取已存在的客户优惠数据
|
||||
List<TyCusDiscImportVO> tyCusDiscCacheList = redisCache.getCacheObject(CacheConstants.MIGRATION_TY_CUS_DISCOUNT_KEY + initVO.getUserId());
|
||||
if (CollectionUtils.isEmpty(tyCusDiscCacheList)) {
|
||||
throw new ServiceException("ty供应商客户优惠列表为空!" + initVO.getUserId(), HttpStatus.ERROR);
|
||||
}
|
||||
// 增加一重保险,客户优惠必须大于0
|
||||
tyCusDiscCacheList = tyCusDiscCacheList.stream().filter(x -> x.getDiscount() > 0).collect(Collectors.toList());
|
||||
|
||||
// 从redis中获取已存在的商品库存数据
|
||||
List<TyProdStockVO> tyStockList = redisCache.getCacheObject(CacheConstants.MIGRATION_TY_PROD_STOCK_KEY + initVO.getUserId());
|
||||
if (CollectionUtils.isEmpty(tyStockList)) {
|
||||
throw new ServiceException("ty供应商商品库存列表为空!" + initVO.getUserId(), HttpStatus.ERROR);
|
||||
}
|
||||
// TY 货号颜色的库存对应关系
|
||||
Map<String, Map<String, TyProdStockVO>> tyProdStockMap = tyStockList.stream().collect(Collectors
|
||||
.groupingBy(TyProdStockVO::getProdArtNum, Collectors.toMap(TyProdStockVO::getColorName, x -> x)));
|
||||
// TY 货号颜色优惠对应关系
|
||||
Map<String, Map<String, List<TyCusDiscImportVO>>> tyCusDiscGroupMap = tyCusDiscCacheList.stream().collect(Collectors
|
||||
.groupingBy(TyCusDiscImportVO::getProdArtNum, Collectors.groupingBy(TyCusDiscImportVO::getColorName)));
|
||||
// 步橘系统商品所有颜色maps
|
||||
Map<Long, Map<String, StoreProductColor>> prodColorGroupMap = prodColorList.stream().collect(Collectors
|
||||
.groupingBy(StoreProductColor::getStoreProdId, Collectors.toMap(StoreProductColor::getColorName, x -> x)));
|
||||
// 步橘系统客户名称map
|
||||
Map<String, StoreCustomer> buJuStoreCusMap = storeCusList.stream().collect(Collectors.toMap(StoreCustomer::getCusName, x -> x));
|
||||
List<StoreCustomerProductDiscount> prodCusDiscList = new ArrayList<>();
|
||||
List<StoreProductStock> prodStockList = new ArrayList<>();
|
||||
// 依次遍历商品列表,找到货号和FHB货号对应关系,然后用颜色进行匹配,建立客户优惠关系
|
||||
storeProdList.forEach(storeProd -> {
|
||||
// 当前商品颜色列表 key 颜色中文名称
|
||||
Map<String, StoreProductColor> buJuProdColorMap = Optional.ofNullable(prodColorGroupMap.get(storeProd.getId())).orElseThrow(() -> new ServiceException("没有商品颜色!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 根据步橘货号 找到TY对应的货号,可能是列表
|
||||
List<String> tyAtrNoList = Optional.ofNullable(gtMatchTyArtNoMap.get(storeProd.getProdArtNum())).orElseThrow(() -> new ServiceException("没有TY货号!" + storeProd.getProdArtNum(), HttpStatus.ERROR));
|
||||
// 处理档口商品库存
|
||||
this.handleProdStock(tyAtrNoList, tyProdStockMap, buJuProdColorMap, storeProd.getStoreId(), storeProd.getId(), storeProd.getProdArtNum(), prodStockList);
|
||||
|
||||
|
||||
tyAtrNoList.forEach(tyAtrNo -> {
|
||||
// 处理客户优惠
|
||||
this.handleCusDisc(tyAtrNo, tyExistArtNoColorMap, tyCusDiscGroupMap, buJuProdColorMap, buJuStoreCusMap, prodCusDiscList, storeProd.getStoreId(), storeProd.getId());
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
// 档口客户优惠
|
||||
this.storeCusProdDiscMapper.insert(prodCusDiscList);
|
||||
// 档口客户库存
|
||||
this.prodStockMapper.insert(prodStockList);*/
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 初始化档口颜色
|
||||
*
|
||||
* @param tyProdList TY所有商品sku
|
||||
* @param tyAfterArtNumList TY独有商品商品列表
|
||||
*/
|
||||
private void initStoreColorList(Long storeId, List<TyProdImportVO> tyProdList, List<String> tyAfterArtNumList) {
|
||||
// 先查询当前档口所有的颜色,如果没有剩余的颜色,则新增导入
|
||||
List<StoreColor> existColorList = this.storeColorMapper.selectList(new LambdaQueryWrapper<StoreColor>()
|
||||
.eq(StoreColor::getDelFlag, Constants.UNDELETED).eq(StoreColor::getStoreId, storeId));
|
||||
List<String> existColorNameList = existColorList.stream().map(StoreColor::getColorName).collect(Collectors.toList());
|
||||
// 当前最大的排序
|
||||
int maxOrderNum = existColorList.stream().mapToInt(StoreColor::getOrderNum).max().orElse(0) + 1;
|
||||
// TY单独处理的货品颜色
|
||||
List<String> gtAfterColorList = tyProdList.stream().filter(tyProd -> tyAfterArtNumList.contains(tyProd.getProdArtNum()))
|
||||
.map(TyProdImportVO::getColorName).filter(color -> !existColorNameList.contains(color)).distinct().collect(Collectors.toList());
|
||||
if (CollectionUtils.isEmpty(gtAfterColorList)) {
|
||||
return;
|
||||
}
|
||||
List<StoreColor> storeColorList = new ArrayList<>();
|
||||
for (int i = 0; i < gtAfterColorList.size(); i++) {
|
||||
storeColorList.add(new StoreColor().setStoreId(storeId).setColorName(gtAfterColorList.get(i)).setOrderNum(maxOrderNum + i + 1));
|
||||
}
|
||||
this.storeColorMapper.insert(storeColorList);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,21 @@
|
|||
package com.ruoyi.web.controller.xkt.migartion.vo.tyBizAfter;
|
||||
|
||||
import com.ruoyi.common.annotation.Excel;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* @author liujiang
|
||||
* @version v1.0
|
||||
* @date 2025/3/27 15:12
|
||||
*/
|
||||
@ApiModel
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class TyBizAfterImportVO {
|
||||
|
||||
@Excel(name = "货号对比结果")
|
||||
private String tyAfterArtNum;
|
||||
|
||||
}
|
||||
|
|
@ -196,6 +196,8 @@ public class Constants
|
|||
// 系统所有的尺码
|
||||
public static final List<Integer> SIZE_LIST = new ArrayList<>(Arrays
|
||||
.asList(SIZE_30, SIZE_31, SIZE_32, SIZE_33, SIZE_34, SIZE_35, SIZE_36, SIZE_37, SIZE_38, SIZE_39, SIZE_40, SIZE_41, SIZE_42, SIZE_43));
|
||||
// 系统标准尺码 34-40
|
||||
public static final List<Integer> STANDARD_SIZE_LIST = new ArrayList<>(Arrays.asList(SIZE_34, SIZE_35, SIZE_36, SIZE_37, SIZE_38, SIZE_39, SIZE_40));
|
||||
|
||||
/**
|
||||
* 平台内部账户ID
|
||||
|
|
@ -331,7 +333,7 @@ public class Constants
|
|||
public static final String SHAFT_LINING_MATERIAL = "shaftLiningMaterial";
|
||||
public static final String SHAFT_LINING_MATERIAL_NAME = "靴筒内里材质";
|
||||
public static final String SHAFT_MATERIAL = "shaftMaterial";
|
||||
public static final String SHAFT_MATERIAL_NAME = "靴筒面材质";
|
||||
public static final String SHAFT_MATERIAL_NAME = "鞋面材质";
|
||||
public static final String SHOE_UPPER_LINING_MATERIAL = "shoeUpperLiningMaterial";
|
||||
public static final String SHOE_UPPER_LINING_MATERIAL_NAME = "鞋面内里材质";
|
||||
public static final String SHOE_STYLE_NAME = "shoeStyleName";
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
|
|||
import com.ruoyi.common.core.domain.XktBaseEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.apache.commons.lang3.builder.ToStringBuilder;
|
||||
import org.apache.commons.lang3.builder.ToStringStyle;
|
||||
|
||||
|
|
@ -21,6 +22,7 @@ import javax.validation.constraints.Size;
|
|||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class SysDictData extends XktBaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
|
|
|||
|
|
@ -660,71 +660,40 @@ create table sys_dict_type
|
|||
unique (dict_type)
|
||||
) engine=innodb auto_increment=200 comment = '字典类型表';
|
||||
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (1, '用户性别', 'sys_user_sex', '0', '用户性别列表', '0', '0', 'admin', '2025-03-26 21:35:36', 'admin',
|
||||
'2025-06-28 11:05:55');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (2, '菜单状态', 'sys_show_hide', '0', '菜单状态列表', '0', '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (3, '系统开关', 'sys_normal_disable', '0', '系统开关列表', '0', '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (4, '任务状态', 'sys_job_status', '0', '任务状态列表', '0', '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (5, '任务分组', 'sys_job_group', '0', '任务分组列表', '0', '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (6, '系统是否', 'sys_yes_no', '0', '系统是否列表', '0', '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (7, '通知类型', 'sys_notice_type', '0', '通知类型列表', '0', '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (8, '通知状态', 'sys_notice_status', '0', '通知状态列表', '0', '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (9, '操作类型', 'sys_oper_type', '0', '操作类型列表', '0', '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (10, '系统状态', 'sys_common_status', '0', '登录状态列表', '0', '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (203, '帮面材质', 'upper_material', '0', '', '0', '0', 'admin', '2025-07-03 19:42:28', '', '2025-07-03 19:42:28');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (204, '内里材质', 'lining_material', '0', '', '0', '0', 'admin', '2025-07-03 19:45:31', '', '2025-07-03 19:45:31');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (205, '鞋垫材质', 'insole_material', '0', '', '0', '0', 'admin', '2025-07-03 19:45:41', '', '2025-07-03 19:45:41');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (206, '后跟高', 'heel_height', '0', '', '0', '0', 'admin', '2025-07-03 19:45:52', '', '2025-07-03 19:45:52');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (207, '跟底款式', 'heel_type', '0', '', '0', '0', 'admin', '2025-07-03 19:46:03', '', '2025-07-03 19:46:03');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (208, '鞋头款式', 'toe_style', '0', '', '0', '0', 'admin', '2025-07-03 19:46:20', '', '2025-07-03 19:46:20');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (209, '适合季节', 'suitable_season', '0', '', '0', '0', 'admin', '2025-07-03 19:46:29', '', '2025-07-03 19:46:29');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (210, '开口深度', 'collar_depth', '0', '', '0', '0', 'admin', '2025-07-03 19:46:39', '', '2025-07-03 19:46:39');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (211, '鞋底材质', 'outsole_material', '0', '', '0', '0', 'admin', '2025-07-03 19:46:48', '', '2025-07-03 19:46:48');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (212, '风格', 'style', '0', '', '0', '0', 'admin', '2025-07-03 19:46:58', '', '2025-07-03 19:46:58');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (213, '款式', 'design', '0', '', '0', '0', 'admin', '2025-07-03 19:47:11', '', '2025-07-03 19:47:11');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (214, '皮质特征', 'leather_features', '0', '', '0', '0', 'admin', '2025-07-03 19:47:30', '', '2025-07-03 19:47:30');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (215, '制作工艺', 'manufacturing_process', '0', '', '0', '0', 'admin', '2025-07-03 19:47:38', '',
|
||||
'2025-07-03 19:47:38');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (216, '图案', 'pattern', '0', '', '0', '0', 'admin', '2025-07-03 19:47:45', '', '2025-07-03 19:47:45');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (217, '闭合方式', 'closure_type', '0', '', '0', '0', 'admin', '2025-07-03 19:47:53', '', '2025-07-03 19:47:53');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (218, '适用场景', 'occasion', '0', '', '0', '0', 'admin', '2025-07-03 19:48:04', '', '2025-07-03 19:48:04');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (219, '适用年龄', 'suitable_age', '0', '', '0', '0', 'admin', '2025-07-03 19:48:11', '', '2025-07-03 19:48:11');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (220, '厚薄', 'thickness', '0', '', '0', '0', 'admin', '2025-07-03 19:48:20', '', '2025-07-03 19:48:20');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (221, '流行元素', 'fashion_elements', '0', '', '0', '0', 'admin', '2025-07-03 19:48:29', '', '2025-07-03 19:48:29');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (222, '退货原因', 'refund_reason', '0', NULL, '0', '0', 'admin', '2025-07-18 22:56:58', '', '2025-07-18 22:57:00');
|
||||
INSERT INTO `sys_dict_type`
|
||||
VALUES (223, '季节年份', 'release_year_season', '0', '', '0', '0', 'admin', '2025-08-03 20:51:28', 'admin',
|
||||
'2025-08-03 20:51:28');
|
||||
INSERT INTO `sys_dict_type` VALUES (1, '用户性别', 'sys_user_sex', '0', '用户性别列表', 0, '0', 'admin', '2025-03-26 21:35:36', 'admin', '2025-06-28 11:05:55');
|
||||
INSERT INTO `sys_dict_type` VALUES (2, '菜单状态', 'sys_show_hide', '0', '菜单状态列表', 0, '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (3, '系统开关', 'sys_normal_disable', '0', '系统开关列表', 0, '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (4, '任务状态', 'sys_job_status', '0', '任务状态列表', 0, '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (5, '任务分组', 'sys_job_group', '0', '任务分组列表', 0, '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (6, '系统是否', 'sys_yes_no', '0', '系统是否列表', 0, '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (7, '通知类型', 'sys_notice_type', '0', '通知类型列表', 0, '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (8, '通知状态', 'sys_notice_status', '0', '通知状态列表', 0, '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (9, '操作类型', 'sys_oper_type', '0', '操作类型列表', 0, '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (10, '系统状态', 'sys_common_status', '0', '登录状态列表', 0, '0', 'admin', '2025-03-26 21:35:36', '', NULL);
|
||||
INSERT INTO `sys_dict_type` VALUES (203, '帮面材质', 'upper_material', '0', '', 0, '0', 'admin', '2025-07-03 19:42:28', '', '2025-07-03 19:42:28');
|
||||
INSERT INTO `sys_dict_type` VALUES (204, '内里材质', 'lining_material', '0', '', 0, '0', 'admin', '2025-07-03 19:45:31', '', '2025-07-03 19:45:31');
|
||||
INSERT INTO `sys_dict_type` VALUES (205, '鞋垫材质', 'insole_material', '0', '', 0, '0', 'admin', '2025-07-03 19:45:41', '', '2025-07-03 19:45:41');
|
||||
INSERT INTO `sys_dict_type` VALUES (206, '后跟高', 'heel_height', '0', '', 0, '0', 'admin', '2025-07-03 19:45:52', '', '2025-07-03 19:45:52');
|
||||
INSERT INTO `sys_dict_type` VALUES (207, '跟底款式', 'heel_type', '0', '', 0, '0', 'admin', '2025-07-03 19:46:03', '', '2025-07-03 19:46:03');
|
||||
INSERT INTO `sys_dict_type` VALUES (208, '鞋头款式', 'toe_style', '0', '', 0, '0', 'admin', '2025-07-03 19:46:20', '', '2025-07-03 19:46:20');
|
||||
INSERT INTO `sys_dict_type` VALUES (209, '适合季节', 'suitable_season', '0', '', 0, '0', 'admin', '2025-07-03 19:46:29', '', '2025-07-03 19:46:29');
|
||||
INSERT INTO `sys_dict_type` VALUES (210, '开口深度', 'collar_depth', '0', '', 0, '0', 'admin', '2025-07-03 19:46:39', '', '2025-07-03 19:46:39');
|
||||
INSERT INTO `sys_dict_type` VALUES (211, '鞋底材质', 'outsole_material', '0', '', 0, '0', 'admin', '2025-07-03 19:46:48', '', '2025-07-03 19:46:48');
|
||||
INSERT INTO `sys_dict_type` VALUES (212, '风格', 'style', '0', '', 0, '0', 'admin', '2025-07-03 19:46:58', '', '2025-07-03 19:46:58');
|
||||
INSERT INTO `sys_dict_type` VALUES (213, '款式', 'design', '0', '', 0, '0', 'admin', '2025-07-03 19:47:11', '', '2025-07-03 19:47:11');
|
||||
INSERT INTO `sys_dict_type` VALUES (214, '皮质特征', 'leather_features', '0', '', 0, '0', 'admin', '2025-07-03 19:47:30', '', '2025-07-03 19:47:30');
|
||||
INSERT INTO `sys_dict_type` VALUES (215, '制作工艺', 'manufacturing_process', '0', '', 0, '0', 'admin', '2025-07-03 19:47:38', '', '2025-07-03 19:47:38');
|
||||
INSERT INTO `sys_dict_type` VALUES (216, '图案', 'pattern', '0', '', 0, '0', 'admin', '2025-07-03 19:47:45', '', '2025-07-03 19:47:45');
|
||||
INSERT INTO `sys_dict_type` VALUES (217, '闭合方式', 'closure_type', '0', '', 0, '0', 'admin', '2025-07-03 19:47:53', '', '2025-07-03 19:47:53');
|
||||
INSERT INTO `sys_dict_type` VALUES (218, '适用场景', 'occasion', '0', '', 0, '0', 'admin', '2025-07-03 19:48:04', '', '2025-07-03 19:48:04');
|
||||
INSERT INTO `sys_dict_type` VALUES (219, '适用年龄', 'suitable_age', '0', '', 0, '0', 'admin', '2025-07-03 19:48:11', '', '2025-07-03 19:48:11');
|
||||
INSERT INTO `sys_dict_type` VALUES (220, '厚薄', 'thickness', '0', '', 0, '0', 'admin', '2025-07-03 19:48:20', '', '2025-07-03 19:48:20');
|
||||
INSERT INTO `sys_dict_type` VALUES (221, '流行元素', 'fashion_elements', '0', '', 0, '0', 'admin', '2025-07-03 19:48:29', '', '2025-07-03 19:48:29');
|
||||
INSERT INTO `sys_dict_type` VALUES (222, '退货原因', 'refund_reason', '0', NULL, 0, '0', 'admin', '2025-07-18 22:56:58', '', '2025-07-18 22:57:00');
|
||||
INSERT INTO `sys_dict_type` VALUES (223, '季节年份', 'release_year_season', '0', '', 0, '0', 'admin', '2025-08-03 20:51:28', 'admin', '2025-08-03 20:51:28');
|
||||
INSERT INTO `sys_dict_type` VALUES (224, '鞋面材质', 'shaft_material', '0', '', 0, '0', 'admin', '2025-10-30 20:09:55', '', '2025-10-30 20:09:55');
|
||||
INSERT INTO `sys_dict_type` VALUES (225, '鞋面内里材质', 'shoe_upper_lining_material', '0', '', 0, '0', 'admin', '2025-10-30 21:55:41', '', '2025-10-30 21:55:41');
|
||||
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
|
|
@ -2085,6 +2054,113 @@ INSERT INTO `sys_dict_data` VALUES (1096, 4, '商品破损,已拒收', '商品
|
|||
INSERT INTO `sys_dict_data` VALUES (1097, 6, '物流状态异常', '物流状态异常', 'refund_reason', '0', 'admin', '2025-09-21 13:28:12', '', '2025-09-21 13:28:12', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1098, 7, '商品质量问题', '商品质量问题', 'refund_reason', '0', 'admin', '2025-09-21 13:28:28', '', '2025-09-21 13:28:28', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1099, 8, '其他', '其他', 'refund_reason', '0', 'admin', '2025-09-21 13:28:34', '', '2025-09-21 13:28:34', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1100, 1, '头层牛皮', '头层牛皮', 'shaft_material', '0', 'admin', '2025-10-30 21:41:37', '', '2025-10-30 21:41:37', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1101, 2, '牛二层皮覆膜', '牛二层皮覆膜', 'shaft_material', '0', 'admin', '2025-10-30 21:41:44', '', '2025-10-30 21:41:44', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1102, 3, '羊皮(除羊反绒/羊猄)', '羊皮(除羊反绒/羊猄)', 'shaft_material', '0', 'admin', '2025-10-30 21:41:50', '', '2025-10-30 21:41:50', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1103, 4, '超细纤维', '超细纤维', 'shaft_material', '0', 'admin', '2025-10-30 21:41:56', '', '2025-10-30 21:41:56', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1104, 5, '牛反绒(磨砂皮)', '牛反绒(磨砂皮)', 'shaft_material', '0', 'admin', '2025-10-30 21:42:03', '', '2025-10-30 21:42:03', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1105, 6, '绒面', '绒面', 'shaft_material', '0', 'admin', '2025-10-30 21:42:15', '', '2025-10-30 21:42:15', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1106, 7, '羊反绒(羊猄)', '羊反绒(羊猄)', 'shaft_material', '0', 'admin', '2025-10-30 21:42:23', '', '2025-10-30 21:42:23', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1107, 8, 'PU', 'PU', 'shaft_material', '0', 'admin', '2025-10-30 21:42:29', '', '2025-10-30 21:42:29', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1108, 9, '弹力布', '弹力布', 'shaft_material', '0', 'admin', '2025-10-30 21:42:36', '', '2025-10-30 21:42:36', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1109, 10, '牛皮革', '牛皮革', 'shaft_material', '0', 'admin', '2025-10-30 21:42:43', '', '2025-10-30 21:42:43', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1110, 11, '裘皮', '裘皮', 'shaft_material', '0', 'admin', '2025-10-30 21:42:49', '', '2025-10-30 21:42:49', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1111, 12, '混合材质', '混合材质', 'shaft_material', '0', 'admin', '2025-10-30 21:42:57', '', '2025-10-30 21:42:57', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1112, 13, '羊毛皮革', '羊毛皮革', 'shaft_material', '0', 'admin', '2025-10-30 21:43:05', '', '2025-10-30 21:43:05', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1113, 14, '珍珠鱼皮', '珍珠鱼皮', 'shaft_material', '0', 'admin', '2025-10-30 21:43:13', '', '2025-10-30 21:43:13', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1114, 15, '羊剖层革', '羊剖层革', 'shaft_material', '0', 'admin', '2025-10-30 21:43:20', '', '2025-10-30 21:43:20', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1115, 16, '织物', '织物', 'shaft_material', '0', 'admin', '2025-10-30 21:43:28', '', '2025-10-30 21:43:28', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1116, 17, '塑胶', '塑胶', 'shaft_material', '0', 'admin', '2025-10-30 21:43:39', '', '2025-10-30 21:43:39', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1117, 18, '乙纶', '乙纶', 'shaft_material', '0', 'admin', '2025-10-30 21:43:46', '', '2025-10-30 21:43:46', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1118, 19, '马皮', '马皮', 'shaft_material', '0', 'admin', '2025-10-30 21:43:54', '', '2025-10-30 21:43:54', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1119, 20, '毛线', '毛线', 'shaft_material', '0', 'admin', '2025-10-30 21:44:01', '', '2025-10-30 21:44:01', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1120, 21, '山羊绒', '山羊绒', 'shaft_material', '0', 'admin', '2025-10-30 21:44:08', '', '2025-10-30 21:44:08', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1121, 22, '漆皮', '漆皮', 'shaft_material', '0', 'admin', '2025-10-30 21:44:26', '', '2025-10-30 21:44:26', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1122, 23, '羊皮革', '羊皮革', 'shaft_material', '0', 'admin', '2025-10-30 21:44:33', '', '2025-10-30 21:44:33', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1123, 24, '布', '布', 'shaft_material', '0', 'admin', '2025-10-30 21:44:49', '', '2025-10-30 21:44:49', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1124, 25, '马毛', '马毛', 'shaft_material', '0', 'admin', '2025-10-30 21:44:56', '', '2025-10-30 21:44:56', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1125, 26, '牛仔布', '牛仔布', 'shaft_material', '0', 'admin', '2025-10-30 21:45:03', '', '2025-10-30 21:45:03', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1126, 27, '人造革', '人造革', 'shaft_material', '0', 'admin', '2025-10-30 21:45:11', '', '2025-10-30 21:45:11', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1127, 28, '聚酯纤维', '聚酯纤维', 'shaft_material', '0', 'admin', '2025-10-30 21:45:20', '', '2025-10-30 21:45:20', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1128, 29, '绸缎', '绸缎', 'shaft_material', '0', 'admin', '2025-10-30 21:45:27', '', '2025-10-30 21:45:27', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1129, 30, '猪皮', '猪皮', 'shaft_material', '0', 'admin', '2025-10-30 21:45:37', '', '2025-10-30 21:45:37', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1130, 31, '皮布拼接', '皮布拼接', 'shaft_material', '0', 'admin', '2025-10-30 21:45:47', '', '2025-10-30 21:45:47', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1131, 32, '羊皮革/羊剖层革', '羊皮革/羊剖层革', 'shaft_material', '0', 'admin', '2025-10-30 21:45:57', '', '2025-10-30 21:45:57', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1132, 33, '牛绒面革', '牛绒面革', 'shaft_material', '0', 'admin', '2025-10-30 21:46:05', '', '2025-10-30 21:46:05', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1133, 34, '牛剖层革', '牛剖层革', 'shaft_material', '0', 'admin', '2025-10-30 21:46:14', '', '2025-10-30 21:46:14', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1134, 35, '牛皮剖层反绒面革', '牛皮剖层反绒面革', 'shaft_material', '0', 'admin', '2025-10-30 21:46:21', '', '2025-10-30 21:46:21', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1135, 36, '格利特皮革', '格利特皮革', 'shaft_material', '0', 'admin', '2025-10-30 21:46:32', '', '2025-10-30 21:46:32', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1136, 37, '羊驼皮', '羊驼皮', 'shaft_material', '0', 'admin', '2025-10-30 21:46:43', '', '2025-10-30 21:46:43', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1137, 38, '鳄鱼皮', '鳄鱼皮', 'shaft_material', '0', 'admin', '2025-10-30 21:47:00', '', '2025-10-30 21:47:00', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1138, 39, '亮片布', '亮片布', 'shaft_material', '0', 'admin', '2025-10-30 21:47:09', '', '2025-10-30 21:47:09', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1139, 40, '氯纶', '氯纶', 'shaft_material', '0', 'admin', '2025-10-30 21:47:17', '', '2025-10-30 21:47:17', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1140, 41, '西施绒', '西施绒', 'shaft_material', '0', 'admin', '2025-10-30 21:47:26', '', '2025-10-30 21:47:26', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1141, 42, '牛毛皮', '牛毛皮', 'shaft_material', '0', 'admin', '2025-10-30 21:47:35', '', '2025-10-30 21:47:35', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1142, 43, '合成材料', '合成材料', 'shaft_material', '0', 'admin', '2025-10-30 21:47:43', '', '2025-10-30 21:47:43', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1143, 44, '袋鼠皮', '袋鼠皮', 'shaft_material', '0', 'admin', '2025-10-30 21:47:54', '', '2025-10-30 21:47:54', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1144, 45, '灯芯绒', '灯芯绒', 'shaft_material', '0', 'admin', '2025-10-30 21:48:03', '', '2025-10-30 21:48:03', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1145, 46, '蛇皮', '蛇皮', 'shaft_material', '0', 'admin', '2025-10-30 21:48:11', '', '2025-10-30 21:48:11', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1147, 48, '牛剖层移膜革', '牛剖层移膜革', 'shaft_material', '0', 'admin', '2025-10-30 21:48:25', '', '2025-10-30 21:48:25', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1148, 49, '树脂', '树脂', 'shaft_material', '0', 'admin', '2025-10-30 21:48:32', '', '2025-10-30 21:48:32', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1149, 50, '羊皮毛一体', '羊皮毛一体', 'shaft_material', '0', 'admin', '2025-10-30 21:48:39', '', '2025-10-30 21:48:39', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1150, 51, '鹿皮', '鹿皮', 'shaft_material', '0', 'admin', '2025-10-30 21:48:48', '', '2025-10-30 21:48:48', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1151, 52, '羊绒面革', '羊绒面革', 'shaft_material', '0', 'admin', '2025-10-30 21:48:55', '', '2025-10-30 21:48:55', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1152, 53, '网布', '网布', 'shaft_material', '0', 'admin', '2025-10-30 21:49:03', '', '2025-10-30 21:49:03', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1153, 54, '牛皮革/织物', '牛皮革/织物', 'shaft_material', '0', 'admin', '2025-10-30 21:49:11', '', '2025-10-30 21:49:11', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1154, 55, '橡胶', '橡胶', 'shaft_material', '0', 'admin', '2025-10-30 21:49:18', '', '2025-10-30 21:49:18', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1155, 56, '鳗鱼皮', '鳗鱼皮', 'shaft_material', '0', 'admin', '2025-10-30 21:49:26', '', '2025-10-30 21:49:26', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1156, 57, '牛皮剖层绒面革', '牛皮剖层绒面革', 'shaft_material', '0', 'admin', '2025-10-30 21:49:39', '', '2025-10-30 21:49:39', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1157, 58, '织物+PU', '织物+PU', 'shaft_material', '0', 'admin', '2025-10-30 21:49:46', '', '2025-10-30 21:49:46', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1158, 59, '呢子', '呢子', 'shaft_material', '0', 'admin', '2025-10-30 21:49:54', '', '2025-10-30 21:49:54', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1159, 60, '二层猪皮', '二层猪皮', 'shaft_material', '0', 'admin', '2025-10-30 21:50:01', '', '2025-10-30 21:50:01', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1160, 61, '棉', '棉', 'shaft_material', '0', 'admin', '2025-10-30 21:50:09', '', '2025-10-30 21:50:09', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1161, 62, '粒纹皮', '粒纹皮', 'shaft_material', '0', 'admin', '2025-10-30 21:50:17', '', '2025-10-30 21:50:17', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1162, 63, '羊皮剖层绒面革', '羊皮剖层绒面革', 'shaft_material', '0', 'admin', '2025-10-30 21:50:23', '', '2025-10-30 21:50:23', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1163, 64, 'EVA', 'EVA', 'shaft_material', '0', 'admin', '2025-10-30 21:50:32', '', '2025-10-30 21:50:32', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1164, 65, '蜥蜴皮', '蜥蜴皮', 'shaft_material', '0', 'admin', '2025-10-30 21:50:38', '', '2025-10-30 21:50:38', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1166, 67, '橡塑', '橡塑', 'shaft_material', '0', 'admin', '2025-10-30 21:50:52', '', '2025-10-30 21:50:52', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1167, 68, '藤草', '藤草', 'shaft_material', '0', 'admin', '2025-10-30 21:50:59', '', '2025-10-30 21:50:59', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1168, 69, '皮革', '皮革', 'shaft_material', '0', 'admin', '2025-10-30 21:51:06', '', '2025-10-30 21:51:06', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1169, 70, '麂皮', '麂皮', 'shaft_material', '0', 'admin', '2025-10-30 21:51:14', '', '2025-10-30 21:51:14', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1170, 71, '羊毛皮', '羊毛皮', 'shaft_material', '0', 'admin', '2025-10-30 21:51:23', '', '2025-10-30 21:51:23', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1171, 72, '鸵鸟皮', '鸵鸟皮', 'shaft_material', '0', 'admin', '2025-10-30 21:51:32', '', '2025-10-30 21:51:32', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1172, 73, '牛皮革/牛剖层革', '牛皮革/牛剖层革', 'shaft_material', '0', 'admin', '2025-10-30 21:51:42', '', '2025-10-30 21:51:42', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1173, 74, '孔雀皮', '孔雀皮', 'shaft_material', '0', 'admin', '2025-10-30 21:51:49', '', '2025-10-30 21:51:49', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1174, 1, '头层猪皮', '头层猪皮', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:55:54', 'admin', '2025-10-30 21:58:06', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1175, 2, '超细纤维', '超细纤维', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:00', 'admin', '2025-10-30 21:58:10', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1176, 3, '布', '布', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:05', 'admin', '2025-10-30 21:58:14', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1177, 4, '人造短毛绒', '人造短毛绒', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:11', 'admin', '2025-10-30 21:58:17', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1178, 5, '二层猪皮', '二层猪皮', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:16', 'admin', '2025-10-30 21:58:20', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1179, 6, '羊皮', '羊皮', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:21', 'admin', '2025-10-30 21:58:25', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1180, 7, '混合材质', '混合材质', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:26', 'admin', '2025-10-30 21:58:28', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1181, 8, '头层牛皮', '头层牛皮', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:34', 'admin', '2025-10-30 21:58:31', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1182, 9, '织物', '织物', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:41', 'admin', '2025-10-30 21:58:34', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1183, 10, '羊皮革', '羊皮革', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:47', 'admin', '2025-10-30 21:58:37', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1184, 11, '织物+PU合成革', '织物+PU合成革', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:56:55', 'admin', '2025-10-30 21:58:40', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1185, 12, 'PU', 'PU', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:57:02', 'admin', '2025-10-30 21:58:44', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1186, 13, '网纱', '网纱', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:57:09', 'admin', '2025-10-30 21:58:47', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1187, 14, '人造长毛绒', '人造长毛绒', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:57:16', 'admin', '2025-10-30 21:59:23', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1188, 15, '无内里', '无内里', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:57:24', 'admin', '2025-10-30 21:59:27', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1189, 16, '绒面', '绒面', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:57:31', 'admin', '2025-10-30 21:59:30', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1190, 17, '反毛皮', '反毛皮', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:57:41', 'admin', '2025-10-30 21:59:32', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1191, 18, '皮革', '皮革', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:57:48', 'admin', '2025-10-30 21:59:35', '', 1, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1192, 19, '纯羊毛', '纯羊毛', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:57:54', 'admin', '2025-10-30 21:59:37', '', 2, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1193, 20, '二层牛皮', '二层牛皮', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:59:48', '', '2025-10-30 21:59:48', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1194, 21, '牛皮革', '牛皮革', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 21:59:54', '', '2025-10-30 21:59:54', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1195, 22, '羊皮毛一体', '羊皮毛一体', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:00:01', '', '2025-10-30 22:00:01', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1196, 23, '棉', '棉', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:00:08', '', '2025-10-30 22:00:08', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1197, 24, '羊毛羊绒混纺', '羊毛羊绒混纺', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:01:09', '', '2025-10-30 22:01:09', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1198, 25, '马皮', '马皮', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:01:17', '', '2025-10-30 22:01:17', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1199, 26, '弹力绒布', '弹力绒布', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:01:24', '', '2025-10-30 22:01:24', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1200, 27, '羊毛混纺', '羊毛混纺', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:01:32', '', '2025-10-30 22:01:32', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1201, 28, '乙纶', '乙纶', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:01:38', '', '2025-10-30 22:01:38', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1202, 29, '胎牛皮', '胎牛皮', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:01:47', '', '2025-10-30 22:01:47', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1203, 30, '鹿纤绒', '鹿纤绒', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:01:53', '', '2025-10-30 22:01:53', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1204, 31, '涤沦', '涤沦', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:02:05', '', '2025-10-30 22:02:05', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1205, 32, '山羊绒', '山羊绒', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:02:12', '', '2025-10-30 22:02:12', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1206, 33, '聚酯纤维', '聚酯纤维', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:02:19', '', '2025-10-30 22:02:19', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1207, 34, '兔毛', '兔毛', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:02:26', '', '2025-10-30 22:02:26', '', 0, '0');
|
||||
INSERT INTO `sys_dict_data` VALUES (1208, 35, '狐狸毛', '狐狸毛', 'shoe_upper_lining_material', '0', 'admin', '2025-10-30 22:02:34', '', '2025-10-30 22:02:34', '', 0, '0');
|
||||
|
||||
|
||||
-- ----------------------------
|
||||
|
|
@ -3457,9 +3533,9 @@ DROP TABLE IF EXISTS `store_product_color`;
|
|||
CREATE TABLE `store_product_color`
|
||||
(
|
||||
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '档口商品颜色ID',
|
||||
`store_color_id` bigint UNSIGNED NOT NULL COMMENT '档口颜色ID',
|
||||
`store_prod_id` bigint UNSIGNED NOT NULL COMMENT '档口商品ID',
|
||||
`store_id` bigint UNSIGNED NOT NULL COMMENT '档口ID',
|
||||
`store_prod_id` bigint UNSIGNED NOT NULL COMMENT '档口商品ID',
|
||||
`store_color_id` bigint UNSIGNED NOT NULL COMMENT '档口颜色ID',
|
||||
`color_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '颜色名称',
|
||||
`order_num` int UNSIGNED NOT NULL COMMENT '排序',
|
||||
`prod_status` tinyint UNSIGNED NULL DEFAULT NULL COMMENT '档口商品状态',
|
||||
|
|
@ -3483,8 +3559,8 @@ DROP TABLE IF EXISTS `store_product_color_size`;
|
|||
CREATE TABLE `store_product_color_size`
|
||||
(
|
||||
`id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '档口商品颜色尺码ID',
|
||||
`store_color_id` bigint UNSIGNED NOT NULL COMMENT '档口商品颜色ID',
|
||||
`store_prod_id` bigint UNSIGNED NOT NULL COMMENT '档口商品ID',
|
||||
`store_color_id` bigint UNSIGNED NOT NULL COMMENT '档口商品颜色ID',
|
||||
`size` int UNSIGNED NOT NULL COMMENT '商品尺码',
|
||||
`price` decimal(10, 2) UNSIGNED NOT NULL COMMENT '档口商品定价',
|
||||
`sn_prefix` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '档口商品颜色尺码的前缀',
|
||||
|
|
|
|||
Loading…
Reference in New Issue