| | |
| | | import com.iailab.module.model.common.enums.IsWriteEnum; |
| | | import com.iailab.module.model.common.enums.ModelOutResultType; |
| | | import com.iailab.module.model.common.enums.OutResultType; |
| | | import com.iailab.module.model.enums.CommonConstant; |
| | | import com.iailab.module.model.mcs.pre.entity.DmModuleEntity; |
| | | import com.iailab.module.model.mcs.pre.service.DmModuleService; |
| | | import com.iailab.module.model.mcs.pre.service.MmPredictItemService; |
| | |
| | | import com.iailab.module.model.mdk.vo.PredictResultVO; |
| | | import com.iailab.module.model.mdk.vo.ScheduleResultVO; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.data.redis.core.RedisTemplate; |
| | | import org.springframework.util.CollectionUtils; |
| | |
| | | if (reqDTO.getModuleType() == null) { |
| | | throw new Exception("ModuleType不能为空"); |
| | | } |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(reqDTO.getPredictTime()); |
| | | calendar.set(Calendar.MILLISECOND, 0); |
| | | calendar.set(Calendar.SECOND, 0); |
| | | reqDTO.setPredictTime(calendar.getTime()); |
| | | |
| | | log.info("预测参数:" + JSON.toJSONString(reqDTO)); |
| | | MdkPredictModuleRespDTO result = new MdkPredictModuleRespDTO(); |
| | | result.setPredictTime(reqDTO.getPredictTime()); |
| | | result.setModuleType(reqDTO.getModuleType()); |
| | | List<DmModuleEntity> moduleList = dmModuleService.getModuleByModuleType(reqDTO.getModuleType()); |
| | | log.info("预测计算开始: " + System.currentTimeMillis()); |
| | | for (DmModuleEntity module : moduleList) { |
| | |
| | | log.info("reqDTO=" + JSON.toJSONString(reqDTO)); |
| | | ScheduleResultVO scheduleResult = scheduleModelHandler.doSchedule(reqDTO.getScheduleCode(), reqDTO.getScheduleTime(), |
| | | reqDTO.getDynamicDataLength(), reqDTO.getDynamicSettings()); |
| | | if(StringUtils.isBlank(scheduleResult.getResultCode()) || !CommonConstant.MDK_STATUS_100.equals(scheduleResult.getResultCode())) { |
| | | stScheduleSchemeService.updateTime(scheduleResult.getSchemeId(), scheduleResult.getScheduleTime(), CommonConstant.MDK_STATUS_500); |
| | | throw new Exception("模型调用失败!"); |
| | | } |
| | | resp.setStatusCode(scheduleResult.getResultCode()); |
| | | resp.setResult(scheduleResult.getResult()); |
| | | redisTemplate.opsForValue().set(catchKey, JSON.toJSONString(resp), offset, TimeUnit.SECONDS); |
| | |
| | | ModelOutResultType modelOutResultType = ModelOutResultType.getEumByCode(stScheduleModelOutDTO.getResultType()); |
| | | switch (modelOutResultType) { |
| | | case D: |
| | | value = (Double) resultValue; |
| | | if (resultValue instanceof Integer) { |
| | | value = ((Integer) resultValue).doubleValue(); |
| | | } else if (resultValue instanceof Double) { |
| | | value = (Double) resultValue; |
| | | } else { |
| | | System.out.println("resultValue is not a number"); |
| | | } |
| | | break; |
| | | case D1: |
| | | ArrayList<Double> doubleList = (ArrayList<Double>) resultValue; |