From 0e2e6f99c8ec1a2d654cea83623c27df26220133 Mon Sep 17 00:00:00 2001 From: xiaowuler Date: Fri, 6 May 2022 10:58:45 +0800 Subject: [PATCH] modify some codes --- .../controller/QualityCompareController.java | 28 +++++++ .../backend/controller/TLogPController.java | 2 +- .../service/QualityCompareService.java | 84 +++++++++++++++++++ .../src/main/resources/application.yml | 10 ++- .../src/components/MicrowaveRadiation.vue | 5 +- .../Frontend/src/model/high-chart-create.ts | 7 ++ 6 files changed, 130 insertions(+), 6 deletions(-) create mode 100644 04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/QualityCompareController.java create mode 100644 04.系统编码/Backend/src/main/java/com/userinformation/backend/service/QualityCompareService.java diff --git a/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/QualityCompareController.java b/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/QualityCompareController.java new file mode 100644 index 0000000..0fa6f4b --- /dev/null +++ b/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)); + } +} diff --git a/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/TLogPController.java b/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/TLogPController.java index 5796eb9..b22f281 100644 --- a/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/TLogPController.java +++ b/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)); } } diff --git a/04.系统编码/Backend/src/main/java/com/userinformation/backend/service/QualityCompareService.java b/04.系统编码/Backend/src/main/java/com/userinformation/backend/service/QualityCompareService.java new file mode 100644 index 0000000..86e2026 --- /dev/null +++ b/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 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 read(String filepath, LocalDateTime time) throws IOException { + List lines = Files.readAllLines(Paths.get(filepath)); + // 将文件数据进行反转,从最后一行开始读取 + Collections.reverse(lines); + + List data = new ArrayList<>(288); + for(String line : lines){ + List 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 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 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; + } +} diff --git a/04.系统编码/Backend/src/main/resources/application.yml b/04.系统编码/Backend/src/main/resources/application.yml index 9a2f6af..c330c12 100644 --- a/04.系统编码/Backend/src/main/resources/application.yml +++ b/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 diff --git a/04.系统编码/Frontend/src/components/MicrowaveRadiation.vue b/04.系统编码/Frontend/src/components/MicrowaveRadiation.vue index 263eed8..fc7d0f5 100644 --- a/04.系统编码/Frontend/src/components/MicrowaveRadiation.vue +++ b/04.系统编码/Frontend/src/components/MicrowaveRadiation.vue @@ -207,7 +207,7 @@
- +
@@ -1025,6 +1025,9 @@ export default { z-index: 1000; } } + .T-logpImg { + transform: scale(0.5); + } } //.BPPicture { // width: 100% !important; diff --git a/04.系统编码/Frontend/src/model/high-chart-create.ts b/04.系统编码/Frontend/src/model/high-chart-create.ts index b6bd9bc..750a48e 100644 --- a/04.系统编码/Frontend/src/model/high-chart-create.ts +++ b/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;