| | |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * @author PanZhibao |
| | |
| | | private SampleConstructor sampleConstructor; |
| | | |
| | | @Override |
| | | public ScheduleResultVO doSchedule(String schemeCode, Date scheduleTime) throws ModelInvokeException { |
| | | public ScheduleResultVO doSchedule(String schemeCode, Date scheduleTime, Map<Integer, Integer> dynamicDataLength, |
| | | Map<String, String> dynamicSettings) throws ModelInvokeException { |
| | | ScheduleResultVO scheduleResult = new ScheduleResultVO(); |
| | | StScheduleSchemeEntity scheduleScheme = stScheduleSchemeService.getByCode(schemeCode); |
| | | StScheduleModelEntity scheduleModel = stScheduleModelService.get(scheduleScheme.getModelId()); |
| | |
| | | try { |
| | | //1.根据模型id构造模型输入样本 |
| | | long now = System.currentTimeMillis(); |
| | | List<SampleData> sampleDataList = sampleConstructor.constructSample(TypeA.Schedule.name(), modelId, scheduleTime,scheduleScheme.getName()); |
| | | List<SampleData> sampleDataList = sampleConstructor.constructSample(TypeA.Schedule.name(), modelId, scheduleTime, |
| | | scheduleScheme.getName(), dynamicDataLength); |
| | | log.info("构造模型输入样本消耗时长:" + (System.currentTimeMillis() - now) / 1000 + "秒"); |
| | | if (CollectionUtils.isEmpty(sampleDataList)) { |
| | | log.info("调度模型构造样本失败,schemeCode=" + schemeCode); |
| | |
| | | } |
| | | |
| | | IAILModel newModelBean = composeNewModelBean(scheduleModel); |
| | | HashMap<String, Object> settings = getScheduleSettingsByModelId(modelId); |
| | | HashMap<String, Object> settings = getScheduleSettingsByModelId(modelId, dynamicSettings); |
| | | if (settings == null) { |
| | | log.error("模型setting不存在,modelId=" + modelId); |
| | | return null; |
| | |
| | | * 根据模型id获取参数map |
| | | * |
| | | * @param modelId |
| | | * @param dynamicSettings |
| | | * @return |
| | | */ |
| | | private HashMap<String, Object> getScheduleSettingsByModelId(String modelId) { |
| | | private HashMap<String, Object> getScheduleSettingsByModelId(String modelId, Map<String, String> dynamicSettings) { |
| | | List<StScheduleModelSettingEntity> list = stScheduleModelSettingService.getByModelId(modelId); |
| | | if (CollectionUtils.isEmpty(list)) { |
| | | return null; |
| | | } |
| | | //如果输入参数中包含setting,则覆盖默认的setting |
| | | if (!CollectionUtils.isEmpty(dynamicSettings)){ |
| | | list.forEach(setting -> { |
| | | if (dynamicSettings.containsKey(setting.getKey())) { |
| | | setting.setValue(dynamicSettings.get(setting.getKey())); |
| | | } |
| | | }); |
| | | } |
| | | HashMap<String, Object> result = new HashMap<>(); |
| | | for (StScheduleModelSettingEntity entry : list) { |
| | | String valueType = entry.getValuetype().trim(); //去除两端空格 |