数据同步接口 over!

This commit is contained in:
2024-12-02 11:07:27 +08:00
parent 217a6ed82a
commit 0bc8095e7c
4 changed files with 132 additions and 89 deletions

View File

@@ -39,7 +39,7 @@ public interface TbConsInfoRepository extends JpaRepository<TbConsInfo, Integer>
@Query(value = @Query(value =
"SELECT *" + "SELECT *" +
" FROM" + " FROM" +
" tb_prosku_con conPro" + " tb_cons_info conPro" +
" where conPro.shop_id = :shopId ",nativeQuery = true) " where conPro.shop_id = :shopId ",nativeQuery = true)
List<TbConsInfo> searchConsInfoByShopId(Integer shopId); List<TbConsInfo> searchConsInfoByShopId(Integer shopId);

View File

@@ -19,7 +19,7 @@ public interface TbConsTypeRepository extends JpaRepository<TbConsType, Integer>
TbConsType findByConTypeCode(String conTypeCode); TbConsType findByConTypeCode(String conTypeCode);
@Query("SELECT c FROM TbProskuCon c WHERE c.shopId = :shopId") @Query("SELECT c FROM TbConsType c WHERE c.shopId = :shopId")
List<TbConsType> searchConsTypeByShopId(Integer shopId); List<TbConsType> searchConsTypeByShopId(Integer shopId);
@Modifying @Modifying

View File

@@ -34,7 +34,7 @@ public interface TbProskuConRepository extends JpaRepository<TbProskuCon, Intege
List<TbProskuCon> searchConsProByShopId(Integer shopId); List<TbProskuCon> searchConsProByShopId(Integer shopId);
@Modifying @Modifying
@Query("delete from TbProskuCon con where con.shopId=:shopId") @Query(value = "delete from tb_prosku_con where shop_id = :shopId",nativeQuery = true)
void clearShopConPro(Integer shopId); void clearShopConPro(Integer shopId);
} }

View File

@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.ysk.cashier.cons.domain.TbConsInfo; import cn.ysk.cashier.cons.domain.TbConsInfo;
import cn.ysk.cashier.cons.domain.TbConsType; import cn.ysk.cashier.cons.domain.TbConsType;
import cn.ysk.cashier.cons.domain.TbProskuCon;
import cn.ysk.cashier.cons.repository.TbConsInfoRepository; import cn.ysk.cashier.cons.repository.TbConsInfoRepository;
import cn.ysk.cashier.cons.repository.TbConsTypeRepository; import cn.ysk.cashier.cons.repository.TbConsTypeRepository;
import cn.ysk.cashier.cons.repository.TbProskuConRepository; import cn.ysk.cashier.cons.repository.TbProskuConRepository;
@@ -17,10 +18,7 @@ import cn.ysk.cashier.pojo.product.*;
import cn.ysk.cashier.pojo.shop.TbShopUnit; import cn.ysk.cashier.pojo.shop.TbShopUnit;
import cn.ysk.cashier.repository.product.*; import cn.ysk.cashier.repository.product.*;
import cn.ysk.cashier.repository.shop.TbShopUnitRepository; import cn.ysk.cashier.repository.shop.TbShopUnitRepository;
import cn.ysk.cashier.utils.JSONUtil; import cn.ysk.cashier.utils.*;
import cn.ysk.cashier.utils.ListUtil;
import cn.ysk.cashier.utils.PageUtil;
import cn.ysk.cashier.utils.QueryHelp;
import cn.ysk.cashier.vo.ProductGroupVo; import cn.ysk.cashier.vo.ProductGroupVo;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
@@ -45,6 +43,8 @@ import java.util.concurrent.ExecutionException;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream; import java.util.stream.Stream;
import static cn.ysk.cashier.utils.StringCodeUtil.TYPE.LETTER_CAPITAL_NUMBER;
/** /**
* 店铺信息同步记录表(TbShopSyncInfo)表服务实现类 * 店铺信息同步记录表(TbShopSyncInfo)表服务实现类
* *
@@ -125,7 +125,6 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
futures.add(futureUnit); futures.add(futureUnit);
futures.add(futureSpec); futures.add(futureSpec);
futures.add(futureCate); futures.add(futureCate);
CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join(); CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])).join();
units = futureUnit.get(); units = futureUnit.get();
@@ -202,6 +201,18 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
tbShopSyncInfo.setStatus(2); tbShopSyncInfo.setStatus(2);
tbShopSyncInfomapper.updateById(tbShopSyncInfo); tbShopSyncInfomapper.updateById(tbShopSyncInfo);
} catch (Exception e) { } catch (Exception e) {
tbShopSyncInfo.setProSpec(0);
tbShopSyncInfo.setProGroup(0);
tbShopSyncInfo.setProUnit(0);
tbShopSyncInfo.setProCategory(0);
tbShopSyncInfo.setProSkuResult(0);
tbShopSyncInfo.setProSku(0);
tbShopSyncInfo.setProduct(0);
tbShopSyncInfo.setConsType(0);
tbShopSyncInfo.setConsInfo(0);
tbShopSyncInfo.setConsPro(0);
tbShopSyncInfo.setSyncTime(new Date()); tbShopSyncInfo.setSyncTime(new Date());
tbShopSyncInfo.setStatus(0); tbShopSyncInfo.setStatus(0);
tbShopSyncInfomapper.updateById(tbShopSyncInfo); tbShopSyncInfomapper.updateById(tbShopSyncInfo);
@@ -222,6 +233,10 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
skuRepository.clearShopSku(tbShopSyncInfo.getPointShopId().toString()); skuRepository.clearShopSku(tbShopSyncInfo.getPointShopId().toString());
consRepository.clearShopCons(tbShopSyncInfo.getPointShopId()); consRepository.clearShopCons(tbShopSyncInfo.getPointShopId());
consTypeRepository.clearShopConType(tbShopSyncInfo.getPointShopId()); consTypeRepository.clearShopConType(tbShopSyncInfo.getPointShopId());
List<TbProskuCon> tbProskuCons = proSkuConRepository.searchConsProByShopId(tbShopSyncInfo.getPointShopId());
List<Integer> proCons = tbProskuCons.stream().map(TbProskuCon::getId).collect(Collectors.toList());
proSkuConRepository.deleteAllByIdInBatch(proCons);
proSkuConRepository.clearShopConPro(tbShopSyncInfo.getPointShopId()); proSkuConRepository.clearShopConPro(tbShopSyncInfo.getPointShopId());
QueryWrapper<TbShopSyncInfo> wrapper = new QueryWrapper<>(); QueryWrapper<TbShopSyncInfo> wrapper = new QueryWrapper<>();
wrapper.eq("point_shop_id", tbShopSyncInfo.getPointShopId()); wrapper.eq("point_shop_id", tbShopSyncInfo.getPointShopId());
@@ -235,10 +250,12 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
Map<Integer, Integer> unitMap = new HashMap<>(); Map<Integer, Integer> unitMap = new HashMap<>();
unitRepository.searchUnitByShopId(sourceShopId.toString()).forEach(tbShopUnit -> { unitRepository.searchUnitByShopId(sourceShopId.toString()).forEach(tbShopUnit -> {
Integer sourceUnitId = tbShopUnit.getId(); Integer sourceUnitId = tbShopUnit.getId();
tbShopUnit.setId(null); TbShopUnit unitNew = new TbShopUnit();
tbShopUnit.setShopId(pointShopId.toString()); unitNew.copy(tbShopUnit);
unitRepository.save(tbShopUnit); unitNew.setId(null);
unitMap.put(sourceUnitId, tbShopUnit.getId()); unitNew.setShopId(pointShopId.toString());
unitRepository.save(unitNew);
unitMap.put(sourceUnitId, unitNew.getId());
}); });
future.complete(unitMap); future.complete(unitMap);
return future; return future;
@@ -247,13 +264,16 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
//规格 //规格
@Async @Async
public CompletableFuture<Map<Integer, Integer>> syncSpec(Integer sourceShopId, Integer pointShopId) { public CompletableFuture<Map<Integer, Integer>> syncSpec(Integer sourceShopId, Integer pointShopId) {
log.info("规格同步 "+System.currentTimeMillis());
CompletableFuture<Map<Integer, Integer>> future = new CompletableFuture<>(); CompletableFuture<Map<Integer, Integer>> future = new CompletableFuture<>();
Map<Integer, Integer> specMap = new HashMap<>(); Map<Integer, Integer> specMap = new HashMap<>();
specRepository.searchSpecByShopId(sourceShopId.toString()).forEach(tbProductSpec -> { specRepository.searchSpecByShopId(sourceShopId.toString()).forEach(tbProductSpec -> {
Integer sourceSpecId = tbProductSpec.getId(); Integer sourceSpecId = tbProductSpec.getId();
tbProductSpec.setId(null); TbProductSpec tbProductSpecNew = new TbProductSpec();
tbProductSpec.setShopId(pointShopId.toString()); tbProductSpecNew.copy(tbProductSpec);
specRepository.save(tbProductSpec); tbProductSpecNew.setId(null);
tbProductSpecNew.setShopId(pointShopId.toString());
specRepository.save(tbProductSpecNew);
specMap.put(sourceSpecId, tbProductSpec.getId()); specMap.put(sourceSpecId, tbProductSpec.getId());
}); });
future.complete(specMap); future.complete(specMap);
@@ -263,6 +283,7 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
// 分类 // 分类
@Async @Async
public CompletableFuture<Map<Integer, Integer>> syncCategory(Integer sourceShopId, Integer pointShopId) { public CompletableFuture<Map<Integer, Integer>> syncCategory(Integer sourceShopId, Integer pointShopId) {
log.info("分类同步 "+System.currentTimeMillis());
CompletableFuture<Map<Integer, Integer>> future = new CompletableFuture<>(); CompletableFuture<Map<Integer, Integer>> future = new CompletableFuture<>();
Map<Integer, Integer> categoryMap = new HashMap<>(); Map<Integer, Integer> categoryMap = new HashMap<>();
List<TbShopCategory> tbShopCategories = categoryRepository.searchCategoryByShopId(sourceShopId.toString()); List<TbShopCategory> tbShopCategories = categoryRepository.searchCategoryByShopId(sourceShopId.toString());
@@ -271,23 +292,28 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
treeIds.add(tbShopCategory.getId()); treeIds.add(tbShopCategory.getId());
Integer sourceCategoryId = tbShopCategory.getId(); Integer sourceCategoryId = tbShopCategory.getId();
tbShopCategory.setId(null);
tbShopCategory.setShopId(pointShopId.toString()); TbShopCategory tbShopCategoryNew = new TbShopCategory();
tbShopCategory.setTree(null); tbShopCategoryNew.copy(tbShopCategory);
tbShopCategory.setPid(""); tbShopCategoryNew.setId(null);
categoryRepository.save(tbShopCategory); tbShopCategoryNew.setShopId(pointShopId.toString());
categoryMap.put(sourceCategoryId, tbShopCategory.getId()); tbShopCategoryNew.setTree(null);
tbShopCategoryNew.setPid("");
categoryRepository.save(tbShopCategoryNew);
categoryMap.put(sourceCategoryId, tbShopCategoryNew.getId());
} }
if (CollectionUtil.isNotEmpty(treeIds)) { if (CollectionUtil.isNotEmpty(treeIds)) {
List<TbShopCategory> children = categoryRepository.findChildren(treeIds); List<TbShopCategory> children = categoryRepository.findChildren(treeIds);
for (TbShopCategory child : children) { for (TbShopCategory child : children) {
Integer sourceCategoryId = child.getId(); Integer sourceCategoryId = child.getId();
child.setId(null); TbShopCategory tbShopCategoryNew = new TbShopCategory();
child.setShopId(pointShopId.toString()); tbShopCategoryNew.copy(child);
child.setTree(categoryMap.get(child.getTree())); tbShopCategoryNew.setId(null);
child.setPid(StringUtils.isNotBlank(child.getPid()) ? categoryMap.get(Integer.valueOf(child.getPid())).toString() : ""); tbShopCategoryNew.setShopId(pointShopId.toString());
categoryRepository.save(child); tbShopCategoryNew.setTree(categoryMap.get(child.getTree()));
categoryMap.put(sourceCategoryId, child.getId()); tbShopCategoryNew.setPid(StringUtils.isNotBlank(child.getPid()) ? categoryMap.get(Integer.valueOf(child.getPid())).toString() : "");
categoryRepository.save(tbShopCategoryNew);
categoryMap.put(sourceCategoryId, tbShopCategoryNew.getId());
} }
} }
future.complete(categoryMap); future.complete(categoryMap);
@@ -300,7 +326,7 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
CompletableFuture<Map<Integer, Integer>> future = new CompletableFuture<>(); CompletableFuture<Map<Integer, Integer>> future = new CompletableFuture<>();
String cateGory = ""; String cateGory = "";
if(CollectionUtil.isNotEmpty(cateGorys)){ if(CollectionUtil.isNotEmpty(cateGorys)){
cateGory = cateGorys.get(cateGorys.keySet().stream().findFirst()).toString(); cateGory = cateGorys.keySet().stream().findFirst().get().toString();
} }
Map<Integer, Integer> proMap = new HashMap<>(); Map<Integer, Integer> proMap = new HashMap<>();
@@ -308,20 +334,23 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
if(CollectionUtil.isNotEmpty(products)){ if(CollectionUtil.isNotEmpty(products)){
for (TbProduct tbProduct : products) { for (TbProduct tbProduct : products) {
Integer sourceSpecId = tbProduct.getId(); Integer sourceSpecId = tbProduct.getId();
tbProduct.setId(null); TbProduct tbProductNew = new TbProduct();
tbProduct.setShopId(pointShopId.toString()); tbProductNew.copy(tbProduct);
if(cateGorys.containsKey(Integer.valueOf(tbProduct.getCategoryId()))){
tbProduct.setCategoryId(StringUtils.isNotBlank(tbProduct.getCategoryId()) ? cateGorys.get(Integer.valueOf(tbProduct.getCategoryId())).toString() : ""); tbProductNew.setId(null);
tbProductNew.setShopId(pointShopId.toString());
if(StringUtils.isNotBlank(tbProduct.getCategoryId()) && cateGorys.containsKey(Integer.valueOf(tbProduct.getCategoryId()))){
tbProductNew.setCategoryId(StringUtils.isNotBlank(tbProduct.getCategoryId()) ? cateGorys.get(Integer.valueOf(tbProduct.getCategoryId())).toString() : "");
}else { }else {
tbProduct.setCategoryId(cateGory); tbProductNew.setCategoryId(cateGory);
} }
tbProduct.setSpecId(tbProduct.getSpecId() != null ? specs.get(tbProduct.getSpecId()) : null); tbProductNew.setSpecId(tbProduct.getSpecId() != null ? specs.get(tbProduct.getSpecId()) : null);
tbProduct.setUnitId(tbProduct.getUnitId() != null ? units.get(tbProduct.getUnitId()) : null); tbProductNew.setUnitId(tbProduct.getUnitId() != null ? units.get(tbProduct.getUnitId()) : null);
tbProduct.setStockNumber(0); tbProductNew.setStockNumber(0);
productRepository.save(tbProduct); productRepository.save(tbProductNew);
proMap.put(sourceSpecId, tbProduct.getId()); proMap.put(sourceSpecId, tbProductNew.getId());
} }
} }
future.complete(proMap); future.complete(proMap);
@@ -334,12 +363,14 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
Map<Integer, Integer> groupMap = new HashMap<>(); Map<Integer, Integer> groupMap = new HashMap<>();
groupRepository.searchGroupByShopId(sourceShopId).forEach(tbProductGroup -> { groupRepository.searchGroupByShopId(sourceShopId).forEach(tbProductGroup -> {
Integer groupId = tbProductGroup.getId(); Integer groupId = tbProductGroup.getId();
tbProductGroup.setId(null); TbProductGroup tbProductGroupNew = new TbProductGroup();
tbProductGroup.setShopId(pointShopId); tbProductGroupNew.copy(tbProductGroup);
tbProductGroup.setUseTime(0); tbProductGroupNew.setId(null);
tbProductGroup.setProductIds(replaceProIds(tbProductGroup.getProductIds(), pros)); tbProductGroupNew.setShopId(pointShopId);
groupRepository.save(tbProductGroup); tbProductGroupNew.setUseTime(0);
groupMap.put(groupId, tbProductGroup.getId()); tbProductGroupNew.setProductIds(replaceProIds(tbProductGroup.getProductIds(), pros));
groupRepository.save(tbProductGroupNew);
groupMap.put(groupId, tbProductGroupNew.getId());
}); });
future.complete(groupMap); future.complete(groupMap);
return future; return future;
@@ -349,28 +380,30 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
@Async @Async
public void syncGroupPackage(Integer shopId, Map<Integer, Integer> pros, Map<Integer, Integer> skus) { public void syncGroupPackage(Integer shopId, Map<Integer, Integer> pros, Map<Integer, Integer> skus) {
productRepository.findPackageByShopId(shopId.toString()).forEach(tbProduct -> { productRepository.findPackageByShopId(shopId.toString()).forEach(tbProduct -> {
tbProduct.setProGroupVo(JSONUtil.parseJSONStrTList(tbProduct.getGroupSnap(), ProductGroupVo.class)); if(StringUtils.isNotBlank(tbProduct.getGroupSnap())){
if (tbProduct.getProGroupVo() != null) { tbProduct.setProGroupVo(JSONUtil.parseJSONStrTList(tbProduct.getGroupSnap(), ProductGroupVo.class));
tbProduct.getProGroupVo().forEach(proGroupVo -> { if (tbProduct.getProGroupVo() != null) {
proGroupVo.getGoods().forEach(goods -> { tbProduct.getProGroupVo().forEach(proGroupVo -> {
if (pros.containsKey(goods.getProId())) { proGroupVo.getGoods().forEach(goods -> {
if (goods.getSkuId() != null && skus.containsKey(goods.getSkuId())) { if (pros.containsKey(goods.getProId())) {
goods.setProId(pros.get(goods.getProId())); if (goods.getSkuId() != null && skus.containsKey(goods.getSkuId())) {
goods.setSkuId(skus.get(goods.getSkuId())); goods.setProId(pros.get(goods.getProId()));
} else { goods.setSkuId(skus.get(goods.getSkuId()));
goods.setProId(pros.get(goods.getProId())); } else {
goods.setProId(pros.get(goods.getProId()));
}
}
});
proGroupVo.setCount(proGroupVo.getGoods().size());
if (proGroupVo.getNumber() != null && proGroupVo.getNumber() > 0) {
if (proGroupVo.getNumber() > proGroupVo.getCount()) {
proGroupVo.setNumber(proGroupVo.getCount());
} }
} }
}); });
proGroupVo.setCount(proGroupVo.getGoods().size()); tbProduct.setGroupSnap(ListUtil.listToJsonString(tbProduct.getProGroupVo()));
if (proGroupVo.getNumber() != null && proGroupVo.getNumber() > 0) { productRepository.save(tbProduct);
if (proGroupVo.getNumber() > proGroupVo.getCount()) { }
proGroupVo.setNumber(proGroupVo.getCount());
}
}
});
tbProduct.setGroupSnap(ListUtil.listToJsonString(tbProduct.getProGroupVo()));
productRepository.save(tbProduct);
} }
}); });
} }
@@ -384,11 +417,13 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
Integer productId = Integer.valueOf(tbProductSku.getProductId()); Integer productId = Integer.valueOf(tbProductSku.getProductId());
if (pros.containsKey(productId)) { if (pros.containsKey(productId)) {
Integer sourceSkuId = tbProductSku.getId(); Integer sourceSkuId = tbProductSku.getId();
tbProductSku.setId(null); TbProductSku tbProductSkuNew = new TbProductSku();
tbProductSku.setShopId(pointShopId.toString()); tbProductSkuNew.copy(tbProductSku);
tbProductSku.setProductId(pros.get(productId).toString()); tbProductSkuNew.setId(null);
skuRepository.save(tbProductSku); tbProductSkuNew.setShopId(pointShopId.toString());
skuMap.put(sourceSkuId, tbProductSku.getId()); tbProductSkuNew.setProductId(pros.get(productId).toString());
skuRepository.save(tbProductSkuNew);
skuMap.put(sourceSkuId, tbProductSkuNew.getId());
} }
}); });
future.complete(skuMap); future.complete(skuMap);
@@ -403,8 +438,10 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
return predicate; return predicate;
}); });
skuResults.forEach(tbProductSkuResult -> { skuResults.forEach(tbProductSkuResult -> {
tbProductSkuResult.setId(pros.get(tbProductSkuResult.getId())); TbProductSkuResult tbProductSkuResultNew = new TbProductSkuResult();
skuResultRepository.save(tbProductSkuResult); tbProductSkuResultNew.copy(tbProductSkuResult);
tbProductSkuResultNew.setId(pros.get(tbProductSkuResult.getId()));
skuResultRepository.save(tbProductSkuResultNew);
}); });
future.complete(skuResults.size()); future.complete(skuResults.size());
return future; return future;
@@ -418,10 +455,12 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
List<TbConsType> tbConsTypes = consTypeRepository.searchConsTypeByShopId(sourceShopId); List<TbConsType> tbConsTypes = consTypeRepository.searchConsTypeByShopId(sourceShopId);
for (TbConsType tbConsType : tbConsTypes) { for (TbConsType tbConsType : tbConsTypes) {
Integer sourceConsTypeId = tbConsType.getId(); Integer sourceConsTypeId = tbConsType.getId();
tbConsType.setId(null); TbConsType tbConsTypeNew = new TbConsType();
tbConsType.setShopId(pointShopId); tbConsTypeNew.copy(tbConsType);
consTypeRepository.save(tbConsType); tbConsTypeNew.setId(null);
consTypeMap.put(sourceConsTypeId, tbConsType.getId()); tbConsTypeNew.setShopId(pointShopId);
consTypeRepository.save(tbConsTypeNew);
consTypeMap.put(sourceConsTypeId, tbConsTypeNew.getId());
} }
future.complete(consTypeMap); future.complete(consTypeMap);
@@ -436,14 +475,16 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
List<TbConsInfo> tbConsInfos = consRepository.searchConsInfoByShopId(sourceShopId); List<TbConsInfo> tbConsInfos = consRepository.searchConsInfoByShopId(sourceShopId);
for (TbConsInfo tbConsInfo : tbConsInfos) { for (TbConsInfo tbConsInfo : tbConsInfos) {
Integer sourceConsId = tbConsInfo.getId(); Integer sourceConsId = tbConsInfo.getId();
TbConsInfo tbConsInfoNew = new TbConsInfo();
tbConsInfo.setId(null); tbConsInfoNew.copy(tbConsInfo);
tbConsInfo.setShopId(pointShopId); tbConsInfoNew.setId(null);
tbConsInfo.setConTypeId(conTypes.get(tbConsInfo.getConTypeId())); tbConsInfoNew.setShopId(pointShopId);
tbConsInfo.setStockNumber(BigDecimal.ZERO); tbConsInfoNew.setConTypeId(conTypes.get(tbConsInfo.getConTypeId()));
tbConsInfo.setStockConsume(BigDecimal.ZERO); tbConsInfoNew.setConCode(StringCodeUtil.getRandom(8, LETTER_CAPITAL_NUMBER));
consRepository.save(tbConsInfo); tbConsInfoNew.setStockNumber(BigDecimal.ZERO);
consMap.put(sourceConsId, tbConsInfo.getId()); tbConsInfoNew.setStockConsume(BigDecimal.ZERO);
consRepository.save(tbConsInfoNew);
consMap.put(sourceConsId, tbConsInfoNew.getId());
} }
future.complete(consMap); future.complete(consMap);
return future; return future;
@@ -456,15 +497,17 @@ public class TbShopSyncInfoServiceImpl extends ServiceImpl<TbShopSyncInfoMapper,
proSkuConRepository.searchConsProByShopId(sourceShopId).forEach(tbConsPro -> { proSkuConRepository.searchConsProByShopId(sourceShopId).forEach(tbConsPro -> {
if (consMap.containsKey(tbConsPro.getConInfoId()) && proMap.containsKey(tbConsPro.getProductId()) && skuMap.containsKey(tbConsPro.getProductSkuId())) { if (consMap.containsKey(tbConsPro.getConInfoId()) && proMap.containsKey(tbConsPro.getProductId()) && skuMap.containsKey(tbConsPro.getProductSkuId())) {
Integer sourceConsProId = tbConsPro.getId(); Integer sourceConsProId = tbConsPro.getId();
tbConsPro.setId(null); TbProskuCon tbConsProNew = new TbProskuCon();
tbConsPro.setShopId(pointShopId); tbConsProNew.copy(tbConsPro);
tbConsPro.setConInfoId(consMap.get(tbConsPro.getConInfoId())); tbConsProNew.setId(null);
tbConsPro.setProductId(proMap.get(tbConsPro.getProductId())); tbConsProNew.setShopId(pointShopId);
tbConsProNew.setConInfoId(consMap.get(tbConsPro.getConInfoId()));
tbConsProNew.setProductId(proMap.get(tbConsPro.getProductId()));
if (tbConsPro.getProductSkuId() > 0) { if (tbConsPro.getProductSkuId() > 0) {
tbConsPro.setProductSkuId(skuMap.get(tbConsPro.getProductSkuId())); tbConsProNew.setProductSkuId(skuMap.get(tbConsPro.getProductSkuId()));
} }
proSkuConRepository.save(tbConsPro); proSkuConRepository.save(tbConsProNew);
proSkuConMap.put(sourceConsProId, tbConsPro.getId()); proSkuConMap.put(sourceConsProId, tbConsProNew.getId());
} }
}); });
future.complete(proSkuConMap); future.complete(proSkuConMap);