| | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | 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; |
| | | } |
| | | } |