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