鞍钢鲅鱼圈能源管控系统后端代码
潘志宝
2025-05-27 abf5e17d0b98e44b098874d207955e4c66a86e26
ansteel-biz/src/main/java/com/iailab/module/ansteel/api/controller/admin/PowerController.java
@@ -1,23 +1,16 @@
package com.iailab.module.ansteel.api.controller.admin;
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.ErrorCode;
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.PowerCapacitorHisPageReqVO;
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;
@@ -30,9 +23,7 @@
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;
@@ -98,6 +89,9 @@
    @Autowired
    private PowerMaxdemandDetService powerMaxdemandDetService;
    @Autowired
    private PowerPriceMainService powerPriceMainService;
    public static final String VALUE = "value";
@@ -334,28 +328,41 @@
    @GetMapping("/gen-status/list")
    @Operation(summary = "功率因数-发电机组实时状态")
    public CommonResult<List<PowerGenStatusDTO>> getPowerGenStatusList(@RequestParam Map<String, Object> params) {
        List<PowerGenStatusDTO> result = new ArrayList<>();
        List<PowerGenStatusEntity> list = powerGenStatusDaoService.list(params);
        List<PowerGenStatusDTO> result = ConvertUtils.sourceToTarget(list, PowerGenStatusDTO.class);
        if (CollectionUtils.isEmpty(result)) {
        if (CollectionUtils.isEmpty(list)) {
            return success(result);
        }
        for (PowerGenStatusDTO dto : result) {
        for (PowerGenStatusEntity entity : list) {
            PowerGenStatusDTO dto = new PowerGenStatusDTO();
            dto.setId(entity.getId());
            dto.setName(entity.getName());
            dto.setSort(entity.getSort());
            List<String> points = new ArrayList<>();
            if (StringUtils.isNotBlank(dto.getCurP())) {
                points.add(dto.getCurP());
            if (StringUtils.isNotBlank(entity.getCurP())) {
                points.add(entity.getCurP());
            }
            if (StringUtils.isNotBlank(dto.getCurQ())) {
                points.add(dto.getCurQ());
            if (StringUtils.isNotBlank(entity.getCurQ())) {
                points.add(entity.getCurQ());
            }
            if (StringUtils.isNotBlank(entity.getCurCos())) {
                points.add(entity.getCurCos());
            }
            if (!CollectionUtils.isEmpty(points)) {
                Map<String, Object> pointsRealValue = dataPointApi.queryPointsRealValue(points);
                if (pointsRealValue.get(dto.getCurP()) != null) {
                    dto.setCurP(pointsRealValue.get(dto.getCurP()).toString());
                if (pointsRealValue.get(entity.getCurP()) != null) {
                    dto.setCurP(new BigDecimal(pointsRealValue.get(entity.getCurP()).toString()));
                }
                if (pointsRealValue.get(dto.getCurQ()) != null) {
                    dto.setCurQ(pointsRealValue.get(dto.getCurQ()).toString());
                if (pointsRealValue.get(entity.getCurQ()) != null) {
                    dto.setCurQ(new BigDecimal(pointsRealValue.get(entity.getCurQ()).toString()));
                }
                if (pointsRealValue.get(entity.getCurCos()) != null) {
                    dto.setCurCos(new BigDecimal(pointsRealValue.get(entity.getCurCos()).toString()));
                }
            }
            result.add(dto);
        }
        return success(result);
@@ -531,6 +538,21 @@
        return success(ConvertUtils.sourceToTarget(list, PowerCapacitorHisDTO.class));
    }
    @PostMapping("/capacitor-his/page")
    @Operation(summary = "功率因数-电容器投退历史(分页)")
    public CommonResult<PageResult<PowerCapacitorHisDTO>> getPowerCapacitorHisPage(@RequestBody PowerCapacitorHisPageReqVO reqVO) {
        if (StringUtils.isBlank(reqVO.getStatusId())) {
            return error(GlobalErrorCodeConstants.BAD_REQUEST);
        }
        List<PowerCapacitorDetEntity> detList = powerCapacitorDetService.list(reqVO.getStatusId());
        List<String> detIds = detList.stream().map(PowerCapacitorDetEntity::getId).collect(Collectors.toList());
        reqVO.setDetIdList(detIds);
        PageResult<PowerCapacitorHisEntity> data = powerCapacitorHisService.page(reqVO);
        return success(BeanUtils.toBean(data, PowerCapacitorHisDTO.class));
    }
    @GetMapping("/control-main/list")
    @Operation(summary = "功率因数-管控变电站列表(已废弃)")
    public CommonResult<List<PowerControlMainDTO>> getPowerControlMainList(@RequestParam Map<String, Object> params) {
@@ -622,7 +644,7 @@
            }
            if (!StringUtils.isEmpty(entity.getMaxDemand())) {
                ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO();
                /*ApiPointValueQueryDTO apiPointValueQueryDTO = new ApiPointValueQueryDTO();
                apiPointValueQueryDTO.setStart(start);
                apiPointValueQueryDTO.setEnd(end);
                apiPointValueQueryDTO.setPointNo(entity.getMaxDemand());
@@ -630,6 +652,11 @@
                if (maxValue != null) {
                    demandDTO.setMaxDemand(new BigDecimal(maxValue.get(VALUE).toString()));
                    demandDTO.setOccurTime(DateUtils.parse( maxValue.get(TIME).toString(), DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND));
                }*/
                PowerMaxdemandMainEntity maxdemandMainEntity = powerMaxDemandMainService.getMonthMax(entity.getCode(), start);
                if (maxdemandMainEntity != null) {
                    demandDTO.setMaxDemand(maxdemandMainEntity.getMaxDemand());
                    demandDTO.setOccurTime(maxdemandMainEntity.getOccurTime());
                }
            }
            result.add(demandDTO);
@@ -1125,7 +1152,7 @@
            apiPointValueQueryDTO1.setEnd(new Date());
            apiPointValueQueryDTO1.setPointNo(pointNo);
            Map<String, Object> maxV = dataPointApi.queryPointMaxValueRange(apiPointValueQueryDTO1);
            Map<String, Object> minV = dataPointApi.queryPointMaxValueRange(apiPointValueQueryDTO1);
            Map<String, Object> minV = dataPointApi.queryPointMinValueRange(apiPointValueQueryDTO1);
            if (maxV != null && maxV.containsKey(pointNo)) {
                powerHistoryDTO.setMax(new BigDecimal(maxV.get(pointNo).toString()));
            }
@@ -1197,7 +1224,7 @@
    @PostMapping("/power-maxdemand/det-list")
    @Operation(summary = "负荷移植-最大需量发生记录详情")
    public CommonResult<List<PowerMaxdemandDetDTO>> getPowerMaxDemandDetList(@RequestParam Map<String, Object> params) {
    public CommonResult<List<PowerMaxdemandDetDTO>> getPowerMaxDemandDetList(@RequestBody Map<String, Object> params) {
        String relId = (String) params.get("relId");
        if (StringUtils.isBlank(relId)) {
            return error(GlobalErrorCodeConstants.BAD_REQUEST);
@@ -1205,4 +1232,26 @@
        List<PowerMaxdemandDetEntity> list = powerMaxdemandDetService.selectListByRelId(relId);
        return success(ConvertUtils.sourceToTarget(list, PowerMaxdemandDetDTO.class));
    }
    @GetMapping("/power-price/list")
    @Operation(summary = "获取峰谷平电价信息")
    public CommonResult<List<PowerPriceMainDTO>> getPowerPriceList(@RequestParam Map<String, Object> params) {
        List<PowerPriceMainDTO> result = powerPriceMainService.list(params);
        return success(result);
    }
    @PostMapping("/power-price/save")
    @Operation(summary = "保存峰谷平电价信息")
    public CommonResult<Boolean> savePowerPriceList(@RequestBody PowerPriceMainDTO mainDTO) {
        return success(powerPriceMainService.save(mainDTO));
    }
    @PostMapping("/power-price/update")
    @Operation(summary = "修改峰谷平电价信息")
    public CommonResult<Boolean> updatePowerPriceList(@RequestBody PowerPriceMainDTO mainDTO) {
        if(StringUtils.isBlank(mainDTO.getId())) {
            return error(GlobalErrorCodeConstants.BAD_REQUEST);
        }
        return success(powerPriceMainService.update(mainDTO));
    }
}