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 7fb3b93e7..000000000 Binary files a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/resources/templates/inventory_records_import_template.xlsx and /dev/null differ diff --git a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java index bf8004868..9e212940b 100644 --- a/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java +++ b/pjcloud-thirdparty/pjcloud-thirdparty-biz/src/main/java/com/bsd/pjcloud/thirdparty/controller/ThirdPartyOAth2Cotroller.java @@ -327,10 +327,11 @@ public class ThirdPartyOAth2Cotroller { stringHashMap.put("date","5"); smsService.sendSms(mobilePhone, "20657",stringHashMap, WebUtils.getIP()); - if (type == 1){ - redisTemplate.opsForValue().set(CacheConstants.SMS_VISITOR_CODE_KEY +mobilePhone,s, 5, TimeUnit.MINUTES); - }else { + if (null==type){ redisTemplate.opsForValue().set(CacheConstants.SMS_CODE_KEY +mobilePhone,s, 5, TimeUnit.MINUTES); + }else { + redisTemplate.opsForValue().set(CacheConstants.SMS_VISITOR_CODE_KEY +mobilePhone,s, 5, TimeUnit.MINUTES); + } // redisTemplate.opsForValue().set(CacheConstants.SMS_CODE_KEY +mobilePhone,s, 5, TimeUnit.MINUTES); return R.ok();