| | |
| | | package com.iailab.module.model.api; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.alibaba.fastjson.JSONArray; |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.iailab.module.data.api.point.DataPointApi; |
| | | import com.iailab.module.data.api.point.dto.ApiPointValueWriteDTO; |
| | |
| | | ModelOutResultType modelOutResultType = ModelOutResultType.getEumByCode(stScheduleModelOutDTO.getResultType()); |
| | | switch (modelOutResultType) { |
| | | case D: |
| | | 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"); |
| | | } |
| | | value = Double.valueOf(resultValue.toString()); |
| | | break; |
| | | case D1: |
| | | /*ArrayList<Double> doubleList = (ArrayList<Double>) resultValue; |
| | | double[] array1 = new double[doubleList.size()]; |
| | | for (int i = 0; i < doubleList.size(); i++) { |
| | | array1[i] = doubleList.get(i); |
| | | }*/ |
| | | |
| | | double[] array1 = (double[]) resultValue; |
| | | if (stScheduleModelOutDTO.getResultPort() < array1.length) { |
| | | value = array1[stScheduleModelOutDTO.getResultPort()]; |
| | | JSONArray jsonArray = JSON.parseArray(resultValue.toString()); |
| | | if (stScheduleModelOutDTO.getResultPort() < jsonArray.size()) { |
| | | value = jsonArray.getDoubleValue(stScheduleModelOutDTO.getResultPort()); |
| | | } else { |
| | | log.error(result.get(stScheduleModelOutDTO.getResultKey()) + "下角标超限"); |
| | | } |
| | | break; |
| | | case D2: |
| | | // ArrayList<ArrayList<Double>> doubleListList = (ArrayList<ArrayList<Double>>) resultValue; |
| | | // double[][] array2 = new double[doubleListList.size()][]; |
| | | // double[][] array2 = (double[][]) resultValue; |
| | | /*for (int i = 0; i < doubleListList.size(); i++) { |
| | | ArrayList<Double> doubleList2 = doubleListList.get(i); |
| | | array2[i] = new double[doubleList2.size()]; |
| | | for (int j = 0; j < doubleList2.size(); j++) { |
| | | array2[i][j] = doubleList2.get(j); |
| | | } |
| | | }*/ |
| | | double[][] array2 = (double[][]) resultValue; |
| | | if (stScheduleModelOutDTO.getResultPort() < array2.length && stScheduleModelOutDTO.getResultIndex() < array2[stScheduleModelOutDTO.getResultPort()].length) { |
| | | value = array2[stScheduleModelOutDTO.getResultPort()][stScheduleModelOutDTO.getResultIndex()]; |
| | | JSONArray json2Array = JSON.parseArray(resultValue.toString()); |
| | | if (stScheduleModelOutDTO.getResultPort() < json2Array.size() && stScheduleModelOutDTO.getResultIndex() < json2Array.getJSONArray(stScheduleModelOutDTO.getResultPort()).size()) { |
| | | value = json2Array.getJSONArray(stScheduleModelOutDTO.getResultPort()).getDoubleValue(stScheduleModelOutDTO.getResultIndex()); |
| | | } else { |
| | | log.error(result.get(stScheduleModelOutDTO.getResultKey()) + "下标超限"); |
| | | } |
| | |
| | | } |
| | | } |
| | | } catch (Exception ex) { |
| | | log.error("下发数据异常"); |
| | | ex.printStackTrace(); |
| | | log.error("下发数据异常",ex); |
| | | } |
| | | return true; |
| | | } |