From f45f999d6d366cf1f0b4f0b1a3364d4568a5a406 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期五, 13 三月 2026 12:01:20 +0800
Subject: [PATCH] Merge branch 'dev_宁夏_中盛建材' of http://114.132.189.42:9002/r/product-inventory-management-after into dev_宁夏_中盛建材
---
src/main/java/com/ruoyi/production/service/impl/ProductMaterialServiceImpl.java | 122 +++++++++++++++++++++++-----------------
1 files changed, 71 insertions(+), 51 deletions(-)
diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductMaterialServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductMaterialServiceImpl.java
index 154f7d4..0caf06a 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductMaterialServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductMaterialServiceImpl.java
@@ -348,72 +348,83 @@
}
@Override
- public List<ProductMaterialGroupDto> ProductMaterialList() {
-
- List<ProductMaterialConfig> materialConfigList = productMaterialConfigService.list(new LambdaQueryWrapper<ProductMaterialConfig>()
- .eq(ProductMaterialConfig::getConfigType, MaterialConfigTypeEnum.MATERIAL_TYPE.name()));
-
- List<ProductMaterialGroupDto> productMaterialMap = new ArrayList<>();
- if (materialConfigList == null || materialConfigList.isEmpty()) {
- return productMaterialMap;
+ public List<ProductMaterialGroupDto> ProductMaterialList(Integer type) {
+ List<ProductMaterialConfig> configList = productMaterialConfigService.list(new LambdaQueryWrapper<ProductMaterialConfig>()
+ .eq(ProductMaterialConfig::getConfigType, MaterialConfigTypeEnum.MATERIAL_TYPE.name())
+ );
+ if (CollectionUtils.isEmpty(configList)) {
+ return new ArrayList<>();
}
- for (ProductMaterialConfig materialConfig : materialConfigList) {
+ List<ProductMaterialGroupDto> result = new ArrayList<>();
+ Map<Integer, List<ProductMaterialDto>> materialMap = new HashMap<>();
+ if (type != null && type == 2) {
+ List<ProductMaterial> materialList = this.list(new LambdaQueryWrapper<ProductMaterial>()
+ .select(
+ ProductMaterial::getId,
+ ProductMaterial::getMaterialTypeId,
+ ProductMaterial::getInventoryCategoryId,
+ ProductMaterial::getMaterialName
+ )
+ );
+ materialMap = materialList.stream()
+ .map(this::convert)
+ .collect(Collectors.groupingBy(ProductMaterialDto::getMaterialTypeId));
+ }
+
+ for (ProductMaterialConfig config : configList) {
ProductMaterialGroupDto dto = new ProductMaterialGroupDto();
- dto.setConfigId(materialConfig.getId());
- dto.setConfigName(materialConfig.getConfigName());
- productMaterialMap.add(dto);
+ dto.setConfigId(config.getId());
+ dto.setConfigName(config.getConfigName());
+ if (type != null && type == 2) {
+ dto.setMaterialList(materialMap.getOrDefault(config.getId(), new ArrayList<>()));
+ }
+ result.add(dto);
}
- return productMaterialMap;
+ return result;
}
+
@Override
public List<ProductMaterialGroupDto> productMaterialListByQuery(String materialName, Integer materialTypeId) {
+
if (StringUtils.isEmpty(materialName) && materialTypeId == null) {
- return new ArrayList<>(0);
+ return new ArrayList<>();
}
- // 鏌ヨ鐗╂枡绫诲瀷閰嶇疆
- List<ProductMaterialConfig> materialConfigList = productMaterialConfigService.list(new LambdaQueryWrapper<ProductMaterialConfig>()
+
+ LambdaQueryWrapper<ProductMaterial> wrapper = new LambdaQueryWrapper<>();
+ // 鍙煡璇㈤渶瑕佺殑瀛楁鏁版嵁
+ wrapper.select(
+ ProductMaterial::getId,
+ ProductMaterial::getMaterialTypeId,
+ ProductMaterial::getInventoryCategoryId,
+ ProductMaterial::getMaterialName
+ );
+ if (StringUtils.isNotEmpty(materialName)) {
+ wrapper.like(ProductMaterial::getMaterialName, materialName);
+ }
+ if (materialTypeId != null) {
+ wrapper.eq(ProductMaterial::getMaterialTypeId, materialTypeId);
+ }
+ List<ProductMaterial> materials = this.list(wrapper);
+ if (CollectionUtils.isEmpty(materials)) {
+ return new ArrayList<>();
+ }
+ Map<Integer, List<ProductMaterialDto>> map = materials.stream()
+ .map(this::convert)
+ .collect(Collectors.groupingBy(ProductMaterialDto::getMaterialTypeId));
+
+ List<ProductMaterialConfig> configList = productMaterialConfigService.list(new LambdaQueryWrapper<ProductMaterialConfig>()
.eq(ProductMaterialConfig::getConfigType, MaterialConfigTypeEnum.MATERIAL_TYPE.name()));
List<ProductMaterialGroupDto> result = new ArrayList<>();
- if (CollectionUtils.isEmpty(materialConfigList)) {
- return result;
- }
- LambdaQueryWrapper<ProductMaterial> wrapper;
- for (ProductMaterialConfig materialConfig : materialConfigList) {
- wrapper = new LambdaQueryWrapper<>();
- // 鎸囧畾闇�瑕佺殑瀛楁
- wrapper.select(
- ProductMaterial::getId,
- ProductMaterial::getMaterialTypeId,
- ProductMaterial::getInventoryCategoryId,
- ProductMaterial::getMaterialName
- );
- if (StringUtils.isNotEmpty(materialName)) {
- wrapper.eq(ProductMaterial::getMaterialTypeId, materialConfig.getId())
- .like(ProductMaterial::getMaterialName, materialName);
- } else {
- if (!materialConfig.getId().equals(materialTypeId)) {
- continue;
- }
- wrapper.eq(ProductMaterial::getMaterialTypeId, materialTypeId);
- }
- List<ProductMaterial> materialList = list(wrapper);
- if (CollectionUtils.isEmpty(materialList)) {
+ for (ProductMaterialConfig config : configList) {
+ List<ProductMaterialDto> dtoList = map.get(config.getId());
+ if (CollectionUtils.isEmpty(dtoList)) {
continue;
}
-
- List<ProductMaterialDto> dtoList = materialList.stream().map(m -> {
- ProductMaterialDto dto = new ProductMaterialDto();
- dto.setId(m.getId());
- dto.setMaterialTypeId(m.getMaterialTypeId());
- dto.setInventoryCategoryId(m.getInventoryCategoryId());
- dto.setMaterialName(m.getMaterialName());
- return dto;
- }).collect(Collectors.toList());
ProductMaterialGroupDto dto = new ProductMaterialGroupDto();
- dto.setConfigId(materialConfig.getId());
- dto.setConfigName(materialConfig.getConfigName());
+ dto.setConfigId(config.getId());
+ dto.setConfigName(config.getConfigName());
dto.setMaterialList(dtoList);
result.add(dto);
}
@@ -421,6 +432,15 @@
return result;
}
+ private ProductMaterialDto convert(ProductMaterial m) {
+ ProductMaterialDto dto = new ProductMaterialDto();
+ dto.setId(m.getId());
+ dto.setMaterialName(m.getMaterialName());
+ dto.setMaterialTypeId(m.getMaterialTypeId());
+ dto.setInventoryCategoryId(m.getInventoryCategoryId());
+ return dto;
+ }
+
@Override
@Transactional(rollbackFor = Exception.class)
public void addProductMaterial(ProductMaterial productMaterial) {
--
Gitblit v1.9.3