From c546b9e52b0ae40151d478f165f1f884e251c590 Mon Sep 17 00:00:00 2001 From: huguanghan Date: Wed, 13 Nov 2024 09:37:18 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=95=85=E9=9A=9C=E5=BD=95=E6=B3=A2?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FaultRecorderController.java | 4 +- .../fdr/service/FaultRecorderService.java | 2 +- .../impl/FaultRecorderServiceImpl.java | 65 ++++++++++--------- 3 files changed, 39 insertions(+), 32 deletions(-) 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 542b1bf1..17e22d98 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 @@ -35,8 +35,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 0a9f6f48..2add8e12 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 @@ -13,7 +13,7 @@ import java.util.Map; public interface FaultRecorderService { List getDirOrFileList(String name,String startTime, String endTime); - Map> getDataCurve(String url, String deviceCode) throws IOException; + Map> getDataCurve(String url, String deviceCode) throws IOException; 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 f1b850e6..6c980999 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 @@ -24,6 +24,7 @@ import org.springframework.web.multipart.MultipartFile; import java.io.*; import java.nio.file.Path; +import java.rmi.ServerException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; @@ -96,11 +97,9 @@ public class FaultRecorderServiceImpl implements FaultRecorderService { } @Override - public Map> getDataCurve(String url, String deviceCode) throws IOException { - Map> resultMap = null; - InputStream fileStream = null; - try { - fileStream = minioViewsServcie.getFileStream(url); + public Map> getDataCurve(String url, String deviceCode) throws IOException { + Map> resultMap = null; + try (InputStream fileStream = minioViewsServcie.getFileStream(url)) { //根据device Code查询故障录波格式 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("CODE", deviceCode); @@ -109,19 +108,17 @@ public class FaultRecorderServiceImpl implements FaultRecorderService { throw new ServiceException("设备不存在,请选择正确设备"); } + if (StringUtils.isBlank(sysEquipment.getFdrFormat())){ + throw new ServerException("请添加设备故障录波配置"); + } FdrFormatVo fdrFormatVo = JSON.parseObject(sysEquipment.getFdrFormat(), FdrFormatVo.class); // 解析文件内容 - List> parsedData = parseFile(fileStream, fdrFormatVo.getDelimiter(), fdrFormatVo.getValidStartLine()); - resultMap = parseDataCurve(parsedData, fdrFormatVo.getTimeFormat()); + resultMap = parseFile(fileStream, fdrFormatVo.getTimeFormat(), fdrFormatVo.getDelimiter(), fdrFormatVo.getValidStartLine()); } catch (Exception e) { e.printStackTrace(); - }finally { - if (fileStream != null){ - fileStream.close(); - } } return resultMap; } @@ -131,9 +128,11 @@ public class FaultRecorderServiceImpl implements FaultRecorderService { sysEquipmentMapper.updateById(sysEquipment); } - public List> parseFile(InputStream inputStream, String delimiter, int validStartLine) { + public Map> parseFile(InputStream inputStream, String timeFormat, String delimiter, int validStartLine) { + List> result = new ArrayList<>(); + Map> stringListMap = null; try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) { String line; int lineNumber = 0; @@ -148,36 +147,44 @@ public class FaultRecorderServiceImpl implements FaultRecorderService { List lineData = Arrays.stream(line.split(delimiter)).toList(); result.add(lineData); } + stringListMap = parseDataCurve(result, timeFormat); } catch (Exception e) { - - log.error("文件解析失败{}",e); + log.error("文件解析失败{}", e); } - return result; + return stringListMap; } - public Map> parseDataCurve(List> data, String timeFormat) throws ParseException { + public Map> parseDataCurve(List> data, String timeFormat) throws ParseException { List listField = data.get(0); - Map> map = new HashMap<>(); + 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) { - List valueList = new ArrayList<>(); - valueList.add(item.get(i)); - map.put(listField.get(i), valueList); + if (i == 0){ + List timeList = new ArrayList<>(); + long timestamp = convertToTimestamp(item.get(i), timeFormat); + timeList.add(timestamp); + map.put(listField.get(i),timeList); + }else { + List valueList = new ArrayList<>(); + valueList.add(Double.valueOf(item.get(i))); + map.put(listField.get(i), valueList); + } + } else { - List valueList = map.get(listField.get(i)); - valueList.add(item.get(i)); + List valueList = map.get(listField.get(i)); + if (i == 0){ + valueList.add(convertToTimestamp(item.get(i),timeFormat)); + + } + else { + valueList.add(Double.valueOf(item.get(i))); + } + } } } - List list = map.get(listField.get(0)); - List timeList = new ArrayList<>(); - for (String item : list) { - long timestamp = convertToTimestamp(item, timeFormat); - timeList.add(String.valueOf(timestamp)); - map.put(listField.get(0), timeList); - } return map; } From 606c5e588af122d8cc170548b2c96b6eef4cf76e Mon Sep 17 00:00:00 2001 From: geting <13585118195@163.com> Date: Wed, 13 Nov 2024 09:53:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/backend/statAnalysis/request.ts | 96 +++++++++++++------ .../statAnalysis/powerCurveAnalysis.vue | 32 ++++++- .../backend/statAnalysis/trendAnalysis.vue | 36 ++++++- .../backend/statAnalysis/trendComparison.vue | 58 ++++++----- 4 files changed, 160 insertions(+), 62 deletions(-) diff --git a/ui/dasadmin/src/api/backend/statAnalysis/request.ts b/ui/dasadmin/src/api/backend/statAnalysis/request.ts index a3b1f123..c615dfd7 100644 --- a/ui/dasadmin/src/api/backend/statAnalysis/request.ts +++ b/ui/dasadmin/src/api/backend/statAnalysis/request.ts @@ -36,49 +36,85 @@ export const runAirBlowerReq = ( }) } -export const getReportTemplateListReq = (data: { category: '单机报表' | '多机报表', pageNum: number, pageSize: number }) => { - return createAxios { + return createAxios< + never, + Promise<{ + code: number msg: string - }, - success: boolean - }>>({ + data: { + total: number + rows: { id: string; category: '单机报表' | '多机报表'; template: string }[] + code: number + msg: string + } + success: boolean + }> + >({ url: '/api/page/report/template/getList', method: 'post', - data + data, }) } -export const addReportTemplateListReq = (data: { category: '单机报表' | '多机报表', template: string }) => { - return createAxios>({ +export const addReportTemplateListReq = (data: { category: '单机报表' | '多机报表'; template: string }) => { + return createAxios< + never, + Promise<{ + code: number + msg: string + data: { + id: string + category: '单机报表' | '多机报表' + template: string + }[] + success: boolean + }> + >({ url: '/api/page/report/template/add', method: 'post', - data + data, }) } export const delReportTemplateListReq = (data: { id: string }) => { - return createAxios>({ + return createAxios< + never, + Promise<{ + code: number + msg: string + success: boolean + }> + >({ url: '/api/page/report/template/del', method: 'post', - data + data, + }) +} + +export function powerCurveExport(params: object = {}) { + return createAxios({ + url: '/api/page/statistical/powerCurveExport', + method: 'POST', + data: params, + responseType: 'blob', + }) +} + +export function trendContrastExport(params: object = {}) { + return createAxios({ + url: '/api/page/statistical/trendContrastExport', + method: 'POST', + data: params, + responseType: 'blob', + }) +} + +export function trendAnalyseExport(params: object = {}) { + return createAxios({ + url: '/api/page/statistical/trendAnalyseExport', + method: 'POST', + data: params, + responseType: 'blob', }) } diff --git a/ui/dasadmin/src/views/backend/statAnalysis/powerCurveAnalysis.vue b/ui/dasadmin/src/views/backend/statAnalysis/powerCurveAnalysis.vue index 4bcfef39..5a2e1c15 100644 --- a/ui/dasadmin/src/views/backend/statAnalysis/powerCurveAnalysis.vue +++ b/ui/dasadmin/src/views/backend/statAnalysis/powerCurveAnalysis.vue @@ -11,7 +11,6 @@
{{ t('statAnalysis.search') }} - {{ t('statAnalysis.import') }} {{ t('statAnalysis.export') }}
@@ -61,7 +60,7 @@