From a76e1d17d67641993dea6335cb8e1465a94df58d Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期四, 21 五月 2026 15:39:05 +0800
Subject: [PATCH] feat(stock): 优化库存管理和成品树结构功能 1- 为ApproveProcessMapper.xml和ProductBomMapper.xml添加排序功能 2- 在ProductionProductMainDto中新增bomInputQty字段用于产品结构投入数量 3- 修改ProductionProductMainServiceImpl中投入数量计算逻辑,使用前端传入的bomInputQty值 4- 在ProductWorkOrderDto中添加bomInputQty字段并在服务实现中计算标准投入数量 5- 更新SalesLedgerMapper.xml查询逻辑,从product_summary获取电压信息 6- 为SalesLedgerProduct添加stockId字段并修改库存扣减逻辑使用具体库存ID 7- 重构StockInventoryController中的成品库存树查询接口和导入导出功能 8- 新增成品和非成品库存导入导出的数据模型和Excel工具类 9- 优化StockInventoryServiceImpl中的库存扣减逻辑,支持按特定库存ID操作 10- 更新库存导入导出功能,区分成品和非成品类型并提供相应模板

---
 src/main/java/com/ruoyi/equipmentenergyconsumption/service/impl/ElectricityConsumptionAreaServiceImpl.java |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 54 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/equipmentenergyconsumption/service/impl/ElectricityConsumptionAreaServiceImpl.java b/src/main/java/com/ruoyi/equipmentenergyconsumption/service/impl/ElectricityConsumptionAreaServiceImpl.java
index 2874fc1..abccda9 100644
--- a/src/main/java/com/ruoyi/equipmentenergyconsumption/service/impl/ElectricityConsumptionAreaServiceImpl.java
+++ b/src/main/java/com/ruoyi/equipmentenergyconsumption/service/impl/ElectricityConsumptionAreaServiceImpl.java
@@ -1,8 +1,13 @@
 package com.ruoyi.equipmentenergyconsumption.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.basic.dto.ProductTreeDto;
+import com.ruoyi.basic.pojo.Product;
+import com.ruoyi.common.utils.bean.BeanUtils;
+import com.ruoyi.equipmentenergyconsumption.dto.ElectricityConsumptionAreaTreeDto;
 import com.ruoyi.equipmentenergyconsumption.mapper.ElectricityConsumptionAreaMapper;
 import com.ruoyi.equipmentenergyconsumption.pojo.ElectricityConsumptionArea;
 import com.ruoyi.equipmentenergyconsumption.service.ElectricityConsumptionAreaService;
@@ -10,6 +15,9 @@
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
 
 
 @Service
@@ -23,4 +31,50 @@
     public IPage<ElectricityConsumptionArea> listPage(Page page, ElectricityConsumptionArea electricityConsumptionArea) {
         return electricityConsumptionAreaMapper.listPage(page,electricityConsumptionArea);
     }
+
+
+    //宸︿晶鏍戠粨鏋�
+    @Override
+    public List<ElectricityConsumptionAreaTreeDto> selectElectricityConsumptionAreaList() {
+        // 鏌ヨ鏍硅妭鐐癸紙parentId 涓� null锛�
+        LambdaQueryWrapper<ElectricityConsumptionArea> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.isNull(ElectricityConsumptionArea::getFuId);
+        // 鏌ヨ鏍硅妭鐐瑰垪琛�
+        List<ElectricityConsumptionArea> rootProducts = electricityConsumptionAreaMapper.selectList(queryWrapper);
+
+        // 杞崲涓烘爲鑺傜偣骞堕�掑綊鏋勫缓瀛愭爲
+        List<ElectricityConsumptionAreaTreeDto> tree = new ArrayList<>();
+        for (ElectricityConsumptionArea electricityConsumptionArea : rootProducts) {
+            ElectricityConsumptionAreaTreeDto node = convertToTreeDto(electricityConsumptionArea);
+            node.setChildren(buildChildrenNodes(electricityConsumptionArea.getId()));
+            tree.add(node);
+        }
+        return tree;
+    }
+
+    // 灏� Product 杞崲涓� ProductTreeDto
+    private ElectricityConsumptionAreaTreeDto convertToTreeDto(ElectricityConsumptionArea electricityConsumptionArea) {
+        ElectricityConsumptionAreaTreeDto dto = new ElectricityConsumptionAreaTreeDto();
+        BeanUtils.copyProperties(electricityConsumptionArea, dto);
+        dto.setLabel(electricityConsumptionArea.getAreaName()); // 璁剧疆 label 涓轰骇鍝佸悕绉�
+        dto.setChildren(new ArrayList<>());
+        return dto;
+    }
+
+    // 閫掑綊鏋勫缓瀛愯妭鐐�
+    private List<ElectricityConsumptionAreaTreeDto> buildChildrenNodes(Long parentId) {
+        // 鏌ヨ褰撳墠鐖惰妭鐐圭殑瀛愯妭鐐�
+        LambdaQueryWrapper<ElectricityConsumptionArea> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ElectricityConsumptionArea::getFuId, parentId);
+        List<ElectricityConsumptionArea> childProducts = electricityConsumptionAreaMapper.selectList(queryWrapper);
+
+        // 杞崲瀛愯妭鐐瑰苟閫掑綊鏋勫缓瀹冧滑鐨勫瓙鏍�
+        List<ElectricityConsumptionAreaTreeDto> children = new ArrayList<>();
+        for (ElectricityConsumptionArea child : childProducts) {
+            ElectricityConsumptionAreaTreeDto childNode = convertToTreeDto(child);
+            childNode.setChildren(buildChildrenNodes(child.getId()));
+            children.add(childNode);
+        }
+        return children;
+    }
 }

--
Gitblit v1.9.3