From f4c288c55d08c04cd026508b358beebfcdce5fc2 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期五, 22 五月 2026 09:29:09 +0800
Subject: [PATCH] feat(product): 添加产品型号向下复制功能并优化生产报工重量计算 - 在ProductController中新增downCopy接口实现产品型号批量复制功能 - 将ProductionProductMainDto中的bomInputQty字段重命名为inputWeight - 在ProductionProductMainServiceImpl中添加JSON解析逻辑支持从otherData中提取投入重量 - 新增resolveInputWeight、findParameterValue、findFieldValue等工具方法处理复杂参数解析 - 为ProductModelDto添加targetProductId字段用于指定复制目标 - 修复销售台账按调度员ID和姓名分组的SQL查询问题 - 优化库存服务中剩余数量计算的空值处理逻辑 - 完善生产投料数量为空时的默认值处理机制
---
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