From fce244e24305a5a4d447973592776bacbb0b9851 Mon Sep 17 00:00:00 2001 From: zjf <1799650030@qq.com> Date: Sun, 23 Feb 2025 20:11:28 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=87=E8=B4=AD=E5=95=86=E5=93=81=E5=9B=9E?= =?UTF-8?q?=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supermarket/entity/SmErpCgPlanEntity.java | 4 ++ .../controller/SmErpCgDdController.java | 2 +- .../controller/SmErpCgPlanController.java | 2 +- .../service/SmErpCgPlanService.java | 6 +- .../service/impl/SmErpCgPlanServiceImpl.java | 58 +++++++++++++++++-- 5 files changed, 63 insertions(+), 9 deletions(-) diff --git a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgPlanEntity.java b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgPlanEntity.java index 22ce80418..5f8a4d297 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgPlanEntity.java +++ b/pjcloud-supermarket/pjcloud-supermarket-api/src/main/java/com/bsd/pjcloud/supermarket/entity/SmErpCgPlanEntity.java @@ -132,4 +132,8 @@ public class SmErpCgPlanEntity extends Model { */ @Schema(description="租户编号") private Long tenantId; + + @TableField(exist = false) + @Schema(description="商品名称") + private String productName; } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java index d5f902249..9e5a491a3 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgDdController.java @@ -180,7 +180,7 @@ public class SmErpCgDdController { //todo 审核成功条件 // wrapper.eq(SmErpCgPlanEntity::getCheckStatus,); - return R.ok(smErpCgPlanService.pageScope(page, wrapper)); + return R.ok(smErpCgPlanService.pageCgsqScope(page, wrapper)); } } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgPlanController.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgPlanController.java index bc9a8f92d..afb1a4e0d 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgPlanController.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/controller/SmErpCgPlanController.java @@ -73,7 +73,7 @@ public class SmErpCgPlanController { wrapper.eq(Objects.nonNull(smErpCgPlan.getPlanDate()),SmErpCgPlanEntity::getPlanDate,smErpCgPlan.getPlanDate()); wrapper.eq(Objects.nonNull(smErpCgPlan.getHandlerUserId()),SmErpCgPlanEntity::getHandlerUserId,smErpCgPlan.getHandlerUserId()); wrapper.eq(StrUtil.isNotBlank(smErpCgPlan.getCheckStatus()),SmErpCgPlanEntity::getCheckStatus,smErpCgPlan.getCheckStatus()); - return R.ok(smErpCgPlanService.page(page, wrapper)); + return R.ok(smErpCgPlanService.pageScope(page, wrapper)); } diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpCgPlanService.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpCgPlanService.java index 280d7ad4f..7d6f08470 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpCgPlanService.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/SmErpCgPlanService.java @@ -36,5 +36,9 @@ public interface SmErpCgPlanService extends IService { * @param wrapper * @return */ - Page pageScope(Page page, LambdaQueryWrapper wrapper); + Page pageCgsqScope(Page page, LambdaQueryWrapper wrapper); + + + + Object pageScope(Page page, LambdaQueryWrapper wrapper); } \ No newline at end of file diff --git a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgPlanServiceImpl.java b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgPlanServiceImpl.java index a0a21102d..3e5c165e7 100644 --- a/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgPlanServiceImpl.java +++ b/pjcloud-supermarket/pjcloud-supermarket-biz/src/main/java/com/bsd/pjcloud/supermarket/service/impl/SmErpCgPlanServiceImpl.java @@ -14,9 +14,11 @@ import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanEditItemDTO; import com.bsd.pjcloud.supermarket.dto.cgplan.SmCgPlanSaveItemDTO; import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanEntity; import com.bsd.pjcloud.supermarket.entity.SmErpCgPlanItemEntity; +import com.bsd.pjcloud.supermarket.entity.SmErpSpuEntity; import com.bsd.pjcloud.supermarket.entity.SmErpUnitEntity; import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanItemMapper; import com.bsd.pjcloud.supermarket.mapper.SmErpCgPlanMapper; +import com.bsd.pjcloud.supermarket.mapper.SmErpSpuMapper; import com.bsd.pjcloud.supermarket.mapper.SmErpUnitMapper; import com.bsd.pjcloud.supermarket.service.SmErpCgPlanService; import com.bsd.pjcloud.supermarket.vo.cgdd.SmErpCgDdVo; @@ -26,10 +28,7 @@ import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; /** @@ -46,6 +45,8 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl pageScope(Page page, LambdaQueryWrapper wrapper) { + public Page pageCgsqScope(Page page, LambdaQueryWrapper wrapper) { // 1. 查询主表分页数据 Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); List records = pageData.getRecords(); @@ -122,6 +123,7 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl { - + List unitEntities = unitList.stream().filter(unit -> unit.getSpuId().equals(item.getErpSpuId())).collect(Collectors.toList()); + unitEntities.stream().forEach(unit -> { + if(unit.getId().equals(item.getUnitId())){ + item.setSpec(unit.getSpec()); + item.setUnit(unit.getUnit()); + item.setPackageNum(unit.getPackageNum()); + item.setPurchasePrice(unit.getPurchasePrice()); + } + }); }); vo.setItems(itemVos); }); @@ -145,4 +155,40 @@ public class SmErpCgPlanServiceImpl extends ServiceImpl wrapper) { + Page pageData = baseMapper.selectPageByScope(page, wrapper, DataScope.of()); + List records = pageData.getRecords(); + + // 2. 提前收集所有主表ID(去重处理) + Set planIds = records.stream() + .map(SmErpCgPlanEntity::getId) + .collect(Collectors.toSet()); + LambdaQueryWrapper smErpCgPlanItemEntityLambdaQueryWrapper = new LambdaQueryWrapper<>(); + smErpCgPlanItemEntityLambdaQueryWrapper.in(SmErpCgPlanItemEntity::getPlanId,planIds); + List cgPlanItemEntities = smErpCgPlanItemMapper.selectList(smErpCgPlanItemEntityLambdaQueryWrapper); + + Set erpSpuIds = cgPlanItemEntities.stream().map(SmErpCgPlanItemEntity::getErpSpuId).collect(Collectors.toSet()); + List smErpSpuEntities = smErpSpuMapper.selectList(new LambdaQueryWrapper().in(SmErpSpuEntity::getId, erpSpuIds)); + Map spuMap = smErpSpuEntities.stream().collect(Collectors.toMap(SmErpSpuEntity::getId, spu -> spu)); + + + // 按采购计划分组商品名称 + Map> planGoodsMap = cgPlanItemEntities.stream() + .collect(Collectors.groupingBy( + SmErpCgPlanItemEntity::getPlanId, + Collectors.mapping( + item -> spuMap.getOrDefault(item.getErpSpuId(), new SmErpSpuEntity()).getProductName(), + Collectors.toList() + ) + )); + // 设置商品名称到主表实体 + records.forEach(plan -> { + List names = planGoodsMap.getOrDefault(plan.getId(), Collections.emptyList()); + plan.setProductName(String.join(", ", names)); + }); + + return pageData; + } + } \ No newline at end of file