Jay
2025-02-06 e9506a872eb087da15a3ad317836c26bd8f0356c
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -26,14 +26,14 @@
import com.iailab.module.model.mcs.pre.vo.MmItemOutputRespVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictAlarmMessageSaveReqVO;
import com.iailab.module.model.mcs.pre.vo.MmPredictItemRespVO;
import com.iailab.module.model.mcs.sche.entity.StScheduleModelEntity;
import com.iailab.module.model.mcs.sche.entity.StScheduleSuggestEntity;
import com.iailab.module.model.mcs.sche.service.StScheduleRecordService;
import com.iailab.module.model.mcs.sche.service.StScheduleSchemeService;
import com.iailab.module.model.mcs.sche.service.StScheduleSuggestService;
import com.iailab.module.model.mcs.sche.service.*;
import com.iailab.module.model.mcs.sche.vo.StScheduleSuggestSaveReqVO;
import com.iailab.module.model.mdk.vo.ItemVO;
import com.iailab.module.model.mpk.service.ChartParamService;
import com.iailab.module.model.mpk.service.ChartService;
import com.iailab.module.model.mpk.service.ElectricityPriceSegmentedService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -102,6 +102,16 @@
    @Autowired
    private InfluxDBService influxDBService;
    @Autowired
    private ElectricityPriceSegmentedService electricityPriceSegmentedService;
    @Autowired
    private StScheduleModelService stScheduleModelService;
    @Autowired
    private StScheduleModelSettingService stScheduleModelSettingService;
    private int HOUR_MINS = 60;
@@ -405,6 +415,29 @@
            }
        }
        try {
            String adjValuePoint = chartParams.get(CommonConstant.ADJ_VALUE_POINT);
            if (StringUtils.isNotBlank(adjValuePoint)) {
                List<String> pointNos = new ArrayList<>();
                pointNos.add(adjValuePoint);
                Map<String, Object> adjValue = dataPointApi.queryPointsRealValue(pointNos);
                dataView.setAdjValue(new BigDecimal(adjValue.get(adjValuePoint).toString()));
            }
            String adjValueArrPoint = chartParams.get(CommonConstant.ADJ_VALUE_ARR_POINT);
            if (StringUtils.isNotBlank(adjValueArrPoint)) {
                String[] adjPointArr = adjValueArrPoint.split(",");
                Map<String, Object> adjValue = dataPointApi.queryPointsRealValue(Arrays.asList(adjPointArr));
                BigDecimal[] adjValueArr = new BigDecimal[adjPointArr.length];
                for(int i = 0; i < adjPointArr.length; i++) {
                    adjValueArr[i] = new BigDecimal(adjValue.get(adjPointArr[i]).toString());
                }
                dataView.setAdjValueArr(adjValueArr);
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        result.setPredictTime(predictTime);
        result.setStartTime(startTime);
        result.setEndTime(endTime);
@@ -572,8 +605,8 @@
    }
    @Override
    public List<ScheduleSuggestRespDTO> listScheduleSuggest(Map<String, Object> params) {
        return Collections.emptyList();
    public List<ScheduleSuggestRespDTO> listScheduleSuggest(ScheduleSuggestReqDTO vo) {
        return stScheduleSuggestService.list(vo);
    }
    @Override
@@ -689,7 +722,7 @@
            reqVO.setStartTime(predictItem.getLastTime());
        }
        // 默认结束时间:运行时间+预测长度*粒度
        if (null == reqVO.getStartTime()) {
        if (null == reqVO.getEndTime()) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(predictItem.getLastTime());
            calendar.add(Calendar.SECOND,predictItem.getPredictLength() * predictItem.getGranularity());
@@ -728,6 +761,25 @@
        return result;
    }
    @Override
    public List<ElectricityPriceSegmentedDTO> getElectricityPriceList(String year, String time) {
        return electricityPriceSegmentedService.getElectricityPriceList(year, time);
    }
    @Override
    public Boolean createElectricityPrice(List<ElectricityPriceSegmentedDTO> list) {
        electricityPriceSegmentedService.deleteByITimeId(list.get(0).getITimeId());
        list.forEach(dto -> electricityPriceSegmentedService.create(dto));
        return true;
    }
    @Override
    public Boolean updateScheduleModelSetting(String modelCode, String key, String value) {
        StScheduleModelEntity model = stScheduleModelService.getByModelCode(modelCode);
        stScheduleModelSettingService.updateByModelIdAndKey(model.getId(), key, value);
        return true;
    }
    /**
     * 计算功率因数 p²/(根号:p²+Q²)
     **/