From 4b1e22804bdac0d6cb5c95f8766f78ed708fec82 Mon Sep 17 00:00:00 2001 From: Yen Date: Fri, 15 Dec 2023 15:35:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E5=8F=91=E8=B4=A7=E5=8D=95?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../goods/controller/GoodsSpuController.java | 44 +++++++++++++++++-- .../oms/controller/api/OmsOrderApi.java | 7 +++ .../modules/oms/entity/OmsOrderItem.java | 3 ++ .../resources/mapper/goods/GoodsSpuMapper.xml | 2 +- 4 files changed, 52 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java index 71e2020c..6305f737 100644 --- a/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java +++ b/src/main/java/com/qs/serve/modules/goods/controller/GoodsSpuController.java @@ -148,10 +148,47 @@ public class GoodsSpuController { LocalDate date = LocalDate.now().plusMonths(-2); List invCodes = dispatchDataMapper.selectLast2MonthInvCode(date,query.getSupplierCode()); if(CollectionUtil.isNotEmpty(invCodes)){ - List goodsSkus = goodsSkuService.getByCodes(invCodes); - List goodsSpuList = new ArrayList<>(); + LambdaQueryWrapper skuLqw = new LambdaQueryWrapper<>(); + skuLqw.in(GoodsSku::getSkuCode,invCodes); + skuLqw.and(an->{ + an.eq(GoodsSku::getSpecialFlag,1).or().eq(GoodsSku::getOrderFlag,1); + }); + List goodsSkus = goodsSkuService.list(skuLqw); + + List spuIds = goodsSkus.stream().map(GoodsSku::getSpuId).distinct().collect(Collectors.toList()); + List spuSpecIds = goodsSkus.stream().filter(a->a.getSpecialFlag()!=null + &&a.getSpecialFlag().equals(1)).map(GoodsSku::getSpuId).distinct().collect(Collectors.toList()); + spuSpecIds.add(0L); + + LambdaQueryWrapper spuLqw = new LambdaQueryWrapper<>(); + spuLqw.in(GoodsSpu::getId,spuIds); + spuLqw.eq(GoodsSpu::getShelf,1); + spuLqw.and(an->{ + an.eq(GoodsSpu::getOrderFlag,1) + .or().in(GoodsSpu::getId,spuSpecIds); + }); + spuLqw.eq(GoodsSpu::getOrderFlag,1); + if(CollectionUtil.isNotEmpty(query.getCateIds())){ + spuLqw.and(an->{ + an.notIn(GoodsSpu::getCategoryFirst,query.getCateIds()) + .or().notIn(GoodsSpu::getCategorySecond,query.getCateIds()) + .or().notIn(GoodsSpu::getCategoryThird,query.getCateIds()); + }); + } + + List goodsSpuList = goodsSpuService.list(spuLqw); for (GoodsSku sku : goodsSkus) { - GoodsSpu spu = goodsSpuService.getById(sku.getSpuId()); + GoodsSpu spu = null; + for (GoodsSpu goodsSpu : goodsSpuList) { + if(goodsSpu.getId().equals(sku.getSpuId())){ + spu = goodsSpu; + break; + } + } + if(spu==null){ + log.warn("无法匹配spuId skuCode:{}",sku.getSkuCode()); + continue; + } GoodsCategory cate1 = goodsCategoryService.getById(spu.getCategoryFirst()); if(cate1!=null){ spu.setCateFirstLabel(cate1.getName()); @@ -166,6 +203,7 @@ public class GoodsSpuController { } spu.toSetSkuInfo(sku); + spu.setSkuSpecialFlag(sku.getSpecialFlag()); goodsSpuList.add(spu); } this.initSpuWithCustomerPrice(query.getSupplierCode(), goodsSpuList,invCodes); diff --git a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java index 3f419d62..58dc1591 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java +++ b/src/main/java/com/qs/serve/modules/oms/controller/api/OmsOrderApi.java @@ -12,9 +12,11 @@ import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplierAddress; import com.qs.serve.modules.bms.service.BmsSupplierAddressService; import com.qs.serve.modules.goods.entity.GoodsCategory; +import com.qs.serve.modules.goods.entity.GoodsSku; import com.qs.serve.modules.goods.entity.GoodsSpu; import com.qs.serve.modules.goods.service.GoodsCategoryRuleService; import com.qs.serve.modules.goods.service.GoodsCategoryService; +import com.qs.serve.modules.goods.service.GoodsSkuService; import com.qs.serve.modules.goods.service.GoodsSpuService; import com.qs.serve.modules.oms.entity.OmsOrder; import com.qs.serve.modules.oms.entity.OmsOrderItem; @@ -54,6 +56,7 @@ public class OmsOrderApi { private SysUserService sysUserService; private GoodsCategoryRuleService goodsCategoryRuleService; private GoodsSpuService goodsSpuService; + private GoodsSkuService goodsSkuService; private GoodsCategoryService goodsCategoryService; private SeeYonRequestBaseService seeYonRequestBaseService; @@ -181,6 +184,10 @@ public class OmsOrderApi { GoodsCategory goodsCategory = goodsCategoryService.getById(goodsSpu.getCategoryLast()); orderItem.setCategoryInfo(goodsCategory); orderItem.setSpuInfo(goodsSpu); + GoodsSku goodsSku = goodsSkuService.getById(orderItem.getSkuId()); + if(goodsSku!=null){ + orderItem.setSkuSpecialFlag(goodsSku.getSpecialFlag()); + } } omsOrder.setOrderItems(list); return R.ok(omsOrder); diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java index 04123ba9..60c9334e 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java +++ b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrderItem.java @@ -132,5 +132,8 @@ public class OmsOrderItem implements Serializable { /** 分类 */ @TableField(exist = false) private Object categoryInfo; + + @TableField(exist = false) + private Integer skuSpecialFlag; } diff --git a/src/main/resources/mapper/goods/GoodsSpuMapper.xml b/src/main/resources/mapper/goods/GoodsSpuMapper.xml index ab38c912..4850cc08 100644 --- a/src/main/resources/mapper/goods/GoodsSpuMapper.xml +++ b/src/main/resources/mapper/goods/GoodsSpuMapper.xml @@ -70,7 +70,7 @@ and (`goods_sku`.`belong` = #{query.belong} or goods_sku.special_flag=1) - + and `goods_sku`.`special_flag` = #{query.selectSpecialFlag}