From b9f535977c057a4cb3acf9bc104759256e86aadd Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Fri, 11 Apr 2025 14:18:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=95=86=E5=93=81=E4=B8=8E=E8=80=97=E6=9D=90?= =?UTF-8?q?=20=E5=90=8C=E6=AD=A5=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/ShopSyncServiceImpl.java | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java index 59bbd5c24..85c72d6d5 100644 --- a/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java +++ b/cash-service/product-service/src/main/java/com/czg/service/product/service/impl/ShopSyncServiceImpl.java @@ -901,12 +901,34 @@ public class ShopSyncServiceImpl implements ShopSyncService { public void syncConsPro(Long sourceShopId, Long pointShopId, Map consMap, Map proMap) { List list = prodConsRelationService.queryChain().eq(ProdConsRelation::getShopId, sourceShopId).list(); + List upList = new ArrayList<>(); + List addList = new ArrayList<>(); for (ProdConsRelation prodConsRelation : list) { prodConsRelation.setShopId(pointShopId); prodConsRelation.setProductId(proMap.get(prodConsRelation.getProductId())); prodConsRelation.setConsInfoId(consMap.get(prodConsRelation.getConsInfoId())); + if (prodConsRelation.getProductId() == null || prodConsRelation.getConsInfoId() == null) { + log.info("关联关系同步失败 商品ID:{}或耗材ID:{}不存在", prodConsRelation.getProductId(), prodConsRelation.getConsInfoId()); + continue; + } + ProdConsRelation oldRelation = prodConsRelationService.queryChain() + .eq(ProdConsRelation::getShopId, pointShopId) + .eq(ProdConsRelation::getProductId, prodConsRelation.getProductId()) + .eq(ProdConsRelation::getConsInfoId, prodConsRelation.getConsInfoId()).one(); + if (oldRelation == null) { + addList.add(prodConsRelation); + } else { + if (oldRelation.getSurplusStock().compareTo(prodConsRelation.getSurplusStock()) != 0) { + upList.add(prodConsRelation); + } + } + } + if (CollUtil.isNotEmpty(addList)) { + prodConsRelationService.saveBatch(addList, 100); + } + if (CollUtil.isNotEmpty(upList)) { + prodConsRelationService.updateBatch(addList, 100); } - prodConsRelationService.saveOrUpdateBatch(list, 100); log.info("耗材与商品关联关系,同步{}个", list.size()); }