diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerController.java index 828d87e2b..cf9ba2f4d 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/StoreCustomerController.java @@ -8,6 +8,7 @@ import com.ruoyi.common.core.page.Page; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.web.controller.xkt.vo.storeCustomer.StoreCusFuzzyResVO; import com.ruoyi.web.controller.xkt.vo.storeCustomer.StoreCusPageVO; +import com.ruoyi.web.controller.xkt.vo.storeCustomer.StoreCusUpdateVO; import com.ruoyi.web.controller.xkt.vo.storeCustomer.StoreCusVO; import com.ruoyi.xkt.dto.storeCustomer.StoreCusDTO; import com.ruoyi.xkt.dto.storeCustomer.StoreCusPageDTO; @@ -62,7 +63,7 @@ public class StoreCustomerController extends XktBaseController { @ApiOperation(value = "修改档口客户", httpMethod = "PUT", response = R.class) @Log(title = "修改档口客户", businessType = BusinessType.UPDATE) @PutMapping - public R edit(@Validated @RequestBody StoreCusVO storeCusVO) { + public R edit(@Validated @RequestBody StoreCusUpdateVO storeCusVO) { return R.ok(storeCusService.updateStoreCus(BeanUtil.toBean(storeCusVO, StoreCusDTO.class))); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/TYOtherBizAfterController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/TYOtherBizAfterController.java index fa0957ca4..9b0fae16c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/TYOtherBizAfterController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/migartion/TYOtherBizAfterController.java @@ -13,7 +13,9 @@ import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.es.EsClientWrapper; import com.ruoyi.framework.notice.fs.FsNotice; import com.ruoyi.system.mapper.SysDictDataMapper; +import com.ruoyi.web.controller.xkt.migartion.vo.ty.TyCusDiscImportVO; import com.ruoyi.web.controller.xkt.migartion.vo.ty.TyProdImportVO; +import com.ruoyi.web.controller.xkt.migartion.vo.ty.TyProdStockVO; import com.ruoyi.web.controller.xkt.migartion.vo.tyBizAfter.TyBizAfterImportVO; import com.ruoyi.xkt.domain.*; import com.ruoyi.xkt.enums.EProductStatus; @@ -67,6 +69,7 @@ public class TYOtherBizAfterController extends BaseController { final FsNotice fsNotice; final StoreCustomerMapper storeCusMapper; final SysDictDataMapper dictDataMapper; + final StoreCustomerProductDiscountMapper storeCusProdDiscMapper; // 系统枚举 鞋面材质 private static final String DICT_TYPE_SHAFT_MATERIAL = "shaft_material"; @@ -260,23 +263,37 @@ public class TYOtherBizAfterController extends BaseController { } /** - * step4 + * step3 */ @PreAuthorize("@ss.hasAnyRoles('admin,general_admin')") @PostMapping("/init-cus-disc") @Transactional public R initCusDisc(@RequestParam(value = "storeId") Long storeId, @RequestParam(value = "userId") Integer userId, MultipartFile file) throws IOException { - /* ExcelUtil util = new ExcelUtil<>(TyBizAfterImportVO.class); + ExcelUtil util = new ExcelUtil<>(TyBizAfterImportVO.class); List tyAfterImportVOList = util.importExcel(file.getInputStream()); // 待处理的TY独有的货号 List 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 waitMatchMap = tyAfterArtNumList.stream().filter(x -> x.contains("R")).collect(Collectors.toMap(x -> x, x -> x)); + // 按照货号 和 单里绒里匹配关系进行分组 + Map> tyAfterArtNumGroupMap = new HashMap<>(); + tyAfterArtNumList.stream().filter(x -> !x.contains("R")).distinct().forEach(x -> { + List 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 storeProdList = this.storeProdMapper.selectList(new LambdaQueryWrapper() .eq(StoreProduct::getStoreId, storeId).eq(StoreProduct::getDelFlag, Constants.UNDELETED) // TODO 特殊处理,只保留GT单独处理的部分 important important important - .in(StoreProduct::getProdArtNum, tyAfterArtNumList)); + .in(StoreProduct::getProdArtNum, tyAfterArtNumGroupMap.keySet())); List prodColorList = this.prodColorMapper.selectList(new LambdaQueryWrapper() .eq(StoreProductColor::getStoreId, storeId).eq(StoreProductColor::getDelFlag, Constants.UNDELETED)); List storeCusList = this.storeCusMapper.selectList(new LambdaQueryWrapper() @@ -287,6 +304,9 @@ public class TYOtherBizAfterController extends BaseController { if (CollectionUtils.isEmpty(tyProdList)) { throw new ServiceException("TY商品列表为空", HttpStatus.ERROR); } + // ty货号正在生效的颜色map,因为客户优惠有些是删除的颜色,需要通过这里去过滤 + Map> tyExistArtNoColorMap = tyProdList.stream().collect(Collectors + .groupingBy(TyProdImportVO::getProdArtNum, Collectors.mapping(TyProdImportVO::getColorName, Collectors.toSet()))); // 从redis中获取已存在的客户优惠数据 List tyCusDiscCacheList = redisCache.getCacheObject(CacheConstants.MIGRATION_TY_CUS_DISCOUNT_KEY + userId); @@ -314,94 +334,11 @@ public class TYOtherBizAfterController extends BaseController { Map buJuStoreCusMap = storeCusList.stream().collect(Collectors.toMap(StoreCustomer::getCusName, x -> x)); List prodCusDiscList = new ArrayList<>(); List prodStockList = new ArrayList<>(); - // 依次遍历商品列表,找到货号和FHB货号对应关系,然后用颜色进行匹配,建立客户优惠关系 storeProdList.forEach(storeProd -> { // 当前商品颜色列表 key 颜色中文名称 Map buJuProdColorMap = Optional.ofNullable(prodColorGroupMap.get(storeProd.getId())).orElseThrow(() -> new ServiceException("没有商品颜色!" + storeProd.getProdArtNum(), HttpStatus.ERROR)); // 根据步橘货号 找到TY对应的货号,可能是列表 - List 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 gtOnSaleList = ObjectUtils.defaultIfNull(redisCache.getCacheObject(CacheConstants.MIGRATION_GT_SALE_BASIC_KEY + initVO.getUserId()), new ArrayList<>()); - // gt所有在售的货号列表 - List gtArtNoList = gtOnSaleList.stream().map(GtProdSkuVO::getArticle_number).map(String::trim).distinct().collect(Collectors.toList()); - - - // ty货号正在生效的颜色map,因为客户优惠有些是删除的颜色,需要通过这里去过滤 - Map> tyExistArtNoColorMap = tyProdList.stream().collect(Collectors - .groupingBy(TyProdImportVO::getProdArtNum, Collectors.mapping(TyProdImportVO::getColorName, Collectors.toSet()))); - // TY货号下颜色的map - Map 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> 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 existMatchArtNoList = gtMatchTyArtNoMap.getOrDefault(gtOnSaleArtNo, new ArrayList<>()); - existMatchArtNoList.add(tyArtNo); - gtMatchTyArtNoMap.put(gtOnSaleArtNo, existMatchArtNoList); - } - })); - - // 从redis中获取已存在的客户优惠数据 - List 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 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> tyProdStockMap = tyStockList.stream().collect(Collectors - .groupingBy(TyProdStockVO::getProdArtNum, Collectors.toMap(TyProdStockVO::getColorName, x -> x))); - // TY 货号颜色优惠对应关系 - Map>> tyCusDiscGroupMap = tyCusDiscCacheList.stream().collect(Collectors - .groupingBy(TyCusDiscImportVO::getProdArtNum, Collectors.groupingBy(TyCusDiscImportVO::getColorName))); - // 步橘系统商品所有颜色maps - Map> prodColorGroupMap = prodColorList.stream().collect(Collectors - .groupingBy(StoreProductColor::getStoreProdId, Collectors.toMap(StoreProductColor::getColorName, x -> x))); - // 步橘系统客户名称map - Map buJuStoreCusMap = storeCusList.stream().collect(Collectors.toMap(StoreCustomer::getCusName, x -> x)); - List prodCusDiscList = new ArrayList<>(); - List prodStockList = new ArrayList<>(); - // 依次遍历商品列表,找到货号和FHB货号对应关系,然后用颜色进行匹配,建立客户优惠关系 - storeProdList.forEach(storeProd -> { - // 当前商品颜色列表 key 颜色中文名称 - Map buJuProdColorMap = Optional.ofNullable(prodColorGroupMap.get(storeProd.getId())).orElseThrow(() -> new ServiceException("没有商品颜色!" + storeProd.getProdArtNum(), HttpStatus.ERROR)); - // 根据步橘货号 找到TY对应的货号,可能是列表 - List tyAtrNoList = Optional.ofNullable(gtMatchTyArtNoMap.get(storeProd.getProdArtNum())).orElseThrow(() -> new ServiceException("没有TY货号!" + storeProd.getProdArtNum(), HttpStatus.ERROR)); + List tyAtrNoList = Optional.ofNullable(tyAfterArtNumGroupMap.get(storeProd.getProdArtNum())).orElseThrow(() -> new ServiceException("没有TY货号!" + storeProd.getProdArtNum(), HttpStatus.ERROR)); // 处理档口商品库存 this.handleProdStock(tyAtrNoList, tyProdStockMap, buJuProdColorMap, storeProd.getStoreId(), storeProd.getId(), storeProd.getProdArtNum(), prodStockList); @@ -416,18 +353,11 @@ public class TYOtherBizAfterController extends BaseController { // 档口客户优惠 this.storeCusProdDiscMapper.insert(prodCusDiscList); // 档口客户库存 - this.prodStockMapper.insert(prodStockList);*/ + this.prodStockMapper.insert(prodStockList); return R.ok(); } - - - - - - - /** * 初始化档口颜色 * @@ -454,4 +384,69 @@ public class TYOtherBizAfterController extends BaseController { this.storeColorMapper.insert(storeColorList); } + /** + * 处理商品库存 + */ + private void handleProdStock(List tyAtrNoList, Map> tyProdStockMap, Map buJuProdColorMap, + Long storeId, Long storeProdId, String prodArtNum, List prodStockList) { + // 获取ty货号所有颜色的库存 + Map tyColorStockMap = new HashMap<>(); + tyAtrNoList.forEach(tyArtNo -> tyColorStockMap.putAll(tyProdStockMap.getOrDefault(tyArtNo, new HashMap<>()))); + buJuProdColorMap.forEach((buJuColor, buJuProdColor) -> { + StoreProductStock stock = new StoreProductStock().setStoreId(storeId).setStoreProdId(storeProdId).setProdArtNum(prodArtNum) + .setColorName(buJuProdColorMap.get(buJuColor).getColorName()).setStoreProdColorId(buJuProdColorMap.get(buJuColor).getId()) + .setStoreColorId(buJuProdColorMap.get(buJuColor).getStoreColorId()); + if (tyColorStockMap.containsKey(buJuColor)) { + TyProdStockVO tySizeStock = tyColorStockMap.getOrDefault(buJuColor, null); + stock.setSize30(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize30() : null) + .setSize31(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize31() : null) + .setSize32(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize32() : null) + .setSize33(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize33() : null) + .setSize34(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize34() : null) + .setSize35(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize35() : null) + .setSize36(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize36() : null) + .setSize37(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize37() : null) + .setSize38(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize38() : null) + .setSize39(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize39() : null) + .setSize40(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize40() : null) + .setSize41(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize41() : null) + .setSize42(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize42() : null) + .setSize43(ObjectUtils.isNotEmpty(tySizeStock) ? tySizeStock.getSize43() : null); + } + prodStockList.add(stock); + }); + } + + /** + * 处理档口客户优惠 + */ + private void handleCusDisc(String tyAtrNo, Map> tyExistArtNoColorMap, Map>> tyCusDiscGroupMap, + Map buJuProdColorMap, Map buJuStoreCusMap, + List prodCusDiscList, Long storeId, Long storeProdId) { + // TY货号下有哪些颜色存在客户优惠 + Map> tyColorCusDiscMap = tyCusDiscGroupMap.get(tyAtrNo); + if (MapUtils.isEmpty(tyColorCusDiscMap)) { + return; + } + // ty当前货号正在生效的颜色列表 + Set existColorSet = tyExistArtNoColorMap.getOrDefault(tyAtrNo, Collections.emptySet()); + // 依次遍历存在优惠的颜色,设置步橘系统客户优惠关系 + tyColorCusDiscMap.forEach((tyColor, tyCusDiscList) -> { + // 必须是现在正在生效的颜色,才会被添加到系统中 + if (!existColorSet.contains(tyColor)) { + return; + } + // TODO 该处TY 与 FHB处理不同 + // TODO 该处TY 与 FHB处理不同 + // TODO 该处TY 与 FHB处理不同 + tyCusDiscList.stream().filter(x -> x.getDiscount() > 0).forEach(tyCusDisc -> { + StoreProductColor buJuProdColor = Optional.ofNullable(buJuProdColorMap.get(tyColor)).orElseThrow(() -> new ServiceException("没有步橘系统对应的颜色!" + tyColor, HttpStatus.ERROR)); + StoreCustomer storeCus = Optional.ofNullable(buJuStoreCusMap.get(tyCusDisc.getCusName())).orElseThrow(() -> new ServiceException("没有步橘系统对应的客户!" + tyCusDisc.getCusName(), HttpStatus.ERROR)); + // 将FHB客户优惠 转为步橘系统优惠 + prodCusDiscList.add(new StoreCustomerProductDiscount().setStoreId(storeId).setStoreProdId(storeProdId).setStoreCusId(storeCus.getId()) + .setStoreCusName(storeCus.getCusName()).setStoreProdColorId(buJuProdColor.getId()).setDiscount(tyCusDisc.getDiscount())); + }); + }); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusUpdateVO.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusUpdateVO.java new file mode 100644 index 000000000..d85499762 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/xkt/vo/storeCustomer/StoreCusUpdateVO.java @@ -0,0 +1,30 @@ +package com.ruoyi.web.controller.xkt.vo.storeCustomer; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * @author liujiang + * @version v1.0 + * @date 2025/3/27 15:12 + */ +@Data +@ApiModel + +public class StoreCusUpdateVO { + + @NotNull(message = "档口ID不能为空!") + @ApiModelProperty(value = "档口ID", required = true) + private Long storeId; + @ApiModelProperty(value = "档口客户ID 新增为空,编辑必传") + private Long storeCusId; + @ApiModelProperty(value = "客户联系电话") + private String phone; + @ApiModelProperty(value = "备注") + private String remark; + +} diff --git a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java index 1b31c8d48..24ef14277 100644 --- a/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java +++ b/xkt/src/main/java/com/ruoyi/xkt/service/impl/StoreCustomerServiceImpl.java @@ -9,7 +9,7 @@ import com.ruoyi.common.constant.HttpStatus; import com.ruoyi.common.core.page.Page; import com.ruoyi.common.exception.ServiceException; import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.xkt.domain.*; +import com.ruoyi.xkt.domain.StoreCustomer; import com.ruoyi.xkt.dto.storeCustomer.StoreCusDTO; import com.ruoyi.xkt.dto.storeCustomer.StoreCusFuzzyResDTO; import com.ruoyi.xkt.dto.storeCustomer.StoreCusPageDTO; @@ -147,18 +147,7 @@ public class StoreCustomerServiceImpl implements IStoreCustomerService { throw new ServiceException("请输入正确的手机号!", HttpStatus.ERROR); } } - // 如果名称变更了,则需要调整关联表中的客户名称 - if (!Objects.equals(storeCusDTO.getCusName(), storeCus.getCusName())) { - // 判断客户名称是否已存在 - List storeCusList = this.storeCusMapper.selectList(new LambdaQueryWrapper() - .eq(StoreCustomer::getStoreId, storeCus.getStoreId()).eq(StoreCustomer::getDelFlag, Constants.UNDELETED) - .eq(StoreCustomer::getCusName, storeCusDTO.getCusName()).ne(StoreCustomer::getId, storeCus.getId())); - if (CollectionUtils.isNotEmpty(storeCusList)) { - throw new ServiceException("客户名称已存在,请修改后重新提交!", HttpStatus.ERROR); - } - this.updateRelatedCusName(storeCusDTO.getCusName(), storeCus.getId(), storeCus.getStoreId()); - } - BeanUtil.copyProperties(storeCusDTO, storeCus); + storeCus.setPhone(storeCusDTO.getPhone()).setRemark(storeCusDTO.getRemark()); return storeCusMapper.updateById(storeCus); } @@ -178,46 +167,4 @@ public class StoreCustomerServiceImpl implements IStoreCustomerService { return BeanUtil.toBean(storeCus, StoreCusDTO.class); } - /** - * 更新关联表的客户名称 - * - * @param cusName 最新的客户名臣 - * @param storeCusId 档口客户ID - * @param storeId 档口ID - */ - private void updateRelatedCusName(String cusName, Long storeCusId, Long storeId) { - // 档口销售表 - List saleList = storeSaleMapper.selectList(new LambdaQueryWrapper() - .eq(StoreSale::getStoreId, storeId).eq(StoreSale::getDelFlag, Constants.UNDELETED) - .eq(StoreSale::getStoreCusId, storeCusId)); - if (CollectionUtils.isNotEmpty(saleList)) { - saleList.forEach(x -> x.setStoreCusName(cusName)); - storeSaleMapper.updateById(saleList); - } - // 档口销售明细表 - List saleDetailList = this.saleDetailMapper.selectList(new LambdaQueryWrapper() - .eq(StoreSaleDetail::getStoreId, storeId).eq(StoreSaleDetail::getDelFlag, Constants.UNDELETED) - .eq(StoreSaleDetail::getStoreCusId, storeCusId)); - if (CollectionUtils.isNotEmpty(saleDetailList)) { - saleDetailList.forEach(x -> x.setStoreCusName(cusName)); - this.saleDetailMapper.updateById(saleDetailList); - } - // 档口销售返单表 - List refundList = this.saleRefundRecordMapper.selectList(new LambdaQueryWrapper() - .eq(StoreSaleRefundRecord::getStoreId, storeId).eq(StoreSaleRefundRecord::getDelFlag, Constants.UNDELETED) - .eq(StoreSaleRefundRecord::getStoreCusId, storeCusId)); - if (CollectionUtils.isNotEmpty(refundList)) { - refundList.forEach(x -> x.setStoreCusName(cusName)); - this.saleRefundRecordMapper.updateById(refundList); - } - // 档口销售返单明细表 - List refundDetailList = this.saleRefundRecordDetailMapper.selectList(new LambdaQueryWrapper() - .eq(StoreSaleRefundRecordDetail::getStoreId, storeId).eq(StoreSaleRefundRecordDetail::getDelFlag, Constants.UNDELETED) - .eq(StoreSaleRefundRecordDetail::getStoreCusId, storeCusId)); - if (CollectionUtils.isNotEmpty(refundDetailList)) { - refundDetailList.forEach(x -> x.setStoreCusName(cusName)); - this.saleRefundRecordDetailMapper.updateById(refundDetailList); - } - } - }