鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
4 天以前 0d7505f8301d2721edfa031d5f4ebf82b2d02a17
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 = "功率因数-电网拓扑")
@@ -673,7 +689,7 @@
            ApiPointValueQueryDTO pointValueQueryDTO = new ApiPointValueQueryDTO();
            pointValueQueryDTO.setStart(startTime);
            pointValueQueryDTO.setEnd(endTime);
            pointValueQueryDTO.setPointNo(powerNetDropdownEntity.getCurCos());
            pointValueQueryDTO.setPointNo(powerNetDropdownEntity.getExt1());
            List<ApiPointValueDTO> hisValue = dataPointApi.queryPointHistoryValue(pointValueQueryDTO);
            if (CollectionUtils.isEmpty(hisValue)) {
                log.info("hisValue is null");
@@ -681,14 +697,15 @@
            ApiPointValueDTO curValue = null;
            Collections.reverse(hisValue);
            for (ApiPointValueDTO valueDTO : hisValue) {
                curValue = valueDTO;
                if ((queryDto.getCurDemand().doubleValue() - valueDTO.getV()) <= 0.0001) {
                    curValue = valueDTO;
                    log.info("curValue is find");
                    break;
                }
            }
            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());
@@ -706,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);
@@ -1091,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));
    }
}