Browse Source

modify some codes

master
xiaowuler 3 years ago
parent
commit
0e2e6f99c8
  1. 28
      04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/QualityCompareController.java
  2. 2
      04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/TLogPController.java
  3. 84
      04.系统编码/Backend/src/main/java/com/userinformation/backend/service/QualityCompareService.java
  4. 10
      04.系统编码/Backend/src/main/resources/application.yml
  5. 5
      04.系统编码/Frontend/src/components/MicrowaveRadiation.vue
  6. 7
      04.系统编码/Frontend/src/model/high-chart-create.ts

28
04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/QualityCompareController.java

@ -0,0 +1,28 @@
package com.userinformation.backend.controller;
import com.userinformation.backend.service.QualityCompareService;
import com.userinformation.backend.util.RequestResult;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.IOException;
/**
* @author: xiaowuler
* @createTime: 2022-05-05 16:31
* @describe: 质控对比 控制层
*/
@RestController
@RequestMapping("/qualityCompare")
public class QualityCompareController {
private final QualityCompareService qualityCompareService;
public QualityCompareController(QualityCompareService qualityCompareService) {
this.qualityCompareService = qualityCompareService;
}
@RequestMapping("findByTimeAndElement")
public RequestResult findByTimeAndElement(String date, String var, String locate) throws IOException {
return RequestResult.success(qualityCompareService.findByTimeAndElement(date, var, locate));
}
}

2
04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/TLogPController.java

@ -23,6 +23,6 @@ public class TLogPController {
@RequestMapping("findLater")
public String findLater(@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime startTime, @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") LocalDateTime endTime){
return tLogPService.findLater(startTime, endTime);
return tLogPService.findLater(startTime, endTime.plusSeconds(1));
}
}

84
04.系统编码/Backend/src/main/java/com/userinformation/backend/service/QualityCompareService.java

@ -0,0 +1,84 @@
package com.userinformation.backend.service;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
/**
* @author: xiaowuler
* @createTime: 2022-05-05 16:36
* @describe: 质控对比服务层
*/
@Service
public class QualityCompareService {
private static final String SEPARATOR = ",";
private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy_M_d_HH");
@Value("${custom.quality-path}")
private String qualityPath;
public List<Float[]> findByTimeAndElement(String date, String var, String locate) throws IOException {
// String filepath = qualityPath + var + "-" + date + ".CSV";
String filepath = "C:\\Users\\xiaowuler\\Desktop\\原始产品数据\\MEXT-2021-05-01.CSV";
LocalDateTime time = LocalDateTime.parse("2021_" + date, DATE_FORMATTER).withHour(0).plusDays(1);
return read(filepath, time);
}
private List<Float[]> read(String filepath, LocalDateTime time) throws IOException {
List<String> lines = Files.readAllLines(Paths.get(filepath));
// 将文件数据进行反转,从最后一行开始读取
Collections.reverse(lines);
List<Float[]> data = new ArrayList<>(288);
for(String line : lines){
List<String> rows = Arrays.asList(line.split(SEPARATOR));
// 相关数据时间转换,以比较,并按照10分钟间隔过滤
LocalDateTime targetTime = LocalDateTime.parse(rows.get(0), TIME_FORMATTER);
if (targetTime.isAfter(time)) {
continue;
}
time = fillNaN(time, targetTime, data);
data.add(getValues(rows));
time = time.minusMinutes(5);
}
Collections.reverse(data);
AtomicInteger index = new AtomicInteger(0);
// 匹配老师处理的数据
return data.stream().filter(values -> index.getAndIncrement() % 12 != 0).collect(Collectors.toList());
}
private LocalDateTime fillNaN(LocalDateTime time, LocalDateTime targetTime, List<Float[]> data){
if (Duration.between(targetTime, time).toMinutes() > 5) {
Float[] values = new Float[801];
Arrays.fill(values, Float.NaN);
data.add(values);
time = time.minusMinutes(10);
fillNaN(time, targetTime, data);
}
return time;
}
private Float[] getValues(List<String> rows){
Float[] values = rows.stream().skip(7).limit(801).map(row -> Float.parseFloat(row)).toArray(Float[]::new);
int length = values.length;
if (length != 801) {
values = Arrays.copyOf(values, 801);
Arrays.fill(values, length - 1, 800, Float.NaN);
}
return values;
}
}

10
04.系统编码/Backend/src/main/resources/application.yml

@ -20,9 +20,11 @@ custom:
image:
url: ${custom.parent-url}:${server.port}/product
gifPath: ${custom.image.path}/gif
# path: D:/Deployments/LamanRadar/product
# parent-url: http://localhost
path: /home/project/NJEnvironmentPlatform/html/product
parent-url: http://10.124.102.10
path: D:/Deployments/LamanRadar/product
parent-url: http://localhost
quality-path: C:/Users/xiaowuler/Desktop/原始产品数据
# path: /home/project/NJEnvironmentPlatform/html/product
# parent-url: http://10.124.102.10
# quality-path: C:/Users/xiaowuler/Desktop/原始产品数据
# path: /home/develop/product
# parent-url: http://rdp.nagr.com.cn

5
04.系统编码/Frontend/src/components/MicrowaveRadiation.vue

@ -207,7 +207,7 @@
</div>
<div v-show ="currentTab === 'T-logP'" class="picture-container contrast-picture-container">
<img :src="tLogPPicture" style="width: 20%">
<img :src="tLogPPicture" class="T-logpImg">
</div>
</div>
@ -1025,6 +1025,9 @@ export default {
z-index: 1000;
}
}
.T-logpImg {
transform: scale(0.5);
}
}
//.BPPicture {
// width: 100% !important;

7
04.系统编码/Frontend/src/model/high-chart-create.ts

@ -149,6 +149,13 @@ export class HighChartCreate {
}
public init(): void{
// 不换算单位, 不然出现 k
Highcharts.setOptions({
lang: {
numericSymbols: null
},
})
const options = this.getOptions();
this.highChart = Highcharts.chart(this.id, options);
// return this.highChart;

Loading…
Cancel
Save