故障录波文件解析
This commit is contained in:
parent
bc0d9cb39c
commit
718f3b3a6f
@ -10,6 +10,7 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -34,7 +35,7 @@ public class FaultRecorderController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/parseData", method = RequestMethod.POST)
|
@RequestMapping(value = "/parseData", method = RequestMethod.POST)
|
||||||
public R<Map<String, List<String>>> parseData(@RequestBody JSONObject jsonObject) {
|
public R<Map<String, List<String>>> parseData(@RequestBody JSONObject jsonObject) throws IOException {
|
||||||
Map<String, List<String>> dataCurve = faultRecorderService.getDataCurve(jsonObject.getString("url"), jsonObject.getString("deviceCode"));
|
Map<String, List<String>> dataCurve = faultRecorderService.getDataCurve(jsonObject.getString("url"), jsonObject.getString("deviceCode"));
|
||||||
return R.success(dataCurve);
|
return R.success(dataCurve);
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ public class FdrFormatVo {
|
|||||||
|
|
||||||
private String timeFormat;
|
private String timeFormat;
|
||||||
|
|
||||||
private String delimite;
|
private String delimiter;
|
||||||
|
|
||||||
private Integer validStartLine;
|
private Integer validStartLine;
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ import com.das.modules.equipment.entity.SysEquipment;
|
|||||||
import com.das.modules.fdr.domain.FileNode;
|
import com.das.modules.fdr.domain.FileNode;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -12,7 +13,7 @@ import java.util.Map;
|
|||||||
public interface FaultRecorderService {
|
public interface FaultRecorderService {
|
||||||
List<FileNode> getDirOrFileList(String name,String startTime, String endTime);
|
List<FileNode> getDirOrFileList(String name,String startTime, String endTime);
|
||||||
|
|
||||||
Map<String, List<String>> getDataCurve(String url, String deviceCode);
|
Map<String, List<String>> getDataCurve(String url, String deviceCode) throws IOException;
|
||||||
|
|
||||||
void updateFdrConfig(SysEquipment sysEquipment);
|
void updateFdrConfig(SysEquipment sysEquipment);
|
||||||
|
|
||||||
|
@ -218,19 +218,14 @@ public class MinioViewsServcie {
|
|||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
public InputStream getFileStream(String url) throws IOException {
|
public InputStream getFileStream(String url){
|
||||||
|
|
||||||
InputStream inputStream = null;
|
InputStream inputStream = null;
|
||||||
try {
|
try {
|
||||||
inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(minioProperties.getBucket()).object(url).build());
|
inputStream = minioClient.getObject(GetObjectArgs.builder().bucket(minioProperties.getBucket()).object(url).build());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("获取文件失败");
|
log.error("获取文件失败");
|
||||||
}finally {
|
|
||||||
if (inputStream != null){
|
|
||||||
inputStream.close();
|
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return inputStream;
|
return inputStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,10 +22,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.*;
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
@ -99,9 +96,9 @@ public class FaultRecorderServiceImpl implements FaultRecorderService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, List<String>> getDataCurve(String url, String deviceCode) {
|
public Map<String, List<String>> getDataCurve(String url, String deviceCode) throws IOException {
|
||||||
Map<String, List<String>> resultMap = null;
|
Map<String, List<String>> resultMap = null;
|
||||||
InputStream fileStream;
|
InputStream fileStream = null;
|
||||||
try {
|
try {
|
||||||
fileStream = minioViewsServcie.getFileStream(url);
|
fileStream = minioViewsServcie.getFileStream(url);
|
||||||
//根据device Code查询故障录波格式
|
//根据device Code查询故障录波格式
|
||||||
@ -116,11 +113,15 @@ public class FaultRecorderServiceImpl implements FaultRecorderService {
|
|||||||
|
|
||||||
|
|
||||||
// 解析文件内容
|
// 解析文件内容
|
||||||
List<List<String>> parsedData = parseFile(fileStream, fdrFormatVo.getDelimite(), fdrFormatVo.getValidStartLine());
|
List<List<String>> parsedData = parseFile(fileStream, fdrFormatVo.getDelimiter(), fdrFormatVo.getValidStartLine());
|
||||||
resultMap = parseDataCurve(parsedData, fdrFormatVo.getTimeFormat());
|
resultMap = parseDataCurve(parsedData, fdrFormatVo.getTimeFormat());
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
|
}finally {
|
||||||
|
if (fileStream != null){
|
||||||
|
fileStream.close();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return resultMap;
|
return resultMap;
|
||||||
}
|
}
|
||||||
@ -143,18 +144,13 @@ public class FaultRecorderServiceImpl implements FaultRecorderService {
|
|||||||
if (lineNumber < validStartLine) {
|
if (lineNumber < validStartLine) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 按照分隔符分割行数据
|
// 按照分隔符分割行数据
|
||||||
String[] values = line.split(delimiter);
|
List<String> lineData = Arrays.stream(line.split(delimiter)).toList();
|
||||||
List<String> lineData = new ArrayList<>();
|
|
||||||
for (String value : values) {
|
|
||||||
lineData.add(value.trim());
|
|
||||||
}
|
|
||||||
result.add(lineData);
|
result.add(lineData);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
||||||
log.error("文件解析失败");
|
log.error("文件解析失败{}",e);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user