dongyukun
2025-02-07 7628fc1cb5ca375c01e53ba90344fa871e31db40
iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/MdkApiImpl.java
@@ -98,15 +98,8 @@
            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) {
@@ -249,13 +242,19 @@
    @Override
    public MdkScheduleRespDTO runSchedule(MdkScheduleReqDTO reqDTO) {
        MdkScheduleRespDTO resp = new MdkScheduleRespDTO();
        if (reqDTO.getScheduleTime() == null) {
            Calendar calendar = Calendar.getInstance();
            calendar.set(Calendar.MILLISECOND, 0);
            calendar.set(Calendar.SECOND, 0);
            reqDTO.setScheduleTime(calendar.getTime());
        }
        resp.setScheduleCode(reqDTO.getScheduleCode());
        resp.setScheduleTime(reqDTO.getScheduleTime());
        String catchKey = "ScheduleResult:" + reqDTO.getScheduleCode();
        try {
            if (redisTemplate.hasKey(catchKey)) {
                log.info("查找调度结果缓存: " + catchKey);
                return JSON.parseObject(JSONObject.toJSONString(redisTemplate.opsForValue().get(catchKey)), MdkScheduleRespDTO.class);
                return JSON.parseObject(redisTemplate.opsForValue().get(catchKey).toString(), MdkScheduleRespDTO.class);
            }
            log.info("调度计算开始: " + System.currentTimeMillis());
            log.info("reqDTO=" + JSON.toJSONString(reqDTO));
@@ -296,7 +295,13 @@
                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;