diff --git a/das/src/main/java/com/das/modules/fdr/controller/FaultRecorderController.java b/das/src/main/java/com/das/modules/fdr/controller/FaultRecorderController.java index 9c844598..6800f689 100644 --- a/das/src/main/java/com/das/modules/fdr/controller/FaultRecorderController.java +++ b/das/src/main/java/com/das/modules/fdr/controller/FaultRecorderController.java @@ -56,8 +56,8 @@ public class FaultRecorderController { } @RequestMapping(value = "/parseData", method = RequestMethod.POST) - public R>> parseData(@RequestBody JSONObject jsonObject) throws IOException { - Map> dataCurve = faultRecorderService.getDataCurve(jsonObject.getString("url"), jsonObject.getString("deviceCode")); + public R> parseData(@RequestBody JSONObject jsonObject) throws IOException { + Map dataCurve = faultRecorderService.getDataCurve(jsonObject.getString("url"), jsonObject.getString("deviceCode")); return R.success(dataCurve); } diff --git a/das/src/main/java/com/das/modules/fdr/service/FaultRecorderService.java b/das/src/main/java/com/das/modules/fdr/service/FaultRecorderService.java index 00167c3e..799e2bd4 100644 --- a/das/src/main/java/com/das/modules/fdr/service/FaultRecorderService.java +++ b/das/src/main/java/com/das/modules/fdr/service/FaultRecorderService.java @@ -19,7 +19,7 @@ public interface FaultRecorderService { void download(String path, HttpServletResponse httpServletResponse) throws IOException; - Map> getDataCurve(String url, String deviceCode); + Map getDataCurve(String url, String deviceCode); void updateFdrConfig(SysEquipment sysEquipment); diff --git a/das/src/main/java/com/das/modules/fdr/service/impl/FaultRecorderServiceImpl.java b/das/src/main/java/com/das/modules/fdr/service/impl/FaultRecorderServiceImpl.java index 514d4721..fce3a2df 100644 --- a/das/src/main/java/com/das/modules/fdr/service/impl/FaultRecorderServiceImpl.java +++ b/das/src/main/java/com/das/modules/fdr/service/impl/FaultRecorderServiceImpl.java @@ -168,8 +168,8 @@ public class FaultRecorderServiceImpl implements FaultRecorderService { } @Override - public Map> getDataCurve(String url, String deviceCode) { - Map> resultMap = null; + public Map getDataCurve(String url, String deviceCode) { + Map resultMap = null; //根据device Code查询故障录波格式 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("CODE", deviceCode); @@ -211,15 +211,20 @@ public class FaultRecorderServiceImpl implements FaultRecorderService { sysEquipmentMapper.updateById(sysEquipment); } - public Map> parseFile(InputStream inputStream, String timeFormat, String delimiter, int validStartLine) { + public Map parseFile(InputStream inputStream, String timeFormat, String delimiter, int validStartLine) { List> result = new ArrayList<>(); - Map> stringListMap = null; + Map stringListMap = null; try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { String line; int lineNumber = 0; while ((line = reader.readLine()) != null) { lineNumber++; + + if (lineNumber == 2){ + List lineData = Arrays.stream(line.split(":")).toList(); + result.add(lineData); + } // 忽略有效行之前的行 if (lineNumber < validStartLine) { continue; @@ -236,19 +241,29 @@ public class FaultRecorderServiceImpl implements FaultRecorderService { return stringListMap; } - public Map> parseDataCurve(List> data, String timeFormat) throws ParseException { + public Map parseDataCurve(List> data, String timeFormat) throws ParseException { + List faultTimeList = data.get(0); + Long faultTime = null; + try { + faultTime = convertToTimestamp(faultTimeList.get(1).trim(), timeFormat); + } catch (Exception e) { + log.error("faultTime转换失败"); + } + Map result = new HashMap<>(); + result.put("faultTime", faultTime); + data.remove(0); List listField = data.get(0); Map> map = new HashMap<>(); data.remove(0); for (List item : data) { for (int i = 0; i < item.size(); i++) { if (map.get(listField.get(i)) == null) { - if (i == 0){ + if (i == 0) { List timeList = new ArrayList<>(); long timestamp = convertToTimestamp(item.get(i), timeFormat); timeList.add(timestamp); - map.put(listField.get(i),timeList); - }else { + map.put(listField.get(i), timeList); + } else { List valueList = new ArrayList<>(); valueList.add(Double.valueOf(item.get(i))); map.put(listField.get(i), valueList); @@ -256,18 +271,18 @@ public class FaultRecorderServiceImpl implements FaultRecorderService { } else { List valueList = map.get(listField.get(i)); - if (i == 0){ - valueList.add(convertToTimestamp(item.get(i),timeFormat)); + if (i == 0) { + valueList.add(convertToTimestamp(item.get(i), timeFormat)); - } - else { + } else { valueList.add(Double.valueOf(item.get(i))); } } } } - return map; + result.put("dataCurve",map); + return result; } public long convertToTimestamp(String time, String pattern) throws ParseException {