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 index 0fa6f4b..944cfa2 100644 --- a/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/QualityCompareController.java +++ b/04.系统编码/Backend/src/main/java/com/userinformation/backend/controller/QualityCompareController.java @@ -23,6 +23,7 @@ public class QualityCompareController { @RequestMapping("findByTimeAndElement") public RequestResult findByTimeAndElement(String date, String var, String locate) throws IOException { + date = "5_1_10"; return RequestResult.success(qualityCompareService.findByTimeAndElement(date, var, locate)); } } diff --git a/04.系统编码/Frontend/src/components/RamanLidar.vue b/04.系统编码/Frontend/src/components/RamanLidar.vue index c3d7645..27873c0 100644 --- a/04.系统编码/Frontend/src/components/RamanLidar.vue +++ b/04.系统编码/Frontend/src/components/RamanLidar.vue @@ -52,10 +52,10 @@ <div class="container panel"> <div class="toolbar day-toolbar" v-if="currentElement === 'singleWatervapor' || currentElement === 'aod-icot-wcot' - || currentElement === 'extinctionOptics' || currentElement === 'backscatter' - || currentElement === 'pm2_5' || currentElement === 'pblh' - || currentElement === 'cloudSol' || currentElement === 'cloudbaseheight' - || currentElement === 'cloudtopheight'"> + || currentElement === 'extinctionOptics' || currentElement === 'backscatter' + || currentElement === 'pm2_5' || currentElement === 'pblh' + || currentElement === 'cloudSol' || currentElement === 'cloudbaseheight' + || currentElement === 'cloudtopheight'"> <div class="times"> <div class="time-item" v-for="(time, index) in times" :key="index" :class="{'active': currentTime === time.date, 'first-hour': time.hour === '00'}"> @@ -72,7 +72,6 @@ </div> </div> - <div class="toolbar day-toolbar" v-if="currentElement === 'extinction' || currentElement=== 'lidarratio' || currentElement === 'watervapor'"> <div class="times"> <div class="time-item" v-for="(time, index) in times" :key="index" @@ -91,8 +90,6 @@ </div> </div> - - <div class="picture-view"> <div class="picture-container raman-picture-container" v-show="currentElement === 'singleWatervapor'"> <div class="picture special-picture"> @@ -270,7 +267,6 @@ <script lang="ts"> import {onMounted, reactive, toRefs, watch} from 'vue'; import moment from "moment"; -import {RamanLidarConfig} from '../uilts/Config'; import {post} from '../uilts/axios'; import {ElMessage} from "element-plus"; import {ConstantRamanLidar} from "../model/constant"; @@ -292,6 +288,7 @@ export default { LidarRatio: HighChartCreate, opticalThickness: HighChartCreate, cloudRecognitionDrawer: HeatMapDrawer, + extinctionBeforeDrawer: HeatMapDrawer, extinctionDrawer: HeatMapDrawer, watervaporDrawer: HeatMapDrawer, opticsExtinctionDrawer: HeatMapDrawer, @@ -308,6 +305,7 @@ export default { opticalThickness: null, cloudRecognitionDrawer: null, extinctionDrawer: null, + extinctionBeforeDrawer: null, watervaporDrawer: null, singleWatervaporDrawer: null, opticsExtinctionDrawer: null, @@ -590,7 +588,7 @@ export default { // break; case 'extinction' : // initTimeLineDay() - reloadCloudRecognition('extinction', 801, 'extinction', drawExtinctionBefore); + reloadExtinctionBefore(); reloadCloudRecognition('extinction', 801, 'extinction', drawExtinctionAfter); break; case 'watervapor' : @@ -603,6 +601,48 @@ export default { } } + const reloadExtinctionBefore = () => { + let params = { + date: moment(options.date).format('YYYY-MM-DD'), + var: 'MEXT', + locate: options.currentRegion + } + post("/qualityCompare/findByTimeAndElement", params).then((response: any) => { + if (response.error != 0){ + console.log("未找到质控前数据文件"); + return; + } + + let matrix = convertValueToBox(response.data); + creates.extinctionBeforeDrawer = new HeatMapDrawer(800, 650, matrix, "extinction_chart-before", 'km/sr','质控后'); + creates.extinctionBeforeDrawer.setAxis(new CoordinateScale(options.timeArray), new CoordinateScale([0, 2000, 4000, 6000, 8000, 10000, 12000], true, true)); + creates.extinctionBeforeDrawer.setColorChart(prepareExtinctionnColors()); + creates.extinctionBeforeDrawer.draw(); + }) + } + + const convertValueToBox = (data) => { + let timeMoment = moment(options.date).add(-1, 'd'); + let timeFormat = timeMoment.format("MM月DD日HH时"); + + let boxes = new Array<Array<Box>>(); + let index = 1; + data.forEach(r => { + if (index % 11 == 0){ + timeMoment.add(1, 'h'); + timeFormat = timeMoment.format("MM月DD日HH时"); + } + + let rows = new Array<Box>(r.length); + for (let h = 0, len = r.length; h < len; h++) { + rows[h] = new Box(index - 1, h, 0, 0, r[h], h * 15, timeFormat, "米"); + } + index++; + boxes.push(rows); + }) + + return boxes; + } const preprocessing = (type: string) => { switch (type) { @@ -909,9 +949,6 @@ export default { creates.watervaporDrawer.draw(); } - - - const prepareWatervaporColors = () => { return new ColorChart(['#990000', '#CC0000', '#FF0000', '#FF3300', '#FF6600', '#FF9900', '#FFCC00', '#FFFF00', '#CCFF33', '#99FF66', '#66FF99', '#33FFCC', '#00FFFF', '#00CCFF', '#0099FF', '#0066FF', '#0033FF', '#0000FF', '#0000CC', '#000099'], @@ -919,21 +956,6 @@ export default { ); } - const drawExtinctionBefore = (result: CustomeArray<any>) => { - if (result.length != 24) return; - - options.loadingExtinctionStatus = false; - if (creates.extinctionDrawer != null) { - creates.extinctionDrawer.close(); - } - - let matrix = converCloudRecognition(801, result, 'extinction'); - creates.extinctionDrawer = new HeatMapDrawer(800, 650, matrix, "extinction_chart-before", 'km/sr','质控前'); - creates.extinctionDrawer.setAxis(new CoordinateScale(options.timeArray), new CoordinateScale([0, 2000, 4000, 6000, 8000, 10000, 12000], true, true)); - creates.extinctionDrawer.setColorChart(prepareExtinctionnColors()); - creates.extinctionDrawer.draw(); - } - const drawExtinctionAfter = (result: CustomeArray<any>) => { if (result.length != 24) return;