|  |  | 
 |  |  |      * @param device | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |     public static Map<String, Object> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip, String cableTag) { | 
 |  |  |     public static Map<String, Object> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip, String cableTag, String dbUserName, String dbPassword) { | 
 |  |  |         // 判断是否是影像测量仪 | 
 |  |  |         if (device.getManagementNumber().equals("JCZX-ZB-OP07001")) { | 
 |  |  |             if (device.getFileType().equals(".xlsx")) { | 
 |  |  | 
 |  |  |                 "&sampleCode=" + sampleCode + | 
 |  |  |                 "&mdbEntrustCode=" + device.getEntrustCode() + | 
 |  |  |                 "&mdbSampleCode=" + device.getSampleCode() + | 
 |  |  |                 "&dbFileName=" + device.getDbFileName(); | 
 |  |  |                 "&dbFileName=" + device.getDbFileName()+ | 
 |  |  |                 "&dbUserName=" + dbUserName + | 
 |  |  |                 "&dbPassword=" + dbPassword; | 
 |  |  |         System.out.println("请求的 URL: " + http); | 
 |  |  |         String result = null; | 
 |  |  |         try { | 
 |  |  | 
 |  |  |                     } | 
 |  |  |                     break; | 
 |  |  |                 case ".db": | 
 |  |  |                     map = analysisDb(data, userMap, device); | 
 |  |  |                     map = analysisDb1(data, userMap, device); | 
 |  |  | //                    map = analysisDb(data, userMap, device); | 
 |  |  |                     break; | 
 |  |  |                 case ".png": | 
 |  |  |                     map = readPngString(data, userMap, device); | 
 |  |  | 
 |  |  |  | 
 |  |  |         return "1"; | 
 |  |  |     } | 
 |  |  |     private static Map<String, Object> analysisDb1(String data, Map<String, List<DataConfig>> dataConfig, Device device) { | 
 |  |  |         JSONObject jsonObject = JSON.parseObject(data); | 
 |  |  |         Map<String, Object> map = new HashMap<>(); | 
 |  |  |         if (jsonObject.isEmpty()) { | 
 |  |  |             return map; | 
 |  |  |         } | 
 |  |  |         // 从 JSON 数据中提取 data 数组 | 
 |  |  |         JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString()); | 
 |  |  |         dataConfig.forEach((k, v) -> { | 
 |  |  |             AtomicInteger numberOfDataEntries = new AtomicInteger(); | 
 |  |  |             List<Object> list = new ArrayList<>(); | 
 |  |  |             for (int config = 0; config < v.size(); config++) { | 
 |  |  |                 String refery = getRefer(v.get(config).getRefery()); | 
 |  |  |                 for (int i = 0; i < dataList.size(); i++) { | 
 |  |  |                     JSONObject jsonObject1 = JSON.parseObject(dataList.get(i).toString()); | 
 |  |  |                     if (ObjectUtils.isNotEmpty(jsonObject1.get(refery))) { | 
 |  |  |                         numberOfDataEntries.addAndGet(1); | 
 |  |  |                         list.add(jsonObject1.get(refery)); | 
 |  |  |                     } | 
 |  |  | //                    Object o = jsonObject1.get(refery); | 
 |  |  | //                    if (ObjectUtils.isNotEmpty(o)) { | 
 |  |  | //                        numberOfDataEntries.addAndGet(1); | 
 |  |  | //                        list.add(o); | 
 |  |  | //                    } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             // 拼接数采配置 | 
 |  |  |             List<Object> result = new ArrayList<>(); | 
 |  |  |             for (int i = 0; i < numberOfDataEntries.get(); i++) { | 
 |  |  |                 StringBuilder aggregate = new StringBuilder(); | 
 |  |  |                 for (int j = 0; j < v.size(); j++) { | 
 |  |  |                     int index; | 
 |  |  |                     if (j == 0) { | 
 |  |  |                         index = i; | 
 |  |  |                     } else { | 
 |  |  |                         index = numberOfDataEntries.get() + i; | 
 |  |  |                     } | 
 |  |  |                     aggregate.append(list.get(index).toString()).append(","); | 
 |  |  |                 } | 
 |  |  |                 if (aggregate.length() > 0) { | 
 |  |  |                     aggregate.setLength(aggregate.length() - 1); | 
 |  |  |                 } | 
 |  |  |                 result.add(aggregate.toString()); | 
 |  |  |             } | 
 |  |  |             // 进行公式计算 | 
 |  |  |             Object resultValue = calculationFormula(result, v.get(0), k, device); | 
 |  |  |             map.put(k, resultValue); | 
 |  |  |         }); | 
 |  |  |         return map; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 需要通过X,Y轴定位 | 
 |  |  | 
 |  |  |      * @param dataConfig | 
 |  |  |      * @return | 
 |  |  |      */ | 
 |  |  |  | 
 |  |  |     private static Map<String, Object> analysisDb(String data, Map<String, List<DataConfig>> dataConfig, Device device) { | 
 |  |  |         JSONObject jsonObject = JSON.parseObject(data); | 
 |  |  |         Map<String, Object> map = new HashMap<>(); | 
 |  |  |         if (jsonObject.isEmpty()) { | 
 |  |  |             return map; | 
 |  |  |         } | 
 |  |  |         // 从 JSON 数据中提取 data 数组 | 
 |  |  |         JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString()); | 
 |  |  |         dataConfig.forEach((k, v) -> { | 
 |  |  |             AtomicInteger numberOfDataEntries = new AtomicInteger(); | 
 |  |  |             List<Object> list = new ArrayList<>(); | 
 |  |  |             for (int config = 0; config < v.size(); config++) { | 
 |  |  | //                String refery = v.get(config).getRefery(); | 
 |  |  |                 String refery = getRefer(v.get(config).getRefery()); | 
 |  |  |                 for (int i = 0; i < dataList.size(); i++) { | 
 |  |  |                     JSONObject jsonObject1 = JSON.parseObject(dataList.get(i).toString()); | 
 |  |  | 
 |  |  |                 continue; | 
 |  |  |             } | 
 |  |  |             // 最终结果 | 
 |  |  | //            List<Object> result = new ArrayList<>(); | 
 |  |  |             List<Object> result = new ArrayList<>(); | 
 |  |  |             // 通过\n将字符串分割为行 | 
 |  |  |             String[] aColumnY = data.replaceAll(" ", "").split("\n"); | 
 |  |  |             Integer end = null; | 
 |  |  | 
 |  |  |                             } | 
 |  |  |                             try { | 
 |  |  | //                                System.out.println("----------"); | 
 |  |  |                                 list.add(split1[j]); | 
 |  |  |                                 result.add(split1[j]); | 
 |  |  |  | 
 |  |  |                             } catch (Exception e) { | 
 |  |  |                                 throw new ErrorException(k + ":X轴定位超出!"); | 
 |  |  | 
 |  |  |                             if (aLineX[j].contains(referx)) { | 
 |  |  |                                 try { | 
 |  |  | //                                    System.out.println("77777777777777"); | 
 |  |  |                                     list.add(aLineX[j + x]); | 
 |  |  |                                     result.add(aLineX[j + x]); | 
 |  |  |                                 } catch (Exception e) { | 
 |  |  |                                     throw new ErrorException(k + ":X轴定位超出!"); | 
 |  |  |                                 } | 
 |  |  | 
 |  |  |                         if (aLineX[j].contains(referx)) { | 
 |  |  |                             try { | 
 |  |  | //                                System.out.println("4444444444444444"); | 
 |  |  |                                 list.add(aLineX[j + x]); | 
 |  |  |                                 result.add(aLineX[j + x]); | 
 |  |  |                             } catch (Exception e) { | 
 |  |  |                                 throw new ErrorException(k + ":X轴定位超出!"); | 
 |  |  |                             } | 
 |  |  | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             // 防止计算公式的时候出现:[null] 这种数据 | 
 |  |  | //            if (ObjectUtils.isNotEmpty(result)) { | 
 |  |  | //             防止计算公式的时候出现:[null] 这种数据 | 
 |  |  |             if (ObjectUtils.isNotEmpty(result)) { | 
 |  |  | //                String formatProcessing = getFormatProcessing(result); | 
 |  |  | //                list.addAll(result); | 
 |  |  | //            } | 
 |  |  |                 list.addAll(result); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |         return list; | 
 |  |  |     } |