水道系统温度数据echarts图表展示

main
ccongli 2 years ago
parent 8e956ac003
commit 805ebd0bdb

@ -5,8 +5,8 @@
<v-tooltip/> <v-tooltip/>
<v-axis/> <v-axis/>
<v-legend/> <v-legend/>
<v-line position="type*y" color="x"/> <v-line position="id*y" color="x"/>
<v-point position="type*y" color="x" :size="4" :v-style="style" :shape="'circle'"/> <v-point position="id*y" color="x" :size="4" :v-style="style" :shape="'circle'"/>
</v-chart> </v-chart>
</div> </div>
</template> </template>
@ -26,20 +26,21 @@
dataSource: { dataSource: {
type: Array, type: Array,
default: () => [ default: () => [
{ type: 'Jan', jeecg: 7.0, jeebt: 3.9 }, { id: 'Jan', jeecg: 7.0, jeebt: 3.9 },
{ type: 'Feb', jeecg: 6.9, jeebt: 4.2 }, { id: 'Feb', jeecg: 6.9, jeebt: 4.2 },
{ type: 'Mar', jeecg: 9.5, jeebt: 5.7 }, { id: 'Mar', jeecg: 9.5, jeebt: 5.7 },
{ type: 'Apr', jeecg: 14.5, jeebt: 8.5 }, { id: 'Apr', jeecg: 14.5, jeebt: 8.5 },
{ type: 'May', jeecg: 18.4, jeebt: 11.9 }, { id: 'May', jeecg: 18.4, jeebt: 11.9 },
{ type: 'Jun', jeecg: 21.5, jeebt: 15.2 }, { id: 'Jun', jeecg: 21.5, jeebt: 15.2 },
{ type: 'Jul', jeecg: 25.2, jeebt: 17.0 }, { id: 'Jul', jeecg: 25.2, jeebt: 17.0 },
{ type: 'Aug', jeecg: 26.5, jeebt: 16.6 }, { id: 'Aug', jeecg: 26.5, jeebt: 16.6 },
{ type: 'Sep', jeecg: 23.3, jeebt: 14.2 }, { id: 'Sep', jeecg: 23.3, jeebt: 14.2 },
{ type: 'Oct', jeecg: 18.3, jeebt: 10.3 }, { id: 'Oct', jeecg: 18.3, jeebt: 10.3 },
{ type: 'Nov', jeecg: 13.9, jeebt: 6.6 }, { id: 'Nov', jeecg: 13.9, jeebt: 6.6 },
{ type: 'Dec', jeecg: 9.6, jeebt: 4.8 } { id: 'Dec', jeecg: 9.6, jeebt: 4.8 }
] ]
}, },
fields: { fields: {
type: Array, type: Array,
default: () => ['jeecg', 'jeebt'] default: () => ['jeecg', 'jeebt']
@ -56,9 +57,11 @@
}, },
data() { data() {
return { return {
// x, key
scale: [{ scale: [{
type: 'cat', type: 'cat',
dataKey: 'x', dataKey: 'id',
tickCount: 16,
min: 0, min: 0,
max: 1 max: 1
}], }],
@ -71,8 +74,8 @@
dv.transform({ dv.transform({
type: 'fold', type: 'fold',
fields: this.fields, fields: this.fields,
key: 'x', key: 'x', //
value: 'y' value: 'y' //
}) })
let rows = dv.rows let rows = dv.rows
// //

@ -187,6 +187,10 @@
importExcelUrl: "ttwaterwaycollect/ttWaterwayCollect/importExcel", importExcelUrl: "ttwaterwaycollect/ttWaterwayCollect/importExcel",
}, },
isorter:{
column: 'id',
order: 'desc',
},
dictOptions:{}, dictOptions:{},
superFieldList:[], superFieldList:[],
} }

@ -196,6 +196,10 @@
exportXlsUrl: "/ttwaterwayfid/ttWaterwayFid/exportXls", exportXlsUrl: "/ttwaterwayfid/ttWaterwayFid/exportXls",
importExcelUrl: "ttwaterwayfid/ttWaterwayFid/importExcel", importExcelUrl: "ttwaterwayfid/ttWaterwayFid/importExcel",
}, },
isorter:{
column: 'id',
order: 'desc',
},
dictOptions:{}, dictOptions:{},
superFieldList:[], superFieldList:[],
/* 分页参数 */ /* 分页参数 */

@ -169,7 +169,7 @@
importExcelUrl: "ttwaterwaymessage/ttWaterwayMessage/importExcel", importExcelUrl: "ttwaterwaymessage/ttWaterwayMessage/importExcel",
}, },
isorter:{ isorter:{
column: 'time', column: 'id',
order: 'desc', order: 'desc',
}, },
dictOptions:{}, dictOptions:{},

@ -181,6 +181,10 @@
importExcelUrl: "ttwaterwayoutenter/ttWaterwayOutenter/importExcel", importExcelUrl: "ttwaterwayoutenter/ttWaterwayOutenter/importExcel",
}, },
isorter:{
column: 'id',
order: 'desc',
},
dictOptions:{}, dictOptions:{},
superFieldList:[], superFieldList:[],
} }

@ -0,0 +1,171 @@
<template>
<a-card :bordered="false">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="批次号">
<a-input placeholder="请输入批次号" v-model="queryParam.batchId"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="框号">
<a-input placeholder="请输入框号" v-model="queryParam.number"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<a-row :gutter="24">
<a-col :xl="20" :lg="20" :md="20" :sm="20">
<line-chart-multid title="温度折线图" :height="height" :dataSource="tempData" :fields="fields" :aliases="aliases" />
</a-col>
</a-row>
<a-table
ref="table"
size="middle"
:scroll="{x:true}"
bordered
rowKey="id"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
</a-table>
</a-card>
</template>
<script>
import {JeecgListMixin} from '@/mixins/JeecgListMixin'
import {getAction} from '@/api/manage'
import LineChartMultid from '@/components/chart/LineChartMultid'
export default {
name: 'ttxhWaterTempChart',
mixins: [JeecgListMixin],
components: {
LineChartMultid
},
data() {
return {
queryParam: {
batchId: '23042640A',
number: '3',
},
height: 500,
tempData: [],
fields:["temp1","temp2","temp3","temp4","temp5"],
aliases: [
{field:'temp1',alias:'温度1'},
{field:'temp2',alias:'温度2'},
{field:'temp3',alias:'温度3'},
{field:'temp4',alias:'温度4'},
{field:'temp5',alias:'温度5'},
],
description: '温度记录',
//
columns: [
{
title: '温度1',
align: 'center',
dataIndex: 'tempParam1'
},
{
title: '温度2',
align: 'center',
dataIndex: 'tempParam2'
},
{
title: '温度3',
align: 'center',
dataIndex: 'tempParam3'
},
{
title: '温度4',
align: 'center',
dataIndex: 'tempParam4'
},
{
title: '温度5',
align: 'center',
dataIndex: 'tempParam5',
},
{
title: '时间点',
align: 'center',
dataIndex: 'time',
sorter: true
}
],
isorter:{
column: 'id',
order: 'desc',
},
url: "/ttwaterwaycollect/ttWaterwayCollect/listbyfid",
disableMixinCreated: true
}
},
created() {
this.initTempData();
},
methods: {
initTempData(arg) {
if(arg) {
this.tempData = [];
for(let item of arg) {
this.tempData.push({
id : item.time,
temp1: item.tempParam1,
temp2: item.tempParam2,
temp3: item.tempParam3,
temp4: item.tempParam4,
temp5: item.tempParam5,
});
}
} else {
this.tempData = [{ id: 0, temp1: 40, temp2: 50, temp3: 60, temp4: 70, temp5: 80}];
}
},
loadData(arg) {
// 1
if (arg === 1) {
this.ipagination.current = 1;
}
var params = this.getQueryParams(); //
this.loading = true;
getAction(this.url, params).then((res) => {
if (res.success) {
this.dataSource = res.result.pages.records || res.pages.result;
if (res.result.pages.total) {
this.ipagination.total = res.result.pages.total;
} else {
this.ipagination.total = 0;
}
if (res.result.charts) {
this.initTempData(res.result.charts);
} else {
this.initTempData();
}
} else {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
}
}
</script>
<style scoped></style>

@ -87,7 +87,7 @@ export default {
this.locale.emptyText = "请双击选择一条历史记录"; this.locale.emptyText = "请双击选择一条历史记录";
} else { } else {
var params = this.getQueryParams() var params = this.getQueryParams()
console.log(params); // console.log(params);
getAction(this.url.info, { getAction(this.url.info, {
thatTime: params.time, thatTime: params.time,
}).then(res => { }).then(res => {

@ -1,10 +1,8 @@
package org.jeecg.modules.demo.ttwaterwaycollect.controller; package org.jeecg.modules.demo.ttwaterwaycollect.controller;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.Arrays; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
@ -12,12 +10,15 @@ import java.net.URLDecoder;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import io.swagger.models.auth.In;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
import org.checkerframework.checker.units.qual.A;
import org.jeecg.common.api.vo.Result; import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.ttwaterwaycollect.entity.TtWaterwayCollect; import org.jeecg.modules.demo.ttwaterwaycollect.entity.TtWaterwayCollect;
import org.jeecg.modules.demo.ttwaterwaycollect.entity.TtWaterwayTempCharts;
import org.jeecg.modules.demo.ttwaterwaycollect.service.ITtWaterwayCollectService; import org.jeecg.modules.demo.ttwaterwaycollect.service.ITtWaterwayCollectService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -25,6 +26,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.demo.ttwaterwayfid.entity.TtWaterwayFid;
import org.jeecg.modules.demo.ttwaterwayfid.service.ITtWaterwayFidService;
import org.jeecg.modules.demo.ttwaterwayoutenter.entity.TtWaterwayOutenter;
import org.jeecg.modules.demo.ttwaterwayoutenter.service.ITtWaterwayOutenterService;
import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.def.NormalExcelConstants;
import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ExportParams;
@ -56,6 +61,15 @@ public class TtWaterwayCollectController extends JeecgController<TtWaterwayColle
@Autowired @Autowired
private ITtWaterwayCollectService ttWaterwayCollectService; private ITtWaterwayCollectService ttWaterwayCollectService;
@Autowired
private ITtWaterwayFidService ttWaterwayFidService;
@Autowired
private ITtWaterwayOutenterService ttWaterwayOutenterService;
private static final Integer X_Series = 16;
/** /**
* *
* *
@ -78,7 +92,69 @@ public class TtWaterwayCollectController extends JeecgController<TtWaterwayColle
return Result.OK(pageList); return Result.OK(pageList);
} }
/**
/**
*
*/
@ApiOperation(value="指定批次框号查询温度记录", notes="指定批次框号查询温度记录")
@RequestMapping(value = "/listbyfid", method = {RequestMethod.GET,RequestMethod.POST})
public Result<TtWaterwayTempCharts> queryTempListByFid(
@RequestParam("batchId") String batchId, @RequestParam("number") Integer number,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) {
QueryWrapper<TtWaterwayFid> qwrFid = new QueryWrapper<>();
// 相同的批次框号条件下,取最新绑定的记录
qwrFid.lambda().eq(TtWaterwayFid::getBatchNumber, batchId).eq(TtWaterwayFid::getNumber, number).
orderByDesc(TtWaterwayFid::getBindTime).last("limit 1");
TtWaterwayFid waterwayFid = ttWaterwayFidService.getOne(qwrFid);
List<TtWaterwayCollect> tempList = new ArrayList<>();
IPage<TtWaterwayCollect> pageList = new Page<>(pageNo, pageSize);
if (waterwayFid != null) {
Date bindTime = waterwayFid.getBindTime();
String fid = waterwayFid.getFid();
QueryWrapper<TtWaterwayOutenter> qwrOutEnter = new QueryWrapper<>();
// 相同的fid和入水时间下取最靠近入水时间的一条
qwrOutEnter.lambda().eq(TtWaterwayOutenter::getFid, fid).ge(TtWaterwayOutenter::getWaterEnter, bindTime).
orderByAsc(TtWaterwayOutenter::getWaterEnter).last("limit 1");
TtWaterwayOutenter waterwayOutenter = ttWaterwayOutenterService.getOne(qwrOutEnter);
if (waterwayOutenter != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String startTime = null;
String endTime = null;
Date waterEnter = waterwayOutenter.getWaterEnter();
if (waterEnter != null) {
startTime = sdf.format(waterEnter);
}
Date waterYure = waterwayOutenter.getWaterYure();
if (waterYure != null) {
endTime = sdf.format(waterYure);
}
Date waterOut = waterwayOutenter.getWaterOut();
if (waterOut != null) {
endTime = sdf.format(waterOut);
}
if (startTime != null && endTime != null) {
QueryWrapper<TtWaterwayCollect> qwrCollect = new QueryWrapper<>();
qwrCollect.lambda().between(TtWaterwayCollect::getTime, startTime, endTime);
// long count = ttWaterwayCollectService.count(qwrCollect);
pageList = ttWaterwayCollectService.page(pageList, qwrCollect);
long count = pageList.getTotal();
if (count > 0L) {
int mod = (int) count / X_Series;
qwrCollect.apply("id % {0} = 0", mod);
tempList = ttWaterwayCollectService.list(qwrCollect);
}
}
}
}
TtWaterwayTempCharts tempCharts = new TtWaterwayTempCharts();
tempCharts.setCharts(tempList);
tempCharts.setPages(pageList);
return Result.OK(tempCharts);
}
/**
* *
* *
* @param ttWaterwayCollect * @param ttWaterwayCollect

@ -0,0 +1,17 @@
package org.jeecg.modules.demo.ttwaterwaycollect.entity;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.Data;
import java.util.List;
@Data
public class TtWaterwayTempCharts {
// echarts图表记录
private List<TtWaterwayCollect> charts;
// 分页记录
private IPage<TtWaterwayCollect> pages;
}
Loading…
Cancel
Save