From 7735ea1d4f9c3a9e6d7f9e87c270807f45442060 Mon Sep 17 00:00:00 2001
From: dongyukun <1208714201@qq.com>
Date: 星期五, 09 五月 2025 10:04:27 +0800
Subject: [PATCH] 负荷移植-最大需量折叠分页列表

---
 ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandDetService.java           |    5 +
 ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandMainServiceImpl.java |   19 +++++-
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java             |   37 +++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java  |    9 +++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandMainService.java          |    7 ++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerMaxDemandMainDTO.java                    |   39 +++++++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerMaxDemandMainPageReqVO.java               |   28 +++++++++
 ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java                  |   15 ++++
 8 files changed, 152 insertions(+), 7 deletions(-)

diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
index 4061a19..973926e 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -2,12 +2,21 @@
 
 import cn.hutool.core.util.NumberUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants;
 import com.iailab.framework.common.pojo.CommonResult;
+import com.iailab.framework.common.pojo.PageResult;
 import com.iailab.framework.common.util.date.DateUtils;
+import com.iailab.framework.common.util.object.BeanUtils;
 import com.iailab.framework.common.util.object.ConvertUtils;
+import com.iailab.framework.tenant.core.context.TenantContextHolder;
 import com.iailab.module.ansteel.api.dto.*;
+import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO;
 import com.iailab.module.ansteel.common.utils.DecimalUtil;
+import com.iailab.module.ansteel.job.dto.ScheduleJobDTO;
+import com.iailab.module.ansteel.job.entity.ScheduleJobEntity;
+import com.iailab.module.ansteel.job.service.ScheduleJobService;
+import com.iailab.module.ansteel.job.vo.ScheduleJobReqVO;
 import com.iailab.module.ansteel.power.entity.*;
 import com.iailab.module.ansteel.power.service.*;
 import com.iailab.module.data.api.point.DataPointApi;
@@ -20,7 +29,9 @@
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
@@ -79,6 +90,11 @@
 
     @Autowired
     private PowerVoltageStatusService powerVoltageStatusService;
+
+    @Autowired
+    private PowerMaxdemandMainService powerMaxDemandMainService;
+    @Autowired
+    private PowerMaxdemandDetService powerMaxdemandDetService;
 
     @GetMapping("/net-factor/list")
     @Operation(summary = "功率因数-电网拓扑")
@@ -689,7 +705,7 @@
             }
             if (curValue == null) {
                 log.info("curValue is null");
-                for (PowerNetDropdownEntity netDropdown : dropdownList){
+                for (PowerNetDropdownEntity netDropdown : dropdownList) {
                     PowerDemandQueryRespDTO dto = ConvertUtils.sourceToTarget(netDropdown, PowerDemandQueryRespDTO.class);
                     if (dto.getNodeCode().equals(nodeCode)) {
                         dto.setCurDemand(queryDto.getCurDemand());
@@ -707,7 +723,7 @@
                         pointValueMap.put(item.get("time").toString(), DecimalUtil.toBigDecimal(item.get("value")));
 
                     });
-                    dto.setCurDemand(pointValueMap.get(DateUtils.format(curValue.getT(),DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)));
+                    dto.setCurDemand(pointValueMap.get(DateUtils.format(curValue.getT(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)));
                     dto.setDataTime(curValue.getT());
                 }
                 result.add(dto);
@@ -1092,4 +1108,21 @@
         }
         return success(result);
     }
+
+    @GetMapping("/power-maxDemand/page")
+    @Operation(summary = "负荷移植-最大需量折叠分页列表")
+    public CommonResult<PageResult<PowerMaxDemandMainDTO>> getPowerMaxDemandMainPage(@Validated PowerMaxDemandMainPageReqVO reqVO) {
+        PageResult<PowerMaxDemandMainDTO> page = powerMaxDemandMainService.page(reqVO);
+        List<String> parentIds = page.getList()
+                .stream()
+                .map(PowerMaxDemandMainDTO::getId)
+                .collect(Collectors.toList());
+        List<PowerMaxdemandDetEntity> children = powerMaxdemandDetService.selectListByRelIds(parentIds);
+        Map<String, List<PowerMaxdemandDetEntity>> childrenMap = children.stream()
+                .collect(Collectors.groupingBy(PowerMaxdemandDetEntity::getRelId));
+        page.getList().forEach(
+                dto -> dto.setChildren(childrenMap.getOrDefault(dto.getId(), Collections.emptyList()))
+        );
+        return success(BeanUtils.toBean(page, PowerMaxDemandMainDTO.class));
+    }
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerMaxDemandMainDTO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerMaxDemandMainDTO.java
new file mode 100644
index 0000000..bf5501a
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/dto/PowerMaxDemandMainDTO.java
@@ -0,0 +1,39 @@
+package com.iailab.module.ansteel.api.dto;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author dyk
+ * @date 2025年04月18日
+ */
+@Data
+public class PowerMaxDemandMainDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Schema(description = "id")
+    private String id;
+
+    @Schema(description = "发生时间")
+    private Date occurTime;
+
+    @Schema(description = "编号")
+    private String code;
+
+    @Schema(description = "名称")
+    private String name;
+
+    @Schema(description = "最大需量")
+    private BigDecimal maxDemand;
+
+    @Schema(description = "最大需量详情")
+    private List<PowerMaxdemandDetEntity> children;
+}
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerMaxDemandMainPageReqVO.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerMaxDemandMainPageReqVO.java
new file mode 100644
index 0000000..994628e
--- /dev/null
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/api/vo/PowerMaxDemandMainPageReqVO.java
@@ -0,0 +1,28 @@
+package com.iailab.module.ansteel.api.vo;
+
+import com.iailab.framework.common.pojo.PageParam;
+import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author dyk
+ * @date 2025年05月09日
+ */
+@Data
+public class PowerMaxDemandMainPageReqVO extends PageParam {
+
+    @Schema(description = "编号")
+    private String name;
+
+    @Schema(description = "名称")
+    private String code;
+}
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java
index 507a805..d9b5d45 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/dao/PowerMaxdemandMainDao.java
@@ -1,8 +1,15 @@
 package com.iailab.module.ansteel.power.dao;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.iailab.framework.common.dao.BaseDao;
+import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.framework.mybatis.core.mapper.BaseMapperX;
+import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX;
+import com.iailab.module.ansteel.api.dto.PowerMaxDemandMainDTO;
+import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO;
 import com.iailab.module.ansteel.power.entity.PowerMaxdemandMainEntity;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @author PanZhibao
@@ -10,5 +17,11 @@
  * @createTime 2025年05月07日
  */
 @Mapper
-public interface PowerMaxdemandMainDao extends BaseDao<PowerMaxdemandMainEntity> {
+public interface PowerMaxdemandMainDao extends BaseMapperX<PowerMaxdemandMainEntity> {
+    IPage<PowerMaxDemandMainDTO> getPage(IPage<PowerMaxdemandMainEntity> page, @Param("params") PowerMaxDemandMainPageReqVO reqVO);
+
+    default IPage<PowerMaxDemandMainDTO> selectPage(PowerMaxDemandMainPageReqVO params) {
+        return getPage(getPage(params), params);
+    }
+
 }
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandDetService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandDetService.java
index 416d38d..bee187e 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandDetService.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandDetService.java
@@ -1,6 +1,9 @@
 package com.iailab.module.ansteel.power.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity;
+
+import java.util.List;
 
 /**
  * @author PanZhibao
@@ -10,4 +13,6 @@
 public interface PowerMaxdemandDetService {
 
     void add(PowerMaxdemandDetEntity entity);
+
+    List<PowerMaxdemandDetEntity> selectListByRelIds(List<String> relIds);
 }
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandMainService.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandMainService.java
index c7f38c3..c7e3ccf 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandMainService.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/PowerMaxdemandMainService.java
@@ -1,9 +1,13 @@
 package com.iailab.module.ansteel.power.service;
 
+import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.module.ansteel.api.dto.PowerMaxDemandMainDTO;
+import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO;
 import com.iailab.module.ansteel.power.entity.PowerMaxdemandMainEntity;
 
 import java.math.BigDecimal;
 import java.util.Date;
+import java.util.Map;
 
 /**
  * @author PanZhibao
@@ -12,7 +16,10 @@
  */
 public interface PowerMaxdemandMainService {
 
+    PageResult<PowerMaxDemandMainDTO> page(PowerMaxDemandMainPageReqVO reqVO);
+
     String add(PowerMaxdemandMainEntity entity);
 
     BigDecimal getMax(String code, Date start, Date end);
+
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java
index 4ba3704..d3260a2 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandDetServiceImpl.java
@@ -1,5 +1,6 @@
 package com.iailab.module.ansteel.power.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.iailab.module.ansteel.power.dao.PowerMaxdemandDetDao;
 import com.iailab.module.ansteel.power.entity.PowerMaxdemandDetEntity;
 import com.iailab.module.ansteel.power.service.PowerMaxdemandDetService;
@@ -7,6 +8,8 @@
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.List;
 import java.util.UUID;
 
 /**
@@ -26,4 +29,10 @@
         entity.setId(UUID.randomUUID().toString());
         powerMaxdemandDetDao.insert(entity);
     }
+
+    @Override
+    public List<PowerMaxdemandDetEntity> selectListByRelIds(List<String> relIds) {
+        return powerMaxdemandDetDao.selectList(
+                new QueryWrapper<PowerMaxdemandDetEntity>().in("rel_id", relIds));
+    }
 }
\ No newline at end of file
diff --git a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandMainServiceImpl.java b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandMainServiceImpl.java
index 8bbf620..0120725 100644
--- a/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandMainServiceImpl.java
+++ b/ansteel-biz/src/main/java/com/iailab/module/ansteel/power/service/impl/PowerMaxdemandMainServiceImpl.java
@@ -1,20 +1,25 @@
 package com.iailab.module.ansteel.power.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.iailab.framework.common.constant.Constant;
+import com.iailab.framework.common.pojo.PageResult;
+import com.iailab.module.ansteel.api.dto.PowerMaxDemandMainDTO;
+import com.iailab.module.ansteel.api.vo.PowerMaxDemandMainPageReqVO;
 import com.iailab.module.ansteel.power.dao.PowerMaxdemandMainDao;
 import com.iailab.module.ansteel.power.entity.PowerMaxdemandMainEntity;
 import com.iailab.module.ansteel.power.service.PowerMaxdemandMainService;
+import com.iailab.module.model.api.mcs.dto.StAlarmAndSuggestRespVO;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 import java.util.stream.Collectors;
+
+import static org.bouncycastle.pqc.jcajce.provider.util.WrapUtil.getWrapper;
 
 /**
  * @author PanZhibao
@@ -29,6 +34,12 @@
     private PowerMaxdemandMainDao powerMaxdemandMainDao;
 
     @Override
+    public PageResult<PowerMaxDemandMainDTO> page(PowerMaxDemandMainPageReqVO reqVO) {
+        IPage<PowerMaxDemandMainDTO> page = powerMaxdemandMainDao.selectPage(reqVO);
+        return new PageResult<>(page.getRecords(), page.getTotal());
+    }
+
+    @Override
     public String add(PowerMaxdemandMainEntity entity) {
         entity.setId(UUID.randomUUID().toString());
         powerMaxdemandMainDao.insert(entity);

--
Gitblit v1.9.3