| | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; |
| | | import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
| | | import com.ruoyi.common.core.domain.Result; |
| | | import com.ruoyi.common.utils.RedisUtil; |
| | | import com.ruoyi.device.constant.DCResistanceMqttConstants; |
| | | import com.ruoyi.device.dto.DeviceCollectionDto; |
| | | import com.ruoyi.device.mapper.CollectBridgeMapper; |
| | | import com.ruoyi.device.pojo.DataConfig; |
| | | import com.ruoyi.device.pojo.Device; |
| | | import com.ruoyi.framework.exception.ErrorException; |
| | |
| | | import java.util.regex.Pattern; |
| | | import java.util.stream.Collectors; |
| | | |
| | | import static com.ruoyi.framework.datasource.DynamicDataSourceContextHolder.log; |
| | | |
| | | public class DataAcquisition { |
| | | |
| | | private static final String HTTP = "http://"; |
| | |
| | | |
| | | public static final String frequency = "frequency"; |
| | | |
| | | private CollectBridgeMapper collectBridgeMapper; |
| | | |
| | | /** |
| | | * 数采入口 |
| | | * |
| | |
| | | * @param device |
| | | * @return |
| | | */ |
| | | public static Map<String, Object> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip, String cableTag, String dbUserName, String dbPassword) { |
| | | public static Map<String, Object> dataAcquisitionEntrance(List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip, String cableTag, String dbUserName, String dbPassword,String dbTable) { |
| | | // 判断是否是影像测量仪 |
| | | if (device.getManagementNumber().equals("JCZX-ZB-OP07001")) { |
| | | if (device.getFileType().equals(".xlsx")) { |
| | |
| | | * mdbEntrustCode mdb文件需要:委托编号字段 为什么没有去这个mdb前缀呢?因为已经给客户的部分电脑上安装了采集器,而用户不接受重新安装采集器,所以就没有去除 |
| | | * mdbSampleCode mdb文件需要:样品编号字段 |
| | | */ |
| | | String mdbEntrustCode = StringUtils.isNotBlank(device.getEntrustCode())?device.getEntrustCode():""; |
| | | String mdbSampleCode = StringUtils.isNotBlank(device.getSampleCode())?device.getSampleCode():""; |
| | | String dbFileName = StringUtils.isNotBlank(device.getDbFileName())?device.getDbFileName():""; |
| | | String http = HTTP + ip + GETFILE + |
| | | "?filePath=" + device.getCollectUrl() + |
| | | "&fileExtension=" + device.getFileType() + |
| | | "&entrustCode=" + entrustCode + |
| | | "&sampleCode=" + sampleCode + |
| | | "&mdbEntrustCode=" + device.getEntrustCode() + |
| | | "&mdbSampleCode=" + device.getSampleCode() + |
| | | "&dbFileName=" + device.getDbFileName()+ |
| | | "&mdbEntrustCode=" + mdbEntrustCode + |
| | | "&mdbSampleCode=" + mdbSampleCode + |
| | | "&dbFileName=" + dbFileName + |
| | | "&dbUserName=" + dbUserName + |
| | | "&dbPassword=" + dbPassword; |
| | | "&dbPassword=" + dbPassword + |
| | | "&dbTable=" + dbTable; |
| | | System.out.println("请求的 URL: " + http); |
| | | String result = null; |
| | | try { |
| | | result = HttpUtil.get(http); |
| | | System.out.println("请求返回结果: " + result); |
| | | } catch (IORuntimeException e) { |
| | | e.printStackTrace(); |
| | | throw new ErrorException("所在电脑未安装或未启动:LIMS文件采集器!"); |
| | |
| | | throw new ErrorException(jsonObject.get("msg") + ""); |
| | | } |
| | | } else { |
| | | String data = jsonObject.get("data") + ""; |
| | | String data = jsonObject.get("data") + ""; |
| | | // 考虑到一个检测项可能会存在多个数采配置,所以需要进行分组 |
| | | Map<String, List<DataConfig>> userMap = dataConfig.stream() |
| | | .peek(i -> { |
| | |
| | | // map = analysisDb1(data, userMap, device); |
| | | map = analysisDb(data, userMap, device); |
| | | break; |
| | | case ".mysql": |
| | | // map = analysisDb1(data, userMap, device); |
| | | map = analysisDb(data, userMap, device); |
| | | break; |
| | | case ".png": |
| | | map = readPngString(data, userMap, device); |
| | | break; |
| | | // case ".mqtt": |
| | | // map = getActualResistanceValueAsMap(userMap, device); |
| | | // break; |
| | | default: |
| | | map = null; |
| | | break; |
| | |
| | | return map; |
| | | } |
| | | } |
| | | |
| | | |
| | | public static Map<String, Object> createFrequency(String entrustCode, String sampleCode, Map<String, Object> map) { |
| | | Set<String> set = new LinkedHashSet<>(); |
| | |
| | | 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)) { |
| | | // if (ObjectUtils.isNotEmpty(jsonObject1.get(refery))) { |
| | | // numberOfDataEntries.addAndGet(1); |
| | | // list.add(o); |
| | | // list.add(jsonObject1.get(refery)); |
| | | // } |
| | | Object o = jsonObject1.get(refery); |
| | | if (ObjectUtils.isNotEmpty(o)) { |
| | | numberOfDataEntries.addAndGet(1); |
| | | list.add(o); |
| | | } |
| | | } |
| | | } |
| | | // 拼接数采配置 |
| | |
| | | * @param dataConfig 存储公式的对象 |
| | | * @return |
| | | */ |
| | | private static Object calculationFormula(List<Object> list, DataConfig dataConfig, String insProductItem, Device device) { |
| | | public static Object calculationFormula(List<Object> list, DataConfig dataConfig, String insProductItem, Device device) { |
| | | if (list.size() == 0) { |
| | | Map<String, Object> hashMap = new HashMap<>(); |
| | | hashMap.put("equipName", device.getDeviceName()); |
| | |
| | | listResult.addAll(list); |
| | | } |
| | | // 为了给前端做数据区分 |
| | | if (listResult.size() > 1) { |
| | | if (listResult.size() >= 1) { |
| | | hashMap.put("result", listResult); |
| | | } else { |
| | | hashMap.put("result", listResult.get(0).toString()); |
| | | hashMap.put("result", listResult); |
| | | } |
| | | hashMap.put("equipName", device.getDeviceName()); |
| | | hashMap.put("equipValue", device.getManagementNumber()); |
| | |
| | | } |
| | | |
| | | // 防止参照物为空报错,进行判断如果为空赋值空字符 |
| | | private static String getRefer(String refer) { |
| | | public static String getRefer(String refer) { |
| | | return ObjectUtils.isNotEmpty(refer) ? refer.replaceAll(" ", "") : ""; |
| | | } |
| | | /** |