From 000f0198bfc7b3309e5230d967c4d35fa9da95a2 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期四, 14 八月 2025 16:37:51 +0800 Subject: [PATCH] 用电区域代码优化 --- 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