潘志宝
2025-03-19 f2d87e1e765f525c63b742943c8b865032db82df
模型调整
已添加1个文件
已修改6个文件
128 ■■■■■ 文件已修改
iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/enums/AdjustConfigStatusEnum.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StAdjustConfigDetService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StAdjustConfigService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StAdjustConfigServiceImpl.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
@@ -126,9 +126,6 @@
    @GetMapping(PREFIX + "/schedule/model/setting/update")
    @Operation(summary = "修改调度模型配置")
    Boolean updateScheduleModelSetting(@RequestParam("modelCode") String modelCode, @RequestParam("key") String key, @RequestParam("value") String value);
    @GetMapping(PREFIX + "/schedule/adjust/config-list")
    @Operation(summary = "获取模拟调整配置")
    List<StAdjustConfigDetDTO> getAdjustConfigListByModelId(@RequestParam("modelId") String modelId);
    @GetMapping(PREFIX + "/alarm-config/update")
    @Operation(summary = "修改预警配置")
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -354,6 +354,7 @@
        return result;
    }
    @Override
    public PreDataSingleChartRespVO getPreDataSingleChart(PreDataSingleChartReqVO reqVO) {
        PreDataSingleChartRespVO result = new PreDataSingleChartRespVO();
@@ -819,12 +820,6 @@
        StScheduleModelEntity model = stScheduleModelService.getByModelCode(modelCode);
        stScheduleModelSettingService.updateByModelIdAndKey(model.getId(), key, value);
        return true;
    }
    @Override
    public List<StAdjustConfigDetDTO> getAdjustConfigListByModelId(String modelId) {
        List<StAdjustConfigDetEntity> list = stAdjustConfigService.getDetByModelId(modelId);
        return ConvertUtils.sourceToTarget(list, StAdjustConfigDetDTO.class);
    }
    @Override
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java
@@ -1,6 +1,7 @@
package com.iailab.module.model.api;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.iailab.module.data.api.point.DataPointApi;
import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO;
import com.iailab.module.model.api.mcs.dto.StScheduleModelOutDTO;
@@ -14,6 +15,7 @@
import com.iailab.module.model.mcs.pre.service.DmModuleService;
import com.iailab.module.model.mcs.pre.service.MmPredictItemService;
import com.iailab.module.model.mcs.sche.entity.StAdjustConfigDetEntity;
import com.iailab.module.model.mcs.sche.entity.StAdjustConfigEntity;
import com.iailab.module.model.mcs.sche.entity.StScheduleSchemeEntity;
import com.iailab.module.model.mcs.sche.service.StAdjustConfigService;
import com.iailab.module.model.mcs.sche.service.StScheduleModelOutService;
@@ -196,30 +198,47 @@
    @Override
    public Boolean predictSimAdjust(MdkPredictSimAdjustReqDTO reqDTO) {
        log.info("开始模拟调整");
        log.info("ModelResult:" + JSONObject.toJSONString(reqDTO.getModelResult()));
        StScheduleSchemeEntity scheduleScheme = stScheduleSchemeService.getByCode(reqDTO.getScheduleCode());
        List<StAdjustConfigDetEntity> detList = stAdjustConfigService.getDetByModelId(scheduleScheme.getModelId());
        if (CollectionUtils.isEmpty(detList)) {
        Map<StAdjustConfigEntity, List<StAdjustConfigDetEntity>> configMap = stAdjustConfigService.getAdjustConfigMap(scheduleScheme.getModelId());
        if (CollectionUtils.isEmpty(configMap)) {
            return Boolean.FALSE;
        }
        for (StAdjustConfigDetEntity det : detList) {
            ItemVO predictItem = mmPredictItemService.getItemById(det.getPredictItemId());
            List<StAdjustDeviationDTO> deviationList = new ArrayList<>();
            switch (PredictItemTypeEnum.getEumById(det.getItemTypeId())) {
                case NormalItem:
                    double adjustValue = new BigDecimal(reqDTO.getModelResult().get(det.getOutKey()).toString()).doubleValue();
                    StAdjustDeviationDTO deviationItem = new StAdjustDeviationDTO();
                    deviationItem.setPortIdx(det.getModelParamPortOrder());
                    deviationItem.setParamIdx(det.getModelParamPortOrder());
                    deviationItem.setValue(adjustValue);
                    deviationList.add(deviationItem);
                    break;
                case MergeItem:
                    break;
                default:
                    break;
        for (Map.Entry<StAdjustConfigEntity, List<StAdjustConfigDetEntity>> entry : configMap.entrySet()) {
            log.info("AdjustConfigID=" + entry.getKey().getId());
            if (CollectionUtils.isEmpty(entry.getValue())) {
                continue;
            }
            // 开始预测
            predictModuleHandler.predictAdjust(predictItem, reqDTO.getPredictTime(), deviationList, scheduleScheme.getModelId(), det.getConfigId());
            String firstOutKey = entry.getValue().get(0).getOutKey();
            BigDecimal firstAdjustValue = new BigDecimal(reqDTO.getModelResult().get(firstOutKey.trim()).toString().trim());
            if (BigDecimal.ZERO.compareTo(firstAdjustValue) == 0) {
                log.info("adjustValue = ZERO");
                continue;
            }
            for (StAdjustConfigDetEntity det : entry.getValue()) {
                ItemVO predictItem = mmPredictItemService.getItemById(det.getPredictItemId());
                List<StAdjustDeviationDTO> deviationList = new ArrayList<>();
                switch (PredictItemTypeEnum.getEumById(det.getItemTypeId())) {
                    case NormalItem:
                        double adjustValue = 0;
                        if (StringUtils.isNotBlank(det.getOutKey().trim())) {
                            adjustValue = new BigDecimal(reqDTO.getModelResult().get(det.getOutKey().trim()).toString()).doubleValue();
                        }
                        StAdjustDeviationDTO deviationItem = new StAdjustDeviationDTO();
                        deviationItem.setPortIdx(det.getModelParamPortOrder() == null ? 0 : det.getModelParamPortOrder());
                        deviationItem.setParamIdx(det.getModelParamOrder() == null ? 0 : det.getModelParamOrder());
                        deviationItem.setValue(adjustValue);
                        deviationList.add(deviationItem);
                        break;
                    case MergeItem:
                        break;
                    default:
                        break;
                }
                // 开始预测
                predictModuleHandler.predictAdjust(predictItem, reqDTO.getPredictTime(), deviationList, scheduleScheme.getModelId(), det.getConfigId());
            }
        }
        return Boolean.TRUE;
    }
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/common/enums/AdjustConfigStatusEnum.java
对比新文件
@@ -0,0 +1,20 @@
package com.iailab.module.model.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
 * @author PanZhibao
 * @Description
 * @createTime 2025年03月18日
 */
@Getter
@AllArgsConstructor
public enum AdjustConfigStatusEnum {
    ENABLE(1),
    DISABLE(0);
    private Integer code;
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StAdjustConfigDetService.java
@@ -2,8 +2,10 @@
import com.iailab.framework.common.service.BaseService;
import com.iailab.module.model.mcs.sche.entity.StAdjustConfigDetEntity;
import com.iailab.module.model.mcs.sche.entity.StAdjustConfigEntity;
import java.util.List;
import java.util.Map;
/**
 * @author PanZhibao
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/StAdjustConfigService.java
@@ -19,10 +19,6 @@
 */
public interface StAdjustConfigService extends BaseService<StAdjustConfigEntity> {
    StAdjustConfigEntity getByModelId(String modelId);
    List<StAdjustConfigDetEntity> getDetByModelId(String modelId);
    PageResult<StAdjustConfigRespVO> page(StAdjustConfigPageReqVO reqVO);
    void create(StAdjustConfigSaveReqVO createReqVO);
@@ -35,4 +31,6 @@
    List<StAdjustConfigDTO> list(Map<String, Object> params);
    Map<StAdjustConfigEntity, List<StAdjustConfigDetEntity>> getAdjustConfigMap(String modelId);
}
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mcs/sche/service/impl/StAdjustConfigServiceImpl.java
@@ -9,6 +9,7 @@
import com.iailab.framework.common.util.object.BeanUtils;
import com.iailab.framework.common.util.object.ConvertUtils;
import com.iailab.module.model.api.mcs.dto.StAdjustConfigDTO;
import com.iailab.module.model.common.enums.AdjustConfigStatusEnum;
import com.iailab.module.model.mcs.pre.entity.MmItemOutputEntity;
import com.iailab.module.model.mcs.sche.dao.StAdjustConfigDao;
import com.iailab.module.model.mcs.sche.entity.StAdjustConfigDetEntity;
@@ -21,10 +22,9 @@
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.*;
/**
 * @author PanZhibao
@@ -87,16 +87,21 @@
        return ConvertUtils.sourceToTarget(list, StAdjustConfigDTO.class);
    }
    public StAdjustConfigEntity getByModelId(String modelId) {
        return baseDao.selectOne("schedule_model_id", modelId,"status",1);
    }
    public List<StAdjustConfigDetEntity> getDetByModelId(String modelId) {
        StAdjustConfigEntity configEntity = getByModelId(modelId);
        if (null == configEntity) {
            return null;
    @Override
    public Map<StAdjustConfigEntity, List<StAdjustConfigDetEntity>> getAdjustConfigMap(String modelId) {
        Map<StAdjustConfigEntity, List<StAdjustConfigDetEntity>> result = new HashMap<>();
        QueryWrapper<StAdjustConfigEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("schedule_model_id", modelId)
                .eq("status", AdjustConfigStatusEnum.ENABLE.getCode());
        List<StAdjustConfigEntity> configList =  baseDao.selectList(queryWrapper);
        if (!CollectionUtils.isEmpty(configList)) {
            return result;
        }
        return stAdjustConfigDetService.getListByConfigId(configEntity.getId());
        for (StAdjustConfigEntity entity : configList) {
            List<StAdjustConfigDetEntity> detList = stAdjustConfigDetService.getListByConfigId(entity.getId());
            result.put(entity, detList);
        }
        return result;
    }
}