From d84b8434623c6cd4561c4147033388c8da763d32 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Fri, 8 Aug 2025 10:26:07 +0800 Subject: [PATCH] =?UTF-8?q?fix(thirdparty):=E9=AA=8C=E8=AF=81=E7=A0=81?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SmErpSpuServiceImpl.java | 83 ++++++++++++++---- .../inventory_records_import_template.xlsx | Bin 268 -> 0 bytes .../controller/ThirdPartyOAth2Cotroller.java | 7 +- 3 files changed, 69 insertions(+), 21 deletions(-) delete mode 100644 pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/templates/inventory_records_import_template.xlsx diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java index ade5fa7d2..c68ed4299 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpSpuServiceImpl.java @@ -1049,8 +1049,9 @@ public class SmErpSpuServiceImpl extends ServiceImpl existingUnitWrapper = new LambdaQueryWrapper<>(); existingUnitWrapper.eq(SmErpUnitEntity::getSpuId, spu.getId()) - .eq(SmErpUnitEntity::getUnit, dto.getUnit()) - .eq(SmErpUnitEntity::getTaste, dto.getTaste()); + .eq(SmErpUnitEntity::getUnit, dto.getUnit()); + + // 处理口味字段的查询条件 + if (StringUtils.isNotBlank(dto.getTaste())) { + existingUnitWrapper.eq(SmErpUnitEntity::getTaste, dto.getTaste()); + } else { + // 当口味为空时,查询口味为null或空字符串的记录 + existingUnitWrapper.and(wrapper -> wrapper + .isNull(SmErpUnitEntity::getTaste) + .or() + .eq(SmErpUnitEntity::getTaste, "") + ); + } + + // 处理规格字段的查询条件 + if (StringUtils.isNotBlank(dto.getSpec())) { + existingUnitWrapper.eq(SmErpUnitEntity::getSpec, dto.getSpec()); + } else { + // 当规格为空时,查询规格为null或空字符串的记录 + existingUnitWrapper.and(wrapper -> wrapper + .isNull(SmErpUnitEntity::getSpec) + .or() + .eq(SmErpUnitEntity::getSpec, "") + ); + } + SmErpUnitEntity existingUnit = smErpUnitService.getOne(existingUnitWrapper); if (existingUnit != null) { - // 包装单位已存在,记录警告但不更新(保护线上数据) - errorReasons.add("包装单位已存在,跳过导入以避免覆盖线上数据。单位:" + dto.getUnit() + ",口味:" + dto.getTaste()); - errorList.add(createErrorInfo(rowNumber, dto.getProductCode(), errorReasons)); - continue; - - // 如果需要更新模式,可以取消注释下面的代码 - /* + // 更新现有包装单位 existingUnit.setPackageNum(dto.getPackageNum()); - existingUnit.setBarCode(dto.getBarCode()); // 更新条码 + existingUnit.setBarCode(StringUtils.isNotBlank(dto.getBarCode()) ? dto.getBarCode() : null); // 更新条码 + existingUnit.setTaste(StringUtils.isNotBlank(dto.getTaste()) ? dto.getTaste() : null); // 更新口味 + existingUnit.setSpec(StringUtils.isNotBlank(dto.getSpec()) ? dto.getSpec() : null); // 更新规格 existingUnit.setPurchasePrice(unit.getPurchasePrice()); existingUnit.setRetailPrice(unit.getRetailPrice()); existingUnit.setPromotionPrice(unit.getPromotionPrice()); existingUnit.setCostPrice(unit.getCostPrice()); smErpUnitService.updateById(existingUnit); - */ } else { smErpUnitService.save(unit); } @@ -1282,7 +1302,8 @@ public class SmErpSpuServiceImpl extends ServiceImpl existingUnitWrapper = new LambdaQueryWrapper<>(); existingUnitWrapper.eq(SmErpUnitEntity::getSpuId, spu.getId()) - .eq(SmErpUnitEntity::getUnit, dto.getUnit()) - .eq(SmErpUnitEntity::getTaste, dto.getTaste()); + .eq(SmErpUnitEntity::getUnit, dto.getUnit()); + + // 处理口味字段的查询条件 + if (StringUtils.isNotBlank(dto.getTaste())) { + existingUnitWrapper.eq(SmErpUnitEntity::getTaste, dto.getTaste()); + } else { + // 当口味为空时,查询口味为null或空字符串的记录 + existingUnitWrapper.and(wrapper -> wrapper + .isNull(SmErpUnitEntity::getTaste) + .or() + .eq(SmErpUnitEntity::getTaste, "") + ); + } + + // 处理规格字段的查询条件 + if (StringUtils.isNotBlank(dto.getSpec())) { + existingUnitWrapper.eq(SmErpUnitEntity::getSpec, dto.getSpec()); + } else { + // 当规格为空时,查询规格为null或空字符串的记录 + existingUnitWrapper.and(wrapper -> wrapper + .isNull(SmErpUnitEntity::getSpec) + .or() + .eq(SmErpUnitEntity::getSpec, "") + ); + } + SmErpUnitEntity existingUnit = smErpUnitService.getOne(existingUnitWrapper); if (existingUnit != null) { // 更新现有包装单位 existingUnit.setPackageNum(dto.getPackageNum()); existingUnit.setBarCode(dto.getBarCode()); // 更新条码 + existingUnit.setTaste(StringUtils.isNotBlank(dto.getTaste()) ? dto.getTaste() : null); // 更新口味 + existingUnit.setSpec(StringUtils.isNotBlank(dto.getSpec()) ? dto.getSpec() : null); // 更新规格 existingUnit.setPurchasePrice(unit.getPurchasePrice()); existingUnit.setRetailPrice(unit.getRetailPrice()); existingUnit.setPromotionPrice(unit.getPromotionPrice()); diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/templates/inventory_records_import_template.xlsx b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/templates/inventory_records_import_template.xlsx deleted file mode 100644 index 7fb3b93e708a4300a157d580c1d85f0fa233b426..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 268 zcmX|*J#NB45Jr1WVTqnwa1uo4j>ZKAk#IHw7AJxQf&$@JSQN$)h@jm?TxMt1uDC*G z19CU-&3vDx>}9u4oE*%hWiI<_P^