first commit
This commit is contained in:
148
WebRoot/jsp/digitalProcess/GYYXBG_TH.jsp
Normal file
148
WebRoot/jsp/digitalProcess/GYYXBG_TH.jsp
Normal file
@ -0,0 +1,148 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@page import="com.sipai.entity.maintenance.MaintenanceDetail" %>
|
||||
<%request.setAttribute("Wait", MaintenanceDetail.Status_Wait); %>
|
||||
<style type="text/css">
|
||||
.GYPJ_Table_Class.table.td {
|
||||
border: 1px solid #000000;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
initDate();
|
||||
getData();
|
||||
});
|
||||
|
||||
function getData() {
|
||||
$.post(ext.contextPath + '/digitalProcess/digitalTechnologist/getGYYXBG_TH_Data.do', {
|
||||
unitId: unitId,
|
||||
sdt: $('#dateTime').val(),
|
||||
mainScoreMpid: '${param.mainScoreMpid}'
|
||||
}, function (data) {
|
||||
console.log(data)
|
||||
let html = "<table class='GYPJ_Table_Class' style='width: 100%;text-align: center;' border='1' cellpadding='0'>";
|
||||
html += "<tr>";
|
||||
html += "<td colspan='3'>评价项目</td>";
|
||||
html += "<td>满分指标值</td>";
|
||||
html += "<td>今日得分</td>";
|
||||
html += "<td>异常情况</td>";
|
||||
html += "</tr>";
|
||||
|
||||
let d1 = data;
|
||||
let d1text = d1.text;
|
||||
let d1value = d1.value;
|
||||
let d1spanrange = d1.spanrange;
|
||||
let d1alarmNews = d1.alarmNews;
|
||||
|
||||
for (let i = 0; i < d1.child.length; i++) {
|
||||
let d2 = d1.child[i];
|
||||
let d2text = d2.text;
|
||||
let d2value = d2.value;
|
||||
let d2spanrange = d2.spanrange;
|
||||
let rowspanNum = d2.child.length + 1;
|
||||
|
||||
html += "<tr>";
|
||||
html += "<td rowspan=\"" + rowspanNum + "\">" + d2text + "</td>";
|
||||
html += "<td rowspan=\"" + rowspanNum + "\">" + (d2value / d2spanrange * 100).toFixed(0) + "分(" + d2value + "分)</td>";
|
||||
html += "</tr>";
|
||||
for (let j = 0; j < d2.child.length; j++) {
|
||||
let d3 = d2.child[j];
|
||||
let d3text = d3.text;
|
||||
let d3score = d3.score;
|
||||
let d3spanrange = d3.spanrange;
|
||||
let d3alarmNews = d3.alarmNews;
|
||||
|
||||
html += "<tr>";
|
||||
html += "<td>" + d3text + "</td>";
|
||||
html += "<td>" + d3spanrange + "</td>";
|
||||
html += "<td>" + d3score + "</td>";
|
||||
html += "<td style='text-align: left;'>" + d3alarmNews + "</td>";
|
||||
html += "</tr>";
|
||||
}
|
||||
}
|
||||
html += "<tr>";
|
||||
html += "<td>今日得分</td>";
|
||||
html += "<td colspan='5'>" + (d1value / d1spanrange * 100).toFixed(0) + "分(" + d1value + "分)</td>";
|
||||
html += "</tr>";
|
||||
html += "<tr>";
|
||||
html += "<td>运行建议</td>";
|
||||
html += "<td colspan='5' style='text-align: left;'>" + d1alarmNews + "</td>";
|
||||
html += "</tr>";
|
||||
|
||||
html += "</table>";
|
||||
|
||||
// console.log(html)
|
||||
$('#GYPJ_Table').html(html);
|
||||
}, 'json');
|
||||
}
|
||||
|
||||
function initDate() {
|
||||
let time = getNowTime();
|
||||
time = getPlusTime(time, "-1", "day").substring(0, 10);
|
||||
$('#dateTime').val(time);
|
||||
$('#dateTime').datepicker({
|
||||
format: 'yyyy-mm-dd',
|
||||
weekStart: 1,
|
||||
autoclose: true,
|
||||
startView: 0,
|
||||
minViewMode: 0,
|
||||
maxViewMode: 1,
|
||||
forceParse: false,
|
||||
language: 'zh-CN'
|
||||
}).on('changeDate', getData);
|
||||
getData();
|
||||
};
|
||||
|
||||
function doGYYXBG_Out() {
|
||||
stopBubbleDefaultEvent();
|
||||
let mainScoreMpid = '${param.mainScoreMpid}';
|
||||
window.open(ext.contextPath + "/digitalProcess/digitalTechnologist/doGYYXBG_Out.do?unitId=" + unitId
|
||||
+ "&sdt=" + $('#dateTime').val() + "&mainScoreMpid=" + mainScoreMpid);
|
||||
}
|
||||
|
||||
</script>
|
||||
<div class="modal fade" id="subModal">
|
||||
<div class="modal-dialog" style="width: 80%;">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title"></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- 新增界面formid强制为subForm -->
|
||||
<form class="form-horizontal" id="subForm">
|
||||
<!-- 界面提醒div强制id为alertDiv -->
|
||||
<div id="alertDiv"></div>
|
||||
<div style="float: left;width: 100%;height: 45px;line-height: 45px;text-align: center;font-size: 18px;">
|
||||
工艺运行评价
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 45px;line-height: 45px;text-align: center;padding-right: 55px;">
|
||||
<div style="float: right;width:40px;height: 45px;text-align: center;padding-left: 10px">
|
||||
<button style="height: 30px;" type="button" class="btn btn-default" onclick="doGYYXBG_Out();"><i
|
||||
class="fa fa-cloud-download"></i></button>
|
||||
</div>
|
||||
<div style="float: right;width:120px;height: 45px;line-height: 45px;text-align: center;padding-top: 7.5px;">
|
||||
<input class="form-control date-picker" id="dateTime" name="dateTime" autocomplete="off"
|
||||
type="text"
|
||||
placeholder="点击选择"
|
||||
style="width:100%;height:30px;line-height: 30px;border-radius: 8px;padding-left: 20px;"
|
||||
value="" readonly/>
|
||||
</div>
|
||||
<div style="float: right;width:60px;height: 45px;line-height: 45px;text-align: center;">
|
||||
日期:
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;margin-top: 15px;">
|
||||
<div id="GYPJ_Table"></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer" style="border-top: 0px;">
|
||||
<button style="margin-top: 10px;" type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.modal-content -->
|
||||
</div>
|
||||
<!-- /.modal-dialog -->
|
||||
</div>
|
||||
823
WebRoot/jsp/digitalProcess/PACDosingList.jsp
Normal file
823
WebRoot/jsp/digitalProcess/PACDosingList.jsp
Normal file
@ -0,0 +1,823 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
let color = [
|
||||
"#899BFF",
|
||||
"#35C837",
|
||||
"#89E1FF"
|
||||
];
|
||||
let series1 = [];
|
||||
let legendName1 = [];
|
||||
let series2 = [];
|
||||
let legendName2 = [];
|
||||
|
||||
let series3 = [];
|
||||
let legendName3 = [];
|
||||
let series4 = [];
|
||||
let legendName4 = [];
|
||||
|
||||
let websocket = null;
|
||||
let modelIp = "${modelIp}";
|
||||
|
||||
let tabSt = "PAC";
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
if ('WebSocket' in window) {
|
||||
// 创建websocket对象
|
||||
websocket = new WebSocket("ws://" + modelIp + "/modelComputerWebSocketEnd/");
|
||||
// console.log("ws://"+modelIp+"/modelComputerWebSocketEnd/")
|
||||
registerEvent();
|
||||
} else {
|
||||
alert('当前浏览器不支持websocket')
|
||||
}
|
||||
$(window).unload(function () {
|
||||
console.log("websocket关闭");
|
||||
websocket.close();
|
||||
});
|
||||
|
||||
if ('${param.tabSt}' != '') {
|
||||
tabSt = '${param.tabSt}';
|
||||
}
|
||||
|
||||
if ('${param.unitId}' != '') {
|
||||
unitId = '${param.unitId}';
|
||||
}
|
||||
|
||||
getData("");
|
||||
})
|
||||
|
||||
|
||||
function registerEvent() {
|
||||
websocket.onopen = function (event) {
|
||||
console.log("已连接");
|
||||
}
|
||||
|
||||
websocket.onmessage = function (event) {
|
||||
if (event != null) {
|
||||
// console.log(event.data)
|
||||
let modelType = event.data;
|
||||
if (modelType != 'model_status') {
|
||||
getData(modelType);
|
||||
}
|
||||
}
|
||||
};
|
||||
websocket.onclose = function (event) {
|
||||
console.log("已断开");
|
||||
reconnect();
|
||||
};
|
||||
//连接发生错误的回调方法
|
||||
websocket.onerror = function () {
|
||||
reconnect();
|
||||
};
|
||||
}
|
||||
|
||||
function reconnect() {
|
||||
websocket = new WebSocket("ws://" + modelIp + "/modelComputerWebSocketEnd/");
|
||||
websocket.onopen = function (event) {
|
||||
console.log("已连接");
|
||||
}
|
||||
|
||||
websocket.onmessage = function (event) {
|
||||
};
|
||||
|
||||
websocket.onclose = function (event) {
|
||||
setTimeout("reconnect();", 8000);
|
||||
};
|
||||
//连接发生错误的回调方法 `1
|
||||
websocket.onerror = function () {
|
||||
websocket.close();
|
||||
};
|
||||
}
|
||||
|
||||
function getData(modelType) {
|
||||
series1 = [];
|
||||
legendName1 = [];
|
||||
series2 = [];
|
||||
legendName2 = [];
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'PACDosingList',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
// console.log(data)
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
// console.log(content)
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = toThousands(content.mPoint.parmvalue);
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getTHDayHistory') {
|
||||
if (content.elementCode == '1chart') {
|
||||
legendName1.push(content.name);
|
||||
series1.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
yAxisIndex: content.morder,
|
||||
data: content.jsonArray
|
||||
})
|
||||
} else if (content.elementCode == '2chart') {
|
||||
legendName2.push(content.name);
|
||||
series2.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
yAxisIndex: content.morder,
|
||||
data: content.jsonArray
|
||||
})
|
||||
} else if (content.elementCode == '3chart') {
|
||||
legendName3.push(content.name);
|
||||
series3.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray
|
||||
})
|
||||
} else if (content.elementCode == '4chart') {
|
||||
legendName4.push(content.name);
|
||||
series4.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
changeYC1(tabSt);
|
||||
changeYC2(tabSt);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getChart1() {
|
||||
let myChart = echarts.init(document.getElementById("1Chart"));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
legend: {
|
||||
data: legendName1,
|
||||
left: 'center'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '(kg)'
|
||||
},
|
||||
{
|
||||
type: 'value',
|
||||
name: '(m³/s)',
|
||||
splitLine: {
|
||||
show: false//是否显示分隔线。默认数值轴显示,类目轴不显示。
|
||||
}
|
||||
}
|
||||
],
|
||||
series: series1
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
// if (series1.length > 0) {
|
||||
// option1.series = series1;
|
||||
// option1.legend.data = legendName1;
|
||||
// myChart1.setOption(option1, true);
|
||||
// }
|
||||
}
|
||||
|
||||
function getChart2() {
|
||||
let myChart = echarts.init(document.getElementById("2Chart"));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
legend: {
|
||||
data: legendName2,
|
||||
left: 'center'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '(kg)'
|
||||
},
|
||||
{
|
||||
type: 'value',
|
||||
name: '(m³/s)',
|
||||
splitLine: {
|
||||
show: false//是否显示分隔线。默认数值轴显示,类目轴不显示。
|
||||
}
|
||||
}
|
||||
],
|
||||
series: series2
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function getChart3() {
|
||||
let myChart = echarts.init(document.getElementById("3Chart"));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
legend: {
|
||||
data: legendName3,
|
||||
left: 'center'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '(kg)'
|
||||
}
|
||||
],
|
||||
series: series3
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function getChart4() {
|
||||
let myChart = echarts.init(document.getElementById("4Chart"));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
legend: {
|
||||
data: legendName4,
|
||||
left: 'center'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '(kg)'
|
||||
}
|
||||
],
|
||||
series: series4
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function changeYC1(st) {
|
||||
if (st == 'PAC') {
|
||||
$('#PACSt1').css('background-color', '#00acd6');
|
||||
$('#PACSt1').css('color', '#FFFFFF');
|
||||
|
||||
$('#PAMSt1').css('background-color', '#FFFFFF');
|
||||
$('#PAMSt1').css('color', '#000000');
|
||||
|
||||
$('#st1Hidden1').css('display', 'block');
|
||||
$('#st1Hidden2').css('display', 'none');
|
||||
|
||||
setTimeout("getChart1()", "1000");
|
||||
} else if (st == 'PAM') {
|
||||
$('#PAMSt1').css('background-color', '#00acd6');
|
||||
$('#PAMSt1').css('color', '#FFFFFF');
|
||||
|
||||
$('#PACSt1').css('background-color', '#FFFFFF');
|
||||
$('#PACSt1').css('color', '#000000');
|
||||
|
||||
$('#st1Hidden2').css('display', 'block');
|
||||
$('#st1Hidden1').css('display', 'none');
|
||||
|
||||
setTimeout("getChart3()", "1000");
|
||||
}
|
||||
}
|
||||
|
||||
function changeYC2(st) {
|
||||
if (st == 'PAC') {
|
||||
$('#PACSt2').css('background-color', '#00acd6');
|
||||
$('#PACSt2').css('color', '#FFFFFF');
|
||||
|
||||
$('#PAMSt2').css('background-color', '#FFFFFF');
|
||||
$('#PAMSt2').css('color', '#000000');
|
||||
|
||||
$('#st2Hidden1').css('display', 'block');
|
||||
$('#st2Hidden2').css('display', 'none');
|
||||
setTimeout("getChart2()", "1000");
|
||||
|
||||
} else if (st == 'PAM') {
|
||||
$('#PAMSt2').css('background-color', '#00acd6');
|
||||
$('#PAMSt2').css('color', '#FFFFFF');
|
||||
|
||||
$('#PACSt2').css('background-color', '#FFFFFF');
|
||||
$('#PACSt2').css('color', '#000000');
|
||||
|
||||
$('#st2Hidden2').css('display', 'block');
|
||||
$('#st2Hidden1').css('display', 'none');
|
||||
|
||||
setTimeout("getChart4()", "1000");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<!-- <div style="float:left;width: 100%;height: 45px;"> -->
|
||||
<!-- <button style="width: 80px;height: 32px;border: 1px solid #B0B0B0;">计算</button> -->
|
||||
<!-- </div> -->
|
||||
<div style="float:left;width: 100%;height: calc((100% - 15px)*0.5);padding: 30px;border-radius: 4px;background-color: #FFFFFF;">
|
||||
<div style="float:right;width: 55%;height: 40px;">
|
||||
<div id="PACSt1"
|
||||
style="float: left;width: 100px;height: 30px;line-height:30px;text-align:center;background-color: #FFFFFF;border-radius: 2px;border: 1px solid #B0B0B0;cursor: pointer;"
|
||||
onclick="changeYC1('PAC');">PAC预测
|
||||
</div>
|
||||
<div id="PAMSt1"
|
||||
style="float: left;width: 100px;height: 30px;line-height:30px;text-align:center;margin-left:10px;background-color: #FFFFFF;border-radius: 2px;border: 1px solid #B0B0B0;cursor: pointer;"
|
||||
onclick="changeYC1('PAM');">PAM预测
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: calc(100% - 40px);">
|
||||
<div style="float: left;width: 20%;height: 100%;border-right: 1px solid #B0B0B0;">
|
||||
<div style="float: left;width: 100%;height: 20%;padding-left: 20px;font-size: 18px;font-weight: bold;">
|
||||
进水参数
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
工艺单体
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
预测小时处理量<br>(m³/s)
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
1#高密池
|
||||
</div>
|
||||
<div class="1GMC_Hour_Handling_Forecast"
|
||||
style="float: left;width: 50%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
高密池进水SS<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
高密池进水TP<br>(mg/L)
|
||||
</div>
|
||||
<div class="1GMC_JS_SS"
|
||||
style="float: left;width: 50%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="1GMC_JS_TP"
|
||||
style="float: left;width: 50%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 100%;border-right: 1px solid #B0B0B0;">
|
||||
<div style="float: left;width: 100%;height: 20%;padding-left: 20px;font-size: 18px;font-weight: bold;">
|
||||
出水参数
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
AC池出水SS<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
AC池出水TP<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
出水TP目标值<br>(mg/L)
|
||||
</div>
|
||||
<div class="1GMC_AC_CS_SS"
|
||||
style="float: left;width: 33.3%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="1GMC_AC_CS_TP"
|
||||
style="float: left;width: 33.3%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color:#04A7EE;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
<div class="1GMC_AC_CS_TP_Forecast"
|
||||
style="float: left;width: 100%;height: 100%;padding-left: 10px;padding-right: 10px;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
BD池出水SS<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
BD池出水TP<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
出水TP目标值<br>(mg/L)
|
||||
</div>
|
||||
<div class="1GMC_BD_CS_SS"
|
||||
style="float: left;width: 33.3%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="1GMC_BD_CS_TP"
|
||||
style="float: left;width: 33.3%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color:#04A7EE;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
<div class="1GMC_BD_CS_TP_Forecast"
|
||||
style="float: left;width: 100%;height: 100%;padding-left: 10px;padding-right: 10px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="st1Hidden1" style="float: left;width: 55%;height: 100%;display: block;">
|
||||
<div style="float: left;width: 45%;height: 100%;">
|
||||
<div style="float: left;width: 100%;height: 20%;padding-left: 20px;font-size: 18px;font-weight: bold;">
|
||||
预测值
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
A池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
B池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
C池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
D池加药量<br>(kg)
|
||||
</div>
|
||||
<div class="1GMC_A_Dosage_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="1GMC_B_Dosage_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="1GMC_C_Dosage_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="1GMC_D_Dosage_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
A池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
B池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
C池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
D池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div class="1GMC_A_DosageRate_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="1GMC_B_DosageRate_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="1GMC_C_DosageRate_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="1GMC_D_DosageRate_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
</div>
|
||||
<div id="1Chart" style="float: left;width: 55%;height: 100%;"></div>
|
||||
</div>
|
||||
<div id="st1Hidden2" style="float: left;width: 55%;height: 100%;display: none;">
|
||||
<div style="float: left;width: 45%;height: 100%;">
|
||||
<div style="float: left;width: 100%;height: 20%;padding-left: 20px;font-size: 18px;font-weight: bold;">
|
||||
预测值
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
A池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
B池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
C池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
D池加药量<br>(kg)
|
||||
</div>
|
||||
<div class="TH_PAM_1_A_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_1_B_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_1_C_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_1_D_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
A池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
B池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
C池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
D池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div class="TH_PAM_1_A_R_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_1_B_R_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_1_C_R_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_1_D_R_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
</div>
|
||||
<div id="3Chart" style="float: left;width: 55%;height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 15px;">
|
||||
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: calc((100% - 15px)*0.5);padding: 30px;border-radius: 4px;background-color: #FFFFFF;">
|
||||
<div style="float:right;width: 55%;height: 40px;">
|
||||
<div id="PACSt2"
|
||||
style="float: left;width: 100px;height: 30px;line-height:30px;text-align:center;background-color: #FFFFFF;border-radius: 2px;border: 1px solid #B0B0B0;cursor: pointer;"
|
||||
onclick="changeYC2('PAC');">PAC预测
|
||||
</div>
|
||||
<div id="PAMSt2"
|
||||
style="float: left;width: 100px;height: 30px;line-height:30px;text-align:center;margin-left:10px;background-color: #FFFFFF;border-radius: 2px;border: 1px solid #B0B0B0;cursor: pointer;"
|
||||
onclick="changeYC2('PAM');">PAM预测
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: calc(100% - 40px);">
|
||||
<div style="float: left;width: 20%;height: 100%;border-right: 1px solid #B0B0B0;">
|
||||
<div style="float: left;width: 100%;height: 20%;padding-left: 20px;font-size: 18px;font-weight: bold;">
|
||||
进水参数
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
工艺单体
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
预测小时处理量<br>(m³/s)
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
2#高密池
|
||||
</div>
|
||||
<div class="2GMC_Hour_Handling_Forecast"
|
||||
style="float: left;width: 50%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
高密池进水SS<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
高密池进水TP<br>(mg/L)
|
||||
</div>
|
||||
<div class="2GMC_JS_SS"
|
||||
style="float: left;width: 50%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="2GMC_JS_TP"
|
||||
style="float: left;width: 50%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 100%;border-right: 1px solid #B0B0B0;">
|
||||
<div style="float: left;width: 100%;height: 20%;padding-left: 20px;font-size: 18px;font-weight: bold;">
|
||||
出水参数
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
AC池出水SS<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
AC池出水TP<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
出水TP目标值<br>(mg/L)
|
||||
</div>
|
||||
<div class="2GMC_AC_CS_SS"
|
||||
style="float: left;width: 33.3%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="2GMC_AC_CS_TP"
|
||||
style="float: left;width: 33.3%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color:#04A7EE;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
<div class="2GMC_AC_CS_TP_Forecast"
|
||||
style="float: left;width: 100%;height: 100%;padding-left: 10px;padding-right: 10px;">
|
||||
<!-- <input class="2GMC_AC_CS_TP_Forecast" style="width: 100%;text-align: center;border: 0px;border-bottom: 2px solid #04A7EE;" -->
|
||||
<!-- value="0" readonly> -->
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
BD池出水SS<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
BD池出水TP<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
出水TP目标值<br>(mg/L)
|
||||
</div>
|
||||
<div class="2GMC_BD_CS_SS"
|
||||
style="float: left;width: 33.3%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="2GMC_BD_CS_TP"
|
||||
style="float: left;width: 33.3%;height: 20%;padding-left: 20px;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 20%;padding-left: 20px;color:#04A7EE;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
<div class="2GMC_BD_CS_TP_Forecast"
|
||||
style="float: left;width: 100%;height: 100%;padding-left: 10px;padding-right: 10px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="st2Hidden1" style="float: left;width: 55%;height: 100%;display: block;">
|
||||
<div style="float: left;width: 45%;height: 100%;">
|
||||
<div style="float: left;width: 100%;height: 20%;padding-left: 20px;font-size: 18px;font-weight: bold;">
|
||||
预测值
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
A池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
B池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
C池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
D池加药量<br>(kg)
|
||||
</div>
|
||||
<div class="2GMC_A_Dosage_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="2GMC_B_Dosage_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="2GMC_C_Dosage_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="2GMC_D_Dosage_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
A池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
B池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
C池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
D池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div class="2GMC_A_DosageRate_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="2GMC_B_DosageRate_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="2GMC_C_DosageRate_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="2GMC_D_DosageRate_Forecast"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
</div>
|
||||
<div id="2Chart" style="float: left;width: 55%;height: 100%;"></div>
|
||||
</div>
|
||||
<div id="st2Hidden2" style="float: left;width: 55%;height: 100%;display: block;">
|
||||
<div style="float: left;width: 45%;height: 100%;">
|
||||
<div style="float: left;width: 100%;height: 20%;padding-left: 20px;font-size: 18px;font-weight: bold;">
|
||||
预测值
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
A池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
B池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
C池加药量<br>(kg)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
D池加药量<br>(kg)
|
||||
</div>
|
||||
<div class="TH_PAM_2_A_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_2_B_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_2_C_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_2_D_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
A池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
B池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
C池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 25%;height: 20%;padding-left: 20px;color: #B0B0B0;text-align: center;">
|
||||
D池投加率<br>(mg/L)
|
||||
</div>
|
||||
<div class="TH_PAM_2_A_R_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_2_B_R_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_2_C_R_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="TH_PAM_2_D_R_PREDICT"
|
||||
style="float: left;width: 25%;height: 20%;padding-left: 20px;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
</div>
|
||||
<div id="4Chart" style="float: left;width: 55%;height: 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
1219
WebRoot/jsp/digitalProcess/aerationSystemOfReactionTank.jsp
Normal file
1219
WebRoot/jsp/digitalProcess/aerationSystemOfReactionTank.jsp
Normal file
File diff suppressed because it is too large
Load Diff
993
WebRoot/jsp/digitalProcess/betterPolicy.jsp
Normal file
993
WebRoot/jsp/digitalProcess/betterPolicy.jsp
Normal file
@ -0,0 +1,993 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
let nowTime = getNowTime();
|
||||
let sdt = nowTime.substring(0, 7) + "-01 00:00";
|
||||
let edt = getPlusTime(sdt, "1", "month");
|
||||
edt = getPlusTime(edt, "-1", "day").substring(0, 10) + " 23:59";
|
||||
|
||||
let dataContent = [];
|
||||
|
||||
let colors = ['#1790FF', '#FFB917', '#8800FF', '#1ACF0D', '#1790FF', '#FFB917', '#8800FF', '#1ACF0D'];
|
||||
|
||||
let series1 = [];
|
||||
let chart1Title = [];
|
||||
|
||||
let series2 = [];
|
||||
let legendName2 = [];
|
||||
|
||||
let myChart3 = "";
|
||||
let option3 = [];
|
||||
|
||||
let myChart4 = "";
|
||||
|
||||
let child1 = [];
|
||||
|
||||
let mainScoreMpid = "";
|
||||
|
||||
let windowWidth = $(window).width();
|
||||
let windowHeight = $(window).height();
|
||||
|
||||
$(function () {
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
$(document).click(function (e) {
|
||||
var divTree = $('#dataCompareDiv'); // 设置目标区域
|
||||
if (!divTree.is(e.target) && divTree.has(e.target).length === 0) {
|
||||
divTree.hide()
|
||||
}
|
||||
})
|
||||
|
||||
getData("");
|
||||
|
||||
$.post(ext.contextPath + "/process/decisionExpertBase/get4SelectPidJson.do", {unitId: unitId}, function (data) {
|
||||
dataContent = data;
|
||||
if (data.length > 0) {
|
||||
let autoTabHtml = "";
|
||||
autoTabHtml += "<ul class='nav nav-tabs' id='myTab'>";
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let autoTabA = "";
|
||||
if (i == 0) {
|
||||
autoTabA = "active";
|
||||
}
|
||||
autoTabHtml += "<li onclick=\"changeTab('" + data[i].id + "'," + i + ");\" class='" + autoTabA + "'><a href='#tab" + (i + 1) + "' data-toggle='tab'" +
|
||||
"index='" + i + "' aria-expanded='true'>" + data[i].text + "</a></li>";
|
||||
}
|
||||
autoTabHtml += "</ul>";
|
||||
|
||||
autoTabHtml += "<div class='tab-content no-padding' style='width:100%;height:calc(100% - 41px);'>";
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let autoTabA = "";
|
||||
if (i == 0) {
|
||||
autoTabA = "active";
|
||||
}
|
||||
autoTabHtml += "<div class='tab-pane " + autoTabA + "' id='tab" + (i + 1) + "' style='width:100%;height:100%;position: relative; padding:15px 25px 15px 25px;'>" +
|
||||
"<div style='float: left;width: 35%;height: 100%;'>" +
|
||||
"<div style='float: left;width: 100%;height: 45px;line-height:45px;'>" +
|
||||
"<div style='float: left;color: #A0A0A0;'>时间范围:</div>" +
|
||||
"<div style='float: left;'> <input type='text' class='form-control pull-left' autocomplete='off' id='reservationtime" + i + "' style='width:100px;margin-top: 5px;'>" +
|
||||
"<div class='input-group-btn' style='float: left;'><button style='height: 34px;' class='btn btn-default' onclick=\"doTabSearch('" + data[i].id + "'," + i + ");\"><i class='fa fa-search'></i></button></div>" +
|
||||
"</div>" +
|
||||
"</div>" +
|
||||
"<div id='tabCotent_1_" + i + "' style='float: left;width: 100%;height: calc((100% - 45px)*0.35);'></div>" +
|
||||
"<div id='tabCotent_2_" + i + "' style='float: left;width: 100%;height: calc((100% - 45px)*0.65);'></div>" +
|
||||
"</div>" +
|
||||
"<div style='float: left;width: 65%;height: 100%;'>" +
|
||||
"<div style='float: left;width:100%;height:45px;line-height:45px;text-align: center;color: #000000;'>异常及采纳意见数</div>" +
|
||||
"<div id='tabCotent_3_" + i + "' style='float: left;width: 100%;height: calc(100% - 45px);'></div>" +
|
||||
"</div>" +
|
||||
"</div>";
|
||||
}
|
||||
autoTabHtml += "</div>";
|
||||
$('#autoTab').html(autoTabHtml);
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
initDate(i);
|
||||
}
|
||||
changeTab(data[0].id, 0);
|
||||
}
|
||||
getIcon();
|
||||
}, 'json');
|
||||
})
|
||||
|
||||
function initDate(index) {
|
||||
let time = moment().subtract(0, 'days').format("YYYY-MM");
|
||||
$('#reservationtime' + index).datetimepicker({
|
||||
language: 'zh-CN',
|
||||
startView: 3,//日期时间选择器打开之后首先显示的视图。 可接受的值:0 - 小时 视图,1 - 天 视图,2 - 月 视图,3 - 年 视图,4 - 十年 视图
|
||||
minView: 3,//Number, String. 默认值:0, ‘hour’,日期时间选择器所能够提供的最精确的时间选择视图
|
||||
autoclose: true,//当选择一个日期之后是否立即关闭此日期时间选择器
|
||||
todayBtn: true,//在日期时间选择器组件的底部显示一个 “Today” 按钮用以选择当前日期
|
||||
format: 'yyyy-mm'//日期显示格式
|
||||
});
|
||||
$('#reservationtime' + index).val(time);
|
||||
};
|
||||
|
||||
function changeTab(id, index) {
|
||||
doTabSearch(id, index);
|
||||
}
|
||||
|
||||
function doTabSearch(id, index) {
|
||||
// console.log(index);
|
||||
let time = $('#reservationtime' + index).val() + "-01";
|
||||
// getIcon();
|
||||
$.post(ext.contextPath + "/alarm/proAlarmBaseText/getStatisticalDataForTH.do", {
|
||||
unitId: unitId,
|
||||
statisticalDate: time,
|
||||
pid: id
|
||||
}, function (data) {
|
||||
// console.log(data)
|
||||
data = data[0];
|
||||
let trueNum = data.trueNum;
|
||||
let falseNum = data.falseNum;
|
||||
let totalNum = data.totalNum;
|
||||
|
||||
let totalNumRate = 0;
|
||||
if (totalNum > 0) {
|
||||
totalNumRate = (((trueNum / totalNum).toFixed(2)) * 100).toFixed(0);
|
||||
}
|
||||
let firstTrueContent = data.firstTrueContent;
|
||||
let firstTrueTime = data.firstTrueTime;
|
||||
let firstTrueSt = data.firstTrueSt;
|
||||
let firstTrueStName = "未采纳";
|
||||
if (firstTrueSt == '1') {
|
||||
firstTrueStName = "采纳";
|
||||
} else if (firstTrueSt == '0') {
|
||||
firstTrueStName = "未采纳";
|
||||
}
|
||||
|
||||
let trueNum_his = data.trueNum_his;
|
||||
let totalNum_his = data.totalNum_his;
|
||||
let curve_xData = data.curve_xData;
|
||||
|
||||
let tabCotent_1_Html = "";
|
||||
tabCotent_1_Html += "<table style='width: 100%;height: 100%;text-align: center;'>" +
|
||||
"<tr style='color: #AEAEAE;'>" +
|
||||
"<td>运行决策建议</td>" +
|
||||
"<td>被采纳建议</td>" +
|
||||
"<td>建议采纳率</td>" +
|
||||
"</tr>" +
|
||||
"<tr style='font-size: 30px;'>" +
|
||||
"<td style='color: #000000;'>" + totalNum + "</td>" +
|
||||
"<td style='color: #059D60;'>" + trueNum + "</td>" +
|
||||
"<td style='color: #000000;'>" + totalNumRate + "%</td>" +
|
||||
"</tr>" +
|
||||
"</table>";
|
||||
|
||||
let tabCotent_2_Html = "";
|
||||
tabCotent_2_Html += "<div style='float:left;width: 100%;height: 100%;background-color: #F6F6F6;padding-left: 20px;padding-right: 20px;'>" +
|
||||
"<div style='float: left;width: 100%;height: 45px;line-height: 45px;color: #AEAEAE;'>" +
|
||||
"<div style='float: left;width: 120px;height: 45px;line-height: 45px;color: #AEAEAE;'>" + firstTrueTime + "</div>" +
|
||||
"<div style='float: right;height: 45px;line-height: 45px;color: #AEAEAE;'>" + firstTrueStName + "</div>" +
|
||||
"</div>" +
|
||||
"<div style='float: left;width: 100%;height: calc(100% - 80px);line-height: 20px;color: #AEAEAE;'>" + firstTrueContent + "</div>" +
|
||||
"<div style='float: right;width: 50px;height: 35px;text-align: right;line-height: 35px;color: #0066FF;cursor: pointer;' onclick=\"openMoreText('" + id + "');\">更多...</div>" +
|
||||
"</div>";
|
||||
|
||||
$('#tabCotent_1_' + index).html(tabCotent_1_Html);
|
||||
$('#tabCotent_2_' + index).html(tabCotent_2_Html);
|
||||
|
||||
let series4 = [];
|
||||
if (totalNum_his != null && totalNum_his.length > 0) {
|
||||
series4.push({
|
||||
name: '建议次数',
|
||||
type: 'bar',
|
||||
data: totalNum_his,
|
||||
itemStyle: {
|
||||
color: '#FFE601'
|
||||
}
|
||||
})
|
||||
}
|
||||
if (trueNum_his != null && trueNum_his.length > 0) {
|
||||
series4.push({
|
||||
name: '被采纳次数',
|
||||
type: 'line',
|
||||
data: trueNum_his,
|
||||
itemStyle: {
|
||||
color: '#009C5D'
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
if (myChart4 != "") {
|
||||
myChart4.clear();
|
||||
}
|
||||
chart4(index, series4, curve_xData);
|
||||
|
||||
}, 'json');
|
||||
}
|
||||
|
||||
function getIcon() {
|
||||
$.post(ext.contextPath + "/process/dataPatrol/getYHJC_data.do", {
|
||||
unitId: unitId,
|
||||
}, function (numData) {
|
||||
// console.log(numData)
|
||||
for (let i = 0; i < numData.length; i++) {
|
||||
let totalNum = numData[i].num;
|
||||
|
||||
if (totalNum > 0) {
|
||||
let showGytNum = totalNum;
|
||||
if (Number(showGytNum) > 99) {
|
||||
showGytNum = "99+"
|
||||
}
|
||||
if (i == 0) {
|
||||
GyDW = "left:13%;top:18%;";
|
||||
} else if (i == 1) {
|
||||
GyDW = "left:95%;top:18%;"
|
||||
} else if (i == 2) {
|
||||
GyDW = "left:44%;top:18%;"
|
||||
} else if (i == 3) {
|
||||
GyDW = "left:72%;top:18%;"
|
||||
}
|
||||
let iconHtml = "<div style='width: 24px;height: 24px;background-color: red;border-radius: 50%;" + GyDW + ";position:absolute;color: #ffffff;text-align: center;line-height: 24px;cursor: pointer;' onclick='openDataPatrol();'>" + showGytNum + "</div>";
|
||||
$('#gytDiv').append(iconHtml);
|
||||
}
|
||||
}
|
||||
}, 'json');
|
||||
}
|
||||
|
||||
function openDataPatrol() {
|
||||
let tabId = "tabId_openDataPatrol";
|
||||
let url = "/process/dataPatrol/showNewView.do";
|
||||
window.parent.addTab(tabId, "工艺数据巡视", url);
|
||||
}
|
||||
|
||||
function getData(modelType) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'betterPolicy',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
// console.log(data)
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let mpcode = content.mPoint.id;
|
||||
mainScoreMpid = mpcode;
|
||||
if (content.elementCode == 'totalScore') {
|
||||
$.post(ext.contextPath + '/digitalProcess/digitalTechnologist/getMpFormulaData.do', {
|
||||
mpcode: mpcode,
|
||||
unitId: unitId
|
||||
}, function (totalScoreData) {
|
||||
// console.log(totalScoreData)
|
||||
if (totalScoreData.length > 0) {
|
||||
let totalScore = totalScoreData[0].value;
|
||||
chart1Title = totalScore;
|
||||
if (totalScoreData[0].child.length > 0) {
|
||||
child1 = totalScoreData[0].child;
|
||||
let html1 = "";
|
||||
html1 += "<table style='width: 100%;height: 100%;text-align: center;'>";
|
||||
html1 += "<tr style='color:#B7B7B7;font-size: 14px;'>";
|
||||
html1 += "<td style='width: 35%'></td>";
|
||||
html1 += "<td style='width: 25%'>当前得分</td>";
|
||||
html1 += "<td style='width: 20%'>权重</td>";
|
||||
html1 += "<td style='width: 20%'>满分</td>";
|
||||
html1 += "</tr>";
|
||||
for (let m = 0; m < child1.length; m++) {
|
||||
series1.push({
|
||||
value: child1[m].value,
|
||||
name: child1[m].text
|
||||
})
|
||||
if (m == 0) {
|
||||
html1 += "<tr onclick=\"changeHtml1(" + m + ")\" id='html1_tr_" + m + "' style='color:#B7B7B7;font-size: 14px;font-weight: bolder;background-color: #EEFAFF;cursor: pointer;'>";
|
||||
} else {
|
||||
html1 += "<tr onclick=\"changeHtml1(" + m + ")\" id='html1_tr_" + m + "' style='color:#B7B7B7;font-size: 14px;font-weight: normal;background-color: #FFFFFF;cursor: pointer;'>";
|
||||
}
|
||||
html1 += "<td style='width: 35%;color: " + colors[m] + ";'>" +
|
||||
"<div style='float: left;width: 30%;padding-right: 10px;'>";
|
||||
if (m == 0) {
|
||||
html1 += "<div id='html1_div_" + m + "' style='float: right;width: 20px;height: 20px;background-color: " + colors[m] + ";border: 2px solid " + colors[m] + ";border-radius: 4px;'></div>";
|
||||
} else {
|
||||
html1 += "<div id='html1_div_" + m + "' style='float: right;width: 20px;height: 20px;background-color: #FFFFFF;border: 2px solid " + colors[m] + ";border-radius: 4px;'></div>";
|
||||
}
|
||||
html1 += "</div>" +
|
||||
"<div style='float: left;width: 70%;'>" + child1[m].text + "</div>" +
|
||||
"</td>";
|
||||
html1 += "<td style='width: 25%;color:#000000;'>" + child1[m].value + "</td>";
|
||||
html1 += "<td style='width: 20%;color:#000000;'>" + child1[m].rate + "</td>";
|
||||
html1 += "<td style='width: 20%;color:#000000;'>" + child1[m].spanrange + "</td>";
|
||||
html1 += "</tr>";
|
||||
|
||||
if (child1[0].child.length > 0) {
|
||||
if (m == 0) {
|
||||
changeHtml1(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
html1 += "</table>";
|
||||
$('#html1').html(html1);
|
||||
chart1();
|
||||
}
|
||||
|
||||
}
|
||||
}, 'json');
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
} else if (content.getValueType == 'getMonthHistory') {
|
||||
if (content.elementCode.indexOf("scoreLineChart") >= 0) {
|
||||
legendName2.push(content.name);
|
||||
series2.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
areaStyle: {},
|
||||
stack: 'a',
|
||||
emphasis: {
|
||||
focus: 'series'
|
||||
},
|
||||
data: content.jsonArray
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
chart2();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function changeHtml1(index) {
|
||||
for (let i = 0; i < child1.length; i++) {
|
||||
if (i == index) {
|
||||
$('#html1_tr_' + index).css('background-color', '#EEFAFF');
|
||||
$('#html1_tr_' + index).css('font-weight', 'bolder');
|
||||
$('#html1_div_' + index).css('background-color', "" + colors[i] + "");
|
||||
} else {
|
||||
$('#html1_tr_' + i).css('background-color', '#FFFFFF');
|
||||
$('#html1_tr_' + i).css('font-weight', 'normal');
|
||||
$('#html1_div_' + i).css('background-color', '#FFFFFF');
|
||||
}
|
||||
}
|
||||
|
||||
$('#html3').html("");
|
||||
|
||||
// let html2 = "";
|
||||
let child2 = child1[index].child;
|
||||
// console.log(child2)
|
||||
let xAxisData = [];
|
||||
let seriesData = [];
|
||||
let mpidData = [];
|
||||
if (child2.length > 0) {
|
||||
for (let n = 0; n < child2.length; n++) {
|
||||
xAxisData.push(child2[n].text);
|
||||
let outValue = 0;
|
||||
if (child2[n].spanrange != null) {
|
||||
outValue = ((child2[n].score / child2[n].spanrange) * 100).toFixed(2);
|
||||
}
|
||||
seriesData.push(outValue);
|
||||
mpidData.push(child2[n].mpcode);
|
||||
}
|
||||
}
|
||||
chart3_main(seriesData, xAxisData, mpidData, child2);
|
||||
}
|
||||
|
||||
function chart1() {
|
||||
let myChart = echarts.init(document.getElementById("chart1"));
|
||||
let option = {
|
||||
color: colors,
|
||||
title: {
|
||||
text: ['{a|总评分}', '{b|' + chart1Title + '}'].join('\n\n'),
|
||||
textStyle:
|
||||
{
|
||||
rich:
|
||||
{
|
||||
a:
|
||||
{
|
||||
color: '#5C9FD1',
|
||||
fontSize: 14
|
||||
},
|
||||
b:
|
||||
{
|
||||
color: '#1790FF',
|
||||
fontSize: 30
|
||||
}
|
||||
}
|
||||
},
|
||||
left: 'center',
|
||||
top: 'center'
|
||||
},
|
||||
legend: {
|
||||
show: false
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'item'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
// name: '总评分',
|
||||
type: 'pie',
|
||||
radius: ['50%', '80%'],
|
||||
center: ['50%', '50%'],
|
||||
roseType: 'area',
|
||||
itemStyle: {
|
||||
borderRadius: 8
|
||||
},
|
||||
labelLine: {
|
||||
show: false
|
||||
},
|
||||
label: {
|
||||
show: false
|
||||
},
|
||||
data: series1
|
||||
}
|
||||
]
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function chart2() {
|
||||
let myChart = echarts.init(document.getElementById("chart2"));
|
||||
let option = {
|
||||
color: colors,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'cross',
|
||||
label: {
|
||||
backgroundColor: '#6a7985'
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
data: legendName2,
|
||||
right: '4%'
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
type: 'time',
|
||||
axisLabel: {
|
||||
formatter: '{d}日'
|
||||
}
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
name: '分',
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: series2
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function chart3_main(seriesData, xAxisData, mpidData, child2) {
|
||||
option3 = [];
|
||||
myChart3 = echarts.init(document.getElementById("chart3"));
|
||||
option3 = {
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params, ticket, callback) {
|
||||
var htmlStr = '';
|
||||
// for (var i = 0; i < params.length; i++) {
|
||||
var param = params[0];
|
||||
// console.log(param);
|
||||
var xName = param.name;//x轴的名称
|
||||
var seriesName = param.seriesName;//图例名称
|
||||
var xvalue = param.axisValue;//x轴值
|
||||
var yvalue = param.value;//y轴值
|
||||
var color = param.color;//图例颜色
|
||||
htmlStr += '<div>';
|
||||
htmlStr += xvalue + '<br/>';
|
||||
htmlStr += '<span style="margin-right:5px;display:inline-block;width:10px;height:10px;border-radius:5px;background-color:' + color + ';"></span>';
|
||||
htmlStr += seriesName + ':' + yvalue + "%" + '';
|
||||
htmlStr += '</div>';
|
||||
// }
|
||||
return htmlStr;
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
top: '10px',
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '20px',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
data: xAxisData,
|
||||
axisTick: {
|
||||
alignWithLabel: true
|
||||
},
|
||||
axisLabel: {
|
||||
rotate: 45 // 调整数值改变倾斜的幅度(范围-90到90)
|
||||
}
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: [
|
||||
{
|
||||
name: '得分占比',
|
||||
type: 'bar',
|
||||
// barWidth: '40px',
|
||||
data: seriesData
|
||||
}
|
||||
]
|
||||
};
|
||||
myChart3.getZr().off('click')
|
||||
myChart3.getZr().on('click', function (params) {
|
||||
// console.log(params)
|
||||
let pointInPixel = [params.offsetX, params.offsetY];
|
||||
if (myChart3.containPixel('grid', pointInPixel)) {
|
||||
let xIndex = myChart3.convertFromPixel({seriesIndex: 0}, [params.offsetX, params.offsetY])[0];
|
||||
// console.log(mpidData[xIndex]);
|
||||
let child2Data = child2[xIndex];
|
||||
// console.log(child2Data);
|
||||
getHtml3Data(child2Data.mpcode, child2Data.score, child2Data.text, child2Data.spanrange);
|
||||
}
|
||||
})
|
||||
myChart3.setOption(option3, true);
|
||||
}
|
||||
|
||||
function chart3(series, mpcode) {
|
||||
option3 = [];
|
||||
myChart3 = echarts.init(document.getElementById("chart3"));
|
||||
option3 = {
|
||||
color: ["#009C5D", "#1790FF"],
|
||||
// legend: {
|
||||
// data: legendName2,
|
||||
// right: '4%'
|
||||
// },
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
toolbox: {
|
||||
right: '10px',
|
||||
feature: {
|
||||
<%--myTool1: {--%>
|
||||
<%-- show: true,--%>
|
||||
<%-- title: '数据比较',--%>
|
||||
<%-- icon: "image://<%=request.getContextPath()%>/IMG/curve/dataCompare.png",--%>
|
||||
<%-- onclick: function () {--%>
|
||||
<%-- chooseCompareType(event, mpcode);--%>
|
||||
<%-- }--%>
|
||||
<%--},--%>
|
||||
// magicType: {show: true, type: ['line', 'bar']},
|
||||
saveAsImage: {show: true},
|
||||
myTool2: {
|
||||
show: true,
|
||||
title: '放大',
|
||||
icon: "image://<%=request.getContextPath()%>/IMG/curve/zoom.png",
|
||||
onclick: function () {
|
||||
var index = layer.open({
|
||||
type: 1,
|
||||
title: false,
|
||||
closeBtn: 0,
|
||||
area: '95%',
|
||||
// offset:"auto",
|
||||
fixed: false,
|
||||
skin: 'bgfff', //没有背景色
|
||||
shadeClose: true,
|
||||
content: "<div id='zoomView' style=\"height: " + (windowHeight - 50) + "px; \"></div>",
|
||||
success: function () {
|
||||
let zoomoption = option3;
|
||||
let zoomViewChart = echarts.init(document.getElementById("zoomView"));
|
||||
|
||||
zoomoption.toolbox.feature.myTool1 = [];
|
||||
zoomoption.toolbox.feature.myTool2 = [];
|
||||
zoomoption.toolbox.feature.myTool3 = [];
|
||||
|
||||
zoomViewChart.setOption(zoomoption, true);
|
||||
},
|
||||
end: function () {
|
||||
layer.closeAll();
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
<%--myTool3: {--%>
|
||||
<%-- show: true,--%>
|
||||
<%-- title: '恢复',--%>
|
||||
<%-- icon: "image://<%=request.getContextPath()%>/IMG/curve/restore.png",--%>
|
||||
<%-- onclick: function () {--%>
|
||||
<%-- $.post(ext.contextPath + '/data/getDetailData.do', {--%>
|
||||
<%-- mpcode: mpcode,--%>
|
||||
<%-- sdt: sdt,--%>
|
||||
<%-- edt: edt--%>
|
||||
<%-- }, function (result) {--%>
|
||||
<%-- result = result[0]--%>
|
||||
<%-- let series = [];--%>
|
||||
|
||||
<%-- series.push({--%>
|
||||
<%-- name: result.name,--%>
|
||||
<%-- type: 'line',--%>
|
||||
<%-- symbol:'none',--%>
|
||||
<%-- data: result.data--%>
|
||||
<%-- })--%>
|
||||
<%-- chart3(series, mpcode);--%>
|
||||
<%-- }, 'json');--%>
|
||||
<%-- }--%>
|
||||
<%--}--%>
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '4%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
type: 'time',
|
||||
axisLabel: {
|
||||
formatter: '{d}日'
|
||||
}
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
// name: '分',
|
||||
type: 'value'
|
||||
}
|
||||
],
|
||||
series: series
|
||||
};
|
||||
myChart3.setOption(option3, true);
|
||||
}
|
||||
|
||||
function chart4(index, seriesContent, curve_xData) {
|
||||
myChart4 = echarts.init(document.getElementById("tabCotent_3_" + index));
|
||||
let option = {
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: ['Ⅰ类报警', 'Ⅱ类报警', 'Ⅲ类报警', '采纳建议次数']
|
||||
},
|
||||
xAxis: [
|
||||
{
|
||||
type: 'category',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
data: curve_xData
|
||||
}
|
||||
],
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '个'
|
||||
}
|
||||
],
|
||||
series: seriesContent
|
||||
};
|
||||
myChart4.setOption(option, true);
|
||||
}
|
||||
|
||||
function getHtml3Data(mpcode, score, showName, spanrange) {
|
||||
let valueMpcode = mpcode;
|
||||
$.post(ext.contextPath + '/work/mpoint/getValue.do', {
|
||||
mpointCode: valueMpcode,
|
||||
unitId: unitId
|
||||
}, function (data) {
|
||||
|
||||
let vale = data.parmvalue;
|
||||
let rangeValue = "";
|
||||
|
||||
if (data.alarmmax != null && data.alarmmin != null) {
|
||||
rangeValue += "正常范围:" + data.alarmmin + "~" + data.alarmmax;
|
||||
} else if (data.alarmmax != null) {
|
||||
rangeValue += "正常范围:<=" + data.alarmmax;
|
||||
} else if (data.alarmmin != null) {
|
||||
rangeValue += "正常范围:>=" + data.alarmmin;
|
||||
}
|
||||
if (data.unit != null) {
|
||||
rangeValue += data.unit;
|
||||
}
|
||||
if (rangeValue != '') {
|
||||
rangeValue += ",";
|
||||
}
|
||||
|
||||
let html3 = "<span style='font-weight: bolder;'>" + showName + "</span>" +
|
||||
"<span style='margin-left: 5px;color: #878787;'>当前值:</span>" +
|
||||
" <span style='color: #1790FF;font-weight: bolder;'>" + vale + "</span>" +
|
||||
"<span style='color: #878787;'>" + rangeValue + "</span>" +
|
||||
"<span style='color: #878787;'>得分:</span>" +
|
||||
"<span style='color: #1790FF;font-weight: bolder;'>" + score + "</span>" +
|
||||
"<span style='color: #878787;'>,满分:</span>" +
|
||||
"<span style='color: #878787;'>" + spanrange + "</span>";
|
||||
$('#html3').html(html3);
|
||||
|
||||
$.post(ext.contextPath + '/data/getDetailData.do', {
|
||||
mpcode: mpcode,
|
||||
sdt: sdt,
|
||||
edt: edt
|
||||
}, function (result) {
|
||||
result = result[0]
|
||||
// console.log(result)
|
||||
let series = [];
|
||||
|
||||
series.push({
|
||||
name: result.name,
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
data: result.data
|
||||
})
|
||||
chart3(series, mpcode);
|
||||
}, 'json');
|
||||
}, 'json');
|
||||
|
||||
};
|
||||
|
||||
function openMoreText(id) {
|
||||
window.parent.addTab("tab_GYYHJC_Open", "工艺优化决策", "/alarm/proAlarmBaseText/showList.do?zdType=" + id);
|
||||
}
|
||||
|
||||
let nowChart3Mpcode = "";
|
||||
|
||||
function chooseCompareType(e, mpcode) {
|
||||
nowChart3Mpcode = mpcode;
|
||||
e.stopPropagation();
|
||||
var x = e.pageX;
|
||||
var y = e.pageY - 60;
|
||||
$('#dataCompareDiv').show().css({left: x, top: y});
|
||||
}
|
||||
|
||||
function doYearCompare() {
|
||||
$('#dataCompareDiv').hide();
|
||||
|
||||
let hisBJDetailData = [];
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/work/mpoint/getMpointJsonForHisContrast.do",
|
||||
async: false,
|
||||
globle: false,
|
||||
data: {
|
||||
unitId: unitId,
|
||||
mpid: nowChart3Mpcode,
|
||||
basicsDt: sdt,
|
||||
hisDt: getPlusTime(sdt, "-1", "year")
|
||||
},
|
||||
dataType: 'json',
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (result) {
|
||||
// console.log(result)
|
||||
if (result.length >= 2) {
|
||||
let data1 = result[0].data;
|
||||
let data2 = result[1].data;
|
||||
|
||||
hisBJDetailData.push({
|
||||
data1: data1,
|
||||
data2: data2,
|
||||
name1: result[0].name,
|
||||
name2: result[1].name.replace("对比月", "同比月")
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
let series = [];
|
||||
|
||||
series.push({
|
||||
name: hisBJDetailData[0].name1,
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
data: hisBJDetailData[0].data1
|
||||
})
|
||||
|
||||
series.push({
|
||||
name: hisBJDetailData[0].name2,
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
data: hisBJDetailData[0].data2
|
||||
})
|
||||
|
||||
chart3(series, nowChart3Mpcode);
|
||||
}
|
||||
|
||||
function doMonthCompare() {
|
||||
$('#dataCompareDiv').hide();
|
||||
|
||||
let hisBJDetailData = [];
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/work/mpoint/getMpointJsonForHisContrast.do",
|
||||
async: false,
|
||||
globle: false,
|
||||
data: {
|
||||
unitId: unitId,
|
||||
mpid: nowChart3Mpcode,
|
||||
basicsDt: sdt,
|
||||
hisDt: getPlusTime(sdt, "-1", "month")
|
||||
},
|
||||
dataType: 'json',
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (result) {
|
||||
if (result.length >= 2) {
|
||||
let data1 = result[0].data;
|
||||
let data2 = result[1].data;
|
||||
|
||||
hisBJDetailData.push({
|
||||
data1: data1,
|
||||
data2: data2,
|
||||
name1: result[0].name,
|
||||
name2: result[1].name.replace("对比月", "环比月")
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
// console.log(hisBJDetailData)
|
||||
let series = [];
|
||||
|
||||
series.push({
|
||||
name: hisBJDetailData[0].name1,
|
||||
type: 'line',
|
||||
data: hisBJDetailData[0].data1
|
||||
})
|
||||
|
||||
series.push({
|
||||
name: hisBJDetailData[0].name2,
|
||||
type: 'line',
|
||||
data: hisBJDetailData[0].data2
|
||||
})
|
||||
chart3(series, nowChart3Mpcode);
|
||||
}
|
||||
|
||||
function showGYYXBG() {
|
||||
stopBubbleDefaultEvent();
|
||||
$.post(ext.contextPath + '/digitalProcess/digitalTechnologist/GYYXBG_TH.do', {mainScoreMpid: mainScoreMpid}, function (data) {
|
||||
$("#subDiv").html(data);
|
||||
openModal('subModal');
|
||||
})
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper"
|
||||
style="background-size: 100% 100%;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="dataCompareDiv"
|
||||
style="width:130px;height: 45px;display: none;position: absolute;background-color: #FFFFFF;box-shadow:#d2cdcd 0px 3px 5px 0px;padding-left: 10px;padding-top: 10px;">
|
||||
<div id="yearCompare" class="pull-left"
|
||||
style="width:50px;height:25px;border-radius: 4px;background: #3c8dbc;margin-right: 10px;">
|
||||
<div style="text-align:center;line-height:25px;font-size:12px;color:#ffffff;font-weight:700;font-family: MicrosoftYaHei, MicrosoftYaHei-Bold;cursor: pointer;"
|
||||
onclick="doYearCompare();">同比
|
||||
</div>
|
||||
</div>
|
||||
<div id="monthCompare" class="pull-left"
|
||||
style="width:50px;height:25px;border-radius: 4px;background: #3c8dbc;margin-right: 10px;">
|
||||
<div style="text-align:center;line-height:25px;font-size:12px;color:#ffffff;font-weight:700;font-family: MicrosoftYaHei, MicrosoftYaHei-Bold;cursor: pointer;"
|
||||
onclick="doMonthCompare();">环比
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width: calc((100% - 10px)*0.45);height: 100%;border:1px solid #d7dbe2;background: #ffffff;border-radius: 4px;">
|
||||
<div style="float: left;width: 100%;height:4px;border:1px solid #d7dbe2;background: #5c9fd1;border-radius: 4px 4px 0px 0px;"></div>
|
||||
<div style="float: left;width: 100%;height:40px;border-bottom:1px solid #d7dbe2;line-height: 40px;font-size: 16px;padding-left: 20px;">
|
||||
<div style="float: left;width: 120px;height:100%;">
|
||||
工艺健康诊断
|
||||
</div>
|
||||
<div title="工艺运行评价报告"
|
||||
style="float: right;width: 30px;height:100%;padding-top: 5px;cursor: pointer;"
|
||||
onclick="showGYYXBG();">
|
||||
<svg t="1700211133168" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="6692" width="24" height="24">
|
||||
<path d="M375.712 636v247.984h-148.8V636h148.8z m-99.2 198.384h49.6V685.6h-49.6v148.784zM586.48 512v371.984h-148.8V512h148.8z m-99.2 322.384h49.6V561.6h-49.6v272.784zM797.264 388v495.984h-148.8V388h148.8z m-99.2 446.384h49.6V437.6h-49.6v396.784z m196.8 173.6H129.296c-54.56 0-99.2-44.64-99.2-99.2V164.816c0-81.84 114.96-148.8 196.8-148.8h545.568a24.784 24.784 0 1 1 0 49.6H226.896c-56.944 0-150.832 48.224-146.976 105.984 3.52 52.672 97.696 92.4 150.48 92.4h542.064a24.8 24.8 0 1 1 0 49.6H226.896c-38.08 0-120.8-14.608-147.2-38.352v633.536a49.6 49.6 0 0 0 49.6 49.6h765.568a49.6 49.6 0 0 0 49.6-49.6V239.2a49.6 49.6 0 0 0-49.6-49.584H235.568c-11.6 0-20.944-8.864-22.432-20.384l-0.064-0.496c-1.984-15.136 9.216-28.72 24.48-28.72h657.312c54.576 0 99.2 44.64 99.2 99.184v669.584c0 54.56-44.64 99.2-99.2 99.2z"
|
||||
fill="#35afef" p-id="6693"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div id="chart1" style="float: left;width: 40%;height:calc((100% - 224px)*0.4);"></div>
|
||||
<div id="html1"
|
||||
style="float: left;width: 60%;height:calc((100% - 224px)*0.4);padding-right: 10px;"></div>
|
||||
<div id="chart2"
|
||||
style="float: left;width: 100%;height:calc((100% - 44px)*0.3);"></div>
|
||||
<div style="float: left;width: 100%;height:50px;padding-left: 30px;">
|
||||
<div style="float: left;width: 100%;height:50px;">
|
||||
<div style="float: left;width: 25px;height: 10px;background-color: #1790FF;margin-top: 15px;border-radius: 2px;"></div>
|
||||
<div style="float: left;width: calc(100% - 60px);height:30px;line-height: 20px;font-size: 14px;padding-left: 10px;padding-top: 10px;font-weight: 700;">
|
||||
处理环境评价项目
|
||||
</div>
|
||||
</div>
|
||||
<%-- <div id="html2"--%>
|
||||
<%-- style="float: left;width: 100%;height:130px;font-weight: 700;text-align: center;">--%>
|
||||
<%-- </div>--%>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height:calc((100% - 44px)*0.3);">
|
||||
<div id="html3" style="float: left;width: 100%;height:30px;padding-left: 30px;">
|
||||
|
||||
</div>
|
||||
<div id="chart3" style="float: left;width: 100%;height:calc(100% - 30px);"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 10px;height: 100%;"></div>
|
||||
<div style="float: left;width: calc((100% - 10px)*0.55);height: 100%;">
|
||||
<div style="float: left;width: 100%;height: calc((100% - 10px)*0.6);border:1px solid #d7dbe2;background: #ffffff;border-radius: 4px;">
|
||||
<div style="float: left;width: 100%;height:4px;border:1px solid #d7dbe2;background: #5c9fd1;border-radius: 4px 4px 0px 0px;"></div>
|
||||
<div style="float: left;width: 100%;height:40px;border-bottom:1px solid #d7dbe2;line-height: 40px;font-size: 16px;padding-left: 20px;">
|
||||
实时工艺监测
|
||||
</div>
|
||||
<div id="gytDiv"
|
||||
style="float: left;width: 100%;height:calc(100% - 44px);padding: 20px;position:relative;">
|
||||
<div style="float: left;width: 100%;height:100%;background:url(<%=request.getContextPath()%>/IMG/digitalProcess/THSSGYJC.png);background-size: 100% 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 10px;"></div>
|
||||
<div id="autoTab"
|
||||
style="float: left;width: 100%;height: calc((100% - 10px)*0.4);border:1px solid #d7dbe2;background: #ffffff;border-radius: 4px;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
654
WebRoot/jsp/digitalProcess/boiler_feedwater_pump_Curve_SDK.jsp
Normal file
654
WebRoot/jsp/digitalProcess/boiler_feedwater_pump_Curve_SDK.jsp
Normal file
@ -0,0 +1,654 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<style type="text/css">
|
||||
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
let firstIn = true;
|
||||
let BZOutType = 'A_0';
|
||||
let BZType = 'A';
|
||||
let BZDType = '0';
|
||||
|
||||
$(function () {
|
||||
if ('${param.unitId}' != '') {
|
||||
bizid = '${param.unitId}';
|
||||
} else {
|
||||
bizid = unitId;
|
||||
}
|
||||
getData("true");
|
||||
})
|
||||
|
||||
let chart1Series = [];
|
||||
|
||||
chart1Series.push({
|
||||
name: '40Hz',
|
||||
data: [
|
||||
[2, 154.96792],
|
||||
[2.2, 154.9959],
|
||||
[2.4, 155.004096],
|
||||
[2.6, 154.992508],
|
||||
[2.8, 154.961136],
|
||||
[3, 154.90998],
|
||||
[3.2, 154.83904],
|
||||
[3.4, 154.748316],
|
||||
[3.6, 154.637808],
|
||||
[3.8, 154.507516],
|
||||
[4, 154.35744],
|
||||
[4.2, 154.18758],
|
||||
[4.4, 153.997936],
|
||||
[4.6, 153.788508],
|
||||
[4.8, 153.559296],
|
||||
[5, 153.3103],
|
||||
[5.2, 153.04152],
|
||||
[5.4, 152.752956],
|
||||
[5.6, 152.444608],
|
||||
[5.8, 152.116476],
|
||||
[6, 151.76856],
|
||||
[6.2, 151.40086],
|
||||
[6.4, 151.013376],
|
||||
[6.6, 150.606108],
|
||||
[6.8, 150.179056],
|
||||
[7, 149.73222],
|
||||
[7.2, 149.2656],
|
||||
[7.4, 148.779196],
|
||||
[7.6, 148.273008],
|
||||
[7.8, 147.747036],
|
||||
[8, 147.20128],
|
||||
[8.2, 146.63574],
|
||||
[8.4, 146.050416],
|
||||
[8.6, 145.445308],
|
||||
[8.8, 144.820416],
|
||||
[9, 144.17574],
|
||||
[9.2, 143.51128],
|
||||
[9.4, 142.827036],
|
||||
[9.6, 142.123008],
|
||||
[9.8, 141.399196],
|
||||
[10, 140.6556],
|
||||
[10.2, 139.89222],
|
||||
[10.4, 139.109056],
|
||||
[10.6, 138.306108],
|
||||
[10.8, 137.483376],
|
||||
[11, 136.64086],
|
||||
[11.2, 135.77856],
|
||||
[11.4, 134.896476],
|
||||
[11.6, 133.994608],
|
||||
[11.8, 133.072956],
|
||||
[12, 132.13152],
|
||||
[12.2, 131.1703],
|
||||
[12.4, 130.189296],
|
||||
[12.6, 129.188508],
|
||||
[12.8, 128.167936],
|
||||
[13, 127.12758],
|
||||
[13.2, 126.06744],
|
||||
[13.4, 124.987516],
|
||||
[13.6, 123.887808],
|
||||
[13.8, 122.768316],
|
||||
[14, 121.62904]
|
||||
],
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
endLabel: {
|
||||
show: true,
|
||||
color: '#FFFFFF',
|
||||
formatter: '{a}'
|
||||
}
|
||||
})
|
||||
chart1Series.push({
|
||||
name: '45Hz',
|
||||
data: [
|
||||
[4, 195.74672],
|
||||
[4.2, 195.606324],
|
||||
[4.4, 195.446144],
|
||||
[4.6, 195.26618],
|
||||
[4.8, 195.066432],
|
||||
[5, 194.8469],
|
||||
[5.2, 194.607584],
|
||||
[5.4, 194.348484],
|
||||
[5.6, 194.0696],
|
||||
[5.8, 193.770932],
|
||||
[6, 193.45248],
|
||||
[6.2, 193.114244],
|
||||
[6.4, 192.756224],
|
||||
[6.6, 192.37842],
|
||||
[6.8, 191.980832],
|
||||
[7, 191.56346],
|
||||
[7.2, 191.126304],
|
||||
[7.4, 190.669364],
|
||||
[7.6, 190.19264],
|
||||
[7.8, 189.696132],
|
||||
[8, 189.17984],
|
||||
[8.2, 188.643764],
|
||||
[8.4, 188.087904],
|
||||
[8.6, 187.51226],
|
||||
[8.8, 186.916832],
|
||||
[9, 186.30162],
|
||||
[9.2, 185.666624],
|
||||
[9.4, 185.011844],
|
||||
[9.6, 184.33728],
|
||||
[9.8, 183.642932],
|
||||
[10, 182.9288],
|
||||
[10.2, 182.194884],
|
||||
[10.4, 181.441184],
|
||||
[10.6, 180.6677],
|
||||
[10.8, 179.874432],
|
||||
[11, 179.06138],
|
||||
[11.2, 178.228544],
|
||||
[11.4, 177.375924],
|
||||
[11.6, 176.50352],
|
||||
[11.8, 175.611332],
|
||||
[12, 174.69936],
|
||||
[12.2, 173.767604],
|
||||
[12.4, 172.816064],
|
||||
[12.6, 171.84474],
|
||||
[12.8, 170.853632],
|
||||
[13, 169.84274],
|
||||
[13.2, 168.812064],
|
||||
[13.4, 167.761604],
|
||||
[13.6, 166.69136],
|
||||
[13.8, 165.601332],
|
||||
[14, 164.49152],
|
||||
[14.2, 163.361924],
|
||||
[14.4, 162.212544],
|
||||
[14.6, 161.04338],
|
||||
[14.8, 159.854432],
|
||||
[15, 158.6457],
|
||||
[15.2, 157.417184],
|
||||
[15.4, 156.168884],
|
||||
[15.6, 154.9008],
|
||||
[15.8, 153.612932],
|
||||
[16, 152.30528]
|
||||
],
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
endLabel: {
|
||||
show: true,
|
||||
color: '#FFFFFF',
|
||||
formatter: '{a}'
|
||||
}
|
||||
})
|
||||
chart1Series.push({
|
||||
name: '50Hz',
|
||||
data: [
|
||||
[6, 239.9364],
|
||||
[6.2, 239.627628],
|
||||
[6.4, 239.299072],
|
||||
[6.6, 238.950732],
|
||||
[6.8, 238.582608],
|
||||
[7, 238.1947],
|
||||
[7.2, 237.787008],
|
||||
[7.4, 237.359532],
|
||||
[7.6, 236.912272],
|
||||
[7.8, 236.445228],
|
||||
[8, 235.9584],
|
||||
[8.2, 235.451788],
|
||||
[8.4, 234.925392],
|
||||
[8.6, 234.379212],
|
||||
[8.8, 233.813248],
|
||||
[9, 233.2275],
|
||||
[9.2, 232.621968],
|
||||
[9.4, 231.996652],
|
||||
[9.6, 231.351552],
|
||||
[9.8, 230.686668],
|
||||
[10, 230.002],
|
||||
[10.2, 229.297548],
|
||||
[10.4, 228.573312],
|
||||
[10.6, 227.829292],
|
||||
[10.8, 227.065488],
|
||||
[11, 226.2819],
|
||||
[11.2, 225.478528],
|
||||
[11.4, 224.655372],
|
||||
[11.6, 223.812432],
|
||||
[11.8, 222.949708],
|
||||
[12, 222.0672],
|
||||
[12.2, 221.164908],
|
||||
[12.4, 220.242832],
|
||||
[12.6, 219.300972],
|
||||
[12.8, 218.339328],
|
||||
[13, 217.3579],
|
||||
[13.2, 216.356688],
|
||||
[13.4, 215.335692],
|
||||
[13.6, 214.294912],
|
||||
[13.8, 213.234348],
|
||||
[14, 212.154],
|
||||
[14.2, 211.053868],
|
||||
[14.4, 209.933952],
|
||||
[14.6, 208.794252],
|
||||
[14.8, 207.634768],
|
||||
[15, 206.4555],
|
||||
[15.2, 205.256448],
|
||||
[15.4, 204.037612],
|
||||
[15.6, 202.798992],
|
||||
[15.8, 201.540588],
|
||||
[16, 200.2624],
|
||||
[16.2, 198.964428],
|
||||
[16.4, 197.646672],
|
||||
[16.6, 196.309132],
|
||||
[16.8, 194.951808],
|
||||
[17, 193.5747],
|
||||
[17.2, 192.177808],
|
||||
[17.4, 190.761132],
|
||||
[17.6, 189.324672],
|
||||
[17.8, 187.868428],
|
||||
[18, 186.3924]
|
||||
],
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
endLabel: {
|
||||
show: true,
|
||||
color: '#FFFFFF',
|
||||
formatter: '{a}'
|
||||
}
|
||||
})
|
||||
|
||||
function getData(selectChange) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getSDKJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: bizid,
|
||||
jspId: 'boilerFeedwaterPumpCurve',
|
||||
modelType: BZOutType,
|
||||
// time: $('#dateTime').val()
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
let chart2Mpids = [];
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
let chart1Series_scatter = [];
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getRedisData') {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
if (content.elementCode == 'chart1') {
|
||||
chart1Series_scatter.push(Number(outValue));
|
||||
} else if (content.elementCode == 'chart2') {
|
||||
chart2Mpids.push(content.visualCacheData.mpcode);
|
||||
}
|
||||
} else if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = content.mPoint.parmvalue;
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.elementCode == 'chart1') {
|
||||
chart1Series_scatter.push(Number(outValue));
|
||||
} else {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
}
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getDayHistory') {
|
||||
// chart2Series.push({
|
||||
// name: content.name,
|
||||
// type: 'line',
|
||||
// symbol: 'none',
|
||||
// data: content.jsonArray
|
||||
// })
|
||||
}
|
||||
}
|
||||
|
||||
if (selectChange == 'true') {
|
||||
if (firstIn) {
|
||||
firstIn = false;
|
||||
} else {
|
||||
chart1Series.pop();
|
||||
}
|
||||
let chart1SeriesData = [];
|
||||
chart1SeriesData.push(chart1Series_scatter);
|
||||
chart1Series.push({
|
||||
data: chart1SeriesData,
|
||||
type: 'scatter',
|
||||
name: ''
|
||||
})
|
||||
}
|
||||
}
|
||||
if (selectChange == 'true') {
|
||||
getChart1();
|
||||
}
|
||||
|
||||
let chart2Mpid1 = "";
|
||||
let chart2Mpid2 = "";
|
||||
if (chart2Mpids.length == 2) {
|
||||
chart2Mpid1 = chart2Mpids[0];
|
||||
chart2Mpid2 = chart2Mpids[1];
|
||||
|
||||
getChart2(chart2Mpid1, chart2Mpid2);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// getChart2('SDKWN_MODEL1_HZ_A', 'SDKWN_MODEL1_EFF_A', 'chart1');
|
||||
// getChart2('SDKWN_MODEL1_HZ_A', 'SDKWN_MODEL1_EFF_A', 'chart2');
|
||||
}
|
||||
|
||||
function getChart1() {
|
||||
document.getElementById("chart1").removeAttribute("_echarts_instance_");
|
||||
let myChart = echarts.init(document.getElementById("chart1"));
|
||||
let option = {
|
||||
backgroundColor: "#0C0C0C",
|
||||
// title: {
|
||||
// text: "频率",
|
||||
// left: 'center',
|
||||
// top: 10,
|
||||
// textStyle: {
|
||||
// color: '#fff',
|
||||
// fontSize: 14,
|
||||
// fontWeight: 'normal'
|
||||
//
|
||||
// }
|
||||
// },
|
||||
// legend: {
|
||||
// data: ['45Hz', '40Hz', '35Hz'],
|
||||
// left: 'right'
|
||||
// },
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
grid: {
|
||||
left: '10px', // 与容器左侧的距离
|
||||
right: '40px', // 与容器右侧的距离
|
||||
top: '20px', // 与容器顶部的距离
|
||||
bottom: '15px', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
name: 'm³\n/h',
|
||||
type: 'value',
|
||||
min: 0,
|
||||
max: 20,
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
name: 'm',
|
||||
type: 'value',
|
||||
min: 0,
|
||||
max: 300,
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: chart1Series
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function getChart2(mpid1, mpid2) {
|
||||
let edt = getNowTime().substring(0, 10) + " 23:59";
|
||||
let sdt = edt.substring(0, 10) + " 00:00";
|
||||
|
||||
let series = [];
|
||||
let legendName = [];
|
||||
let yUnit1 = "";
|
||||
let yUnit2 = "";
|
||||
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/data/getDetailData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
mpcode: mpid1, sdt: sdt, edt: edt
|
||||
},
|
||||
async: false,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (result) {
|
||||
if (result.length > 0) {
|
||||
legendName.push(result[0].name);
|
||||
yUnit1 = result[0].unit;
|
||||
series.push({
|
||||
name: result[0].name,
|
||||
data: result[0].data,
|
||||
type: 'scatter'
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/data/getDetailData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
mpcode: mpid2, sdt: sdt, edt: edt
|
||||
},
|
||||
async: false,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (result) {
|
||||
if (result.length > 0) {
|
||||
legendName.push(result[0].name);
|
||||
yUnit2 = result[0].unit;
|
||||
series.push({
|
||||
name: result[0].name,
|
||||
data: result[0].data,
|
||||
type: 'scatter',
|
||||
yAxisIndex: 1
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementById("chart2").removeAttribute("_echarts_instance_");
|
||||
let myChart = echarts.init(document.getElementById("chart2"));
|
||||
let option = {
|
||||
backgroundColor: "#0C0C0C",
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: legendName,
|
||||
top: '5px',
|
||||
right: '0px',
|
||||
icon: 'circle',
|
||||
textStyle: {
|
||||
color: '#FFFFFF'
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
left: '10px', // 与容器左侧的距离
|
||||
right: '30px', // 与容器右侧的距离
|
||||
top: '40px', // 与容器顶部的距离
|
||||
bottom: '15px', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
name: yUnit1,
|
||||
type: 'value',
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: yUnit2,
|
||||
type: 'value',
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed'
|
||||
}
|
||||
},
|
||||
position: 'right'
|
||||
}
|
||||
],
|
||||
series: series
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function changeBZType() {
|
||||
let nowType = $('#BZ_Type').val();
|
||||
BZType = nowType;
|
||||
BZDType = "0";
|
||||
BZOutType = BZType + "_" + BZDType;
|
||||
$('#Type0').css("border-bottom", "2px solid #00CBFF");
|
||||
$('#Type0').css("color", "#00CBFF");
|
||||
$('#Type1').css("border-bottom", "0px solid #00CBFF");
|
||||
$('#Type1').css("color", "#ffffff");
|
||||
|
||||
getData("true");
|
||||
}
|
||||
|
||||
function changeBZDType(st) {
|
||||
BZDType = st;
|
||||
BZOutType = BZType + "_" + BZDType;
|
||||
if (st == '0') {
|
||||
$('#Type0').css("border-bottom", "2px solid #00CBFF");
|
||||
$('#Type0').css("color", "#00CBFF");
|
||||
|
||||
$('#Type1').css("border-bottom", "0px solid #00CBFF");
|
||||
$('#Type1').css("color", "#ffffff");
|
||||
} else if (st == '1') {
|
||||
$('#Type1').css("border-bottom", "2px solid #00CBFF");
|
||||
$('#Type1').css("color", "#00CBFF");
|
||||
|
||||
$('#Type0').css("border-bottom", "0px solid #00CBFF");
|
||||
$('#Type0').css("color", "#ffffff");
|
||||
}
|
||||
getData("false");
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main"
|
||||
style="width: 978px;height: 339px;background:rgba(0,17,33,0.80);">
|
||||
<div style="float: left;width: 50%;height: 100%;">
|
||||
<div style="float:left;width: 100%;height: 60px;padding-top: 20px;">
|
||||
<div style="float:left;width: 120px;height: 32px;background: rgba(42,122,255,0.00);color: #ffffff;line-height: 32px;padding-left:20px;background:url(<%=request.getContextPath()%>/IMG/digitalProcess/titleStyle2.png);background-size: 100% 100%;">
|
||||
查看曲线
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: calc(100% - 60px);padding: 10px;">
|
||||
<div id="chart1" style="float:left;width: 100%;height:100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 100%;">
|
||||
<div style="float:left;width: 100%;height: 60px;padding-top: 20px;">
|
||||
<div style="float:left;width: 180px;height: 36px;padding-top: 10px;">
|
||||
<div style="float: left;height: 100%;">
|
||||
<div id="Type0"
|
||||
style="float: left;border-bottom: 2px solid #00CBFF;width:75px;height: 30px;font-size: 13px;text-align: center;color: #00CBFF;cursor: pointer;"
|
||||
onclick="changeBZDType('0');">流量与效率
|
||||
</div>
|
||||
<div id="Type1"
|
||||
style="float: left;width:75px;height: 30px;font-size: 13px;text-align: center;color: #ffffff;margin-left: 20px;cursor: pointer;"
|
||||
onclick="changeBZDType('1');">扬程与效率
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:right;width: 72px;height: 36px;margin-right: 10px;">
|
||||
<select id="BZ_Type" onchange="changeBZType();"
|
||||
style="width: 72px;height: 36px;padding-left: 5px;background-color:rgba(24,105,174,0.70);color: #FFFFFF;border: 1px solid #00cbff;border-radius: 2px;">
|
||||
<option value='A'>泵A</option>
|
||||
<option value='B'>泵B</option>
|
||||
<option value='C'>泵C</option>
|
||||
<option value='D'>泵D</option>
|
||||
<option value='E'>泵E</option>
|
||||
<option value='F'>泵F</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: calc(100% - 60px);padding: 10px;">
|
||||
<div id="chart2" style="float:left;width: 100%;height:100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
394
WebRoot/jsp/digitalProcess/boiler_feedwater_pump_SDK.jsp
Normal file
394
WebRoot/jsp/digitalProcess/boiler_feedwater_pump_SDK.jsp
Normal file
@ -0,0 +1,394 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<style type="text/css">
|
||||
.triangle {
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 8px solid transparent;
|
||||
border-bottom: 8px solid transparent;
|
||||
border-top-color: #FFFFFF;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
|
||||
let seriesData1 = [];
|
||||
let legendData1 = [];
|
||||
|
||||
$(function () {
|
||||
if ('${param.unitId}' != '') {
|
||||
bizid = '${param.unitId}';
|
||||
} else {
|
||||
bizid = unitId;
|
||||
}
|
||||
|
||||
getData();
|
||||
})
|
||||
|
||||
function getData() {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getSDKJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: bizid,
|
||||
jspId: 'boilerFeedwaterPump',
|
||||
// modelType: FJType,
|
||||
// time:""
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
|
||||
} else if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = toThousands(content.mPoint.parmvalue);
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.elementCode.indexOf("_RUN") != -1) {
|
||||
if (outValue == 1) {//运行
|
||||
$('#' + content.elementCode).attr("fill", "#00FF33");
|
||||
$('#' + content.elementCode + "_Text").css("color", "#00FF33");
|
||||
$('#' + content.elementCode + "_Text").text("运行");
|
||||
} else {
|
||||
$('#' + content.elementCode).attr("fill", "#FF0000");
|
||||
$('#' + content.elementCode + "_Text").css("color", "#FF0000");
|
||||
$('#' + content.elementCode + "_Text").text("停止");
|
||||
}
|
||||
} else {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
}
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getDayHistory') {
|
||||
if (content.elementCode == 'chart1') {
|
||||
legendData1.push(content.name);
|
||||
seriesData1.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
data: content.jsonArray
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
getChart1();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function getChart1() {
|
||||
let myChart = echarts.init(document.getElementById("chart1"));
|
||||
let option = {
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: legendData1,
|
||||
bottom: '5px',
|
||||
left: '0px',
|
||||
icon: 'circle',
|
||||
textStyle: {
|
||||
color: '#FFFFFF'
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
left: '0px',
|
||||
right: '10px',
|
||||
top: '10px',
|
||||
bottom: '40px',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: seriesData1
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main"
|
||||
style="width: 460px;height: 826px;background:rgba(0,17,33,0.80);">
|
||||
|
||||
<div style="float:left;width: 100%;height:100%;padding-left: 15px;padding-right: 15px;">
|
||||
<div style="float:left;width: 100%;height: 60px;line-height: 70px;border-bottom: 1px solid #ffffff;">
|
||||
<div style="float:left;width: 200px;height: 100%;font-size: 20px;color: #ffffff;font-weight: 700;">
|
||||
锅炉给水泵系统效率
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: calc((100% - 120px)*0.6);padding: 20px 15px 0px 15px;">
|
||||
<table style="width: 100%;height: 35%;">
|
||||
<tr style="color: #FFFFFF;font-weight: 700;text-align: center;">
|
||||
<td width="30%"></td>
|
||||
<td>余热锅炉给水流量</td>
|
||||
<td>锅炉给水压力</td>
|
||||
</tr>
|
||||
<tr style="color: #FFFFFF;font-weight: 700;text-align: center;">
|
||||
<td></td>
|
||||
<td>(m3/h)</td>
|
||||
<td>(MPa)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: #FFFFFF;text-align: center;">A线</td>
|
||||
<td class="FIC_B501_A1" style="color: #00FF33;font-weight: 700;text-align: center;"></td>
|
||||
<td class="PI_B501_A2" style="color: #00FF33;font-weight: 700;text-align: center;"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: #FFFFFF;text-align: center;">B线</td>
|
||||
<td class="FIC_B501_B1" style="color: #00FF33;font-weight: 700;text-align: center;"></td>
|
||||
<td class="PI_B501_B2" style="color: #00FF33;font-weight: 700;text-align: center;"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: #FFFFFF;text-align: center;">C线</td>
|
||||
<td class="FIC_B501_C1" style="color: #00FF33;font-weight: 700;text-align: center;"></td>
|
||||
<td class="PI_B501_C2" style="color: #00FF33;font-weight: 700;text-align: center;"></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table style="width: 100%;height: 65%;margin-top: 10px;">
|
||||
<tr style="color: #FFFFFF;font-weight: 700;text-align: center;">
|
||||
<td width="30%"></td>
|
||||
<td>运行状态</td>
|
||||
<td>扬程</td>
|
||||
<td>效率</td>
|
||||
</tr>
|
||||
<tr style="color: #FFFFFF;font-weight: 700;text-align: center;">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>(m)</td>
|
||||
<td>(%)</td>
|
||||
</tr>
|
||||
<tr style="background: rgba(0,0,0,0.35);border-radius: 2px;">
|
||||
<td style="color: #FFFFFF;text-align: center;">锅炉给水泵A</td>
|
||||
<td style="text-align: center;font-size: 12px;">
|
||||
<div style="float: left;width:65px;height: 20px;margin-left: 30%;background: #000000;border: 1px solid #000000;border-radius: 11px;">
|
||||
<div style="position: absolute;line-height: 20px;">
|
||||
<svg t="1692084182225" class="icon" viewBox="0 0 1024 1024" p-id="5119" width="18"
|
||||
height="18">
|
||||
<path id="P501A_RUN"
|
||||
fill="#FFFFFF"
|
||||
d="M513.024 65.536q93.184 0 175.616 35.84t143.872 97.28 97.28 143.872 35.84 175.616q0 94.208-35.84 176.64t-97.28 143.872-143.872 97.28-175.616 35.84q-94.208 0-176.64-35.84t-143.872-97.28-97.28-143.872-35.84-176.64q0-93.184 35.84-175.616t97.28-143.872 143.872-97.28 176.64-35.84zM513.024 909.312q80.896 0 152.064-30.72t124.416-83.968 83.968-124.416 30.72-152.064-30.72-152.064-83.968-124.416-124.416-83.968-152.064-30.72q-81.92 0-153.088 30.72t-124.416 83.968-83.968 124.416-30.72 152.064 30.72 152.064 83.968 124.416 124.416 83.968 153.088 30.72zM513.024 190.464q66.56 0 124.928 25.088t102.4 69.12 69.12 102.4 25.088 124.928-25.088 125.44-69.12 102.912-102.4 69.12-124.928 25.088-125.44-25.088-102.912-69.12-69.12-102.912-25.088-125.44 25.088-124.928 69.12-102.4 102.912-69.12 125.44-25.088z"
|
||||
p-id="5120"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<span id="P501A_RUN_Text"
|
||||
style="height: 100%;margin-left: 10px;line-height: 20px;color: #FFFFFF;"> </span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="SDKWN_MODEL2_H_A" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
<td class="SDKWN_MODEL2_EFF_A" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
</tr>
|
||||
<tr style="background: rgba(0,0,0,0.35);border-radius: 2px;">
|
||||
<td style="color: #FFFFFF;text-align: center;">锅炉给水泵B</td>
|
||||
<td style="color: #00FF33;text-align: center;">
|
||||
<div style="float: left;width:65px;height: 20px;margin-left: 30%;background: #000000;border: 1px solid #000000;border-radius: 11px;">
|
||||
<div style="position: absolute;line-height: 20px;">
|
||||
<svg t="1692084182225" class="icon" viewBox="0 0 1024 1024" p-id="5119" width="18"
|
||||
height="18">
|
||||
<path id="P501B_RUN"
|
||||
fill="#FFFFFF"
|
||||
d="M513.024 65.536q93.184 0 175.616 35.84t143.872 97.28 97.28 143.872 35.84 175.616q0 94.208-35.84 176.64t-97.28 143.872-143.872 97.28-175.616 35.84q-94.208 0-176.64-35.84t-143.872-97.28-97.28-143.872-35.84-176.64q0-93.184 35.84-175.616t97.28-143.872 143.872-97.28 176.64-35.84zM513.024 909.312q80.896 0 152.064-30.72t124.416-83.968 83.968-124.416 30.72-152.064-30.72-152.064-83.968-124.416-124.416-83.968-152.064-30.72q-81.92 0-153.088 30.72t-124.416 83.968-83.968 124.416-30.72 152.064 30.72 152.064 83.968 124.416 124.416 83.968 153.088 30.72zM513.024 190.464q66.56 0 124.928 25.088t102.4 69.12 69.12 102.4 25.088 124.928-25.088 125.44-69.12 102.912-102.4 69.12-124.928 25.088-125.44-25.088-102.912-69.12-69.12-102.912-25.088-125.44 25.088-124.928 69.12-102.4 102.912-69.12 125.44-25.088z"
|
||||
p-id="5120"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<span id="P501B_RUN_Text"
|
||||
style="height: 100%;margin-left: 10px;line-height: 20px;color: #FFFFFF;"> </span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="SDKWN_MODEL2_H_B" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
<td class="SDKWN_MODEL2_EFF_B" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: #FFFFFF;text-align: center;">锅炉给水泵C</td>
|
||||
<td style="color: #00FF33;text-align: center;">
|
||||
<div style="float: left;width:65px;height: 20px;margin-left: 30%;background: #000000;border: 1px solid #000000;border-radius: 11px;">
|
||||
<div style="position: absolute;line-height: 20px;">
|
||||
<svg t="1692084182225" class="icon" viewBox="0 0 1024 1024" p-id="5119" width="18"
|
||||
height="18">
|
||||
<path id="P501C_RUN"
|
||||
fill="#FFFFFF"
|
||||
d="M513.024 65.536q93.184 0 175.616 35.84t143.872 97.28 97.28 143.872 35.84 175.616q0 94.208-35.84 176.64t-97.28 143.872-143.872 97.28-175.616 35.84q-94.208 0-176.64-35.84t-143.872-97.28-97.28-143.872-35.84-176.64q0-93.184 35.84-175.616t97.28-143.872 143.872-97.28 176.64-35.84zM513.024 909.312q80.896 0 152.064-30.72t124.416-83.968 83.968-124.416 30.72-152.064-30.72-152.064-83.968-124.416-124.416-83.968-152.064-30.72q-81.92 0-153.088 30.72t-124.416 83.968-83.968 124.416-30.72 152.064 30.72 152.064 83.968 124.416 124.416 83.968 153.088 30.72zM513.024 190.464q66.56 0 124.928 25.088t102.4 69.12 69.12 102.4 25.088 124.928-25.088 125.44-69.12 102.912-102.4 69.12-124.928 25.088-125.44-25.088-102.912-69.12-69.12-102.912-25.088-125.44 25.088-124.928 69.12-102.4 102.912-69.12 125.44-25.088z"
|
||||
p-id="5120"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<span id="P501C_RUN_Text"
|
||||
style="height: 100%;margin-left: 10px;line-height: 20px;color: #FFFFFF;"> </span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="SDKWN_MODEL2_H_C" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
<td class="SDKWN_MODEL2_EFF_C" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: #FFFFFF;text-align: center;">锅炉给水泵D</td>
|
||||
<td style="color: #00FF33;text-align: center;">
|
||||
<div style="float: left;width:65px;height: 20px;margin-left: 30%;background: #000000;border: 1px solid #000000;border-radius: 11px;">
|
||||
<div style="position: absolute;line-height: 20px;">
|
||||
<svg t="1692084182225" class="icon" viewBox="0 0 1024 1024" p-id="5119" width="18"
|
||||
height="18">
|
||||
<path id="P501D_RUN"
|
||||
fill="#FFFFFF"
|
||||
d="M513.024 65.536q93.184 0 175.616 35.84t143.872 97.28 97.28 143.872 35.84 175.616q0 94.208-35.84 176.64t-97.28 143.872-143.872 97.28-175.616 35.84q-94.208 0-176.64-35.84t-143.872-97.28-97.28-143.872-35.84-176.64q0-93.184 35.84-175.616t97.28-143.872 143.872-97.28 176.64-35.84zM513.024 909.312q80.896 0 152.064-30.72t124.416-83.968 83.968-124.416 30.72-152.064-30.72-152.064-83.968-124.416-124.416-83.968-152.064-30.72q-81.92 0-153.088 30.72t-124.416 83.968-83.968 124.416-30.72 152.064 30.72 152.064 83.968 124.416 124.416 83.968 153.088 30.72zM513.024 190.464q66.56 0 124.928 25.088t102.4 69.12 69.12 102.4 25.088 124.928-25.088 125.44-69.12 102.912-102.4 69.12-124.928 25.088-125.44-25.088-102.912-69.12-69.12-102.912-25.088-125.44 25.088-124.928 69.12-102.4 102.912-69.12 125.44-25.088z"
|
||||
p-id="5120"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<span id="P501D_RUN_Text"
|
||||
style="height: 100%;margin-left: 10px;line-height: 20px;color: #FFFFFF;"> </span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="SDKWN_MODEL2_H_D" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
<td class="SDKWN_MODEL2_EFF_D" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
</tr>
|
||||
<tr style="background: rgba(0,0,0,0.35);border-radius: 2px;">
|
||||
<td style="color: #FFFFFF;text-align: center;">锅炉给水泵E</td>
|
||||
<td style="color: #00FF33;text-align: center;">
|
||||
<div style="float: left;width:65px;height: 20px;margin-left: 30%;background: #000000;border: 1px solid #000000;border-radius: 11px;">
|
||||
<div style="position: absolute;line-height: 20px;">
|
||||
<svg t="1692084182225" class="icon" viewBox="0 0 1024 1024" p-id="5119" width="18"
|
||||
height="18">
|
||||
<path id="P501E_RUN"
|
||||
fill="#FFFFFF"
|
||||
d="M513.024 65.536q93.184 0 175.616 35.84t143.872 97.28 97.28 143.872 35.84 175.616q0 94.208-35.84 176.64t-97.28 143.872-143.872 97.28-175.616 35.84q-94.208 0-176.64-35.84t-143.872-97.28-97.28-143.872-35.84-176.64q0-93.184 35.84-175.616t97.28-143.872 143.872-97.28 176.64-35.84zM513.024 909.312q80.896 0 152.064-30.72t124.416-83.968 83.968-124.416 30.72-152.064-30.72-152.064-83.968-124.416-124.416-83.968-152.064-30.72q-81.92 0-153.088 30.72t-124.416 83.968-83.968 124.416-30.72 152.064 30.72 152.064 83.968 124.416 124.416 83.968 153.088 30.72zM513.024 190.464q66.56 0 124.928 25.088t102.4 69.12 69.12 102.4 25.088 124.928-25.088 125.44-69.12 102.912-102.4 69.12-124.928 25.088-125.44-25.088-102.912-69.12-69.12-102.912-25.088-125.44 25.088-124.928 69.12-102.4 102.912-69.12 125.44-25.088z"
|
||||
p-id="5120"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<span id="P501E_RUN_Text"
|
||||
style="height: 100%;margin-left: 10px;line-height: 20px;color: #FFFFFF;"> </span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="SDKWN_MODEL2_H_E" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
<td class="SDKWN_MODEL2_EFF_E" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
</tr>
|
||||
<tr style="background: rgba(0,0,0,0.35);border-radius: 2px;">
|
||||
<td style="color: #FFFFFF;text-align: center;">锅炉给水泵F</td>
|
||||
<td style="color: #00FF33;text-align: center;">
|
||||
<div style="float: left;width:65px;height: 20px;margin-left: 30%;background: #000000;border: 1px solid #000000;border-radius: 11px;">
|
||||
<div style="position: absolute;line-height: 20px;">
|
||||
<svg t="1692084182225" class="icon" viewBox="0 0 1024 1024" p-id="5119" width="18"
|
||||
height="18">
|
||||
<path id="P501F_RUN"
|
||||
fill="#FFFFFF"
|
||||
d="M513.024 65.536q93.184 0 175.616 35.84t143.872 97.28 97.28 143.872 35.84 175.616q0 94.208-35.84 176.64t-97.28 143.872-143.872 97.28-175.616 35.84q-94.208 0-176.64-35.84t-143.872-97.28-97.28-143.872-35.84-176.64q0-93.184 35.84-175.616t97.28-143.872 143.872-97.28 176.64-35.84zM513.024 909.312q80.896 0 152.064-30.72t124.416-83.968 83.968-124.416 30.72-152.064-30.72-152.064-83.968-124.416-124.416-83.968-152.064-30.72q-81.92 0-153.088 30.72t-124.416 83.968-83.968 124.416-30.72 152.064 30.72 152.064 83.968 124.416 124.416 83.968 153.088 30.72zM513.024 190.464q66.56 0 124.928 25.088t102.4 69.12 69.12 102.4 25.088 124.928-25.088 125.44-69.12 102.912-102.4 69.12-124.928 25.088-125.44-25.088-102.912-69.12-69.12-102.912-25.088-125.44 25.088-124.928 69.12-102.4 102.912-69.12 125.44-25.088z"
|
||||
p-id="5120"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<span id="P501F_RUN_Text"
|
||||
style="height: 100%;margin-left: 10px;line-height: 20px;color: #FFFFFF;"> </span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="SDKWN_MODEL2_H_F" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
<td class="SDKWN_MODEL2_EFF_F" style="color: #01FFFF;font-weight: 700;text-align: center;"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div style="float:left;width: 100%;height: 60px;padding-top: 30px;padding-left: 50px;text-align: center;color: #FFFFFF;line-height: 40px;font-weight: 700;">
|
||||
泵组运行效率曲线
|
||||
<div style="float:right;width: 100px;height: 36px;background: rgba(24,105,174,0.70);border: 1px solid #00cbff;border-radius: 2px;color: #ffffff;line-height: 36px;text-align: center;">
|
||||
查看曲线 >>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="chart1" style="float:left;width: 100%;height: calc((100% - 120px)*0.4);padding: 20px 15px 0px 15px;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
446
WebRoot/jsp/digitalProcess/carbonSourceAdditionPrediction_CG.jsp
Normal file
446
WebRoot/jsp/digitalProcess/carbonSourceAdditionPrediction_CG.jsp
Normal file
@ -0,0 +1,446 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var color = [
|
||||
"#899BFF",
|
||||
"#35C837",
|
||||
"#89E1FF",
|
||||
"#1949EE"
|
||||
];
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
getData();
|
||||
})
|
||||
|
||||
function getData(modelType) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getHFCGJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'improveSystemPrediction_CG',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = toThousands(content.mPoint.parmvalue);
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
}
|
||||
// else if (content.getValueType == 'getTHDayHistory') {
|
||||
// if (content.elementCode == 'chartleft') {
|
||||
// legendName1.push(content.name);
|
||||
// series1.push({
|
||||
// name: content.name,
|
||||
// type: 'line',
|
||||
// data: content.jsonArray,
|
||||
// yAxisIndex: 0
|
||||
// })
|
||||
// }else if (content.elementCode == 'chartright') {
|
||||
// legendName1.push(content.name);
|
||||
// series1.push({
|
||||
// name: content.name,
|
||||
// type: 'line',
|
||||
// data: content.jsonArray,
|
||||
// yAxisIndex: 1
|
||||
// })
|
||||
// }
|
||||
//
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
let legendName1 = ['实际加药量', '计算加药量'];
|
||||
let series1 = [];
|
||||
series1.push({
|
||||
name: '实际加药量',
|
||||
type: 'line',
|
||||
data: [['2024-01-01', 36], ['2024-01-02', 45], ['2024-01-03', 21], ['2024-01-04', 65], ['2024-01-05', 47]]
|
||||
})
|
||||
series1.push({
|
||||
name: '计算加药量',
|
||||
type: 'line',
|
||||
data: [['2024-01-01', 51], ['2024-01-02', 35], ['2024-01-03', 28], ['2024-01-04', 57], ['2024-01-05', 50]]
|
||||
})
|
||||
|
||||
getChart('chart1', legendName1, series1);
|
||||
getChart('chart2', legendName1, series1);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getChart(chartId, legendName, series) {
|
||||
let myChart = echarts.init(document.getElementById(chartId));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
// title: {
|
||||
// text: titleName,
|
||||
// left: '20px',
|
||||
// top: '0'
|
||||
// },
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
grid: {
|
||||
left: '4%', // 与容器左侧的距离
|
||||
right: '4%', // 与容器右侧的距离
|
||||
top: '10px', // 与容器顶部的距离
|
||||
bottom: '40px', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
legend: {
|
||||
data: legendName,
|
||||
left: 'center',
|
||||
bottom: '10'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
// name: '(%)'
|
||||
}
|
||||
],
|
||||
series: series
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper"
|
||||
style="background-size: 100% 100%;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.35);background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div class="box-header" style="border-bottom: 1px solid #C4E2E6;padding: 0; margin-left: 15px;">
|
||||
<h3 class="box-title" style="border-bottom: 2px solid #C4E2E6;height: 42px;line-height: 2.5;">
|
||||
<strong>水质参数</strong></h3>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 3px)*0.2);height: calc(100% - 43px);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #333333;font-size: 18px;font-weight: 700;">
|
||||
<td colspan="2" style="text-align: left;padding-left: 20px;height: 40px;vertical-align: top;">进水参数
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>进水COD</td>
|
||||
<td>进水总氮</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 700;">
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 1px;height: calc(100% - 43px);padding-top: 20px;padding-bottom: 20px;">
|
||||
<div style="float: left;width: 1px;height: 100%;background-color: #B0B0B0;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 3px)*0.4);height: calc(100% - 43px);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #333333;font-size: 18px;font-weight: 700;">
|
||||
<td colspan="4" style="text-align: left;padding-left: 20px;height: 40px;vertical-align: top;">生反池缺氧段硝态氮
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>1#生物池出水硝态氮</td>
|
||||
<td>2#生物池出水硝态氮</td>
|
||||
<td>3#生物池出水硝态氮</td>
|
||||
<td>4#生物池出水硝态氮</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 700;">
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 1px;height: calc(100% - 43px);padding-top: 20px;padding-bottom: 20px;">
|
||||
<div style="float: left;width: 1px;height: 100%;background-color: #B0B0B0;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 3px)*0.2);height: calc(100% - 43px);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #333333;font-size: 18px;font-weight: 700;">
|
||||
<td colspan="2" style="text-align: left;padding-left: 20px;height: 40px;vertical-align: top;padding-left: 10px;">反硝化滤池进水硝氮
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>进水硝态氮</td>
|
||||
<td>出水硝态氮</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 700;">
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 1px;height: calc(100% - 43px);padding-top: 20px;padding-bottom: 20px;">
|
||||
<div style="float: left;width: 1px;height: 100%;background-color: #B0B0B0;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 3px)*0.2);height: calc(100% - 43px);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #333333;font-size: 18px;font-weight: 700;">
|
||||
<td colspan="2"
|
||||
style="text-align: left;padding-left: 20px;height: 40px;vertical-align: top;">出水参数
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>出水COD</td>
|
||||
<td>出水总氮</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 700;">
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 20px;"></div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.65);">
|
||||
<div style="float: left;width: calc((100% - 20px)*0.55);height: 100%;background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div style="float:left;width: 100%;height: 50px;padding-top: 10px;padding-left: 20px;">
|
||||
<div style="float:left;width: 200px;height: 100%;font-size: 18px;font-weight: 700;line-height: 35px;">
|
||||
生物反应池碳源投加
|
||||
</div>
|
||||
<div style="float:left;width:140px;height: 100%;">
|
||||
<div style="float:left;width:100%;height: 35px;background: #89e1ff;border-radius: 2px;">
|
||||
<div style="float:left;width: 110px;height: 100%;line-height: 35px;text-align: center;color: #FFFFFF;font-weight: 700;font-size: 17px;">
|
||||
投加进行中
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 100%;padding-top: 5px;">
|
||||
<svg t="1706235438953" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="4213" width="25" height="25">
|
||||
<path d="M635.733333 512l-149.333333-149.333333L426.666667 422.4l89.6 89.6-89.6 89.6 59.733333 59.733333 149.333333-149.333333zM170.666667 512c0 187.733333 153.6 341.333333 341.333333 341.333333s341.333333-153.6 341.333333-341.333333-153.6-341.333333-341.333333-341.333333-341.333333 153.6-341.333333 341.333333z m85.333333 0c0-140.8 115.2-256 256-256s256 115.2 256 256-115.2 256-256 256-256-115.2-256-256z"
|
||||
fill="#ffffff" p-id="4214"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 50px)*0.45);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="font-size: 28px;">
|
||||
<td></td>
|
||||
<td>1#管道</td>
|
||||
<td>2#管道</td>
|
||||
<td>3#管道</td>
|
||||
<td>4#管道</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;">
|
||||
<td style="font-size: 18px;font-weight: 700;">碳源投加实际值</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 14px;color: #B0B0B0;">
|
||||
<td>加药量</td>
|
||||
</tr>
|
||||
<tr style="font-size: 14px;color: #B0B0B0;">
|
||||
<td>(L/h)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #89E1FF;">
|
||||
<td style="font-size: 18px;font-weight: 700;color: #333333;">碳源投加预测值</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 14px;color: #B0B0B0;">
|
||||
<td>加药量</td>
|
||||
</tr>
|
||||
<tr style="font-size: 14px;color: #B0B0B0;">
|
||||
<td>(L/h)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 50px)*0.55);padding-top: 20px;">
|
||||
<div style="float: left;width: 100%;height: 45px;">
|
||||
<div style="float: left;width: 250px;height: 100%;line-height: 45px;padding-left: 20px;font-weight: 700;font-size: 18px;">
|
||||
生物反应池乙酸钠加药曲线
|
||||
</div>
|
||||
<div style="float: right;width: 120px;height: 100%;padding-top: 7px;">
|
||||
<select style="width: 80px;height: 30px;">
|
||||
<option selected>1#管道</option>
|
||||
<option>2#管道</option>
|
||||
<option>3#管道</option>
|
||||
<option>4#管道</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc(100% - 45px);" id="chart1"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 20px;height: 100%;"></div>
|
||||
<div style="float: left;width: calc((100% - 20px)*0.45);height: 100%;background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div style="float:left;width: 100%;height: 50px;padding-top: 10px;padding-left: 20px;">
|
||||
<div style="float:left;width: 200px;height: 100%;font-size: 18px;font-weight: 700;line-height: 35px;">
|
||||
反硝化滤池碳源投加
|
||||
</div>
|
||||
<div style="float:left;width:140px;height: 100%;">
|
||||
<div style="float:left;width:100%;height: 35px;background: #89e1ff;border-radius: 2px;">
|
||||
<div style="float:left;width: 110px;height: 100%;line-height: 35px;text-align: center;color: #FFFFFF;font-weight: 700;font-size: 17px;">
|
||||
投加进行中
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 100%;padding-top: 5px;">
|
||||
<svg t="1706235438953" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="4213" width="25" height="25">
|
||||
<path d="M635.733333 512l-149.333333-149.333333L426.666667 422.4l89.6 89.6-89.6 89.6 59.733333 59.733333 149.333333-149.333333zM170.666667 512c0 187.733333 153.6 341.333333 341.333333 341.333333s341.333333-153.6 341.333333-341.333333-153.6-341.333333-341.333333-341.333333-341.333333 153.6-341.333333 341.333333z m85.333333 0c0-140.8 115.2-256 256-256s256 115.2 256 256-115.2 256-256 256-256-115.2-256-256z"
|
||||
fill="#ffffff" p-id="4214"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 50px)*0.45);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="font-size: 30px;">
|
||||
<td style="font-size: 18px;font-weight: 700;width: 50%;">碳源投加实际值</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 14px;color: #B0B0B0;">
|
||||
<td>加药量</td>
|
||||
</tr>
|
||||
<tr style="font-size: 14px;color: #B0B0B0;">
|
||||
<td>(L/h)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #89E1FF;">
|
||||
<td style="font-size: 18px;font-weight: 700;color: #333333;">碳源投加预测值</td>
|
||||
<td rowspan="3">95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 14px;color: #B0B0B0;">
|
||||
<td>加药量</td>
|
||||
</tr>
|
||||
<tr style="font-size: 14px;color: #B0B0B0;">
|
||||
<td>(L/h)</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 50px)*0.55);padding-top: 20px;">
|
||||
<div style="float: left;width: 100%;height: 45px;">
|
||||
<div style="float: left;width: 250px;height: 100%;line-height: 45px;padding-left: 20px;font-weight: 700;font-size: 18px;">
|
||||
反硝化滤池乙酸钠加药曲线
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc(100% - 45px);" id="chart2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
577
WebRoot/jsp/digitalProcess/carbonSourceDosing.jsp
Normal file
577
WebRoot/jsp/digitalProcess/carbonSourceDosing.jsp
Normal file
@ -0,0 +1,577 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
let myChart11 = "";
|
||||
let option11 = [];
|
||||
let series11 = [];
|
||||
let legendName11 = [];
|
||||
let myChart12 = "";
|
||||
let option12 = [];
|
||||
let series12 = [];
|
||||
let legendName12 = [];
|
||||
|
||||
let websocket = null;
|
||||
let modelIp = "${modelIp}";
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
|
||||
if ('WebSocket' in window) {
|
||||
// 创建websocket对象
|
||||
websocket = new WebSocket("ws://" + modelIp + "/modelComputerWebSocketEnd/");
|
||||
// console.log("ws://"+modelIp+"/modelComputerWebSocketEnd/")
|
||||
registerEvent();
|
||||
} else {
|
||||
alert('当前浏览器不支持websocket')
|
||||
}
|
||||
$(window).unload(function () {
|
||||
console.log("websocket关闭");
|
||||
websocket.close();
|
||||
});
|
||||
|
||||
getData("");
|
||||
})
|
||||
|
||||
function getChart1() {
|
||||
myChart11 = echarts.init(document.getElementById("chart11"));
|
||||
option11 = {
|
||||
color: ['#899BFF', '#35C837'],
|
||||
animation: true,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
legend: {
|
||||
data: legendName11,
|
||||
left: 'right'
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '3%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '浓度(mg/L)'
|
||||
}
|
||||
],
|
||||
series: series11
|
||||
};
|
||||
myChart11.setOption(option11, true);
|
||||
|
||||
myChart12 = echarts.init(document.getElementById("chart12"));
|
||||
option12 = {
|
||||
color: ['#89E1FF', '#35C837'],
|
||||
animation: true,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
legend: {
|
||||
data: legendName12,
|
||||
left: 'right'
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '3%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '空气流量(m³/h)'
|
||||
}
|
||||
],
|
||||
series: series12
|
||||
};
|
||||
myChart12.setOption(option12, true);
|
||||
}
|
||||
|
||||
function registerEvent() {
|
||||
websocket.onopen = function (event) {
|
||||
console.log("已连接");
|
||||
}
|
||||
|
||||
websocket.onmessage = function (event) {
|
||||
if (event != null) {
|
||||
// console.log(event.data)
|
||||
let modelType = event.data;
|
||||
if (modelType != 'model_status') {
|
||||
getData(modelType);
|
||||
}
|
||||
}
|
||||
};
|
||||
websocket.onclose = function (event) {
|
||||
console.log("已断开");
|
||||
reconnect();
|
||||
};
|
||||
//连接发生错误的回调方法
|
||||
websocket.onerror = function () {
|
||||
reconnect();
|
||||
};
|
||||
}
|
||||
|
||||
function reconnect() {
|
||||
websocket = new WebSocket("ws://" + modelIp + "/modelComputerWebSocketEnd/");
|
||||
websocket.onopen = function (event) {
|
||||
console.log("已连接");
|
||||
}
|
||||
|
||||
websocket.onmessage = function (event) {
|
||||
};
|
||||
|
||||
websocket.onclose = function (event) {
|
||||
setTimeout("reconnect();", 8000);
|
||||
};
|
||||
//连接发生错误的回调方法 `1
|
||||
websocket.onerror = function () {
|
||||
websocket.close();
|
||||
};
|
||||
}
|
||||
|
||||
function getData(modelType) {
|
||||
series1 = [];
|
||||
legendName1 = [];
|
||||
series2 = [];
|
||||
legendName2 = [];
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'carbonSourceDosing',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
// console.log(data)
|
||||
// $("input[name='radioType1']").each(function(){
|
||||
// let nowValue = $(this).val();
|
||||
// console.log(nowValue)
|
||||
// if(nowValue==1){
|
||||
// $(this).attr("checked","checked");
|
||||
// }else{
|
||||
// $(this).removeAttr("checked");
|
||||
// }
|
||||
// });
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
// console.log(content)
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = toThousands(content.mPoint.parmvalue);
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
// console.log(outValue);
|
||||
if (content.elementCode == 'TH_CARBON_PIPELINE_1') {
|
||||
changePointSt(Number(outValue),'change11','change12');
|
||||
} else if (content.elementCode == 'TH_CARBON_PIPELINE_2') {
|
||||
changePointSt(Number(outValue),'change21','change22');
|
||||
} else if (content.elementCode == 'TH_CARBON_PIPELINE_3') {
|
||||
changePointSt(Number(outValue),'change31','change32');
|
||||
} else if (content.elementCode == 'TH_CARBON_PIPELINE_4') {
|
||||
changePointSt(Number(outValue),'change41','change42');
|
||||
} else {
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
}
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getTHDayHistory') {
|
||||
if (content.elementCode == 'chart1') {
|
||||
legendName11.push(content.name);
|
||||
series11.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray
|
||||
})
|
||||
} else if (content.elementCode == 'chart2') {
|
||||
legendName12.push(content.name);
|
||||
series12.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getChart1();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function changePointSt(value, id1, id2) {
|
||||
if (value == '1') {
|
||||
$('#' + id1).css("background-color", "#00BDFF");
|
||||
$('#' + id1).css("color", "#ffffff");
|
||||
$('#' + id2).css("background-color", "#F2F2F2");
|
||||
$('#' + id2).css("color", "#000000");
|
||||
} else if (value == '2') {
|
||||
$('#' + id2).css("background-color", "#00BDFF");
|
||||
$('#' + id2).css("color", "#ffffff");
|
||||
$('#' + id1).css("background-color", "#F2F2F2");
|
||||
$('#' + id1).css("color", "#000000");
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.2);background-color: #FFFFFF;">
|
||||
<div style="float: left;width: calc((100% - 3px)*0.2);height: 100%;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 30%;vertical-align: middle;">
|
||||
<td colspan="2"
|
||||
style="text-align: left;padding-left: 30px;font-weight: bold;font-size: 18px;">
|
||||
进水参数
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 15%;vertical-align: bottom;color: #b0b0b0;">
|
||||
<td>进水COD</td>
|
||||
<td>进水总氮</td>
|
||||
</tr>
|
||||
<tr style="height: 15%;vertical-align: top;color: #b0b0b0;">
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
</tr>
|
||||
<tr style="height: 40%;vertical-align: top;font-size: 30px;padding-top: 15px;">
|
||||
<td class="TH_PLC01_RI5_7_Meter2_r_MeterValue"></td>
|
||||
<td class="TH_PLC01_RI5_7_Meter0_r_MeterValue"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 1px;height: 100%;padding-top: 1%;padding-bottom: 1%;">
|
||||
<div style="float: left;width: 100%;height: 100%;background-color: #e3e3e3;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 3px)*0.4 );height: 100%;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 30%;vertical-align: middle;">
|
||||
<td colspan="4"
|
||||
style="text-align: left;padding-left: 30px;font-weight: bold;font-size: 18px;">
|
||||
生反池缺氧段硝态氮
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 15%;vertical-align: bottom;color: #b0b0b0;">
|
||||
<td>1#生反池</td>
|
||||
<td>2#生反池</td>
|
||||
<td>3#生反池</td>
|
||||
<td>4#生反池</td>
|
||||
</tr>
|
||||
<tr style="height: 15%;vertical-align: top;color: #b0b0b0;">
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
</tr>
|
||||
<tr style="height: 40%;vertical-align: top;font-size: 30px;padding-top: 15px;">
|
||||
<td class="TH_PLC03_RI3_4_Meter4_r_MeterValue"></td>
|
||||
<td class="TH_PLC02_RI3_4_Meter4_r_MeterValue"></td>
|
||||
<td class="TH_PLC04_RI3_4_Meter4_r_MeterValue"></td>
|
||||
<td class="TH_PLC05_RI3_4_Meter4_r_MeterValue"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 1px;height: 100%;padding-top: 1%;padding-bottom: 1%;">
|
||||
<div style="float: left;width: 100%;height: 100%;background-color: #e3e3e3;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 3px)*0.2);height: 100%;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 30%;vertical-align: middle;">
|
||||
<td colspan="2"
|
||||
style="text-align: left;padding-left: 30px;font-weight: bold;font-size: 18px;">
|
||||
反硝化滤池进水硝氮
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 15%;vertical-align: bottom;color: #b0b0b0;">
|
||||
<td>1#滤池</td>
|
||||
<td>2#滤池</td>
|
||||
</tr>
|
||||
<tr style="height: 15%;vertical-align: top;color: #b0b0b0;">
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
</tr>
|
||||
<tr style="height: 40%;vertical-align: top;font-size: 30px;padding-top: 15px;">
|
||||
<td class="TH_INF_NOX_TO_HMI"></td>
|
||||
<td class="TH_PLC11_INF_NOX_TO_HMI"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 1px;height: 100%;padding-top: 1%;padding-bottom: 1%;">
|
||||
<div style="float: left;width: 100%;height: 100%;background-color: #e3e3e3;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 3px)*0.2);height: 100%;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 30%;vertical-align: middle;">
|
||||
<td colspan="2"
|
||||
style="text-align: left;padding-left: 30px;font-weight: bold;font-size: 18px;">
|
||||
出水传参
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 15%;vertical-align: bottom;color: #b0b0b0;">
|
||||
<td>出水COD</td>
|
||||
<td>出水总氮</td>
|
||||
</tr>
|
||||
<tr style="height: 15%;vertical-align: top;color: #b0b0b0;">
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
</tr>
|
||||
<tr style="height: 40%;vertical-align: top;font-size: 30px;padding-top: 15px;">
|
||||
<td class="TH_PLC14_RI3_2_Meter5_r_MeterValue"></td>
|
||||
<td class="TH_PLC14_RI3_2_Meter1_r_MeterValue">16.82</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 10px;"></div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.4);background-color: #FFFFFF;padding-bottom:10px;">
|
||||
<div style="float: left;width: 30%;height: 100%;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20%;vertical-align: middle;">
|
||||
<td colspan="3"
|
||||
style="text-align: center;font-weight: bold;font-size: 18px;">
|
||||
投加点选择
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 10%;color: #b0b0b0;">
|
||||
<td style="width: 33.3%;"></td>
|
||||
<td style="width: 33.3%;"></td>
|
||||
<td style="width: 33.3%;"></td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #000001;">
|
||||
<td>1#点</td>
|
||||
<td style="padding: 5px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td id="change11" style="width: 100%;height: 100%;font-size: 16px;background-color: #F2F2F2;color: #000000;cursor: pointer;">
|
||||
1#生反池加药
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td style="padding: 5px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td id="change12" style="width: 100%;height: 100%;font-size: 16px;background-color: #F2F2F2;color: #000000;cursor: pointer;">
|
||||
1#滤池东加药
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #000001;">
|
||||
<td>2#点</td>
|
||||
<td style="padding: 5px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td id="change21" style="width: 100%;height: 100%;font-size: 16px;background-color: #F2F2F2;color: #000000;cursor: pointer;">
|
||||
2#生反池加药
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td style="padding: 5px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td id="change22" style="width: 100%;height: 100%;font-size: 16px;background-color: #F2F2F2;color: #000000;cursor: pointer;">
|
||||
1#滤池西加药
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #000001;">
|
||||
<td>3#点</td>
|
||||
<td style="padding: 5px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td id="change31" style="width: 100%;height: 100%;font-size: 16px;background-color: #F2F2F2;color: #000000;cursor: pointer;">
|
||||
3#生反池加药
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td style="padding: 5px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td id="change32" style="width: 100%;height: 100%;font-size: 16px;background-color: #F2F2F2;color: #000000;cursor: pointer;">
|
||||
2#滤池东加药
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #000001;">
|
||||
<td>4#点</td>
|
||||
<td style="padding: 5px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td id="change41" style="width: 100%;height: 100%;font-size: 16px;background-color: #F2F2F2;color: #000000;cursor: pointer;">
|
||||
4#生反池加药
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td style="padding: 5px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td id="change42" style="width: 100%;height: 100%;font-size: 16px;background-color: #F2F2F2;color: #000000;cursor: pointer;">
|
||||
2#滤池西加药
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 15%;height: 100%;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20%;vertical-align: middle;">
|
||||
<td colspan="1"
|
||||
style="text-align: center;font-weight: bold;font-size: 18px;">
|
||||
碳源投加实际值
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 10%;color: #b0b0b0;font-size: 16px;">
|
||||
<td>加药量<br>(L/h)</td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #000001;">
|
||||
<td class="TH_F8_0"></td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #000001;">
|
||||
<td class="TH_F8_1"></td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #000001;">
|
||||
<td class="TH_F8_2"></td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #000001;">
|
||||
<td class="TH_F8_3"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 15%;height: 100%;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20%;vertical-align: middle;">
|
||||
<td colspan="1"
|
||||
style="text-align: center;font-weight: bold;font-size: 18px;">
|
||||
碳源投加预测值
|
||||
</td>
|
||||
</tr>
|
||||
<tr style="height: 10%;color: #b0b0b0;font-size: 16px;">
|
||||
<td>加药量<br>(L/h)</td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #89E1FF;">
|
||||
<td class="TH_CH3COONA_PIPELINE_1_CAL"></td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #89E1FF;">
|
||||
<td class="TH_CH3COONA_PIPELINE_2_CAL"></td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #89E1FF;">
|
||||
<td class="TH_CH3COONA_PIPELINE_3_CAL"></td>
|
||||
</tr>
|
||||
<tr style="height: 17.5%;font-size: 30px;color: #89E1FF;">
|
||||
<td class="TH_CH3COONA_PIPELINE_4_CAL"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 10px;"></div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.4);background-color: #FFFFFF;">
|
||||
<div style="float:left;width: calc((100% - 10px)*0.5);height: 100%;background-color: #FFFFFF;">
|
||||
<div style="float:left;width: 100%;height: 60px;line-height:60px;text-align:center;font-weight: bold;font-size: 18px;">
|
||||
生物反应池 乙酸钠加药曲线
|
||||
</div>
|
||||
<div id="chart11" style="float:left;width: 100%;height: calc(100% - 60px);"></div>
|
||||
</div>
|
||||
<div style="float:left;width: 10px;height: 100%;"></div>
|
||||
<div style="float:left;width: calc((100% - 10px)*0.5);height: 100%;background-color: #FFFFFF;">
|
||||
<div style="float:left;width: 100%;height: 60px;line-height:60px;text-align:center;font-weight: bold;font-size: 18px;">
|
||||
反硝化滤池 乙酸钠加药曲线
|
||||
</div>
|
||||
<div id="chart12" style="float:left;width: 100%;height: calc(100% - 60px);"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
97
WebRoot/jsp/digitalProcess/dataPatrol_SDK.jsp
Normal file
97
WebRoot/jsp/digitalProcess/dataPatrol_SDK.jsp
Normal file
@ -0,0 +1,97 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var color = [
|
||||
"#899BFF",
|
||||
"#35C837",
|
||||
"#89E1FF",
|
||||
"#1949EE"
|
||||
];
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
// getData();
|
||||
})
|
||||
|
||||
function getData(modelType) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'excessSludge',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper"
|
||||
style="background-size: 100% 100%;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
597
WebRoot/jsp/digitalProcess/denitrificationFilter.jsp
Normal file
597
WebRoot/jsp/digitalProcess/denitrificationFilter.jsp
Normal file
@ -0,0 +1,597 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
let windowWidth = $(window).width();
|
||||
let windowHeight = $(window).height();
|
||||
|
||||
$(function () {
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
getData("");
|
||||
})
|
||||
|
||||
function getData(modelType) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'denitrificationFilter',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
// if (content.elementCode.indexOf("C_A_") != -1) {
|
||||
// let num = content.elementCode.substring(content.elementCode.length - 1, content.elementCode.length);
|
||||
// $('#morder_' + num + '_A').text(outValue);
|
||||
// } else if (content.elementCode.indexOf("C_B_") != -1) {
|
||||
// let num = content.elementCode.substring(content.elementCode.length - 1, content.elementCode.length);
|
||||
// $('#morder_' + num + '_B').text(outValue);
|
||||
// } else {
|
||||
// $('.' + content.elementCode).text(outValue);
|
||||
// }
|
||||
$('#' + content.elementCode).text(outValue);
|
||||
}
|
||||
} else if (content.getValueType == 'getMpMainValue') {
|
||||
let outValue = content.mPoint.parmvalue;
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper"
|
||||
style="background-size: 100% 100%;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width: calc((100% - 20px)*0.5);height: 100%;background-color: #FFFFFF;">
|
||||
<div style="height: 42px;border-bottom: 1px solid #C4E2E6;padding: 0; margin-left: 15px;margin-right: 15px;">
|
||||
<div style="border-bottom: 2px solid #C4E2E6;width:125px;height: 100%;line-height: 2.5;font-size: 18px;">
|
||||
<strong>反硝化滤池A座</strong></div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 42px)*0.4);background:url(<%=request.getContextPath()%>/IMG/digitalProcess/TH_FXC_A.png);background-size: 100% 100%;"></div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 42px)*0.4);">
|
||||
<div style="height: 42px;padding: 0; margin-left: 15px;margin-right: 15px;">
|
||||
<div style="width:125px;height: 100%;line-height: 2.5;font-size: 18px;">
|
||||
<strong>当前阀门开度</strong></div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc(100% - 42px);">
|
||||
<div style="float: left;width: 50%;height: 100%;padding: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">1#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F1_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">8#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F8_V_AI"></span><span>%</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">2#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F2_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">9#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F9_V_AI"></span><span>%</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">3#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F3_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">10#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F10_V_AI"></span><span>%</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">4#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F4_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">11#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F11_V_AI"></span><span>%</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">5#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F5_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">12#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F12_V_AI"></span><span>%</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">6#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F6_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">13#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F13_V_AI"></span><span>%</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">7#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F7_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">14#池</td>
|
||||
<td style="font-size: 20px;"><span class="TH_F14_V_AI"></span><span>%</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 42px)*0.2);">
|
||||
<div style="height: 42px;padding: 0; margin-left: 15px;margin-right: 15px;">
|
||||
<div style="width:125px;height: 100%;line-height: 2.5;font-size: 18px;">
|
||||
<strong>预冲洗顺序</strong></div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc(100% - 42px);padding-top: 20px;padding-left: 40px;">
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_1_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_2_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_3_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_4_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_5_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_6_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_7_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_8_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_9_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_10_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_11_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_12_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_13_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_A_BACKFLUSH_NO_14_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="float: left;width: 20px;height: 100%;"></div>
|
||||
<div style="float: left;width: calc((100% - 20px)*0.5);height: 100%;background-color: #FFFFFF;">
|
||||
<div style="height: 42px;border-bottom: 1px solid #C4E2E6;padding: 0; margin-left: 15px;margin-right: 15px;">
|
||||
<div style="border-bottom: 2px solid #C4E2E6;width:125px;height: 100%;line-height: 2.5;font-size: 18px;">
|
||||
<strong>反硝化滤池B座</strong></div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 42px)*0.4);background:url(<%=request.getContextPath()%>/IMG/digitalProcess/TH_FXC_B.png);background-size: 100% 100%;"></div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 42px)*0.4);">
|
||||
<div style="height: 42px;padding: 0; margin-left: 15px;margin-right: 15px;">
|
||||
<div style="width:125px;height: 100%;line-height: 2.5;font-size: 18px;">
|
||||
<strong>当前阀门开度</strong></div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc(100% - 42px);">
|
||||
<div style="float: left;width: 50%;height: 100%;padding: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">1#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F1_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">8#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F8_V_AI"></span><span>%</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">2#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F2_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">9#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F9_V_AI"></span><span>%</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">3#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F3_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">10#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F10_V_AI"></span><span>%</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">4#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F4_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">11#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F11_V_AI"></span><span>%</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">5#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F5_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">12#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F12_V_AI"></span><span>%</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">6#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F6_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">13#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F13_V_AI"></span><span>%</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="color: rgb(176, 176, 176);">7#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F7_V_AI"></span><span>%</span></td>
|
||||
<td style="color: rgb(176, 176, 176);">14#池</td>
|
||||
<td style="font-size: 20px;"><span
|
||||
class="TH_PLC11_F14_V_AI"></span><span>%</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 42px)*0.2);">
|
||||
<div style="height: 42px;padding: 0; margin-left: 15px;margin-right: 15px;">
|
||||
<div style="width:125px;height: 100%;line-height: 2.5;font-size: 18px;">
|
||||
<strong>预冲洗顺序</strong></div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc(100% - 42px);padding-top: 20px;padding-left: 40px;">
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_1_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_2_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_3_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_4_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_5_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_6_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_7_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_8_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_9_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_10_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_11_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_12_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_13_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
<div style="float:left;width: 30px;height: 30px;padding-left: 5px;padding-right: 5px;">
|
||||
<svg t="1684293176787" class="icon" viewBox="0 0 1024 1024" p-id="2554" width="20"
|
||||
height="30">
|
||||
<path d="M6.71115421 489.90890885l662.73273745-1e-8L669.44389165 551.27305136 6.71115421 551.27305136l2e-8-61.36414251z"
|
||||
fill="#89E1FF" p-id="2555"></path>
|
||||
<path d="M665.71307852 306.28092891L1022.56779958 515.86227332l-356.85472106 215.24570478 0-424.82704919z"
|
||||
fill="#89E1FF" p-id="2556"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div id="TH_DE_DF_B_BACKFLUSH_NO_14_SERIAL_PREDICT"
|
||||
style="float:left;width: 30px;height: 30px;border-radius: 50%;border: 2px solid #89E1FF;text-align: center;line-height: 25px;color: #89E1FF;font-size: 18px;">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
209
WebRoot/jsp/digitalProcess/dispatchSheetEntry.jsp
Normal file
209
WebRoot/jsp/digitalProcess/dispatchSheetEntry.jsp
Normal file
@ -0,0 +1,209 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8"%>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<style type="text/css">
|
||||
.select2-container .select2-selection--single{
|
||||
height:34px;
|
||||
line-height: 34px;
|
||||
}
|
||||
.select2-selection__arrow{
|
||||
margin-top:3px;
|
||||
}
|
||||
.exit{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function dosave() {
|
||||
$("#subForm").bootstrapValidator('validate');//提交验证
|
||||
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
|
||||
|
||||
var dispatchclass = $("#adjustment").val();
|
||||
if(dispatchclass!='out'){
|
||||
$.post(ext.contextPath + "/digitalProcess/digitalTechnologist/dispatchSheetEntryInputSave.do", $("#subForm").serialize(), function(data) {
|
||||
if (data.res == 1){
|
||||
closeModal('subModal');
|
||||
$(".dispatchListNum").html(data.dispatchListNum);
|
||||
$(".dispatchListTime").html(data.dispatchListTime);
|
||||
$(".dispatchListContent").html(data.dispatchListContent);
|
||||
modelInvoke();
|
||||
}else if(data.res == 0){
|
||||
showAlert('d','保存失败');
|
||||
}else{
|
||||
showAlert('d',data.res);
|
||||
}
|
||||
},'json');
|
||||
}
|
||||
var form = $("<form></form>");
|
||||
form.append($("<input type='hidden' name='recorddt' value='"+$("#insdt").val()+"' />"));
|
||||
form.append($("<input type='hidden' name='output' value='"+$("#output").text()+"' />"));
|
||||
form.append($("<input type='hidden' name='dispatchclass' value='"+dispatchclass+"' />"));
|
||||
form.append($("<input type='hidden' name='exitremark' value='"+$("#exitremark").val()+"' />"));
|
||||
form.append($("<input type='hidden' name='remark' value='"+$("#reason").val()+"' />"));
|
||||
form.append($("<input type='hidden' name='startdt' value='"+$("#startDate").val()+"' />"));
|
||||
form.append($("<input type='hidden' name='enddt' value='"+$("#endDate").val()+"' />"));
|
||||
form.append($("<input type='hidden' name='throughput' value='"+$("#handle").val()+"' />"));
|
||||
$.post(ext.contextPath + "/digitalProcess/digitalTechnologist/dispatchSheetEntrySave.do",$(form).serialize(),
|
||||
function(data) {
|
||||
console.log(data);
|
||||
},'json');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
//输入框验证
|
||||
$("#subForm").bootstrapValidator({
|
||||
live: 'disabled',//验证时机,enabled是内容有变化就验证(默认),disabled和submitted是提交再验证
|
||||
fields: {
|
||||
handle: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: '处理量不能为空'
|
||||
}
|
||||
}
|
||||
},
|
||||
startDate: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: '影响开始时间不能为空'
|
||||
}
|
||||
}
|
||||
},
|
||||
endDate: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: '影响结束时间不能为空'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
function dispatchClass(){
|
||||
var dispatchclass = $("#adjustment").val();
|
||||
if(dispatchclass=='out'){
|
||||
$(".dispatch").hide();
|
||||
$(".exit").show();
|
||||
}else{
|
||||
$(".dispatch").show();
|
||||
$(".exit").hide();
|
||||
}
|
||||
}
|
||||
$(function(){
|
||||
/*$("#insdt").datepicker({
|
||||
language: 'zh-CN',
|
||||
autoclose: true,
|
||||
todayHighlight: true,
|
||||
format:'yyyy-mm-dd',
|
||||
})*/
|
||||
/*$("#startDate").datepicker({
|
||||
language: 'zh-CN',
|
||||
autoclose: true,
|
||||
todayHighlight: true,
|
||||
format:'yyyy-mm-dd',
|
||||
})
|
||||
$("#endDate").datepicker({
|
||||
language: 'zh-CN',
|
||||
autoclose: true,
|
||||
todayHighlight: true,
|
||||
format:'yyyy-mm-dd',
|
||||
})*/
|
||||
let date = new Date();
|
||||
let hour = date.getHours(); //小时
|
||||
if(hour<8){
|
||||
$("#startDate").val(moment().add(-1, 'days').format('YYYY-MM-DD')+' 08:00');
|
||||
$("#endDate").val(moment().add(0, 'days').format('YYYY-MM-DD')+' 08:00');
|
||||
}else{
|
||||
$("#startDate").val(moment().add(0, 'days').format('YYYY-MM-DD')+' 08:00');
|
||||
$("#endDate").val(moment().add(1, 'days').format('YYYY-MM-DD')+' 08:00');
|
||||
}
|
||||
$(".dayOriginalProductionScheduling").html($("#dayOriginalProductionScheduling").val());
|
||||
|
||||
$.post(ext.contextPath + "/digitalProcess/digitalTechnologist/getExitremark.do", function (data) {
|
||||
var selelct = $("#exitremark").select2({
|
||||
data: data,
|
||||
placeholder: '请选择',//默认文字提示
|
||||
allowClear: false,//允许清空
|
||||
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
|
||||
language: "zh-CN",
|
||||
minimumInputLength: 0,
|
||||
minimumResultsForSearch: 10,//数据超过十个启用搜索框
|
||||
multiple: true,
|
||||
formatResult: function formatRepo(repo) { return repo.text; }, // 函数用来渲染结果
|
||||
formatSelection: function formatRepoSelection(repo) { return repo.text; } // 函数用于呈现当前的选择
|
||||
});
|
||||
}, 'json');
|
||||
})
|
||||
</script>
|
||||
<div class="modal fade" id="subModal">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">调度单信息录入</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- 新增界面formid强制为subForm -->
|
||||
<form class="form-horizontal" id="subForm">
|
||||
<input type="hidden" class="form-control" id="unitId" name ="unitId" value="${unitId}" readonly>
|
||||
<!-- 界面提醒div强制id为alertDiv -->
|
||||
<div id="alertDiv"></div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">日期</label>
|
||||
<div class="col-md-4 col-sm-10">
|
||||
<input type="text" class="form-control" id="insdt" name ="insdt"
|
||||
placeholder="日期" value="${nowDate.substring(0,19)}" readonly>
|
||||
</div>
|
||||
<label class="col-md-2 col-sm-3 control-label">当日原始排产量</label>
|
||||
<label class="col-md-3 col-sm-3 control-label dayOriginalProductionScheduling" id="output" style="text-align: center;"></label>
|
||||
<label class="col-md-1 col-sm-2 control-label text-left">万m³</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">调度内容</label>
|
||||
<div class="col-md-4 col-sm-2">
|
||||
<select class="form-control select2" id="adjustment" name ="adjustment" style="width: 100%;" onchange="dispatchClass()">
|
||||
<option selected value="reduce">减少</option>
|
||||
<option value="increase">增加</option>
|
||||
<option value="out">退出</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-md-2 col-sm-2 control-label text-center dispatch">处理量</label>
|
||||
<div class="col-md-3 col-sm-2 dispatch">
|
||||
<input type="text" class="form-control" id="handle" name ="handle" value="0"></div>
|
||||
<label class="col-md-1 col-sm-2 control-label text-left dispatch">万m³</label>
|
||||
</div>
|
||||
<div class="form-group exit">
|
||||
<label class="col-md-2 col-sm-2 control-label">退出投运</label>
|
||||
<div class="col-md-10 col-sm-10">
|
||||
<select class="form-control select2" id="exitremark" name="exitremark" style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">原因</label>
|
||||
<div class="col-md-10 col-sm-10">
|
||||
<textarea class="form-control" rows="3" id ="reason" name ="reason" placeholder="原因..."></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">影响开始时间</label>
|
||||
<div class="col-md-4 col-sm-10">
|
||||
<input type="text" class="form-control" id="startDate" name ="startDate" value="" readonly>
|
||||
</div>
|
||||
<label class="col-md-2 col-sm-2 control-label">影响结束时间</label>
|
||||
<div class="col-md-4 col-sm-10">
|
||||
<input type="text" class="form-control" id="endDate" name ="endDate" value="" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||
<button type="button" class="btn btn-primary" onclick="dosave()" id="btn_save">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.modal-content -->
|
||||
</div>
|
||||
<!-- /.modal-dialog -->
|
||||
</div>
|
||||
245
WebRoot/jsp/digitalProcess/dispatchSheetEntryAdd.jsp
Normal file
245
WebRoot/jsp/digitalProcess/dispatchSheetEntryAdd.jsp
Normal file
@ -0,0 +1,245 @@
|
||||
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
|
||||
<%@ page language="java" pageEncoding="UTF-8"%>
|
||||
<%request.setAttribute("CHECK", SparePartCommString.WAREHOUSE_CHECK); %>
|
||||
<%request.setAttribute("START", SparePartCommString.WAREHOUSE_START); %>
|
||||
<%request.setAttribute("STOP", SparePartCommString.WAREHOUSE_STOP); %>
|
||||
<style type="text/css">
|
||||
.select2-container .select2-selection--single{
|
||||
height:34px;
|
||||
line-height: 34px;
|
||||
}
|
||||
.select2-selection__arrow{
|
||||
margin-top:3px;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function doupdate() {
|
||||
$("#subForm").bootstrapValidator('validate');//提交验证
|
||||
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
|
||||
$.post(ext.contextPath + "/digitalProcess/digitalTechnologist/dispatchSheetEntrySave.do", $("#subForm").serialize(), function(data) {
|
||||
if (data.res == 1){
|
||||
closeModal('subModal');
|
||||
$("#table").bootstrapTable('refresh');
|
||||
}else if(data.res == 0){
|
||||
showAlert('d','保存失败');
|
||||
}else{
|
||||
showAlert('d',data.res);
|
||||
}
|
||||
},'json');
|
||||
}
|
||||
}
|
||||
//输入框验证
|
||||
$("#subForm").bootstrapValidator({
|
||||
live: 'disabled',//验证时机,enabled是内容有变化就验证(默认),disabled和submitted是提交再验证
|
||||
fields: {
|
||||
recorddt: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: '日期不能为空'
|
||||
},
|
||||
},
|
||||
},
|
||||
dispatchclass: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: '调度不能为空'
|
||||
}
|
||||
}
|
||||
},
|
||||
remark: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: '原因不能为空'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
function getOutputData(){
|
||||
var jsp_id = 'dispatchOutput';
|
||||
var bizId = unitId;
|
||||
var time = $("#recorddt").val();
|
||||
$.post(ext.contextPath + "/digitalProcess/digitalTechnologist/getOutputData.do",{jsp_id:jsp_id,bizId:bizId,time:time}, function (data) {
|
||||
var res = data.res;
|
||||
if(res.mpvalue!=null && res.mpvalue!=undefined && res.mpvalue!=""){
|
||||
$("#output").val(res.mpvalue);
|
||||
}else{
|
||||
$("#output").val(res);
|
||||
}
|
||||
}, 'json');
|
||||
}
|
||||
function dispatchClass(){
|
||||
var dispatchclass = $("#dispatchclass").val();
|
||||
if(dispatchclass=='out'){
|
||||
$(".dispatch").hide();
|
||||
$(".exit").show();
|
||||
}else{
|
||||
$(".dispatch").show();
|
||||
$(".exit").hide();
|
||||
}
|
||||
}
|
||||
$(function(){
|
||||
$("#recorddt").val(moment().add(0, 'days').format('YYYY-MM-DD HH:mm:ss'));
|
||||
var startdt = moment().add(0, 'days').format('YYYY-MM-DD')+' 08:00';
|
||||
$("#startdt").val(startdt);
|
||||
var enddt = moment().add(1, 'days').format('YYYY-MM-DD')+' 08:00';
|
||||
$("#enddt").val(enddt);
|
||||
getOutputData();
|
||||
$("#recorddt").datetimepicker({
|
||||
language:'zh-CN',
|
||||
format: 'yyyy-mm-dd hh:ii',
|
||||
dateFormat: 'yyyy-mm-dd',//日期显示格式
|
||||
timeFormat: 'HH:mm',//时间显示格式
|
||||
minView: 0,
|
||||
maxView: "year",
|
||||
minuteStep: 1,//分钟间隔1分钟
|
||||
autoclose: true
|
||||
}).on('changeDate', function () {
|
||||
var recorddt = $("#recorddt").val();
|
||||
$("#startdt").val(recorddt.substring(0,10)+' 08:00');
|
||||
$("#enddt").val(getPlusTime(recorddt, "1", "day").substring(0,10)+' 08:00');
|
||||
/*$('#startdt').datetimepicker('setStartDate', recorddt.substring(0,10)+' 08:00');
|
||||
$('#startdt').datetimepicker('setEndDate', getPlusTime(recorddt, "1", "day").substring(0,10)+' 08:00');
|
||||
$('#enddt').datetimepicker('setStartDate', recorddt.substring(0,10)+' 08:00');
|
||||
$('#enddt').datetimepicker('setEndDate', getPlusTime(recorddt, "1", "day").substring(0,10)+' 08:00');*/
|
||||
getOutputData();
|
||||
});
|
||||
$("#startdt").datetimepicker({
|
||||
language:'zh-CN',
|
||||
format: 'yyyy-mm-dd hh:ii',
|
||||
dateFormat: 'yyyy-mm-dd',//日期显示格式
|
||||
timeFormat: 'HH:mm',//时间显示格式
|
||||
startView: "day", //初始化视图是‘年’
|
||||
/*startDate: startdt,
|
||||
endDate: enddt,*/
|
||||
minView: 0,
|
||||
maxView: "year",
|
||||
minuteStep: 1,//分钟间隔1分钟
|
||||
autoclose: true
|
||||
}).on('changeDate', function () {
|
||||
|
||||
});
|
||||
$("#enddt").datetimepicker({
|
||||
language:'zh-CN',
|
||||
format: 'yyyy-mm-dd hh:ii',
|
||||
dateFormat: 'yyyy-mm-dd',//日期显示格式
|
||||
timeFormat: 'HH:mm',//时间显示格式
|
||||
startView: "day", //初始化视图是‘年’
|
||||
/*startDate: startdt,
|
||||
endDate: enddt,*/
|
||||
minView: 0,
|
||||
maxView: "year",
|
||||
minuteStep: 1,//分钟间隔1分钟
|
||||
autoclose: true
|
||||
}).on('changeDate', function () {
|
||||
|
||||
});
|
||||
var selelct_Data= jQuery.parseJSON('[{"id":"reduce","text":"减少"},{"id":"increase","text":"增加"},{"id":"out","text":"退出"}]');
|
||||
var selelct_ = $("#dispatchclass").select2({
|
||||
data: selelct_Data,
|
||||
cache: false,
|
||||
placeholder: '请选择',//默认文字提示
|
||||
allowClear: true,//允许清空
|
||||
escapeMarkup: function (markup) {
|
||||
return markup;
|
||||
}, // 自定义格式化防止xss注入
|
||||
language: "zh-CN",
|
||||
minimumInputLength: 0,
|
||||
minimumResultsForSearch: 10,//数据超过十个启用搜索框
|
||||
formatResult: function formatRepo(repo) {
|
||||
return repo.text;
|
||||
}, // 函数用来渲染结果
|
||||
formatSelection: function formatRepoSelection(repo) {
|
||||
return repo.text;
|
||||
} // 函数用于呈现当前的选择
|
||||
});
|
||||
$(".select2-selection--single").css({'height': '30px', 'paddingTop': '4px'})
|
||||
selelct_.on("change", function (e) {
|
||||
dispatchClass()
|
||||
});
|
||||
$.post(ext.contextPath + "/digitalProcess/digitalTechnologist/getExitremark.do", function (data) {
|
||||
var selelct = $("#exitremark").select2({
|
||||
data: data,
|
||||
placeholder: '请选择',//默认文字提示
|
||||
allowClear: false,//允许清空
|
||||
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
|
||||
language: "zh-CN",
|
||||
minimumInputLength: 0,
|
||||
minimumResultsForSearch: 10,//数据超过十个启用搜索框
|
||||
multiple: true,
|
||||
formatResult: function formatRepo(repo) { return repo.text; }, // 函数用来渲染结果
|
||||
formatSelection: function formatRepoSelection(repo) { return repo.text; } // 函数用于呈现当前的选择
|
||||
});
|
||||
}, 'json');
|
||||
})
|
||||
</script>
|
||||
<div class="modal fade" id="subModal">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">调度单信息</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- 新增界面formid强制为subForm -->
|
||||
<form class="form-horizontal" id="subForm">
|
||||
<!-- 界面提醒div强制id为alertDiv -->
|
||||
<div id="alertDiv"></div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">日期</label>
|
||||
<div class="col-md-4 col-sm-10">
|
||||
<input type="text" class="form-control" id="recorddt" name ="recorddt"
|
||||
placeholder="日期" value="${nowDate.substring(0,19)}" readonly>
|
||||
</div>
|
||||
<label class="col-md-2 col-sm-3 control-label">当日原始排产量</label>
|
||||
<label class="col-md-3 col-sm-3 control-label dayOriginalProductionScheduling" style="text-align: center;">
|
||||
<input type="text" class="form-control" id="output" name ="output" placeholder="当日原始排产量" value="">
|
||||
</label>
|
||||
<label class="col-md-1 col-sm-2 control-label text-left">万m³</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">调度内容</label>
|
||||
<div class="col-md-4 col-sm-2">
|
||||
<select class="form-control select2" id="dispatchclass" name ="dispatchclass" style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-md-2 col-sm-2 control-label text-center dispatch">处理量</label>
|
||||
<div class="col-md-3 col-sm-2 dispatch">
|
||||
<input type="text" class="form-control" id="throughput" name ="throughput" value="0"></div>
|
||||
<label class="col-md-1 col-sm-2 control-label text-left">万m³</label>
|
||||
</div>
|
||||
<div class="form-group exit">
|
||||
<label class="col-md-2 col-sm-2 control-label">退出投运</label>
|
||||
<div class="col-md-10 col-sm-10">
|
||||
<select class="form-control select2" id="exitremark" name="exitremark" style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">原因</label>
|
||||
<div class="col-md-10 col-sm-10">
|
||||
<textarea class="form-control" rows="3" id ="remark" name ="remark" placeholder="原因..."></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">影响开始时间</label>
|
||||
<div class="col-md-4 col-sm-10">
|
||||
<input type="text" class="form-control" id="startdt" name ="startdt" value="${nowDate.substring(0,10)} 08:00" readonly>
|
||||
</div>
|
||||
<label class="col-md-2 col-sm-2 control-label">影响结束时间</label>
|
||||
<div class="col-md-4 col-sm-10">
|
||||
<input type="text" class="form-control" id="enddt" name ="enddt" value="" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.modal-content -->
|
||||
</div>
|
||||
<!-- /.modal-dialog -->
|
||||
</div>
|
||||
251
WebRoot/jsp/digitalProcess/dispatchSheetEntryEdit.jsp
Normal file
251
WebRoot/jsp/digitalProcess/dispatchSheetEntryEdit.jsp
Normal file
@ -0,0 +1,251 @@
|
||||
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
|
||||
<%@ page language="java" pageEncoding="UTF-8"%>
|
||||
<%request.setAttribute("CHECK", SparePartCommString.WAREHOUSE_CHECK); %>
|
||||
<%request.setAttribute("START", SparePartCommString.WAREHOUSE_START); %>
|
||||
<%request.setAttribute("STOP", SparePartCommString.WAREHOUSE_STOP); %>
|
||||
<style type="text/css">
|
||||
.select2-container .select2-selection--single{
|
||||
height:34px;
|
||||
line-height: 34px;
|
||||
}
|
||||
.select2-selection__arrow{
|
||||
margin-top:3px;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
function doupdate() {
|
||||
$("#subForm").bootstrapValidator('validate');//提交验证
|
||||
if ($("#subForm").data('bootstrapValidator').isValid()) {//获取验证结果,如果成功,执行下面代码
|
||||
$.post(ext.contextPath + "/digitalProcess/digitalTechnologist/dispatchSheetEntryUpdate.do", $("#subForm").serialize(), function(data) {
|
||||
if (data.res == 1){
|
||||
closeModal('subModal');
|
||||
$("#table").bootstrapTable('refresh');
|
||||
}else if(data.res == 0){
|
||||
showAlert('d','保存失败');
|
||||
}else{
|
||||
showAlert('d',data.res);
|
||||
}
|
||||
},'json');
|
||||
}
|
||||
}
|
||||
//输入框验证
|
||||
$("#subForm").bootstrapValidator({
|
||||
live: 'disabled',//验证时机,enabled是内容有变化就验证(默认),disabled和submitted是提交再验证
|
||||
fields: {
|
||||
recorddt: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: '日期不能为空'
|
||||
},
|
||||
},
|
||||
},
|
||||
dispatchclass: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: '调度不能为空'
|
||||
}
|
||||
}
|
||||
},
|
||||
remark: {
|
||||
validators: {
|
||||
notEmpty: {
|
||||
message: '原因不能为空'
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
});
|
||||
function getOutputData(){
|
||||
var jsp_id = 'dispatchOutput';
|
||||
var bizId = unitId;
|
||||
var time = $("#recorddt").val();
|
||||
$.post(ext.contextPath + "/digitalProcess/digitalTechnologist/getOutputData.do",{jsp_id:jsp_id,bizId:bizId,time:time}, function (data) {
|
||||
var res = data.res;
|
||||
if(res.mpvalue!=null && res.mpvalue!=undefined && res.mpvalue!=""){
|
||||
$("#output").val(res.mpvalue);
|
||||
}else{
|
||||
$("#output").val(res);
|
||||
}
|
||||
}, 'json');
|
||||
}
|
||||
function dispatchClass(){
|
||||
var dispatchclass = $("#dispatchclass").val();
|
||||
if(dispatchclass=='out'){
|
||||
$(".dispatch").hide();
|
||||
$(".exit").show();
|
||||
}else{
|
||||
$(".dispatch").show();
|
||||
$(".exit").hide();
|
||||
}
|
||||
}
|
||||
$(function(){
|
||||
var selelct_Data= jQuery.parseJSON('[{"id":"reduce","text":"减少"},{"id":"increase","text":"增加"},{"id":"out","text":"退出"}]');
|
||||
var selelct_ = $("#dispatchclass").select2({
|
||||
data: selelct_Data,
|
||||
cache: false,
|
||||
placeholder: '请选择',//默认文字提示
|
||||
allowClear: true,//允许清空
|
||||
escapeMarkup: function (markup) {
|
||||
return markup;
|
||||
}, // 自定义格式化防止xss注入
|
||||
language: "zh-CN",
|
||||
minimumInputLength: 0,
|
||||
minimumResultsForSearch: 10,//数据超过十个启用搜索框
|
||||
formatResult: function formatRepo(repo) {
|
||||
return repo.text;
|
||||
}, // 函数用来渲染结果
|
||||
formatSelection: function formatRepoSelection(repo) {
|
||||
return repo.text;
|
||||
} // 函数用于呈现当前的选择
|
||||
});
|
||||
$(".select2-selection--single").css({'height': '30px', 'paddingTop': '4px'})
|
||||
selelct_.val("${dispatchSheetEntry.dispatchclass}").trigger("change");
|
||||
selelct_.on("change", function (e) {
|
||||
dispatchClass();
|
||||
});
|
||||
var startdt = $("#startdt").val();
|
||||
var enddt = $("#enddt").val();
|
||||
$("#recorddt").datetimepicker({
|
||||
language:'zh-CN',
|
||||
format: 'yyyy-mm-dd hh:ii',
|
||||
dateFormat: 'yyyy-mm-dd',//日期显示格式
|
||||
timeFormat: 'HH:mm',//时间显示格式
|
||||
minView: 0,
|
||||
maxView: "year",
|
||||
minuteStep: 1,//分钟间隔1分钟
|
||||
autoclose: true
|
||||
}).on('changeDate', function () {
|
||||
var recorddt = $("#recorddt").val();
|
||||
$("#startdt").val(recorddt.substring(0,10)+' 08:00');
|
||||
$("#enddt").val(getPlusTime(recorddt, "1", "day").substring(0,10)+' 08:00');
|
||||
getOutputData();
|
||||
});
|
||||
$("#startdt").datetimepicker({
|
||||
language:'zh-CN',
|
||||
format: 'yyyy-mm-dd hh:ii',
|
||||
dateFormat: 'yyyy-mm-dd',//日期显示格式
|
||||
timeFormat: 'HH:mm',//时间显示格式
|
||||
startView: "day", //初始化视图是‘年’
|
||||
/*startDate: startdt,
|
||||
endDate: enddt,*/
|
||||
minView: 0,
|
||||
maxView: "year",
|
||||
minuteStep: 1,//分钟间隔1分钟
|
||||
autoclose: true
|
||||
}).on('changeDate', function () {
|
||||
|
||||
});
|
||||
$("#enddt").datetimepicker({
|
||||
language:'zh-CN',
|
||||
format: 'yyyy-mm-dd hh:ii',
|
||||
dateFormat: 'yyyy-mm-dd',//日期显示格式
|
||||
timeFormat: 'HH:mm',//时间显示格式
|
||||
startView: "day", //初始化视图是‘年’
|
||||
/*startDate: startdt,
|
||||
endDate: enddt,*/
|
||||
minView: 0,
|
||||
maxView: "year",
|
||||
minuteStep: 1,//分钟间隔1分钟
|
||||
autoclose: true
|
||||
}).on('changeDate', function () {
|
||||
|
||||
});
|
||||
$.post(ext.contextPath + "/digitalProcess/digitalTechnologist/getExitremark.do", function (data) {
|
||||
var selelct = $("#exitremark").select2({
|
||||
data: data,
|
||||
placeholder: '请选择',//默认文字提示
|
||||
allowClear: false,//允许清空
|
||||
escapeMarkup: function (markup) { return markup; }, // 自定义格式化防止xss注入
|
||||
language: "zh-CN",
|
||||
minimumInputLength: 0,
|
||||
minimumResultsForSearch: 10,//数据超过十个启用搜索框
|
||||
multiple: true,
|
||||
formatResult: function formatRepo(repo) { return repo.text; }, // 函数用来渲染结果
|
||||
formatSelection: function formatRepoSelection(repo) { return repo.text; } // 函数用于呈现当前的选择
|
||||
});
|
||||
var roleitems = new Array();
|
||||
var role = '${dispatchSheetEntry.exitremark}';
|
||||
var roles = role.split(",");
|
||||
$.each(roles, function (index, item) {
|
||||
roleitems.push(item);
|
||||
});
|
||||
//console.log("roles", roles);
|
||||
selelct.val(roleitems).trigger("change");
|
||||
}, 'json');
|
||||
dispatchClass();
|
||||
})
|
||||
</script>
|
||||
<div class="modal fade" id="subModal">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title">调度单信息</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<!-- 新增界面formid强制为subForm -->
|
||||
<form class="form-horizontal" id="subForm">
|
||||
<input type="hidden" class="form-control" id="id" name ="id" value="${dispatchSheetEntry.id}" readonly>
|
||||
<!-- 界面提醒div强制id为alertDiv -->
|
||||
<div id="alertDiv"></div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">日期</label>
|
||||
<div class="col-md-4 col-sm-10">
|
||||
<input type="text" class="form-control" id="recorddt" name ="recorddt"
|
||||
placeholder="日期" value="${dispatchSheetEntry.recorddt.substring(0,19)}" readonly>
|
||||
</div>
|
||||
<label class="col-md-2 col-sm-3 control-label">当日原始排产量</label>
|
||||
<label class="col-md-3 col-sm-3 control-label dayOriginalProductionScheduling" style="text-align: center;">
|
||||
<input type="text" class="form-control" id="output" name ="output" placeholder="当日原始排产量" value="${dispatchSheetEntry.output}">
|
||||
</label>
|
||||
<label class="col-md-1 col-sm-2 control-label text-left">万m³</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">调度内容</label>
|
||||
<div class="col-md-4 col-sm-2">
|
||||
<select class="form-control select2" id="dispatchclass" name ="dispatchclass" style="width: 100%;">
|
||||
<option selected value="reduce">减少</option>
|
||||
<option value="increase">增加</option>
|
||||
<option value="out">退出</option>
|
||||
</select>
|
||||
</div>
|
||||
<label class="col-md-2 col-sm-2 control-label text-center dispatch">处理量</label>
|
||||
<div class="col-md-3 col-sm-2 dispatch">
|
||||
<input type="text" class="form-control" id="throughput" name ="throughput" value="${dispatchSheetEntry.throughput}"></div>
|
||||
<label class="col-md-1 col-sm-2 control-label text-left dispatch">万m³</label>
|
||||
</div>
|
||||
<div class="form-group exit">
|
||||
<label class="col-md-2 col-sm-2 control-label">退出投运</label>
|
||||
<div class="col-md-10 col-sm-10">
|
||||
<select class="form-control select2" id="exitremark" name="exitremark" style="width: 100%;">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">原因</label>
|
||||
<div class="col-md-10 col-sm-10">
|
||||
<textarea class="form-control" rows="3" id ="remark" name ="remark" placeholder="原因...">${dispatchSheetEntry.remark}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-md-2 col-sm-2 control-label">影响开始时间</label>
|
||||
<div class="col-md-4 col-sm-10">
|
||||
<input type="text" class="form-control" id="startdt" name ="startdt" value="${dispatchSheetEntry.startdt.substring(0,19)}" readonly>
|
||||
</div>
|
||||
<label class="col-md-2 col-sm-2 control-label">影响结束时间</label>
|
||||
<div class="col-md-4 col-sm-10">
|
||||
<input type="text" class="form-control" id="enddt" name ="enddt" value="${dispatchSheetEntry.enddt.substring(0,19)}" readonly>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||
<button type="button" class="btn btn-primary" onclick="doupdate()" id="btn_update">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /.modal-content -->
|
||||
</div>
|
||||
<!-- /.modal-dialog -->
|
||||
</div>
|
||||
318
WebRoot/jsp/digitalProcess/dispatchSheetEntryList.jsp
Normal file
318
WebRoot/jsp/digitalProcess/dispatchSheetEntryList.jsp
Normal file
@ -0,0 +1,318 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8"%>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject"%>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
|
||||
<%@page import="com.sipai.entity.sparepart.SparePartCommString"%>
|
||||
<%request.setAttribute("CHECK", SparePartCommString.WAREHOUSE_CHECK); %>
|
||||
<%request.setAttribute("START", SparePartCommString.WAREHOUSE_START); %>
|
||||
<%request.setAttribute("STOP", SparePartCommString.WAREHOUSE_STOP); %>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%></title>
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- bootstrap switch -->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.min.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/node_modules/bootstrap-switch/dist/js/bootstrap-switch.min.js" charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<style type="text/css">
|
||||
.exit{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
|
||||
var addFun = function() {
|
||||
$.post(ext.contextPath + '/digitalProcess/digitalTechnologist/dispatchSheetEntryAdd.do', {companyId : companyId} , function(data) {
|
||||
$("#subDiv").html(data);
|
||||
openModal('subModal');
|
||||
});
|
||||
};
|
||||
|
||||
var editFun = function(id) {
|
||||
stopBubbleDefaultEvent();
|
||||
$.post(ext.contextPath + '/digitalProcess/digitalTechnologist/dispatchSheetEntryEdit.do', {id:id} , function(data) {
|
||||
$("#subDiv").html(data);
|
||||
openModal('subModal');
|
||||
});
|
||||
};
|
||||
|
||||
var deleteFun = function(id) {
|
||||
stopBubbleDefaultEvent();
|
||||
swal({
|
||||
text: "您确定要删除此记录?",
|
||||
dangerMode: true,
|
||||
buttons: {
|
||||
cancel: {
|
||||
text: "取消",
|
||||
value: null,
|
||||
visible: true,
|
||||
className: "btn btn-default btn-sm",
|
||||
closeModal: true,
|
||||
},
|
||||
confirm: {
|
||||
text: "确定",
|
||||
value: true,
|
||||
visible: true,
|
||||
className: "btn btn-danger btn-sm",
|
||||
closeModal: true
|
||||
}
|
||||
}
|
||||
})
|
||||
.then(willDelete =>{
|
||||
if (willDelete) {
|
||||
$.post(ext.contextPath + '/digitalProcess/digitalTechnologist/dispatchSheetEntryDelete.do', {id : id}, function(data) {
|
||||
if(data==1){
|
||||
$("#table").bootstrapTable('refresh');
|
||||
}else{
|
||||
showAlert('d','删除失败','mainAlertdiv');
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
var deletesFun = function() {
|
||||
var checkedItems = $("#table").bootstrapTable('getSelections');
|
||||
var datas="";
|
||||
$.each(checkedItems, function(index, item){
|
||||
datas+=item.id+",";
|
||||
});
|
||||
if(datas==""){
|
||||
showAlert('d','请先选择记录','mainAlertdiv');
|
||||
}else{
|
||||
swal({
|
||||
text: "您确定要删除此记录?",
|
||||
dangerMode: true,
|
||||
buttons: {
|
||||
cancel: {
|
||||
text: "取消",
|
||||
value: null,
|
||||
visible: true,
|
||||
className: "btn btn-default btn-sm",
|
||||
closeModal: true,
|
||||
},
|
||||
confirm: {
|
||||
text: "确定",
|
||||
value: true,
|
||||
visible: true,
|
||||
className: "btn btn-danger btn-sm",
|
||||
closeModal: true
|
||||
}
|
||||
}
|
||||
})
|
||||
.then(function(willDelete) {
|
||||
if (willDelete) {
|
||||
$.post(ext.contextPath + '/digitalProcess/digitalTechnologist/dispatchSheetEntryDeletes.do', {ids:datas} , function(data) {
|
||||
if(data>0){
|
||||
$("#table").bootstrapTable('refresh');
|
||||
}else{
|
||||
showAlert('d','删除失败','mainAlertdiv');
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
var dosearch = function() {
|
||||
$("#table").bootstrapTable('refresh');
|
||||
};
|
||||
|
||||
var companyId = "";
|
||||
$(function() {
|
||||
|
||||
var selelct_Data= jQuery.parseJSON('[{"id":"reduce","text":"减少"},{"id":"increase","text":"增加"},{"id":"out","text":"退出"}]');
|
||||
var selelct_ = $("#search_dispatchclass").select2({
|
||||
data: selelct_Data,
|
||||
cache: false,
|
||||
placeholder: '请选择',//默认文字提示
|
||||
allowClear: true,//允许清空
|
||||
escapeMarkup: function (markup) {
|
||||
return markup;
|
||||
}, // 自定义格式化防止xss注入
|
||||
language: "zh-CN",
|
||||
minimumInputLength: 0,
|
||||
minimumResultsForSearch: 10,//数据超过十个启用搜索框
|
||||
formatResult: function formatRepo(repo) {
|
||||
return repo.text;
|
||||
}, // 函数用来渲染结果
|
||||
formatSelection: function formatRepoSelection(repo) {
|
||||
return repo.text;
|
||||
} // 函数用于呈现当前的选择
|
||||
});
|
||||
$(".select2-selection--single").css({'height': '30px', 'paddingTop': '4px'})
|
||||
selelct_.val('').trigger("change");
|
||||
selelct_.on("change", function (e) {
|
||||
dosearch();
|
||||
});
|
||||
initFun();
|
||||
});
|
||||
|
||||
var initFun = function(){
|
||||
$("#table").bootstrapTable({ // 对应table标签的id
|
||||
url: ext.contextPath + '/digitalProcess/digitalTechnologist/getDispatchSheetEntryList.do', // 获取表格数据的url
|
||||
cache: false, // 设置为 false 禁用 AJAX 数据缓存, 默认为true
|
||||
striped: true, //表格显示条纹,默认为false
|
||||
pagination: true, // 在表格底部显示分页组件,默认false
|
||||
pageList: [10, 20,50], // 设置页面可以显示的数据条数
|
||||
pageSize: 10, // 页面数据条数
|
||||
pageNumber: 1, // 首页页码
|
||||
sidePagination: 'server', // 设置为服务器端分页
|
||||
queryParams: function (params) { // 请求服务器数据时发送的参数,可以在这里添加额外的查询参数,返回false则终止请求
|
||||
return {
|
||||
rows: params.limit, // 每页要显示的数据条数
|
||||
page: params.offset/params.limit+1, // 每页显示数据的开始页码
|
||||
sort: 'recorddt', // 要排序的字段
|
||||
order: params.order,
|
||||
search_name: $('#search_name').val(),
|
||||
dispatchclass: $('#search_dispatchclass').val()
|
||||
}
|
||||
},
|
||||
sortName: 'insdt', // 要排序的字段
|
||||
sortOrder: 'desc', // 排序规则
|
||||
onClickRow: function (row) {//单击行事件,执行查看功能
|
||||
viewFun(row.id);
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
checkbox: true, // 显示一个勾选框
|
||||
},{
|
||||
field: 'recorddt', // 返回json数据中的name
|
||||
title: '日期', // 表格表头显示文字
|
||||
align: 'center', // 左右居中
|
||||
valign: 'middle', // 上下居中
|
||||
formatter:function (value, row, index){
|
||||
return value.substring(0,19);
|
||||
}
|
||||
},{
|
||||
field: 'dispatchclass', // 返回json数据中的name
|
||||
title: '调度内容', // 表格表头显示文字
|
||||
align: 'center', // 左右居中
|
||||
valign: 'middle', // 上下居中
|
||||
formatter: function (value, row, index){
|
||||
switch (value){
|
||||
case 'reduce' :
|
||||
return "减少";
|
||||
case 'increase' :
|
||||
return "增加";
|
||||
case 'out' :
|
||||
return "退出";
|
||||
default :
|
||||
return "";
|
||||
}
|
||||
}
|
||||
},{
|
||||
field: 'remark', // 返回json数据中的name
|
||||
title: '原因', // 表格表头显示文字
|
||||
align: 'center', // 左右居中
|
||||
valign: 'middle', // 上下居中
|
||||
},{
|
||||
field: 'output', // 返回json数据中的name
|
||||
title: '当日原始排产量', // 表格表头显示文字
|
||||
align: 'center', // 左右居中
|
||||
valign: 'middle' // 上下居中
|
||||
},{
|
||||
field: 'throughput', // 返回json数据中的name
|
||||
title: '处理量', // 表格表头显示文字
|
||||
align: 'center', // 左右居中
|
||||
valign: 'middle' // 上下居中
|
||||
},{
|
||||
field: 'startdt', // 返回json数据中的name
|
||||
title: '影响开始时间', // 表格表头显示文字
|
||||
align: 'center', // 左右居中
|
||||
valign: 'middle', // 上下居中
|
||||
formatter:function (value, row, index){
|
||||
return value.substring(0,16);
|
||||
}
|
||||
},{
|
||||
field: 'enddt', // 返回json数据中的name
|
||||
title: '影响结束时间', // 表格表头显示文字
|
||||
align: 'center', // 左右居中
|
||||
valign: 'middle', // 上下居中
|
||||
formatter:function (value, row, index){
|
||||
return value.substring(0,16);
|
||||
}
|
||||
},{
|
||||
title: "操作",
|
||||
align: 'center',
|
||||
valign: 'middle',
|
||||
width: 120, // 定义列的宽度,单位为像素px
|
||||
formatter: function (value, row, index) {
|
||||
var buts= '';
|
||||
buts+= '<security:authorize buttonUrl="digitalProcess/digitalTechnologist/edit.do">';
|
||||
buts+= '<button class="btn btn-default btn-sm" title="编辑" onclick="editFun(\'' + row.id + '\')"><i class="fa fa-edit"></i><span class="hidden-md hidden-lg"> 编辑</span></button>';
|
||||
buts+= '</security:authorize>';
|
||||
|
||||
buts+= '<security:authorize buttonUrl="digitalProcess/digitalTechnologist/delete.do">';
|
||||
buts+='<button class="btn btn-default btn-sm" title="删除" onclick="deleteFun(\''+row.id+'\')"><i class="fa fa fa-trash-o"></i><span class="hidden-md hidden-lg">删除</span></button';
|
||||
buts+= '</security:authorize>';
|
||||
|
||||
buts='<div class="btn-group" >'+buts+'</div>';
|
||||
return buts;
|
||||
}
|
||||
}
|
||||
],
|
||||
onLoadSuccess: function(){ //加载成功时执行
|
||||
adjustBootstrapTableView("table");
|
||||
},
|
||||
onLoadError: function(){ //加载失败时执行
|
||||
console.info("加载数据失败");
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
<div >
|
||||
<div class="form-group" style="padding:0;">
|
||||
<div class="btn-group" style="width: 220px;padding-bottom:10px;">
|
||||
<security:authorize buttonUrl="digitalProcess/digitalTechnologist/dispatchSheetEntryAdd.do">
|
||||
<button type="button" class="btn btn-default btn-sm" onclick="addFun();"><i class="fa fa-plus"></i> 新增</button>
|
||||
<button type="button" class="btn btn-default btn-sm" onclick="deletesFun();"><i class="fa fa-trash-o"></i> 删除</button>
|
||||
</security:authorize>
|
||||
</div>
|
||||
<div class="form-group pull-right form-inline" >
|
||||
<div class="input-group input-group-sm" style="width: 250px;">
|
||||
<input type="text" id="search_name" name="search_name" class="form-control pull-right" placeholder="说明">
|
||||
<div class="input-group-btn">
|
||||
<button class="btn btn-default" onclick="dosearch();"><i class="fa fa-search"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group pull-right form-inline" >
|
||||
<label class="form-label">调度内容:</label>
|
||||
<select class="form-control select2" id="search_dispatchclass" name ="search_dispatchclass" style="width: 170px;">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<table id="table"></table>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
2242
WebRoot/jsp/digitalProcess/energyAnalysis_SDK.jsp
Normal file
2242
WebRoot/jsp/digitalProcess/energyAnalysis_SDK.jsp
Normal file
File diff suppressed because it is too large
Load Diff
1675
WebRoot/jsp/digitalProcess/energyEfficiencyOverview.jsp
Normal file
1675
WebRoot/jsp/digitalProcess/energyEfficiencyOverview.jsp
Normal file
File diff suppressed because it is too large
Load Diff
1815
WebRoot/jsp/digitalProcess/energyEfficiencyTH.jsp
Normal file
1815
WebRoot/jsp/digitalProcess/energyEfficiencyTH.jsp
Normal file
File diff suppressed because it is too large
Load Diff
261
WebRoot/jsp/digitalProcess/energyEfficiencyTHForModelCurve.jsp
Normal file
261
WebRoot/jsp/digitalProcess/energyEfficiencyTHForModelCurve.jsp
Normal file
@ -0,0 +1,261 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript">
|
||||
var beginTimeStore1 = '${param.sdt}';
|
||||
var endTimeStore1 = '${param.edt}';
|
||||
|
||||
function initDate() {
|
||||
//定义locale汉化插件
|
||||
if (beginTimeStore1 == '') {
|
||||
beginTimeStore1 = moment().subtract(7, 'days').format('YYYY-MM-DD HH:mm');
|
||||
}
|
||||
if (endTimeStore1 == '') {
|
||||
endTimeStore1 = moment().subtract(0, 'days').format('YYYY-MM-DD HH:mm');
|
||||
}
|
||||
|
||||
var locale = {
|
||||
"format": 'YYYY-MM-DD HH:mm',
|
||||
"separator": " ~ ",
|
||||
"applyLabel": "确定",
|
||||
"cancelLabel": "取消",
|
||||
"fromLabel": "起始时间",
|
||||
"toLabel": "结束时间'",
|
||||
"customRangeLabel": "自定义",
|
||||
"weekLabel": "W",
|
||||
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
|
||||
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
"firstDay": 1
|
||||
};
|
||||
$('#reservationtime').daterangepicker({
|
||||
"timePicker": true,
|
||||
"timePicker24Hour": true,
|
||||
"linkedCalendars": false,
|
||||
"autoUpdateInput": false,
|
||||
"timePickerIncrement": 10,
|
||||
"locale": locale,
|
||||
//汉化按钮部分
|
||||
ranges: {
|
||||
// '今日': [moment(), moment().subtract(-1, 'days')],
|
||||
'昨日': [moment().subtract(1, 'days'), moment()],
|
||||
'最近7日': [moment().subtract(6, 'days'), moment().subtract(-1, 'days')],
|
||||
'本月': [moment().startOf('month'), moment().endOf('month').subtract(-1, 'days')],
|
||||
'上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month').subtract(-1, 'days')]
|
||||
},
|
||||
startDate: beginTimeStore1,
|
||||
endDate: endTimeStore1
|
||||
}, function (start, end, label) {
|
||||
beginTimeStore1 = start.format(this.locale.format);
|
||||
endTimeStore1 = end.format(this.locale.format);
|
||||
if (!this.startDate) {
|
||||
this.element.val('');
|
||||
} else {
|
||||
this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
|
||||
}
|
||||
});
|
||||
$('#reservationtime').val(beginTimeStore1 + locale.separator + endTimeStore1);
|
||||
};
|
||||
|
||||
|
||||
var color = [
|
||||
"#2ec7c9",
|
||||
"#b6a2de",
|
||||
"#5ab1ef",
|
||||
"#ffb980",
|
||||
"#d87a80",
|
||||
"#8d98b3",
|
||||
"#e5cf0d",
|
||||
"#97b552",
|
||||
"#95706d",
|
||||
"#dc69aa",
|
||||
"#07a2a4",
|
||||
"#9a7fd1",
|
||||
"#588dd5",
|
||||
"#f5994e",
|
||||
"#c05050",
|
||||
"#59678c",
|
||||
"#c9ab00",
|
||||
"#7eb00a",
|
||||
"#6f5553",
|
||||
"#c14089"
|
||||
];
|
||||
|
||||
function getEcharts() {
|
||||
<%--var cunitId="";--%>
|
||||
<%--if('${param.unitId}'!=''){--%>
|
||||
<%-- cunitId='${param.unitId}';--%>
|
||||
<%--}else{--%>
|
||||
<%-- cunitId=unitId;--%>
|
||||
<%--}--%>
|
||||
|
||||
document.getElementById("chart").removeAttribute("_echarts_instance_");
|
||||
var myChart = echarts.init(document.getElementById("chart"));
|
||||
|
||||
myChart.showLoading({
|
||||
text: '数据正在加载...',
|
||||
textStyle: {fontSize: 30, color: '#444'},
|
||||
effectOption: {backgroundColor: 'rgba(0, 0, 0, 0)'},
|
||||
zlevel: 0
|
||||
});
|
||||
|
||||
<%--$.post(ext.contextPath + '/data/getDetailData.do', {mpcode:"${param.mpcode}",sdt:beginTimeStore1,edt:endTimeStore1} , function(result) {--%>
|
||||
// console.log(result);
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: 'http://192.168.0.244:8081/SIPAIIS_Model/process/processmodel/getModelChart4THWS_HIS.do?type=${param.type}&sdt='+beginTimeStore1+'&edt='+endTimeStore1,
|
||||
async: false,
|
||||
globle: false,
|
||||
dataType: 'json',
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (result) {
|
||||
// console.log(result)
|
||||
var series = [];
|
||||
var yAxis = [];
|
||||
var legenddata = [];
|
||||
|
||||
series.push({
|
||||
data: result.data,
|
||||
symbol: 'none',
|
||||
name: result.name,
|
||||
type: 'line',
|
||||
lineStyle: {
|
||||
width: 2
|
||||
},
|
||||
markPoint: {
|
||||
data: [
|
||||
{type: 'max', name: '最大值'},
|
||||
{type: 'min', name: '最小值'}
|
||||
]
|
||||
},
|
||||
markLine: {
|
||||
data: [
|
||||
{type: 'average', name: '平均值'}
|
||||
]
|
||||
}
|
||||
})
|
||||
legenddata.push(result.name);
|
||||
yAxis.push({
|
||||
type: 'value',
|
||||
name: false,
|
||||
splitLine: {
|
||||
show: false//是否显示分隔线。默认数值轴显示,类目轴不显示。
|
||||
},
|
||||
scale: true//设置成 true 后坐标刻度不会强制包含零刻度。
|
||||
});
|
||||
var option = {
|
||||
color: color,
|
||||
animation: false,
|
||||
legend: {
|
||||
data: legenddata,
|
||||
left: 'center'
|
||||
},
|
||||
grid: {
|
||||
left: '4%', // 与容器左侧的距离
|
||||
right: '4%', // 与容器右侧的距离
|
||||
top: '8%', // 与容器顶部的距离
|
||||
//bottom: '5%', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
toolbox: {
|
||||
feature: {
|
||||
saveAsImage: {show: true}
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: yAxis,
|
||||
series: series,
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
formatter: function (params, ticket, callback) {
|
||||
var htmlStr = '';
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
var param = params[i];
|
||||
// console.log(param);
|
||||
var xName = param.name;//x轴的名称
|
||||
var seriesName = param.seriesName;//图例名称
|
||||
var xvalue = param.value[0];//x轴值
|
||||
var yvalue = param.value[1];//y轴值
|
||||
var remarkvalue = param.value[2];//备注轴值
|
||||
var color = param.color;//图例颜色
|
||||
var dataIndex = param.dataIndex;
|
||||
var seriesIndex = param.seriesIndex;
|
||||
htmlStr += '<div>';
|
||||
htmlStr += xvalue + '<br/>';
|
||||
htmlStr += '<span style="margin-right:5px;display:inline-block;width:10px;height:10px;border-radius:5px;background-color:' + color + ';"></span>';
|
||||
htmlStr += seriesName + ':' + yvalue + '';
|
||||
htmlStr += '</div>';
|
||||
}
|
||||
return htmlStr;
|
||||
}
|
||||
// alwaysShowContent:true,
|
||||
},
|
||||
dataZoom: [{
|
||||
type: 'inside',
|
||||
start: 0,
|
||||
end: 100
|
||||
}, {
|
||||
start: 0,
|
||||
end: 100,
|
||||
handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z',
|
||||
handleSize: '60%',
|
||||
handleStyle: {
|
||||
color: '#fff',
|
||||
shadowBlur: 3,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.6)',
|
||||
shadowOffsetX: 2,
|
||||
shadowOffsetY: 2
|
||||
}
|
||||
}]
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
myChart.hideLoading();
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
$(function () {
|
||||
var windowhight = $(window).height();
|
||||
var windowwidth = $(window).width();
|
||||
$('#chart').attr("style", "height:" + (windowhight - 200) + "px;width:" + (windowwidth - 100) + "px;padding-top:35px;");
|
||||
initDate();
|
||||
getEcharts();
|
||||
});
|
||||
|
||||
function doCurveSearch() {
|
||||
getEcharts();
|
||||
}
|
||||
</script>
|
||||
<div class="modal fade" id="curveModal">
|
||||
<div style="padding: 20px;">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">历史曲线</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="input-group pull-left input-group-sm">
|
||||
<input type="text" class="form-control pull-left" id="reservationtime" style="width:230px">
|
||||
<div class="input-group-btn pull-left">
|
||||
<button type="button" class="btn btn-default" onclick="doCurveSearch();"><i
|
||||
class="fa fa-search"></i> 查询
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="chart" style="float: left;"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
289
WebRoot/jsp/digitalProcess/excessSludgeTH.jsp
Normal file
289
WebRoot/jsp/digitalProcess/excessSludgeTH.jsp
Normal file
@ -0,0 +1,289 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var color = [
|
||||
"#899BFF",
|
||||
"#35C837",
|
||||
"#89E1FF",
|
||||
"#1949EE"
|
||||
];
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
getData();
|
||||
})
|
||||
|
||||
function getData(modelType) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'excessSludge',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = toThousands(content.mPoint.parmvalue);
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper"
|
||||
style="background-size: 100% 100%;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.2);background-color: #FFFFFF;">
|
||||
<div style="float:left;width:20%;height:100%;">
|
||||
<div style="float:left;width:100%;height:60%;font-size: 30px;padding-left:40px;line-height:90px;">
|
||||
泰和污水厂
|
||||
</div>
|
||||
<div style="float:left;width:100%;height:40%;">
|
||||
<div style="float:left;height:100%;padding-left:40px;line-height:20px;color: rgb(176, 176, 176);">
|
||||
设计泥处理能力
|
||||
</div>
|
||||
<div class="TH_DE_SR_DESIGN_CAPACITY" style="float:left;height:100%;padding-left:10px;font-size: 30px;line-height:10px;">
|
||||
</div>
|
||||
<div style="float:left;height:100%;padding-left:10px;line-height:20px;color: rgb(176, 176, 176);">
|
||||
m3
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width:15%;height:100%;">
|
||||
<div style="float:left;width:100%;height:60%;line-height:90px;color: rgb(176, 176, 176);">
|
||||
当日综合泥处理能力(m3)
|
||||
</div>
|
||||
<div class="TH_DE_SR_CAPACITY_TODAY" style="float:left;width:100%;height:40%;color: #B54F0B;font-size: 30px;line-height:20px;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width:15%;height:100%;">
|
||||
<div style="float:left;width:100%;height:60%;line-height:90px;color: rgb(176, 176, 176);">
|
||||
污泥干化系统总台数(台)
|
||||
</div>
|
||||
<div class="TH_SLUDGE_DRYING_EQUIP_TOTAL" style="float:left;width:100%;height:40%;font-size: 30px;line-height:20px;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width:15%;height:100%;">
|
||||
<div style="float:left;width:100%;height:60%;line-height:90px;color: rgb(176, 176, 176);">
|
||||
污泥干化系统可用台数(台)
|
||||
</div>
|
||||
<div class="TH_SLUDGE_DRYING_EQUIP_AVAILABLE" style="float:left;width:100%;height:40%;font-size: 30px;line-height:20px;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width:15%;height:100%;">
|
||||
<div style="float:left;width:100%;height:60%;line-height:90px;color: rgb(176, 176, 176);">
|
||||
储泥池液位(m)
|
||||
</div>
|
||||
<div class="TH_SLUDGE_STORAGE_BASIN_LEVEL_AVG" style="float:left;width:100%;height:40%;font-size: 30px;line-height:20px;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 20px;"></div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.8);background-color: #FFFFFF;">
|
||||
<div style="float:left;width:calc((100% - 2px)*0.6);height:100%;">
|
||||
<table style="width:100%;height:100%;text-align:center;">
|
||||
<tr style="height:80px;">
|
||||
<td colspan="6" style="font-weight: 700;font-style: normal;font-size: 18px;">运行参数</td>
|
||||
</tr>
|
||||
<tr style="color: rgb(176, 176, 176);height:40px;">
|
||||
<td width="16.6%">工艺单体</td>
|
||||
<td width="16.6%">集泥井液位</td>
|
||||
<td width="16.6%">二沉池MLSS</td>
|
||||
<td width="16.6%">生反池SV30</td>
|
||||
<td width="16.6%">昨日排泥量</td>
|
||||
<td width="16.6%">生反池MLSS</td>
|
||||
</tr>
|
||||
<tr style="color: rgb(176, 176, 176);height:20px;">
|
||||
<td ></td>
|
||||
<td >(m)</td>
|
||||
<td >(g/L)</td>
|
||||
<td >(%)</td>
|
||||
<td >(m3/d)</td>
|
||||
<td >(g/L)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;">
|
||||
<td >1#二沉池</td>
|
||||
<td class="TH_PLC06_RI5_4_Meter1_r_MeterValue"></td>
|
||||
<td class="TH_PLC06_RI5_3_Meter11_r_MeterValue"></td>
|
||||
<td class="TH_PLC_SYWN_SV30_1"></td>
|
||||
<td class="TH_PLC06_Total_FLOW2_DAY"></td>
|
||||
<td class="TH_PLC03_RI3_3_Meter8_r_MeterValue"></td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;">
|
||||
<td >2#二沉池</td>
|
||||
<td class="TH_PLC06_RI5_2_Meter1_r_MeterValue"></td>
|
||||
<td class="TH_PLC06_RI5_1_Meter11_r_MeterValue"></td>
|
||||
<td class="TH_PLC_SYWN_SV30_2"></td>
|
||||
<td class="TH_PLC06_Total_FLOW1_DAY"></td>
|
||||
<td class="TH_PLC02_RI3_3_Meter8_r_MeterValue"></td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;">
|
||||
<td >3#二沉池</td>
|
||||
<td class="TH_PLC07_RI5_2_Meter1_r_MeterValue"></td>
|
||||
<td class="TH_PLC07_RI5_1_Meter11_r_MeterValue"></td>
|
||||
<td class="TH_PLC_SYWN_SV30_3"></td>
|
||||
<td class="TH_PLC07_Total_FLOW1_DAY"></td>
|
||||
<td class="TH_PLC04_RI3_3_Meter8_r_MeterValue"></td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;">
|
||||
<td >4#二沉池</td>
|
||||
<td class="TH_PLC07_RI5_4_Meter1_r_MeterValue"></td>
|
||||
<td class="TH_PLC07_RI5_3_Meter11_r_MeterValue"></td>
|
||||
<td class="TH_PLC_SYWN_SV30_4"></td>
|
||||
<td class="TH_PLC07_Total_FLOW2_DAY"></td>
|
||||
<td class="TH_PLC05_RI3_3_Meter8_r_MeterValue"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float:left;width:2px;height:100%;padding-top:20px;padding-bottom:20px;">
|
||||
<div style="float:left;width:2px;height:100%;background-color:#F3F3F3;"></div>
|
||||
</div>
|
||||
<div style="float:left;width:calc((100% - 2px)*0.4);height:100%;">
|
||||
<table style="width:100%;height:100%;text-align:center;">
|
||||
<tr style="height:80px;">
|
||||
<td colspan="4" style="font-weight: 700;font-style: normal;font-size: 18px;">预测值</td>
|
||||
</tr>
|
||||
<tr style="color: rgb(176, 176, 176);height:40px;">
|
||||
<td width="25%">污泥泵开启台数</td>
|
||||
<td width="25%">污泥泵运行时间</td>
|
||||
<td width="25%">污泥泵运行间隔时间</td>
|
||||
<td width="25%">排泥量</td>
|
||||
</tr>
|
||||
<tr style="color: rgb(176, 176, 176);height:20px;">
|
||||
<td ></td>
|
||||
<td >(min)</td>
|
||||
<td >(min)</td>
|
||||
<td >(m3/d)</td>
|
||||
</tr>
|
||||
<tr style="color:#89E1FF;font-size: 30px;">
|
||||
<td class="TH_DE_SST_1_SR_PUMP_ON_PREDICT"></td>
|
||||
<td class="TH_DE_SST_1_SR_RUNTIME_PREDICT"></td>
|
||||
<td class="TH_DE_SST_1_SR_PAUSETIME_PREDICT"></td>
|
||||
<td class="TH_DE_SST_1_SR_FLOWRATE_PREDICT"></td>
|
||||
</tr>
|
||||
<tr style="color:#89E1FF;font-size: 30px;">
|
||||
<td class="TH_DE_SST_2_SR_PUMP_ON_PREDICT"></td>
|
||||
<td class="TH_DE_SST_2_SR_RUNTIME_PREDICT"></td>
|
||||
<td class="TH_DE_SST_2_SR_PAUSETIME_PREDICT"></td>
|
||||
<td class="TH_DE_SST_2_SR_FLOWRATE_PREDICT"></td>
|
||||
</tr>
|
||||
<tr style="color:#89E1FF;font-size: 30px;">
|
||||
<td class="TH_DE_SST_3_SR_PUMP_ON_PREDICT"></td>
|
||||
<td class="TH_DE_SST_3_SR_RUNTIME_PREDICT"></td>
|
||||
<td class="TH_DE_SST_3_SR_PAUSETIME_PREDICT"></td>
|
||||
<td class="TH_DE_SST_3_SR_FLOWRATE_PREDICT"></td>
|
||||
</tr>
|
||||
<tr style="color:#89E1FF;font-size: 30px;">
|
||||
<td class="TH_DE_SST_4_SR_PUMP_ON_PREDICT"></td>
|
||||
<td class="TH_DE_SST_4_SR_RUNTIME_PREDICT"></td>
|
||||
<td class="TH_DE_SST_4_SR_PAUSETIME_PREDICT"></td>
|
||||
<td class="TH_DE_SST_4_SR_FLOWRATE_PREDICT"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
350
WebRoot/jsp/digitalProcess/externalReflux.jsp
Normal file
350
WebRoot/jsp/digitalProcess/externalReflux.jsp
Normal file
@ -0,0 +1,350 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var color = [
|
||||
"#899BFF",
|
||||
"#35C837",
|
||||
"#89E1FF",
|
||||
"#1949EE"
|
||||
];
|
||||
let series1 = [];
|
||||
let legendName1 = [];
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
getData();
|
||||
})
|
||||
|
||||
function getData(modelType) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'externalReflux',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = toThousands(content.mPoint.parmvalue);
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getTHDayHistory') {
|
||||
if (content.elementCode == 'chartleft') {
|
||||
legendName1.push(content.name);
|
||||
series1.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray,
|
||||
yAxisIndex: 0
|
||||
})
|
||||
}else if (content.elementCode == 'chartright') {
|
||||
legendName1.push(content.name);
|
||||
series1.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray,
|
||||
yAxisIndex: 1
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getChart();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getChart() {
|
||||
let myChart = echarts.init(document.getElementById("chart"));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
title: {
|
||||
text: '预测外流比',
|
||||
left: 'center',
|
||||
top: '0'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
grid: {
|
||||
left: '2%', // 与容器左侧的距离
|
||||
right: '2%', // 与容器右侧的距离
|
||||
// top: '8%', // 与容器顶部的距离
|
||||
bottom: '1%', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
legend: {
|
||||
data: legendName1,
|
||||
left: 'right',
|
||||
top: '10'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '(%)'
|
||||
},
|
||||
{
|
||||
type: 'value',
|
||||
name: '(m3/s)',
|
||||
splitLine:{
|
||||
show:false
|
||||
}
|
||||
}
|
||||
],
|
||||
series: series1
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper"
|
||||
style="background-size: 100% 100%;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.5);background-color: #FFFFFF;">
|
||||
<div style="float: left;width: calc((100% - 4px)*0.5);height: 100%;">
|
||||
<table style="width: 100%;height: 100%;">
|
||||
<tr style="height:60px;color:#333333;font-size:18px;font-weight: 700;text-align: center;">
|
||||
<td colspan="7">运行参数</td>
|
||||
</tr>
|
||||
<tr style="height:30px;color:#B0B0B0;text-align: center;vertical-align: top;">
|
||||
<td rowspan="2">工艺单体</td>
|
||||
<td>预测进水流量</td>
|
||||
<td>液位</td>
|
||||
<td>二沉池MLSS</td>
|
||||
<td>外回流比</td>
|
||||
<td>SV30</td>
|
||||
<td>生反池MLSS</td>
|
||||
</tr>
|
||||
<tr style="height:20px;color:#B0B0B0;text-align: center;">
|
||||
<td>(m)</td>
|
||||
<td>(m)</td>
|
||||
<td>(g/L)</td>
|
||||
<td>(%)</td>
|
||||
<td>(%)</td>
|
||||
<td>(g/L)</td>
|
||||
</tr>
|
||||
<tr style="text-align: center;color: #000000;font-size: 30px;">
|
||||
<td>1#二沉池</td>
|
||||
<td style="color: #89E1FF;" class="TH_DE_SST_POOL_1_VP_HOURLY_CURRENT"></td>
|
||||
<td class="TH_PLC06_RI5_4_Meter1_r_MeterValue"></td>
|
||||
<td class="TH_PLC06_RI5_3_Meter11_r_MeterValue"></td>
|
||||
<td class="TH_SST_POOL_1_RS_RATIO_ACTUAL"></td>
|
||||
<td class="TH_PLC_SYWN_SV30_1"></td>
|
||||
<td class="TH_PLC03_RI3_3_Meter8_r_MeterValue"></td>
|
||||
</tr>
|
||||
<tr style="text-align: center;color: #000000;font-size: 30px;">
|
||||
<td>2#二沉池</td>
|
||||
<td style="color: #89E1FF;" class="TH_DE_SST_POOL_2_VP_HOURLY_CURRENT"></td>
|
||||
<td class="TH_PLC06_RI5_2_Meter1_r_MeterValue"></td>
|
||||
<td class="TH_PLC06_RI5_1_Meter11_r_MeterValue"></td>
|
||||
<td class="TH_SST_POOL_2_RS_RATIO_ACTUAL"></td>
|
||||
<td class="TH_PLC_SYWN_SV30_2"></td>
|
||||
<td class="TH_PLC02_RI3_3_Meter8_r_MeterValue"></td>
|
||||
</tr>
|
||||
<tr style="text-align: center;color: #000000;font-size: 30px;">
|
||||
<td>3#二沉池</td>
|
||||
<td style="color: #89E1FF;" class="TH_DE_SST_POOL_3_VP_HOURLY_CURRENT"></td>
|
||||
<td class="TH_PLC07_RI5_2_Meter1_r_MeterValue"></td>
|
||||
<td class="TH_PLC07_RI5_1_Meter11_r_MeterValue"></td>
|
||||
<td class="TH_SST_POOL_3_RS_RATIO_ACTUAL"></td>
|
||||
<td class="TH_PLC_SYWN_SV30_3"></td>
|
||||
<td class="TH_PLC04_RI3_3_Meter8_r_MeterValue"></td>
|
||||
</tr>
|
||||
<tr style="text-align: center;color: #000000;font-size: 30px;">
|
||||
<td>4#二沉池</td>
|
||||
<td style="color: #89E1FF;" class="TH_DE_SST_POOL_4_VP_HOURLY_CURRENT"></td>
|
||||
<td class="TH_PLC07_RI5_4_Meter1_r_MeterValue"></td>
|
||||
<td class="TH_PLC07_RI5_3_Meter11_r_MeterValue"></td>
|
||||
<td class="TH_SST_POOL_4_RS_RATIO_ACTUAL"></td>
|
||||
<td class="TH_PLC_SYWN_SV30_4"></td>
|
||||
<td class="TH_PLC05_RI3_3_Meter8_r_MeterValue"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 2px;height: 100%;padding-top: 20px;padding-bottom: 20px;">
|
||||
<div style="float: left;width: 100%;height: 100%;background-color: #F0F0F0;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 4px)*0.15);height: 100%;">
|
||||
<table style="width: 100%;height: 100%;">
|
||||
<tr style="height:60px;color:#333333;font-size:18px;font-weight: 700;text-align: center;">
|
||||
<td>设定参数</td>
|
||||
</tr>
|
||||
<tr style="height:30px;color:#B0B0B0;text-align: center;vertical-align: top;">
|
||||
<td>生反池目标MLSS</td>
|
||||
</tr>
|
||||
<tr style="height:20px;color:#B0B0B0;text-align: center;">
|
||||
<td>(g/L)</td>
|
||||
</tr>
|
||||
<tr style="text-align: center;color: #000000;font-size: 30px;">
|
||||
<td style="color: #04A7EE;" class="TH_DE_BIOPOOL_1_MLSS_TARGET"></td>
|
||||
</tr>
|
||||
<tr style="text-align: center;color: #000000;font-size: 30px;">
|
||||
<td style="color: #04A7EE;" class="TH_DE_BIOPOOL_2_MLSS_TARGET"></td>
|
||||
</tr>
|
||||
<tr style="text-align: center;color: #000000;font-size: 30px;">
|
||||
<td style="color: #04A7EE;" class="TH_DE_BIOPOOL_3_MLSS_TARGET"></td>
|
||||
</tr>
|
||||
<tr style="text-align: center;color: #000000;font-size: 30px;">
|
||||
<td style="color: #04A7EE;" class="TH_DE_BIOPOOL_4_MLSS_TARGET"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 2px;height: 100%;padding-top: 20px;padding-bottom: 20px;">
|
||||
<div style="float: left;width: 100%;height: 100%;background-color: #F0F0F0;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 4px)*0.35);height: 100%;">
|
||||
<table style="width: 100%;height: 100%;">
|
||||
<tr style="height:60px;color:#333333;font-size:18px;font-weight: 700;text-align: center;">
|
||||
<td colspan="3">预测值</td>
|
||||
</tr>
|
||||
<tr style="height:30px;color:#B0B0B0;text-align: center;vertical-align: top;">
|
||||
<td rowspan="2">外回流泵开启台数</td>
|
||||
<td>外回流泵平均频率</td>
|
||||
<td>集泥井设定液位</td>
|
||||
<td>外回流比</td>
|
||||
</tr>
|
||||
<tr style="height:20px;color:#B0B0B0;text-align: center;">
|
||||
<td>(Hz)</td>
|
||||
<td>(m)</td>
|
||||
<td>(%)</td>
|
||||
</tr>
|
||||
<tr style="color:#89E1FF;text-align: center;font-size: 30px;">
|
||||
<td class="TH_DE_SST_POOL_1_RS_PUMP_NUM_PREDICT"></td>
|
||||
<td class="TH_DE_SST_POOL_1_RS_PUMP_AVG_FREQ_PREDICT"></td>
|
||||
<td class="TH_DE_SST_1_SLUDGE_LEVEL_PREDICT"></td>
|
||||
<td class="TH_DE_SST_POOL_1_RS_RATIO_PREDICT"></td>
|
||||
</tr>
|
||||
<tr style="color:#89E1FF;text-align: center;font-size: 30px;">
|
||||
<td class="TH_DE_SST_POOL_2_RS_PUMP_NUM_PREDICT"></td>
|
||||
<td class="TH_DE_SST_POOL_2_RS_PUMP_AVG_FREQ_PREDICT"></td>
|
||||
<td class="TH_DE_SST_2_SLUDGE_LEVEL_PREDICT"></td>
|
||||
<td class="TH_DE_SST_POOL_2_RS_RATIO_PREDICT"></td>
|
||||
</tr>
|
||||
<tr style="color:#89E1FF;text-align: center;font-size: 30px;">
|
||||
<td class="TH_DE_SST_POOL_3_RS_PUMP_NUM_PREDICT"></td>
|
||||
<td class="TH_DE_SST_POOL_3_RS_PUMP_AVG_FREQ_PREDICT"></td>
|
||||
<td class="TH_DE_SST_3_SLUDGE_LEVEL_PREDICT"></td>
|
||||
<td class="TH_DE_SST_POOL_3_RS_RATIO_PREDICT"></td>
|
||||
</tr>
|
||||
<tr style="color:#89E1FF;text-align: center;font-size: 30px;">
|
||||
<td class="TH_DE_SST_POOL_4_RS_PUMP_NUM_PREDICT"></td>
|
||||
<td class="TH_DE_SST_POOL_4_RS_PUMP_AVG_FREQ_PREDICT"></td>
|
||||
<td class="TH_DE_SST_4_SLUDGE_LEVEL_PREDICT"></td>
|
||||
<td class="TH_DE_SST_POOL_4_RS_RATIO_PREDICT"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 20px;"></div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.5);background-color: #FFFFFF;padding:10px;">
|
||||
<div id="chart"
|
||||
style="float: left;width: 100%;height:100%;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
831
WebRoot/jsp/digitalProcess/homePageBG.jsp
Normal file
831
WebRoot/jsp/digitalProcess/homePageBG.jsp
Normal file
@ -0,0 +1,831 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%--<%String contextPath = request.getContextPath();%>--%>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
let beginTimeStore1 = '';
|
||||
let endTimeStore1 = '';
|
||||
|
||||
let myChart1 = "";
|
||||
let option1 = [];
|
||||
let series1 = [];
|
||||
|
||||
let myChart2 = "";
|
||||
let option2 = [];
|
||||
let series2 = [];
|
||||
|
||||
let myChart3 = "";
|
||||
let option3 = [];
|
||||
let series3 = [];
|
||||
|
||||
let myChart4 = "";
|
||||
let option4 = [];
|
||||
let series4 = [];
|
||||
|
||||
let websocket = null;
|
||||
let modelIp = "${modelIp}";
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
initDate1();
|
||||
|
||||
// if ('WebSocket' in window) {
|
||||
// // 创建websocket对象
|
||||
// websocket = new WebSocket("ws://" + modelIp + "/modelComputerWebSocketEnd/");
|
||||
// // console.log("ws://"+modelIp+"/modelComputerWebSocketEnd/")
|
||||
// registerEvent();
|
||||
// } else {
|
||||
// alert('当前浏览器不支持websocket')
|
||||
// }
|
||||
// $(window).unload(function () {
|
||||
// console.log("websocket关闭");
|
||||
// websocket.close();
|
||||
// });
|
||||
|
||||
myChart1 = echarts.init(document.getElementById("chart1"));
|
||||
option1 = {
|
||||
color: [
|
||||
"#00DB16"
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
left: 'right',
|
||||
textStyle: {
|
||||
color: '#fff'
|
||||
},
|
||||
data: ['潮汐']
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '15%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
name: 'cm',
|
||||
type: 'value',
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: series1
|
||||
};
|
||||
myChart1.setOption(option1, true);
|
||||
|
||||
myChart2 = echarts.init(document.getElementById("chart2"));
|
||||
option2 = {
|
||||
color: [
|
||||
"#00DB16", "#4875E8"
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
left: 'right',
|
||||
textStyle: {
|
||||
color: '#fff'
|
||||
},
|
||||
data: ['实测CI', '预测CI']
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '15%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
name: 'ppm',
|
||||
type: 'value',
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: series2
|
||||
};
|
||||
myChart2.setOption(option2, true);
|
||||
|
||||
myChart3 = echarts.init(document.getElementById("chart3"));
|
||||
option3 = {
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
// legend: {
|
||||
// left: 'right',
|
||||
// textStyle: {
|
||||
// color: '#fff'
|
||||
// },
|
||||
// data: ['潮汐']
|
||||
// },
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '15%',
|
||||
containLabel: true
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
formatter: function (params) {
|
||||
let outContent = "";
|
||||
for (let item of params) {
|
||||
// <span style=\"display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:rgba(0,0,0,0);\"></span>
|
||||
let time = item.value[0];
|
||||
let value = item.value[1];
|
||||
if (value == 0) {
|
||||
outContent = time + ':关';
|
||||
} else if (value == 1) {
|
||||
outContent = time + ':开';
|
||||
} else {
|
||||
outContent = '';
|
||||
}
|
||||
}
|
||||
return outContent
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
// boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
}
|
||||
// data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
max: 2,
|
||||
min: -1,
|
||||
minInterval: 1,
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
splitLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
formatter: function (value, index) {
|
||||
if (value == 0) {
|
||||
value = '关';
|
||||
} else if (value == 1) {
|
||||
value = '开';
|
||||
} else {
|
||||
value = '';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
},
|
||||
visualMap: [
|
||||
{
|
||||
show: false,
|
||||
// type: 'piecewise',
|
||||
// splitNumber: 2,
|
||||
pieces: [
|
||||
{gt: 1, lte: 2, label: '开(自定义特殊颜色)', color: '#00DB16'},
|
||||
{gt: -1, lte: 0, label: '关(自定义特殊颜色)', color: 'red'}
|
||||
]
|
||||
},
|
||||
],
|
||||
series: series3
|
||||
};
|
||||
myChart3.setOption(option3, true);
|
||||
|
||||
myChart4 = echarts.init(document.getElementById("chart4"));
|
||||
option4 = {
|
||||
color: [
|
||||
"#00DB16", "#4875E8"
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
left: 'right',
|
||||
textStyle: {
|
||||
color: '#fff'
|
||||
},
|
||||
data: ['实测液位', '预测液位']
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '15%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
name: 'ppm',
|
||||
type: 'value',
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: series4
|
||||
};
|
||||
myChart4.setOption(option4, true);
|
||||
|
||||
getData("");
|
||||
// getWeatherData();
|
||||
})
|
||||
|
||||
function initDate1() {
|
||||
let locale = {
|
||||
"format": 'YYYY-MM-DD HH:mm',
|
||||
"separator": " ~ ",
|
||||
"applyLabel": "确定",
|
||||
"cancelLabel": "取消",
|
||||
"fromLabel": "起始时间",
|
||||
"toLabel": "结束时间'",
|
||||
"customRangeLabel": "自定义",
|
||||
"weekLabel": "W",
|
||||
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
|
||||
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
"firstDay": 1
|
||||
};
|
||||
|
||||
beginTimeStore1 = moment().subtract(15, 'days').format('YYYY-MM-DD') + " 00:00";
|
||||
endTimeStore1 = moment().subtract(-15, 'days').format('YYYY-MM-DD') + " 23:59";
|
||||
$('#date1').val(beginTimeStore1 + locale.separator + endTimeStore1);
|
||||
|
||||
$('#date1').daterangepicker({
|
||||
"timePicker": true,
|
||||
"timePicker24Hour": true,
|
||||
"linkedCalendars": false,
|
||||
"autoUpdateInput": false,
|
||||
"timePickerIncrement": 10,
|
||||
"opens": 'left', //日期选择框的弹出位置
|
||||
"locale": locale,
|
||||
//汉化按钮部分
|
||||
ranges: {
|
||||
// '今日': [moment(), moment().subtract(-1, 'days')],
|
||||
'昨日': [moment().subtract(1, 'days'), moment()],
|
||||
'最近7日': [moment().subtract(7, 'days'), moment()],
|
||||
'本月': [moment().startOf('month'), moment().endOf('month')],
|
||||
'上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
|
||||
},
|
||||
startDate: beginTimeStore1,
|
||||
endDate: endTimeStore1
|
||||
}, function (start, end, label) {
|
||||
beginTimeStore1 = start.format(this.locale.format);
|
||||
endTimeStore1 = end.format(this.locale.format);
|
||||
if (!this.startDate) {
|
||||
this.element.val('');
|
||||
} else {
|
||||
this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
|
||||
function registerEvent() {
|
||||
websocket.onopen = function (event) {
|
||||
console.log("已连接");
|
||||
}
|
||||
|
||||
websocket.onmessage = function (event) {
|
||||
if (event != null) {
|
||||
// console.log(event.data)
|
||||
let modelType = event.data;
|
||||
if (modelType != 'model_status') {
|
||||
getData(modelType);
|
||||
}
|
||||
}
|
||||
};
|
||||
websocket.onclose = function (event) {
|
||||
console.log("已断开");
|
||||
reconnect();
|
||||
};
|
||||
//连接发生错误的回调方法
|
||||
websocket.onerror = function () {
|
||||
reconnect();
|
||||
};
|
||||
}
|
||||
|
||||
function reconnect() {
|
||||
websocket = new WebSocket("ws://" + modelIp + "/modelComputerWebSocketEnd/");
|
||||
websocket.onopen = function (event) {
|
||||
console.log("已连接");
|
||||
}
|
||||
|
||||
websocket.onmessage = function (event) {
|
||||
};
|
||||
|
||||
websocket.onclose = function (event) {
|
||||
setTimeout("reconnect();", 8000);
|
||||
};
|
||||
//连接发生错误的回调方法 `1
|
||||
websocket.onerror = function () {
|
||||
websocket.close();
|
||||
};
|
||||
}
|
||||
|
||||
function getWeatherData() {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/work/weather/getList.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
bizid: unitId,
|
||||
time: getNowTime().substring(0, 13) + ":00",
|
||||
type: '0',//0 为实时数据
|
||||
page: 1,
|
||||
rows: 1
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
// console.log(data)
|
||||
if (data.rows.length > 0) {
|
||||
let weatherData = data.rows[0];
|
||||
let qw = weatherData.temp;
|
||||
0
|
||||
let qy = weatherData.pressure;
|
||||
let fs = weatherData.windspeed;
|
||||
let fx = weatherData.wind;
|
||||
let jyqd = weatherData.precip;
|
||||
|
||||
$('#kep_QW').html(qw);
|
||||
$('#kep_QY').html(qy);
|
||||
$('#kep_FS').html(fs);
|
||||
$('#kep_FX').html(fx);
|
||||
$('#kep_JYQD').html(jyqd);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
let chart1Points = "";
|
||||
let chart2Points = "";
|
||||
let chart3Points = "";
|
||||
let chart4Points = "";
|
||||
let chartDetailPointsSt = 1;
|
||||
|
||||
let willMpoints = "";
|
||||
let will2Mpoints = 0;
|
||||
|
||||
function getData(modelType) {
|
||||
let nowHourTime = getNowTime().substring(0, 13);
|
||||
|
||||
series1 = [];
|
||||
series2 = [];
|
||||
series3 = [];
|
||||
series4 = [];
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getBGJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'homePageBG',
|
||||
modelType: modelType,
|
||||
sdt: beginTimeStore1,
|
||||
edt: endTimeStore1
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
// console.log(content)
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = toThousands(content.mPoint.parmvalue);
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
$("#" + content.elementCode).on("click", function () {
|
||||
showDetailLine(content.visualCacheData.mpcode, '99');
|
||||
});
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
$("#" + content.elementCode).on("click", function () {
|
||||
showDetailLine(content.visualCacheData.mpcode, '99');
|
||||
});
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getHourHistory') {
|
||||
if (content.elementCode == '1chart') {
|
||||
if (chart1Points == '') {
|
||||
chart1Points += content.visualCacheData.mpcode + ",";
|
||||
}
|
||||
series1.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
data: content.jsonArray
|
||||
})
|
||||
willMpoints+=content.visualCacheData.mpcode+",";
|
||||
} else if (content.elementCode == '2chart') {
|
||||
if (chart2Points == '') {
|
||||
chart2Points += content.visualCacheData.mpcode + ",";
|
||||
}
|
||||
series2.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
data: content.jsonArray
|
||||
})
|
||||
if(will2Mpoints==0){
|
||||
willMpoints+=content.visualCacheData.mpcode+",";
|
||||
}
|
||||
will2Mpoints++;
|
||||
} else if (content.elementCode == '3chart') {
|
||||
if (chart3Points == '') {
|
||||
chart3Points += content.visualCacheData.mpcode + ",";
|
||||
}
|
||||
series3.push({
|
||||
type: 'line',
|
||||
step: 'middle',
|
||||
symbol: 'none',
|
||||
markLine: {
|
||||
lineStyle: {
|
||||
type: 'solid'
|
||||
},
|
||||
label: {
|
||||
color: '#ffffff'
|
||||
},
|
||||
data: [
|
||||
{
|
||||
name: 'today',
|
||||
xAxis: nowHourTime
|
||||
}
|
||||
]
|
||||
},
|
||||
data: content.jsonArray
|
||||
})
|
||||
willMpoints+=content.visualCacheData.mpcode+",";
|
||||
} else if (content.elementCode == '4chart') {
|
||||
if (chart4Points == '') {
|
||||
chart4Points += content.visualCacheData.mpcode + ",";
|
||||
}
|
||||
series4.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
data: content.jsonArray
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (chartDetailPointsSt == 1) {
|
||||
$("#chart1DetailLine").on("click", function () {
|
||||
showDetailLine(chart1Points, '1');
|
||||
});
|
||||
$("#chart2DetailLine").on("click", function () {
|
||||
showDetailLine(chart2Points, '2');
|
||||
});
|
||||
$("#chart3DetailLine").on("click", function () {
|
||||
showDetailLine(chart3Points, '3');
|
||||
});
|
||||
$("#chart4DetailLine").on("click", function () {
|
||||
showDetailLine(chart4Points, '4');
|
||||
});
|
||||
chartDetailPointsSt = 2;
|
||||
}
|
||||
|
||||
if (series1.length > 0) {
|
||||
option1.series = series1;
|
||||
myChart1.setOption(option1, true);
|
||||
}
|
||||
if (series2.length > 0) {
|
||||
option2.series = series2;
|
||||
myChart2.setOption(option2, true);
|
||||
}
|
||||
if (series3.length > 0) {
|
||||
option3.series = series3;
|
||||
myChart3.setOption(option3, true);
|
||||
}
|
||||
if (series4.length > 0) {
|
||||
option4.series = series4;
|
||||
myChart4.setOption(option4, true);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function showDetailLine(mpcodes, type) {
|
||||
if(type=='98'){
|
||||
mpcodes=willMpoints;
|
||||
}
|
||||
// console.log(mpcodes)
|
||||
$.post(ext.contextPath + '/digitalProcess/digitalTechnologist/homePageBGDetailLine.do', {
|
||||
mpcodes: mpcodes,
|
||||
type: type
|
||||
}, function (data) {
|
||||
$("#subDiv").html(data);
|
||||
openModal('curveModal');
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper" style="background-color: #070030;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width:100%;height: 20%;padding-bottom: 10px;">
|
||||
<div style="float: left;width:calc((100% - 20px)*0.6);height: 100%;background-color: #4C74E4;border-radius: 4px;box-shadow: 2px 4px 4px 0px #00278a;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="color:#FFFFFF;height: 40%;vertical-align: center;">
|
||||
<td>库液水位(m)</td>
|
||||
<td>水库余氯总氯(PPm)</td>
|
||||
<td>水库蓝藻(PPm)</td>
|
||||
<td>水库PH</td>
|
||||
<td>水库电导率(µs/cm)</td>
|
||||
</tr>
|
||||
<tr style="color:#00F0FF;height: 60%;vertical-align: top;font-size: 40px;">
|
||||
<td id="kep_SKSW" class="kep_SKSW" style="cursor: pointer;"></td>
|
||||
<td id="SK_YLZD" class="SK_YLZD" style="cursor: pointer;"></td>
|
||||
<td id="SK_LZ" class="SK_LZ" style="cursor: pointer;"></td>
|
||||
<td id="SK_ph" class="SK_ph" style="cursor: pointer;"></td>
|
||||
<td id="SK_DDL" class="SK_DDL" style="cursor: pointer;"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width:20px;height: 100%;"></div>
|
||||
<div style="float: left;width:calc((100% - 20px)*0.4);height: 100%;background-color: #4C74E4;border-radius: 4px;box-shadow: 2px 4px 4px 0px #00278a;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="color:#FFFFFF;height: 40%;vertical-align: center;">
|
||||
<td>长江Cl浓度(PPm)</td>
|
||||
<td>长江氨氮(PPm)</td>
|
||||
<td>长江PH</td>
|
||||
<td>长江电导率(µs/cm)</td>
|
||||
</tr>
|
||||
<tr style="color:#00F0FF;height: 60%;vertical-align: top;font-size: 40px;">
|
||||
<td id="CJ_LLZND" class="CJ_LLZND" style="cursor: pointer;"></td>
|
||||
<td id="CJ_ADND" class="CJ_ADND" style="cursor: pointer;"></td>
|
||||
<td id="CJ_ph" class="CJ_ph" style="cursor: pointer;"></td>
|
||||
<td id="CJ_DDL" class="CJ_DDL" style="cursor: pointer;"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width:100%;height: 80%;">
|
||||
<div style="float: left;width:100%;height: 35px;">
|
||||
<div style="float: right;width:370px;height: 25px;color: #FFFFFF;text-align: center;line-height: 22px;">
|
||||
<div style="float: left;width:265px;height: 22px;border: 1px solid #ffffff;border-radius: 4px 0px 0px 4px;">
|
||||
<input type="text" class="form-control pull-left" id="date1"
|
||||
style="width:100%;height: 100%;border: 0px;background-color: transparent;color: #FFFFFF;">
|
||||
</div>
|
||||
<div style="float: left;width:40px;height: 22px;border: 1px solid #ffffff;border-radius: 0px 4px 4px 0px;cursor: pointer;"
|
||||
onclick="getData();">
|
||||
查询
|
||||
</div>
|
||||
<div style="float: left;width:40px;height: 22px;border: 1px solid #ffffff;border-radius: 4px 4px 4px 4px;cursor: pointer;margin-left: 5px;"
|
||||
onclick="showDetailLine('','98');">
|
||||
预测
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width:100%;height: calc((100% - 35px)*0.5);padding-bottom: 10px;">
|
||||
<div style="float: left;width:33.3%;height: 100%;padding-right: 15px;">
|
||||
<div style="float: left;width:100%;height: 100%;border: 2px solid #4875e8;border-radius: 4px;box-shadow: 2px 4px 4px 0px #00278a;padding: 5px;">
|
||||
<div style="float: left;width:100%;height: 100%;background:url(<%=request.getContextPath()%>/IMG/digitalProcess/BGWaterPIC.jpg);background-size: 100% 100%;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width:33.3%;height: 100%;padding-right: 15px;">
|
||||
<div id="chart1DetailLine"
|
||||
style="float: left;width:100%;height: 35px;font-size: 20px;color: #ffffff;line-height: 24px;text-align: left;cursor: pointer;">
|
||||
潮汐曲线
|
||||
</div>
|
||||
<div id="chart1" style="float: left;width:100%;height: calc(100% - 35px);"></div>
|
||||
</div>
|
||||
<div style="float: left;width:33.3%;height: 100%;">
|
||||
<div id="chart2DetailLine"
|
||||
style="float: left;width:100%;height: 35px;font-size: 20px;color: #ffffff;line-height: 24px;text-align: left;cursor: pointer;">
|
||||
长江口取水水质实测&预测曲线
|
||||
</div>
|
||||
<div id="chart2" style="float: left;width:100%;height: calc(100% - 35px);"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width:100%;height: calc((100% - 35px)*0.5);padding-top: 10px;">
|
||||
<div style="float: left;width:33.3%;height: 100%;padding-right: 15px;">
|
||||
<div style="float: left;width:100%;height: 100%;border-radius: 4px;box-shadow: 2px 4px 4px 0px #68738d;padding-left: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: left;vertical-align: center;color: #ffffff;">
|
||||
<tr>
|
||||
<td>当前气温(℃)</td>
|
||||
<td id="kep_QW" class="kep_QW"></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>当前气压(kPa)</td>
|
||||
<td id="kep_QY" class="kep_QY"></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>当前风速(m/s)</td>
|
||||
<td id="kep_FS" class="kep_FS"></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>当前风向(° )</td>
|
||||
<td id="kep_FX" class="kep_FX"></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>今日降雨强度(mm/h)</td>
|
||||
<td id="kep_JYQD" class="kep_JYQD"></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<%-- <tr>--%>
|
||||
<%-- <td>排污时间</td>--%>
|
||||
<%-- <td>-</td>--%>
|
||||
<%-- <td><img style="width: 24px;height: 24px;"--%>
|
||||
<%-- src="<%=request.getContextPath()%>/IMG/digitalProcess/edit.png" alt="">--%>
|
||||
<%-- </td>--%>
|
||||
<%-- </tr>--%>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width:33.3%;height: 100%;padding-right: 15px;">
|
||||
<div id="chart3DetailLine"
|
||||
style="float: left;width:100%;height: 35px;font-size: 20px;color: #ffffff;line-height: 24px;text-align: left;cursor: pointer;">
|
||||
取水时段预测曲线
|
||||
</div>
|
||||
<div id="chart3" style="float: left;width:100%;height: calc(100% - 35px);"></div>
|
||||
</div>
|
||||
<div style="float: left;width:33.3%;height: 100%;">
|
||||
<div id="chart4DetailLine"
|
||||
style="float: left;width:100%;height: 35px;font-size: 20px;color: #ffffff;line-height: 24px;text-align: left;cursor: pointer;">
|
||||
水库液位实测&预测曲线
|
||||
</div>
|
||||
<div id="chart4" style="float: left;width:100%;height: calc(100% - 35px);"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
613
WebRoot/jsp/digitalProcess/homePageBGDetailLine.jsp
Normal file
613
WebRoot/jsp/digitalProcess/homePageBGDetailLine.jsp
Normal file
@ -0,0 +1,613 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<script type="text/javascript">
|
||||
var beginTimeStoreD1 = '';
|
||||
var endTimeStoreD1 = '';
|
||||
let nowHourTime = getNowTime().substring(0, 13);
|
||||
|
||||
function initDate() {
|
||||
//定义locale汉化插件
|
||||
beginTimeStoreD1 = moment().subtract(15, 'days').format('YYYY-MM-DD') + " 00:00";
|
||||
endTimeStoreD1 = moment().subtract(-15, 'days').format('YYYY-MM-DD') + " 23:59";
|
||||
var locale = {
|
||||
"format": 'YYYY-MM-DD HH:mm',
|
||||
"separator": " ~ ",
|
||||
"applyLabel": "确定",
|
||||
"cancelLabel": "取消",
|
||||
"fromLabel": "起始时间",
|
||||
"toLabel": "结束时间'",
|
||||
"customRangeLabel": "自定义",
|
||||
"weekLabel": "W",
|
||||
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
|
||||
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
"firstDay": 1
|
||||
};
|
||||
$('#reservationtime').daterangepicker({
|
||||
"timePicker": true,
|
||||
"timePicker24Hour": true,
|
||||
"linkedCalendars": false,
|
||||
"autoUpdateInput": false,
|
||||
"timePickerIncrement": 10,
|
||||
"locale": locale,
|
||||
//汉化按钮部分
|
||||
ranges: {
|
||||
// '今日': [moment(), moment().subtract(-1, 'days')],
|
||||
'昨日': [moment().subtract(1, 'days'), moment()],
|
||||
'最近7日': [moment().subtract(6, 'days'), moment().subtract(-1, 'days')],
|
||||
'本月': [moment().startOf('month'), moment().endOf('month').subtract(-1, 'days')],
|
||||
'上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month').subtract(-1, 'days')]
|
||||
},
|
||||
startDate: beginTimeStoreD1,
|
||||
endDate: endTimeStoreD1
|
||||
}, function (start, end, label) {
|
||||
beginTimeStoreD1 = start.format(this.locale.format);
|
||||
endTimeStoreD1 = end.format(this.locale.format);
|
||||
if (!this.startDate) {
|
||||
this.element.val('');
|
||||
} else {
|
||||
this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
|
||||
}
|
||||
});
|
||||
$('#reservationtime').val(beginTimeStoreD1 + locale.separator + endTimeStoreD1);
|
||||
};
|
||||
|
||||
let myDetailChart = "";
|
||||
let detailOption = [];
|
||||
let detailSeries = [];
|
||||
|
||||
let type = '${param.type}';
|
||||
let mpcodes = '${param.mpcodes}';
|
||||
|
||||
$(function () {
|
||||
var windowhight = $(window).height();
|
||||
var windowwidth = $(window).width();
|
||||
$('#detailChartLine').attr("style", "height:" + (windowhight - 200) + "px;width:" + (windowwidth - 100) + "px;padding-top:35px;");
|
||||
initDate();
|
||||
|
||||
myDetailChart = echarts.init(document.getElementById("detailChartLine"));
|
||||
if (type == '1') {
|
||||
detailOption = {
|
||||
color: [
|
||||
"#00DB16"
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
left: 'right',
|
||||
// textStyle: {
|
||||
// color: '#fff'
|
||||
// },
|
||||
data: ['潮汐']
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '5%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
// axisLabel: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
yAxis: {
|
||||
name: 'cm',
|
||||
type: 'value',
|
||||
axisLine: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
// color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: detailSeries
|
||||
};
|
||||
myDetailChart.setOption(detailOption, true);
|
||||
} else if (type == '2') {
|
||||
detailOption = {
|
||||
color: [
|
||||
"#00DB16", "#4875E8"
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
left: 'right',
|
||||
// textStyle: {
|
||||
// color: '#fff'
|
||||
// },
|
||||
data: ['实测CI', '预测CI']
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '5%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
// axisLabel: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
yAxis: {
|
||||
name: 'ppm',
|
||||
type: 'value',
|
||||
axisLine: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
// color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: detailSeries
|
||||
};
|
||||
myDetailChart.setOption(detailOption, true);
|
||||
} else if (type == '3') {
|
||||
detailOption = {
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
// legend: {
|
||||
// left: 'right',
|
||||
// textStyle: {
|
||||
// color: '#fff'
|
||||
// },
|
||||
// data: ['潮汐']
|
||||
// },
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '5%',
|
||||
containLabel: true
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
formatter: function (params) {
|
||||
let outContent = "";
|
||||
for (let item of params) {
|
||||
// <span style=\"display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:rgba(0,0,0,0);\"></span>
|
||||
let time = item.value[0];
|
||||
let value = item.value[1];
|
||||
if (value == 0) {
|
||||
outContent = time + ':关';
|
||||
} else if (value == 1) {
|
||||
outContent = time + ':开';
|
||||
} else {
|
||||
outContent = '';
|
||||
}
|
||||
}
|
||||
return outContent
|
||||
}
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
// boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
// color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
},
|
||||
// axisLabel: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
// data: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value',
|
||||
max: 2,
|
||||
min: -1,
|
||||
minInterval: 1,
|
||||
axisLine: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
splitLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
// color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
formatter: function (value, index) {
|
||||
if (value == 0) {
|
||||
value = '关';
|
||||
} else if (value == 1) {
|
||||
value = '开';
|
||||
} else {
|
||||
value = '';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
},
|
||||
visualMap: [
|
||||
{
|
||||
show: false,
|
||||
// type: 'piecewise',
|
||||
// splitNumber: 2,
|
||||
pieces: [
|
||||
{gt: 1, lte: 2, label: '开(自定义特殊颜色)', color: '#00DB16'},
|
||||
{gt: -1, lte: 0, label: '关(自定义特殊颜色)', color: 'red'}
|
||||
]
|
||||
},
|
||||
],
|
||||
series: detailSeries
|
||||
};
|
||||
myDetailChart.setOption(detailOption, true);
|
||||
} else if (type == '4') {
|
||||
detailOption = {
|
||||
color: [
|
||||
"#00DB16", "#4875E8"
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
left: 'right',
|
||||
// textStyle: {
|
||||
// color: '#fff'
|
||||
// },
|
||||
data: ['实测液位', '预测液位']
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '5%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
// axisLabel: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
yAxis: {
|
||||
name: 'ppm',
|
||||
type: 'value',
|
||||
axisLine: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
// color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: detailSeries
|
||||
};
|
||||
myDetailChart.setOption(detailOption, true);
|
||||
} else if (type == '98') {
|
||||
detailOption = {
|
||||
color: [
|
||||
"#3fb1e3", "#b6a2de", "#626c91"
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
left: 'right',
|
||||
// textStyle: {
|
||||
// color: '#fff'
|
||||
// },
|
||||
data: ['潮汐', 'CI','预测']
|
||||
},
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '5%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
// axisLabel: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
yAxis: [{
|
||||
// name: 'ppm',
|
||||
type: 'value',
|
||||
axisLine: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
// color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
type: 'value',
|
||||
max: 2,
|
||||
min: -1,
|
||||
minInterval: 1,
|
||||
axisLine: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
splitLine: {
|
||||
show: false,
|
||||
lineStyle: {
|
||||
// color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
formatter: function (value, index) {
|
||||
if (value == 0) {
|
||||
value = '关';
|
||||
} else if (value == 1) {
|
||||
value = '开';
|
||||
} else {
|
||||
value = '';
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}],
|
||||
visualMap: [
|
||||
{
|
||||
show: false,
|
||||
seriesIndex:2,
|
||||
// type: 'piecewise',
|
||||
// splitNumber: 2,
|
||||
pieces: [
|
||||
{gt: 1, lte: 2, label: '开(自定义特殊颜色)', color: '#00DB16'},
|
||||
{gt: -1, lte: 0, label: '关(自定义特殊颜色)', color: 'red'}
|
||||
]
|
||||
}
|
||||
],
|
||||
series: detailSeries
|
||||
};
|
||||
myDetailChart.setOption(detailOption, true);
|
||||
} else if (type == '99') {
|
||||
detailOption = {
|
||||
color: [
|
||||
"#00DB16", "#4875E8"
|
||||
],
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
// legend: {
|
||||
// left: 'right',
|
||||
// // textStyle: {
|
||||
// // color: '#fff'
|
||||
// // },
|
||||
// data: ['实测液位', '预测液位']
|
||||
// },
|
||||
grid: {
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '1%',
|
||||
top: '5%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
boundaryGap: false,
|
||||
axisLine: {
|
||||
show: false
|
||||
},
|
||||
axisTick: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
// axisLabel: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
yAxis: {
|
||||
// name: 'ppm',
|
||||
type: 'value',
|
||||
axisLine: {
|
||||
show: true,
|
||||
// lineStyle: {
|
||||
// color: '#fff'
|
||||
// }
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
// color: '#fff',
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: detailSeries
|
||||
};
|
||||
myDetailChart.setOption(detailOption, true);
|
||||
}
|
||||
|
||||
getEcharts();
|
||||
});
|
||||
|
||||
function doCurveSearch() {
|
||||
getEcharts();
|
||||
}
|
||||
|
||||
function getEcharts() {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getBGJspDataDetailLine.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
mpcodes: mpcodes,
|
||||
sdt: beginTimeStoreD1,
|
||||
edt: endTimeStoreD1
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
// console.log(data)
|
||||
if (data.length > 0) {
|
||||
detailOption.series.splice(0,detailOption.series.length);
|
||||
if (type == '98') {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
if (i == 0) {
|
||||
detailSeries.push({
|
||||
name:'潮汐',
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
yAxisIndex: 0,
|
||||
data: data[i]
|
||||
})
|
||||
}else if (i == 1) {
|
||||
detailSeries.push({
|
||||
name:'CI',
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
yAxisIndex: 0,
|
||||
data: data[i]
|
||||
})
|
||||
}else {
|
||||
detailSeries.push({
|
||||
name:'预测',
|
||||
type: 'line',
|
||||
step: 'middle',
|
||||
symbol: 'none',
|
||||
markLine: {
|
||||
lineStyle: {
|
||||
type: 'solid'
|
||||
},
|
||||
label: {
|
||||
color: '#ffffff'
|
||||
},
|
||||
data: [
|
||||
{
|
||||
name: 'today',
|
||||
xAxis: nowHourTime
|
||||
}
|
||||
]
|
||||
},
|
||||
yAxisIndex: 1,
|
||||
data: data[i]
|
||||
})
|
||||
}
|
||||
|
||||
detailOption.series = detailSeries;
|
||||
myDetailChart.setOption(detailOption, true);
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
detailSeries.push({
|
||||
type: 'line',
|
||||
symbol: 'none',
|
||||
data: data[i]
|
||||
})
|
||||
detailOption.series = detailSeries;
|
||||
myDetailChart.setOption(detailOption, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<div class="modal fade" id="curveModal">
|
||||
<div style="padding: 20px;">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<h4 class="modal-title">历史曲线</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="input-group pull-left input-group-sm">
|
||||
<input type="text" class="form-control pull-left" id="reservationtime" style="width:230px">
|
||||
<div class="input-group-btn pull-left">
|
||||
<button type="button" class="btn btn-default" onclick="doCurveSearch();"><i
|
||||
class="fa fa-search"></i> 查询
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div id="detailChartLine"></div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
353
WebRoot/jsp/digitalProcess/improveSystemPrediction_CG.jsp
Normal file
353
WebRoot/jsp/digitalProcess/improveSystemPrediction_CG.jsp
Normal file
@ -0,0 +1,353 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var color = [
|
||||
"#899BFF",
|
||||
"#35C837",
|
||||
"#89E1FF",
|
||||
"#1949EE"
|
||||
];
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
getData();
|
||||
})
|
||||
|
||||
function getData(modelType) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getHFCGJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'improveSystemPrediction',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
|
||||
let legendName1 = [];
|
||||
let series1 = [];
|
||||
|
||||
let legendName2 = [];
|
||||
let series2 = [];
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = content.mPoint.parmvalue;
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
// if (content.visualCacheData != null) {
|
||||
// if (content.visualCacheData.unit != null) {
|
||||
// outValue += content.visualCacheData.unit;
|
||||
// }
|
||||
// }
|
||||
if (content.elementCode == 'CG3_C_FIT102') {
|
||||
outValue = outValue / 2;
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'get24HourHistory') {
|
||||
if (content.elementCode == 'chart1') {
|
||||
legendName1.push(content.name);
|
||||
series1.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray
|
||||
})
|
||||
} else if (content.elementCode == 'chart2_left') {
|
||||
legendName2.push(content.name);
|
||||
series2.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray,
|
||||
yAxisIndex: 0
|
||||
})
|
||||
} else if (content.elementCode == 'chart2_right') {
|
||||
legendName2.push(content.name);
|
||||
series2.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray,
|
||||
yAxisIndex: 1
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getChart1('chart1', '泵组效率曲线', legendName1, series1);
|
||||
getChart2('chart2', '泵组运行预测曲线', legendName2, series2);
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getChart1(chartId, titleName, legendName, series) {
|
||||
let myChart = echarts.init(document.getElementById(chartId));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
title: {
|
||||
text: titleName,
|
||||
left: '20px',
|
||||
top: '0'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
grid: {
|
||||
left: '4%', // 与容器左侧的距离
|
||||
right: '4%', // 与容器右侧的距离
|
||||
// top: '8%', // 与容器顶部的距离
|
||||
bottom: '40px', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
legend: {
|
||||
data: legendName,
|
||||
left: 'center',
|
||||
bottom: '10'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '(%)'
|
||||
}
|
||||
],
|
||||
series: series
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function getChart2(chartId, titleName, legendName, series) {
|
||||
let myChart = echarts.init(document.getElementById(chartId));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
title: {
|
||||
text: titleName,
|
||||
left: '20px',
|
||||
top: '0'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
grid: {
|
||||
left: '4%', // 与容器左侧的距离
|
||||
right: '4%', // 与容器右侧的距离
|
||||
// top: '8%', // 与容器顶部的距离
|
||||
bottom: '40px', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
legend: {
|
||||
data: legendName,
|
||||
left: 'center',
|
||||
bottom: '10'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '(m3/h)',
|
||||
alignTicks: true,
|
||||
axisLine: {
|
||||
show: true
|
||||
}
|
||||
},
|
||||
{
|
||||
type: 'value',
|
||||
name: '(%)',
|
||||
alignTicks: true,
|
||||
axisLine: {
|
||||
show: true
|
||||
}
|
||||
}
|
||||
],
|
||||
series: series
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper"
|
||||
style="background-size: 100% 100%;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width: calc((100% - 20px)*0.55);height: 100%;background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div class="box-header" style="border-bottom: 1px solid #C4E2E6;padding: 0; margin-left: 15px;">
|
||||
<h3 class="box-title" style="border-bottom: 2px solid #C4E2E6;height: 42px;line-height: 2.5;">
|
||||
<strong>提升系统能效评估</strong></h3>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 43px)*0.4);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td></td>
|
||||
<td>瞬时进水量</td>
|
||||
<td>液位</td>
|
||||
<td>开泵台数</td>
|
||||
<td>泵组频率</td>
|
||||
<td style="border-left: 1px solid #9F9F9F;">泵组效率</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td></td>
|
||||
<td>(m³/h)</td>
|
||||
<td>(m)</td>
|
||||
<td>(台)</td>
|
||||
<td>(Hz)</td>
|
||||
<td style="border-left: 1px solid #9F9F9F;">(%)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;">
|
||||
<td style="color: #B0B0B0;font-size: 18px;">生活进水</td>
|
||||
<td class="CG3_C_FIT102">-</td>
|
||||
<td class="CG3_A2_LIT103">-</td>
|
||||
<td class="HFCG_TSXT_NUM1">-</td>
|
||||
<td class="HFCG_TSXT_FRQ1">-</td>
|
||||
<td class="HFCG_TSXT_EFF1" style="color: #89E1FF;border-left: 1px solid #9F9F9F;">-</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;">
|
||||
<td style="color: #B0B0B0;font-size: 18px;">长鑫进水</td>
|
||||
<td class="CG3_C_FIT102">-</td>
|
||||
<td class="CG3_A2_LIT104">-</td>
|
||||
<td class="HFCG_TSXT_NUM2">-</td>
|
||||
<td class="HFCG_TSXT_FRQ2">-</td>
|
||||
<td class="HFCG_TSXT_EFF2" style="color: #89E1FF;border-left: 1px solid #9F9F9F;">-</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 43px)*0.6);padding-top: 20px;">
|
||||
<div style="float: left;width: 100%;height: 100%;" id="chart1"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 20px;height: 100%;"></div>
|
||||
<div style="float: right;width: calc((100% - 20px)*0.45);height: 100%;background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div class="box-header" style="border-bottom: 1px solid #C4E2E6;padding: 0; margin-left: 15px;">
|
||||
<h3 class="box-title" style="border-bottom: 2px solid #C4E2E6;height: 42px;line-height: 2.5;">
|
||||
<strong>提升系统运行优化</strong></h3>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 43px)*0.4);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td></td>
|
||||
<td>推荐开泵台数</td>
|
||||
<td>推荐运行频率</td>
|
||||
<td>计算瞬时流量</td>
|
||||
<td>泵组效率</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td></td>
|
||||
<td>(台)</td>
|
||||
<td>(Hz)</td>
|
||||
<td>(m³/h)</td>
|
||||
<td>(%)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #89E1FF;">
|
||||
<td style="color: #B0B0B0;font-size: 18px;">生活进水</td>
|
||||
<td class="HFCG_TSXT_NUM1_CAL">-</td>
|
||||
<td class="HFCG_TSXT_FRQ1_CAL">-</td>
|
||||
<td class="HFCG_TSXT_FL1_CAL">-</td>
|
||||
<td class="HFCG_TSXT_EFF1_CAL">-</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #89E1FF;">
|
||||
<td style="color: #B0B0B0;font-size: 18px;">长鑫进水</td>
|
||||
<td class="HFCG_TSXT_NUM2_CAL">-</td>
|
||||
<td class="HFCG_TSXT_FRQ2_CAL">-</td>
|
||||
<td class="HFCG_TSXT_FL2_CAL">-</td>
|
||||
<td class="HFCG_TSXT_EFF2_CAL">-</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 43px)*0.6);padding-top: 20px;">
|
||||
<div style="float: left;width: 100%;height: 100%;" id="chart2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
1709
WebRoot/jsp/digitalProcess/intakeLiftPump.jsp
Normal file
1709
WebRoot/jsp/digitalProcess/intakeLiftPump.jsp
Normal file
File diff suppressed because it is too large
Load Diff
314
WebRoot/jsp/digitalProcess/intelligentDehydrationControl_CG.jsp
Normal file
314
WebRoot/jsp/digitalProcess/intelligentDehydrationControl_CG.jsp
Normal file
@ -0,0 +1,314 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var color = [
|
||||
"#899BFF",
|
||||
"#35C837",
|
||||
"#89E1FF",
|
||||
"#1949EE"
|
||||
];
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
getData();
|
||||
})
|
||||
|
||||
function getData(modelType) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getHFCGJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'improveSystemPrediction_CG',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = toThousands(content.mPoint.parmvalue);
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
}
|
||||
// else if (content.getValueType == 'getTHDayHistory') {
|
||||
// if (content.elementCode == 'chartleft') {
|
||||
// legendName1.push(content.name);
|
||||
// series1.push({
|
||||
// name: content.name,
|
||||
// type: 'line',
|
||||
// data: content.jsonArray,
|
||||
// yAxisIndex: 0
|
||||
// })
|
||||
// }else if (content.elementCode == 'chartright') {
|
||||
// legendName1.push(content.name);
|
||||
// series1.push({
|
||||
// name: content.name,
|
||||
// type: 'line',
|
||||
// data: content.jsonArray,
|
||||
// yAxisIndex: 1
|
||||
// })
|
||||
// }
|
||||
//
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
let legendName1 = ['实际加药量', '预测加药量'];
|
||||
let series1 = [];
|
||||
series1.push({
|
||||
name: '实际加药量',
|
||||
type: 'line',
|
||||
data: [['2024-01-01', 36], ['2024-01-02', 45], ['2024-01-03', 21], ['2024-01-04', 65], ['2024-01-05', 47]]
|
||||
})
|
||||
series1.push({
|
||||
name: '预测加药量',
|
||||
type: 'line',
|
||||
data: [['2024-01-01', 51], ['2024-01-02', 35], ['2024-01-03', 28], ['2024-01-04', 57], ['2024-01-05', 50]]
|
||||
})
|
||||
|
||||
getChart('chart1', legendName1, series1);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getChart(chartId, legendName, series) {
|
||||
let myChart = echarts.init(document.getElementById(chartId));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
// title: {
|
||||
// text: titleName,
|
||||
// left: '20px',
|
||||
// top: '0'
|
||||
// },
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
grid: {
|
||||
left: '4%', // 与容器左侧的距离
|
||||
right: '4%', // 与容器右侧的距离
|
||||
// top: '8%', // 与容器顶部的距离
|
||||
bottom: '40px', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
legend: {
|
||||
data: legendName,
|
||||
left: 'center',
|
||||
bottom: '10'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
// name: '(%)'
|
||||
}
|
||||
],
|
||||
series: series
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper"
|
||||
style="background-size: 100% 100%;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.5);background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div style="float: left;width: calc((100% - 1px)*0.8);height: 100%;padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #333333;font-size: 18px;font-weight: 700;text-align: left;">
|
||||
<td colspan="6" style="padding-left: 20px;height: 40px;vertical-align: top;">运行参数</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>设备单体</td>
|
||||
<td>设备状态</td>
|
||||
<td>储泥池污泥含水率</td>
|
||||
<td>脱水后污泥含水率</td>
|
||||
<td>设定药剂投加率</td>
|
||||
<td>污泥输送泵频率</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td>(%)</td>
|
||||
<td>(%)</td>
|
||||
<td>(g/g)</td>
|
||||
<td>(Hz)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 400;">
|
||||
<td>1#离心机</td>
|
||||
<td>正常</td>
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
<td style="color: #89E1FF;">95.5</td>
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 400;">
|
||||
<td>2#离心机</td>
|
||||
<td>正常</td>
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
<td style="color: #89E1FF;">95.5</td>
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 400;">
|
||||
<td>3#离心机</td>
|
||||
<td>正常</td>
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
<td style="color: #89E1FF;">95.5</td>
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 400;">
|
||||
<td>4#离心机</td>
|
||||
<td>正常</td>
|
||||
<td>95.5</td>
|
||||
<td>95.5</td>
|
||||
<td style="color: #89E1FF;">95.5</td>
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 1px;height: 100%;padding-top: 20px;padding-bottom: 20px;">
|
||||
<div style="float: left;width: 1px;height: 100%;background-color: #B0B0B0;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 1px)*0.2);height: 100%;padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #333333;font-size: 18px;font-weight: 700;text-align: left;">
|
||||
<td colspan="6" style="padding-left: 20px;height: 40px;vertical-align: top;">预测值</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>药剂加药量</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>(kg)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 400;">
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 400;">
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 400;">
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 400;">
|
||||
<td>95.5</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 20px;"></div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.5);background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div style="float: left;width: 100%;height: 60px;padding-top: 15px;">
|
||||
<div style="float: left;width: 250px;height: 100%;line-height: 45px;padding-left: 20px;font-weight: 700;font-size: 18px;">
|
||||
干化药剂投加曲线
|
||||
</div>
|
||||
<div style="float: right;width: 120px;height: 100%;padding-top: 7px;">
|
||||
<select style="width: 80px;height: 30px;">
|
||||
<option selected>1#产线</option>
|
||||
<option>2#产线</option>
|
||||
<option>3#产线</option>
|
||||
<option>4#产线</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc(100% - 60px);" id="chart1"></div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
330
WebRoot/jsp/digitalProcess/internalRefluxSYSList.jsp
Normal file
330
WebRoot/jsp/digitalProcess/internalRefluxSYSList.jsp
Normal file
@ -0,0 +1,330 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var color = [
|
||||
"#899BFF",
|
||||
"#35C837",
|
||||
"#89E1FF",
|
||||
"#1949EE"
|
||||
];
|
||||
let myChart1 = "";
|
||||
let option1 = [];
|
||||
let series1 = [];
|
||||
let legendName1 = [];
|
||||
|
||||
let websocket = null;
|
||||
let modelIp = "${modelIp}";
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
myChart1 = echarts.init(document.getElementById("chart"));
|
||||
myChart1.showLoading({
|
||||
text: '数据正在加载...',
|
||||
textStyle: {fontSize: 30, color: '#444'},
|
||||
effectOption: {backgroundColor: 'rgba(0, 0, 0, 0)'},
|
||||
zlevel: 0
|
||||
});
|
||||
option1 = {
|
||||
color: color,
|
||||
animation: true,
|
||||
title: {
|
||||
text: '预测回流比',
|
||||
left: 'center',
|
||||
top: '0'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
grid: {
|
||||
left: '2%', // 与容器左侧的距离
|
||||
right: '2%', // 与容器右侧的距离
|
||||
// top: '8%', // 与容器顶部的距离
|
||||
bottom: '1%', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
legend: {
|
||||
data: legendName1,
|
||||
left: 'right',
|
||||
top: '10'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value',
|
||||
name: '(%)'
|
||||
},
|
||||
{
|
||||
type: 'value',
|
||||
name: '(m3/s)',
|
||||
splitLine:{
|
||||
show:false
|
||||
}
|
||||
}
|
||||
],
|
||||
series: series1
|
||||
};
|
||||
myChart1.setOption(option1, true);
|
||||
myChart1.hideLoading();
|
||||
|
||||
if ('WebSocket' in window) {
|
||||
// 创建websocket对象
|
||||
websocket = new WebSocket("ws://"+modelIp+"/modelComputerWebSocketEnd/");
|
||||
// console.log("ws://"+modelIp+"/modelComputerWebSocketEnd/")
|
||||
registerEvent();
|
||||
} else {
|
||||
alert('当前浏览器不支持websocket')
|
||||
}
|
||||
$(window).unload(function () {
|
||||
console.log("websocket关闭");
|
||||
websocket.close();
|
||||
});
|
||||
|
||||
getData("");
|
||||
})
|
||||
|
||||
function registerEvent() {
|
||||
websocket.onopen = function (event) {
|
||||
console.log("已连接");
|
||||
}
|
||||
|
||||
websocket.onmessage = function (event) {
|
||||
if(event!=null){
|
||||
// console.log(event.data)
|
||||
let modelType = event.data;
|
||||
if(modelType!='model_status'){
|
||||
getData(modelType);
|
||||
}
|
||||
}
|
||||
};
|
||||
websocket.onclose = function (event) {
|
||||
console.log("已断开");
|
||||
reconnect();
|
||||
};
|
||||
//连接发生错误的回调方法
|
||||
websocket.onerror = function () {
|
||||
reconnect();
|
||||
};
|
||||
}
|
||||
|
||||
function reconnect() {
|
||||
websocket = new WebSocket("ws://"+modelIp+"/modelComputerWebSocketEnd/");
|
||||
websocket.onopen = function (event) {
|
||||
console.log("已连接");
|
||||
}
|
||||
|
||||
websocket.onmessage = function (event) {
|
||||
};
|
||||
|
||||
websocket.onclose = function (event) {
|
||||
setTimeout("reconnect();", 8000);
|
||||
};
|
||||
//连接发生错误的回调方法 `1
|
||||
websocket.onerror = function () {
|
||||
websocket.close();
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
function getData(modelType) {
|
||||
series1=[];
|
||||
legendName1=[];
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'internalRefluxSYSList',
|
||||
modelType:modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
// console.log(data)
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
// console.log(content)
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = toThousands(content.mPoint.parmvalue);
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue=Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getTHDayHistory') {
|
||||
if (content.elementCode == '1chartleft') {
|
||||
legendName1.push(content.name);
|
||||
series1.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray,
|
||||
yAxisIndex: 0
|
||||
})
|
||||
}else if (content.elementCode == '1chartright') {
|
||||
legendName1.push(content.name);
|
||||
series1.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray,
|
||||
yAxisIndex: 1
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if(series1.length>0){
|
||||
option1.series = series1;
|
||||
option1.legend.data = legendName1;
|
||||
myChart1.setOption(option1, true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float:left;width: 100%;height: calc((100% - 15px)*0.5);padding: 60px 30px 60px 30px;border-radius: 4px;background-color: #FFFFFF;">
|
||||
<div style="float: left;width: 35%;height: 100%;border-right: 1px solid #B0B0B0;">
|
||||
<div style="float: left;width: 100%;height: 20%;padding-left:20px;font-size: 18px;font-weight: bold;">
|
||||
内回流系统运行参数
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 40%;color: #B0B0B0;text-align: center;">
|
||||
出水总氮<br>(mg/L)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 40%;color: #B0B0B0;text-align: center;">
|
||||
当前预处理量<br>(万m³)
|
||||
</div>
|
||||
<div style="float: left;width: 33.3%;height: 40%;color: #B0B0B0;text-align: center;">
|
||||
小时预测进水量<br>(m³/s)
|
||||
</div>
|
||||
<div class="OutWater_Total_N" style="float: left;width: 33.3%;height: 40%;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="Now_Water_Forecast" style="float: left;width: 33.3%;height: 40%;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
<div class="Hour_Water_Forecast" style="float: left;width: 33.3%;height: 40%;color:#89E1FF;font-size: 30px;text-align: center;font-weight: bold;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 65%;height: 100%;">
|
||||
<div style="float: left;width: 20%;height: 33.3%;font-size: 30px;text-align: center;">
|
||||
</div>
|
||||
<div style="float: left;width: 20%;height: 33.3%;font-size: 30px;text-align: center;">
|
||||
1#生反池
|
||||
</div>
|
||||
<div style="float: left;width: 20%;height: 33.3%;font-size: 30px;text-align: center;">
|
||||
2#生反池
|
||||
</div>
|
||||
<div style="float: left;width: 20%;height: 33.3%;font-size: 30px;text-align: center;">
|
||||
3#生反池
|
||||
</div>
|
||||
<div style="float: left;width: 20%;height: 33.3%;font-size: 30px;text-align: center;">
|
||||
4#生反池
|
||||
</div>
|
||||
<div style="float: left;width: 20%;height: 33.3%;color:#B0B0B0;font-size: 14px;text-align: center;">
|
||||
硝氮值<br>(mg/L)
|
||||
</div>
|
||||
<div class="1SFC_XDZ" style="float: left;width: 20%;height: 33.3%;font-size: 30px;text-align: center;">
|
||||
</div>
|
||||
<div class="2SFC_XDZ" style="float: left;width: 20%;height: 33.3%;font-size: 30px;text-align: center;">
|
||||
</div>
|
||||
<div class="3SFC_XDZ" style="float: left;width: 20%;height: 33.3%;font-size: 30px;text-align: center;">
|
||||
</div>
|
||||
<div class="4SFC_XDZ" style="float: left;width: 20%;height: 33.3%;font-size: 30px;text-align: center;">
|
||||
</div>
|
||||
<div style="float: left;width: 20%;height: 33.3%;color:#B0B0B0;font-size: 14px;text-align: center;">
|
||||
预测回流比<br>(%)
|
||||
</div>
|
||||
<div class="1SFC_RefluxRatio_Forecast" style="float: left;width: 20%;height: 33.3%;color:#89E1FF;font-size: 30px;text-align: center;">
|
||||
</div>
|
||||
<div class="2SFC_RefluxRatio_Forecast" style="float: left;width: 20%;height: 33.3%;color:#89E1FF;font-size: 30px;text-align: center;">
|
||||
</div>
|
||||
<div class="3SFC_RefluxRatio_Forecast" style="float: left;width: 20%;height: 33.3%;color:#89E1FF;font-size: 30px;text-align: center;">
|
||||
</div>
|
||||
<div class="4SFC_RefluxRatio_Forecast" style="float: left;width: 20%;height: 33.3%;color:#89E1FF;font-size: 30px;text-align: center;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 15px;">
|
||||
|
||||
</div>
|
||||
<div id="chart"
|
||||
style="float:left;width: 100%;height: calc((100% - 15px)*0.5);padding: 20px 30px 20px 30px;border-radius: 4px;background-color: #FFFFFF;">
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
324
WebRoot/jsp/digitalProcess/investmentPrediction_CG.jsp
Normal file
324
WebRoot/jsp/digitalProcess/investmentPrediction_CG.jsp
Normal file
@ -0,0 +1,324 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript"
|
||||
src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
var color = [
|
||||
"#899BFF",
|
||||
"#35C837",
|
||||
"#89E1FF",
|
||||
"#1949EE"
|
||||
];
|
||||
|
||||
$(function () {
|
||||
let windowHeight = $(window).height();
|
||||
$('#main').css("height", (windowHeight - 30) + "px");
|
||||
|
||||
getData();
|
||||
})
|
||||
|
||||
function getData(modelType) {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getHFCGJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: unitId,
|
||||
jspId: 'investmentPrediction',
|
||||
modelType: modelType
|
||||
// time: '2022-06-01'
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
|
||||
let legendName1 = [];
|
||||
let series1 = [];
|
||||
|
||||
let legendName2 = [];
|
||||
let series2 = [];
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getMpMainValue') {
|
||||
if (content.mPoint != null) {
|
||||
let outValue = content.mPoint.parmvalue;
|
||||
// if(isNumber(outValue)){
|
||||
// outValue = toThousands(outValue);
|
||||
// }
|
||||
// if (content.visualCacheData != null) {
|
||||
// if (content.visualCacheData.unit != null) {
|
||||
// outValue += content.visualCacheData.unit;
|
||||
// }
|
||||
// }
|
||||
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
outValue = toThousands(outValue);
|
||||
}
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode).text(outValue);
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
} else if (content.getValueType == 'get24HourHistory') {
|
||||
if (content.elementCode == 'chart1') {
|
||||
legendName1.push(content.name);
|
||||
series1.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray
|
||||
})
|
||||
} else if (content.elementCode == 'chart2') {
|
||||
legendName2.push(content.name);
|
||||
series2.push({
|
||||
name: content.name,
|
||||
type: 'line',
|
||||
data: content.jsonArray
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getChart('chart1', legendName1, series1);
|
||||
getChart('chart2', legendName2, series2);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getChart(chartId, legendName, series) {
|
||||
let myChart = echarts.init(document.getElementById(chartId));
|
||||
let option = {
|
||||
color: color,
|
||||
animation: true,
|
||||
// title: {
|
||||
// text: titleName,
|
||||
// left: '20px',
|
||||
// top: '0'
|
||||
// },
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
},
|
||||
grid: {
|
||||
left: '4%', // 与容器左侧的距离
|
||||
right: '4%', // 与容器右侧的距离
|
||||
top: '10px', // 与容器顶部的距离
|
||||
bottom: '40px', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
legend: {
|
||||
data: legendName,
|
||||
left: 'center',
|
||||
bottom: '10'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time'
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
type: 'value'
|
||||
// name: '(%)'
|
||||
}
|
||||
],
|
||||
series: series
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div class="wrapper">
|
||||
<!-- 引用top -->
|
||||
<%-- <jsp:include page="/jsp/top.jsp"></jsp:include> --%>
|
||||
<!-- 菜单栏 -->
|
||||
<%-- <jsp:include page="/jsp/left.jsp"></jsp:include> --%>
|
||||
<div class="content-wrapper"
|
||||
style="background-size: 100% 100%;">
|
||||
<!-- Main content -->
|
||||
<section class="content container-fluid">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main">
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.35);background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div class="box-header" style="border-bottom: 1px solid #C4E2E6;padding: 0; margin-left: 15px;">
|
||||
<h3 class="box-title" style="border-bottom: 2px solid #C4E2E6;height: 42px;line-height: 2.5;">
|
||||
<strong>水质参数</strong></h3>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 1px)*0.45);height: calc(100% - 43px);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #333333;font-size: 18px;font-weight: 700;text-align: left;">
|
||||
<td colspan="4" style="padding-left: 20px;height: 40px;vertical-align: top;">进水参数</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>高沉池进水浊度</td>
|
||||
<td>进水磷酸盐</td>
|
||||
<td>进厂水TP</td>
|
||||
<td>进厂水流量</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>(NTU)</td>
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
<td>(m³/h)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 700;">
|
||||
<td class="CG3_F_AIT301">-</td>
|
||||
<td class="CG3_F_AIT304">-</td>
|
||||
<td class="CG3_A1_AIT110">-</td>
|
||||
<td class="CG3_C_FIT102">-</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 1px;height: calc(100% - 43px);padding-top: 20px;padding-bottom: 20px;">
|
||||
<div style="float: left;width: 1px;height: 100%;background-color: #B0B0B0;"></div>
|
||||
</div>
|
||||
<div style="float: left;width: calc((100% - 1px)*0.55);height: calc(100% - 43px);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #333333;font-size: 18px;font-weight: 700;text-align: left;">
|
||||
<td colspan="5" style="padding-left: 20px;height: 40px;vertical-align: top;">出水参数</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>高沉池出水浊度</td>
|
||||
<td>出水磷酸盐</td>
|
||||
<td>出厂水TP</td>
|
||||
<td>出厂水TP目标值</td>
|
||||
<td>出厂水流量</td>
|
||||
</tr>
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>(NTU)</td>
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
<td>(mg/L)</td>
|
||||
<td>(m³/h)</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #333333;font-weight: 700;">
|
||||
<td class="CG3_F_AIT306">-</td>
|
||||
<td class="CG3_F_AIT305">-</td>
|
||||
<td class="CG3_P_AIT314">-</td>
|
||||
<td class="HFCG_PAC_TP_TARGET" style="color: #89E1FF;">-</td>
|
||||
<td>-</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 20px;"></div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 20px)*0.65);">
|
||||
<div style="float: left;width: calc((100% - 20px)*0.55);height: 100%;background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div class="box-header" style="border-bottom: 1px solid #C4E2E6;padding: 0; margin-left: 15px;">
|
||||
<h3 class="box-title"
|
||||
style="border-bottom: 2px solid #C4E2E6;height: 42px;line-height: 2.5;">
|
||||
<strong>PAC预测</strong></h3>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 43px)*0.2);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>1#高密池投加量</td>
|
||||
<td>2#高密池投加量</td>
|
||||
<td>1#泵运行频率</td>
|
||||
<td>2#泵运行频率</td>
|
||||
<td>3#泵运行频率</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #89E1FF;font-weight: 700;">
|
||||
<td class="HFCG_PAC_TJL1">-</td>
|
||||
<td class="HFCG_PAC_TJL2">-</td>
|
||||
<td class="HFCG_PAC_FRE1">-</td>
|
||||
<td class="HFCG_PAC_FRE2">-</td>
|
||||
<td class="HFCG_PAC_FRE3">-</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 43px)*0.8);padding-top: 20px;">
|
||||
<div style="float: left;width: 100%;height: 100%;" id="chart1"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 20px;height: 100%;"></div>
|
||||
<div style="float: left;width: calc((100% - 20px)*0.45);height: 100%;background-color: #FFFFFF;border: 1px solid rgba(225, 225, 225, 1);border-radius:4px;">
|
||||
<div class="box-header" style="border-bottom: 1px solid #C4E2E6;padding: 0; margin-left: 15px;">
|
||||
<h3 class="box-title"
|
||||
style="border-bottom: 2px solid #C4E2E6;height: 42px;line-height: 2.5;">
|
||||
<strong>PAM预测</strong></h3>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 43px)*0.2);padding-top: 20px;">
|
||||
<table style="width: 100%;height: 100%;text-align: center;">
|
||||
<tr style="height: 20px;color: #B0B0B0;font-size: 14px;">
|
||||
<td>1#高密池投加量</td>
|
||||
<td>2#高密池投加量</td>
|
||||
<td>1#泵运行频率</td>
|
||||
<td>2#泵运行频率</td>
|
||||
</tr>
|
||||
<tr style="font-size: 30px;color: #89E1FF;font-weight: 700;">
|
||||
<td class="HFCG_PAM_TJL1">-</td>
|
||||
<td class="HFCG_PAM_TJL2">-</td>
|
||||
<td class="HFCG_PAM_FRE1">-</td>
|
||||
<td class="HFCG_PAM_FRE2">-</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: calc((100% - 43px)*0.8);padding-top: 20px;">
|
||||
<div style="float: left;width: 100%;height: 100%;" id="chart2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- /.content -->
|
||||
</div>
|
||||
<%-- <jsp:include page="/jsp/bottom.jsp"></jsp:include> --%>
|
||||
<%-- <jsp:include page="/jsp/side.jsp"></jsp:include> --%>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
1706
WebRoot/jsp/digitalProcess/optimalDispatch.jsp
Normal file
1706
WebRoot/jsp/digitalProcess/optimalDispatch.jsp
Normal file
File diff suppressed because it is too large
Load Diff
481
WebRoot/jsp/digitalProcess/primaryFan_SysE_Curve_SDK.jsp
Normal file
481
WebRoot/jsp/digitalProcess/primaryFan_SysE_Curve_SDK.jsp
Normal file
@ -0,0 +1,481 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<style type="text/css">
|
||||
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
|
||||
let TypeSt = '0';
|
||||
|
||||
$(function () {
|
||||
if ('${param.unitId}' != '') {
|
||||
bizid = '${param.unitId}';
|
||||
} else {
|
||||
bizid = unitId;
|
||||
}
|
||||
getData();
|
||||
})
|
||||
|
||||
let chart1Series = [];
|
||||
chart1Series.push({
|
||||
name: '45Hz',
|
||||
data: [
|
||||
[12500, 29.86350247],
|
||||
[13000, 29.80376419],
|
||||
[13500, 29.73451166],
|
||||
[14000, 29.65574487],
|
||||
[14500, 29.56746383],
|
||||
[15000, 29.46966853],
|
||||
[15500, 29.36235898],
|
||||
[16000, 29.24553517],
|
||||
[16500, 29.1191971],
|
||||
[17000, 28.98334478],
|
||||
[17500, 28.83797821],
|
||||
[18000, 28.68309738],
|
||||
[18500, 28.51870229],
|
||||
[19000, 28.34479295],
|
||||
[19500, 28.16136935],
|
||||
[20000, 27.9684315],
|
||||
[20500, 27.76597939],
|
||||
[21000, 27.55401303],
|
||||
[21500, 27.33253241],
|
||||
[22000, 27.10153754],
|
||||
[22500, 26.86102841],
|
||||
[23000, 26.61100503],
|
||||
[23500, 26.35146739],
|
||||
[24000, 26.0824155],
|
||||
[24500, 25.80384935]
|
||||
],
|
||||
type: 'line',
|
||||
endLabel: {
|
||||
show: true,
|
||||
color: '#FFFFFF',
|
||||
formatter: '{a}'
|
||||
}
|
||||
})
|
||||
chart1Series.push({
|
||||
name: '40Hz',
|
||||
data: [
|
||||
[11000, 23.60647936],
|
||||
[11500, 23.55496438],
|
||||
[12000, 23.49393514],
|
||||
[12500, 23.42339165],
|
||||
[13000, 23.3433339],
|
||||
[13500, 23.25376189],
|
||||
[14000, 23.15467564],
|
||||
[14500, 23.04607512],
|
||||
[15000, 22.92796035],
|
||||
[15500, 22.80033133],
|
||||
[16000, 22.66318805],
|
||||
[16500, 22.51653051],
|
||||
[17000, 22.36035872],
|
||||
[17500, 22.19467268],
|
||||
[18000, 22.01947238],
|
||||
[18500, 21.83475782],
|
||||
[19000, 21.64052901],
|
||||
[19500, 21.43678594],
|
||||
[20000, 21.22352862],
|
||||
[20500, 21.00075704],
|
||||
[21000, 20.76847121],
|
||||
[21500, 20.52667112]
|
||||
],
|
||||
type: 'line',
|
||||
endLabel: {
|
||||
show: true,
|
||||
color: '#FFFFFF',
|
||||
formatter: '{a}'
|
||||
}
|
||||
})
|
||||
chart1Series.push({
|
||||
name: '35Hz',
|
||||
data: [
|
||||
[9000, 18.11741915],
|
||||
[9500, 18.08364172],
|
||||
[10000, 18.04035003],
|
||||
[10500, 17.98754409],
|
||||
[11000, 17.92522389],
|
||||
[11500, 17.85338944],
|
||||
[12000, 17.77204073],
|
||||
[12500, 17.68117777],
|
||||
[13000, 17.58080055],
|
||||
[13500, 17.47090908],
|
||||
[14000, 17.35150335],
|
||||
[14500, 17.22258337],
|
||||
[15000, 17.08414913],
|
||||
[15500, 16.93620063],
|
||||
[16000, 16.77873788],
|
||||
[16500, 16.61176088],
|
||||
[17000, 16.43526962],
|
||||
[17500, 16.2492641],
|
||||
[18000, 16.05374433]
|
||||
],
|
||||
type: 'line',
|
||||
endLabel: {
|
||||
show: true,
|
||||
color: '#FFFFFF',
|
||||
formatter: '{a}'
|
||||
}
|
||||
})
|
||||
|
||||
let chart2Series = [];
|
||||
|
||||
|
||||
function getData() {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getSDKJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: bizid,
|
||||
jspId: 'primaryFanSysECurveSDK',
|
||||
modelType: '0',
|
||||
// time: $('#dateTime').val()
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
let chart1Series_scatter = [];
|
||||
chart2Series = [];
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getRedisData') {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
if (content.elementCode == 'chart1') {
|
||||
chart1Series_scatter.push(Number(outValue));
|
||||
}
|
||||
} else if (content.getValueType == 'getDayHistory') {
|
||||
|
||||
// chart2Series.push({
|
||||
// name: content.name,
|
||||
// type: 'line',
|
||||
// symbol: 'none',
|
||||
// data: content.jsonArray
|
||||
// })
|
||||
}
|
||||
}
|
||||
|
||||
let chart1SeriesData = [];
|
||||
chart1SeriesData.push(chart1Series_scatter)
|
||||
chart1Series.push({
|
||||
data: chart1SeriesData,
|
||||
type: 'scatter',
|
||||
name: ''
|
||||
})
|
||||
}
|
||||
getChart1();
|
||||
getChart2('SDKWN_MODEL1_HZ_A', 'SDKWN_MODEL1_EFF_A');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getChart1() {
|
||||
let myChart = echarts.init(document.getElementById("chart1"));
|
||||
let option = {
|
||||
backgroundColor: "#0C0C0C",
|
||||
title: {
|
||||
text: "频率",
|
||||
left: 'center',
|
||||
top: 10,
|
||||
textStyle: {
|
||||
color: '#fff',
|
||||
fontSize: 14,
|
||||
fontWeight: 'normal'
|
||||
|
||||
}
|
||||
},
|
||||
// legend: {
|
||||
// data: ['45Hz', '40Hz', '35Hz'],
|
||||
// left: 'right'
|
||||
// },
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
grid: {
|
||||
left: '10px', // 与容器左侧的距离
|
||||
right: '40px', // 与容器右侧的距离
|
||||
top: '40px', // 与容器顶部的距离
|
||||
bottom: '15px', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
name: 'm³/\nmin',
|
||||
type: 'value',
|
||||
min: 5000,
|
||||
max: 35000,
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
name: 'kPa',
|
||||
type: 'value',
|
||||
min: 0,
|
||||
max: 40,
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
series: chart1Series
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function getChart2(mpid1, mpid2) {
|
||||
let edt = getNowTime().substring(0, 10) + " 23:59";
|
||||
let sdt = edt.substring(0, 10) + " 00:00";
|
||||
|
||||
let series = [];
|
||||
let legendName = [];
|
||||
let yUnit1 = "";
|
||||
let yUnit2 = "";
|
||||
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/data/getDetailData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
mpcode: mpid1, sdt: sdt, edt: edt
|
||||
},
|
||||
async: false,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (result) {
|
||||
if (result.length > 0) {
|
||||
legendName.push(result[0].name);
|
||||
yUnit1 = result[0].unit;
|
||||
series.push({
|
||||
name: result[0].name,
|
||||
data: result[0].data,
|
||||
type: 'scatter'
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/data/getDetailData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
mpcode: mpid2, sdt: sdt, edt: edt
|
||||
},
|
||||
async: false,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (result) {
|
||||
if (result.length > 0) {
|
||||
legendName.push(result[0].name);
|
||||
yUnit2 = result[0].unit;
|
||||
series.push({
|
||||
name: result[0].name,
|
||||
data: result[0].data,
|
||||
type: 'scatter'
|
||||
})
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementById("chart2").removeAttribute("_echarts_instance_");
|
||||
let myChart = echarts.init(document.getElementById("chart2"));
|
||||
let option = {
|
||||
backgroundColor: "#0C0C0C",
|
||||
tooltip: {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data: legendName,
|
||||
top: '5px',
|
||||
right: '0px',
|
||||
icon: 'circle',
|
||||
textStyle: {
|
||||
color: '#FFFFFF'
|
||||
}
|
||||
},
|
||||
grid: {
|
||||
left: '10px', // 与容器左侧的距离
|
||||
right: '30px', // 与容器右侧的距离
|
||||
top: '40px', // 与容器顶部的距离
|
||||
bottom: '15px', // 与容器底部的距离
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: {
|
||||
type: 'time',
|
||||
axisLine: {
|
||||
lineStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
yAxis: [
|
||||
{
|
||||
name: yUnit1,
|
||||
type: 'value',
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed'
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: yUnit2,
|
||||
type: 'value',
|
||||
axisLabel: {
|
||||
color: '#fff'
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
lineStyle: {
|
||||
type: 'dashed'
|
||||
}
|
||||
},
|
||||
position: 'right'
|
||||
}
|
||||
],
|
||||
series: series
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function changeType(st) {
|
||||
TypeSt = st;
|
||||
if (st == '0') {
|
||||
$('#Type0').css("border-bottom", "2px solid #00CBFF");
|
||||
$('#Type0').css("color", "#00CBFF");
|
||||
|
||||
$('#Type1').css("border-bottom", "0px solid #00CBFF");
|
||||
$('#Type1').css("color", "#ffffff");
|
||||
$('#Type2').css("border-bottom", "0px solid #00CBFF");
|
||||
$('#Type2').css("color", "#ffffff");
|
||||
getChart2('SDKWN_MODEL1_HZ_A', 'SDKWN_MODEL1_EFF_A');
|
||||
} else if (st == '1') {
|
||||
$('#Type1').css("border-bottom", "2px solid #00CBFF");
|
||||
$('#Type1').css("color", "#00CBFF");
|
||||
|
||||
$('#Type0').css("border-bottom", "0px solid #00CBFF");
|
||||
$('#Type0').css("color", "#ffffff");
|
||||
$('#Type2').css("border-bottom", "0px solid #00CBFF");
|
||||
$('#Type2').css("color", "#ffffff");
|
||||
getChart2('V401A_HZ', 'V401A_Current');
|
||||
} else if (st == '2') {
|
||||
$('#Type2').css("border-bottom", "2px solid #00CBFF");
|
||||
$('#Type2').css("color", "#00CBFF");
|
||||
|
||||
$('#Type0').css("border-bottom", "0px solid #00CBFF");
|
||||
$('#Type0').css("color", "#ffffff");
|
||||
$('#Type1').css("border-bottom", "0px solid #00CBFF");
|
||||
$('#Type1').css("color", "#ffffff");
|
||||
getChart2('V401A_HZ', 'FT_V401A_PV');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main"
|
||||
style="width: 978px;height: 339px;background:rgba(0,17,33,0.80);">
|
||||
<div style="float: left;width: 50%;height: 100%;">
|
||||
<div style="float:left;width: 100%;height: 60px;padding-top: 20px;">
|
||||
<div style="float:left;width: 120px;height: 32px;background: rgba(42,122,255,0.00);color: #ffffff;line-height: 32px;padding-left:20px;background:url(<%=request.getContextPath()%>/IMG/digitalProcess/titleStyle2.png);background-size: 100% 100%;">
|
||||
风机特性曲线
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: calc(100% - 60px);padding: 10px;">
|
||||
<div id="chart1" style="float:left;width: 100%;height:100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 50%;height: 100%;">
|
||||
<div style="float:left;width: 100%;height: 60px;padding-top: 20px;">
|
||||
<div style="float: left;height: 100%;">
|
||||
<div id="Type0"
|
||||
style="float: left;border-bottom: 2px solid #00CBFF;width:75px;height: 30px;font-size: 13px;text-align: center;color: #00CBFF;cursor: pointer;"
|
||||
onclick="changeType('0');">频率与效率
|
||||
</div>
|
||||
<div id="Type1"
|
||||
style="float: left;width:75px;height: 30px;font-size: 13px;text-align: center;color: #ffffff;margin-left: 20px;cursor: pointer;"
|
||||
onclick="changeType('1');">频率与电流
|
||||
</div>
|
||||
<div id="Type2"
|
||||
style="float: left;width:75px;height: 30px;font-size: 13px;text-align: center;color: #ffffff;margin-left: 20px;cursor: pointer;"
|
||||
onclick="changeType('2');">频率与风量
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: calc(100% - 60px);padding: 10px;">
|
||||
<div id="chart2" style="float:left;width: 100%;height:100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
632
WebRoot/jsp/digitalProcess/primaryFan_SysE_SDK.jsp
Normal file
632
WebRoot/jsp/digitalProcess/primaryFan_SysE_SDK.jsp
Normal file
@ -0,0 +1,632 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<style type="text/css">
|
||||
.triangle {
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 8px solid transparent;
|
||||
border-bottom: 8px solid transparent;
|
||||
border-top-color: #FFFFFF;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
|
||||
let FJType = '0';
|
||||
|
||||
$(function () {
|
||||
if ('${param.unitId}' != '') {
|
||||
bizid = '${param.unitId}';
|
||||
} else {
|
||||
bizid = unitId;
|
||||
}
|
||||
|
||||
getData();
|
||||
|
||||
})
|
||||
|
||||
function getData() {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getSDKJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: bizid,
|
||||
jspId: 'primaryFanSysESDK',
|
||||
modelType: FJType,
|
||||
// time:""
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
|
||||
let endCode = "";
|
||||
if (FJType == '0') {
|
||||
endCode = "_A";
|
||||
} else if (FJType == '1') {
|
||||
endCode = "_B";
|
||||
} else if (FJType == '2') {
|
||||
endCode = "_C";
|
||||
}
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let content = data[i];
|
||||
if (content.getValueType == 'getRedisData') {
|
||||
if (content.value != null) {
|
||||
let redisValue = eval("(" + content.value + ")");
|
||||
// console.log(redisValue)
|
||||
let outValue = redisValue.mpvalue;
|
||||
if (isNumber(outValue)) {
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
}
|
||||
if (content.elementCode.indexOf("_triangleMove1") != -1) {
|
||||
outValue = toThousands(outValue);
|
||||
$('#triangleMove1').css("margin-left", outValue + "%");
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode.replace(endCode + "_triangleMove1", "")).text(outValue);
|
||||
|
||||
} else if (content.elementCode.indexOf("_triangleMove2") != -1) {
|
||||
outValue = toThousands(outValue);
|
||||
$('#triangleMove2').css("margin-left", outValue + "%");
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode.replace(endCode + "_triangleMove2", "")).text(outValue);
|
||||
} else {
|
||||
outValue = toThousands(outValue);
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.unit != null) {
|
||||
outValue += content.visualCacheData.unit;
|
||||
}
|
||||
}
|
||||
$('.' + content.elementCode.replace(endCode, "")).text(outValue);
|
||||
}
|
||||
} else {
|
||||
$('.' + content.elementCode).text('-');
|
||||
}
|
||||
|
||||
} else if (content.getValueType == 'getMpMainValue') {
|
||||
let outValue = content.mPoint.parmvalue;
|
||||
if (content.visualCacheData != null) {
|
||||
if (content.visualCacheData.numtail != null) {
|
||||
outValue = Number(outValue).toFixed(Number(content.visualCacheData.numtail));
|
||||
}
|
||||
}
|
||||
if (content.elementCode == 'chart1') {
|
||||
getChart1(outValue);
|
||||
} else if (content.elementCode == 'chart2') {
|
||||
getChart2(outValue);
|
||||
} else if (content.elementCode == 'chart3') {
|
||||
getChart3(outValue);
|
||||
} else if (content.elementCode == 'chart4') {
|
||||
getChart4(outValue);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function getChart1(value) {
|
||||
let myChart = echarts.init(document.getElementById("chart1"));
|
||||
let option = {
|
||||
series: [{
|
||||
name: '',
|
||||
type: 'gauge',
|
||||
startAngle: 180,
|
||||
endAngle: 0,
|
||||
min: 0,
|
||||
max: 50000,
|
||||
center: ['50%', '85%'],
|
||||
radius: 70,
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
width: 10,
|
||||
shadowBlur: 0,
|
||||
color: [
|
||||
// [0.1, '#FF0000'],
|
||||
// [0.12, '#FFF700'],
|
||||
[0.2, '#FF0000'],
|
||||
[0.5, '#00FF33'],
|
||||
[0.6, '#FFF700'],
|
||||
[1, '#FF0000']
|
||||
]
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
show: false,
|
||||
},
|
||||
splitNumber: 100,
|
||||
axisLabel: { // 刻度值
|
||||
show: true,
|
||||
// splitNumber: 5,
|
||||
formatter: function (value, index) {
|
||||
const arr = [0, 10000, 25000, 30000, 50000];
|
||||
if (arr.includes(value)) {
|
||||
return (Number(value) / 10000)
|
||||
}
|
||||
},
|
||||
fontSize: 12,
|
||||
distance: -38,//刻度位置
|
||||
color: '#fff'
|
||||
},
|
||||
pointer: {
|
||||
show: true,
|
||||
offsetCenter: [0, -40],
|
||||
width: 8,
|
||||
length: '15%',
|
||||
icon: 'triangle',
|
||||
itemStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
detail: {
|
||||
offsetCenter: [0, 0],
|
||||
textStyle: {
|
||||
color: "#00FF33",
|
||||
fontSize: 26
|
||||
},
|
||||
},
|
||||
data: [{
|
||||
name: "",
|
||||
value: value,
|
||||
detail: {
|
||||
formatter: function (value) {
|
||||
return (value / 10000).toFixed(3);
|
||||
}
|
||||
}
|
||||
}]
|
||||
}]
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function getChart2(value) {
|
||||
let myChart = echarts.init(document.getElementById("chart2"));
|
||||
let option = {
|
||||
series: [{
|
||||
name: '',
|
||||
type: 'gauge',
|
||||
startAngle: 180,
|
||||
endAngle: 0,
|
||||
min: 0,
|
||||
max: 100,
|
||||
center: ['50%', '85%'],
|
||||
radius: 70,
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
width: 10,
|
||||
shadowBlur: 0,
|
||||
color: [
|
||||
[0.53, '#00FF33'],
|
||||
[1, '#FF0000']
|
||||
]
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
show: false,
|
||||
},
|
||||
splitNumber: 100,
|
||||
axisLabel: { // 刻度值
|
||||
show: true,
|
||||
// splitNumber: 5,
|
||||
formatter: function (value, index) {
|
||||
const arr = [0, 53, 100];
|
||||
if (arr.includes(value)) {
|
||||
return value
|
||||
}
|
||||
},
|
||||
fontSize: 12,
|
||||
distance: -38,//刻度位置
|
||||
color: '#fff'
|
||||
},
|
||||
pointer: {
|
||||
show: true,
|
||||
offsetCenter: [0, -40],
|
||||
width: 8,
|
||||
length: '15%',
|
||||
icon: 'triangle',
|
||||
itemStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
detail: {
|
||||
offsetCenter: [0, 0],
|
||||
textStyle: {
|
||||
color: "#00FF33",
|
||||
fontSize: 26
|
||||
},
|
||||
},
|
||||
data: [{
|
||||
name: "",
|
||||
value: value
|
||||
}]
|
||||
}]
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function getChart3(value) {
|
||||
let myChart = echarts.init(document.getElementById("chart3"));
|
||||
let option = {
|
||||
series: [{
|
||||
name: '',
|
||||
type: 'gauge',
|
||||
startAngle: 180,
|
||||
endAngle: 0,
|
||||
min: 0,
|
||||
max: 50,
|
||||
center: ['50%', '85%'],
|
||||
radius: 70,
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
width: 10,
|
||||
shadowBlur: 0,
|
||||
color: [
|
||||
[0.6, '#FF0000'],
|
||||
[0.7, '#FFF700'],
|
||||
[0.9, '#00FF33'],
|
||||
[1, '#FF0000']
|
||||
]
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
show: false,
|
||||
},
|
||||
splitNumber: 100,
|
||||
axisLabel: { // 刻度值
|
||||
show: true,
|
||||
// splitNumber: 5,
|
||||
formatter: function (value, index) {
|
||||
const arr = [0, 30, 35, 45, 50];
|
||||
if (arr.includes(value)) {
|
||||
return value
|
||||
}
|
||||
},
|
||||
fontSize: 12,
|
||||
distance: -38,//刻度位置
|
||||
color: '#fff'
|
||||
},
|
||||
pointer: {
|
||||
show: true,
|
||||
offsetCenter: [0, -40],
|
||||
width: 8,
|
||||
length: '15%',
|
||||
icon: 'triangle',
|
||||
itemStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
detail: {
|
||||
offsetCenter: [0, 0],
|
||||
textStyle: {
|
||||
color: "#00FF33",
|
||||
fontSize: 26
|
||||
},
|
||||
},
|
||||
data: [{
|
||||
name: "",
|
||||
value: value
|
||||
}]
|
||||
}]
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function getChart4(value) {
|
||||
let myChart = echarts.init(document.getElementById("chart4"));
|
||||
let option = {
|
||||
series: [{
|
||||
name: '',
|
||||
type: 'gauge',
|
||||
startAngle: 180,
|
||||
endAngle: 0,
|
||||
min: 0,
|
||||
max: 50,
|
||||
center: ['50%', '85%'],
|
||||
radius: 70,
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
width: 10,
|
||||
shadowBlur: 0,
|
||||
color: [
|
||||
[0.2, '#FF0000'],
|
||||
[0.3, '#FFF700'],
|
||||
[0.6, '#00FF33'],
|
||||
[0.7, '#FFF700'],
|
||||
[1, '#FF0000']
|
||||
]
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
show: false
|
||||
},
|
||||
splitLine: {
|
||||
show: false,
|
||||
},
|
||||
splitNumber: 100,
|
||||
axisLabel: { // 刻度值
|
||||
show: true,
|
||||
// splitNumber: 5,
|
||||
formatter: function (value, index) {
|
||||
const arr = [0, 10, 15, 30, 35, 50];
|
||||
if (arr.includes(value)) {
|
||||
return value
|
||||
}
|
||||
},
|
||||
fontSize: 12,
|
||||
distance: -38,//刻度位置
|
||||
color: '#fff'
|
||||
},
|
||||
pointer: {
|
||||
show: true,
|
||||
offsetCenter: [0, -40],
|
||||
width: 8,
|
||||
length: '15%',
|
||||
icon: 'triangle',
|
||||
itemStyle: {
|
||||
color: '#fff'
|
||||
}
|
||||
},
|
||||
detail: {
|
||||
offsetCenter: [0, 0],
|
||||
textStyle: {
|
||||
color: "#00FF33",
|
||||
fontSize: 26
|
||||
},
|
||||
},
|
||||
data: [{
|
||||
name: "",
|
||||
value: value
|
||||
}]
|
||||
}]
|
||||
};
|
||||
myChart.setOption(option, true);
|
||||
}
|
||||
|
||||
function changeFJType() {
|
||||
let nowType = $('#FJ_Type').val();
|
||||
FJType = nowType;
|
||||
getData();
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main"
|
||||
style="width: 538px;height: 822px;background:rgba(0,17,33,0.80);">
|
||||
|
||||
<div style="float:left;width: 100%;height:100%;padding-left: 15px;padding-right: 15px;">
|
||||
<div style="float:left;width: 100%;height: 60px;line-height: 60px;border-bottom: 1px solid #ffffff;">
|
||||
<div style="float:left;width: 200px;height: 100%;font-size: 20px;color: #ffffff;font-weight: 700;">
|
||||
风机系统效率
|
||||
</div>
|
||||
<div style="float:right;width: 120px;height: 100%;">
|
||||
<select id="FJ_Type" onchange="changeFJType();"
|
||||
style="width: 120px;height: 36px;padding-left: 15px;background-color: #1869AE;color: #FFFFFF;border: 1px solid #00cbff;">
|
||||
<option value='0'>一次风机A</option>
|
||||
<option value='1'>一次风机B</option>
|
||||
<option value='2'>一次风机C</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 60px;padding-top: 20px;">
|
||||
<div style="float:left;width: 86px;height: 32px;background: rgba(42,122,255,0.00);color: #ffffff;line-height: 32px;padding-left:15px;background:url(<%=request.getContextPath()%>/IMG/digitalProcess/titleStyle2.png);background-size: 100% 100%;">
|
||||
健康评估
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 25px;text-align: center;line-height: 30px;color: #FFFFFF;">
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
效率
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
特性曲线偏差率
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 20px;text-align: center;line-height: 20px;color: #B8BEBE;font-size: 12px;">
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
(%)
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
(%)
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 60px;text-align: center;line-height: 60px;color: #01FFFF;font-size: 36px;">
|
||||
<div class="FJXL" style="float:left;width: 50%;height: 100%;">
|
||||
</div>
|
||||
<div class="FJPCL" style="float:left;width: 50%;height: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 55px;padding-top: 0px;">
|
||||
<div style="float:left;width: 50%;height: 12px;padding-left: 31px;padding-right: 39px;">
|
||||
<div style="float:left;width:100%;">
|
||||
<div id="triangleMove1" class="triangle" style="float:left;margin-left: 0%;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 12px;padding-left: 31px;padding-right: 39px;">
|
||||
<div style="float:left;width:100%;">
|
||||
<div id="triangleMove2" class="triangle" style="float:left;margin-left: 0%;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 24px;padding-left: 35px;padding-right: 35px;">
|
||||
<div style="float:left;width: 100%;height: 15px;background: #fff700;border-radius: 4px;">
|
||||
<div style="float:left;width: 20%;height: 15px;margin-left:60%;background: #00FF33;border-radius: 4px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 24px;padding-left: 35px;padding-right: 35px;">
|
||||
<div style="float:left;width: 100%;height: 15px;background: #fff700;border-radius: 4px;">
|
||||
<div style="float:left;width: 10%;height: 15px;margin-left:0%;background: #00FF33;border-radius: 4px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 12px;padding-left: 35px;padding-right: 35px;">
|
||||
<div style="float:left;width: 95%;height: 100%;position: relative;">
|
||||
<div style="float:left;position: absolute;height: 100%;color: #FFFFFF;margin-left: 0%;">
|
||||
0
|
||||
</div>
|
||||
<div style="float:left;position: absolute;height: 100%;color: #FFFFFF;margin-left: 60%;">
|
||||
60
|
||||
</div>
|
||||
<div style="float:left;position: absolute;height: 100%;color: #FFFFFF;margin-left: 80%;">
|
||||
80
|
||||
</div>
|
||||
<div style="float:left;position: absolute;height: 100%;color: #FFFFFF;margin-left: 100%;">
|
||||
100
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 12px;padding-left: 35px;padding-right: 35px;">
|
||||
<div style="float:left;width: 95%;height: 100%;position: relative;">
|
||||
<div style="float:left;position: absolute;height: 100%;color: #FFFFFF;margin-left: 0%;">
|
||||
0
|
||||
</div>
|
||||
<div style="float:left;position: absolute;height: 100%;color: #FFFFFF;margin-left: 10%;">
|
||||
10
|
||||
</div>
|
||||
<div style="float:left;position: absolute;height: 100%;color: #FFFFFF;margin-left: 100%;">
|
||||
100
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="alarmSt1"
|
||||
style="display: block;float:left;width: 100%;height: 160px;padding-top: 30px;padding-left: 10px;padding-right: 10px;">
|
||||
<div style="float:left;width: 100%;height: 130px;background: #11283d;border-radius: 2px;">
|
||||
<div style="float:left;width: 100%;height: 36px;background: linear-gradient(0deg,#124574 0%, #2d74b2 100%);border-radius: 2px;padding-left: 15px;padding-top: 4px;">
|
||||
<div style="float:left;width:28px;height: 28px;background:url(<%=request.getContextPath()%>/IMG/digitalProcess/pass.png);background-size: 100% 100%;"></div>
|
||||
<div style="float:left;margin-left:10px;width:150px;height: 28px;line-height: 28px;font-weight: 700;color: #ffffff;">
|
||||
实时报警
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 94px;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="alarmSt2"
|
||||
style="display: none;float:left;width: 100%;height: 160px;padding-top: 30px;padding-left: 10px;padding-right: 10px;">
|
||||
<div style="float:left;width: 100%;height: 130px;background: #410707;border-radius: 2px;">
|
||||
<div style="float:left;width: 100%;height: 36px;background: #C51616;border-radius: 2px;padding-left: 15px;padding-top: 4px;">
|
||||
<div style="float:left;width:28px;height: 28px;background:url(<%=request.getContextPath()%>/IMG/digitalProcess/alarm.png);background-size: 100% 100%;"></div>
|
||||
<div style="float:left;margin-left:10px;width:150px;height: 28px;line-height: 28px;font-weight: 700;color: #ffffff;">
|
||||
风量异常
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 94px;">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 60px;padding-top: 20px;">
|
||||
<div style="float:left;width: 114px;height: 32px;background: rgba(42,122,255,0.00);color: #ffffff;line-height: 32px;padding-left:10px;background:url(<%=request.getContextPath()%>/IMG/digitalProcess/titleStyle2.png);background-size: 100% 100%;">
|
||||
运行参数一览
|
||||
</div>
|
||||
<div style="float:right;width: 100px;height: 36px;background: rgba(24,105,174,0.70);border: 1px solid #00cbff;border-radius: 2px;color: #ffffff;line-height: 36px;text-align: center;">
|
||||
查看曲线 >>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 25px;text-align: center;line-height: 30px;color: #FFFFFF;">
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
风机流量
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
电流
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 20px;text-align: center;line-height: 20px;color: #B8BEBE;font-size: 12px;">
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
(万m3/min)
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
(A)
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 110px;">
|
||||
<div id="chart1" style="float:left;width: 50%;height: 100%;">
|
||||
</div>
|
||||
<div id="chart2" style="float:left;width: 50%;height: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 25px;text-align: center;line-height: 30px;color: #FFFFFF;">
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
频率
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
出口压力
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 20px;text-align: center;line-height: 20px;color: #B8BEBE;font-size: 12px;">
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
(Hz)
|
||||
</div>
|
||||
<div style="float:left;width: 50%;height: 100%;">
|
||||
(KPaG)
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 110px;">
|
||||
<div id="chart3" style="float:left;width: 50%;height: 100%;">
|
||||
</div>
|
||||
<div id="chart4" style="float:left;width: 50%;height: 100%;">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
1664
WebRoot/jsp/digitalProcess/processOperationEvaluation_SDK.jsp
Normal file
1664
WebRoot/jsp/digitalProcess/processOperationEvaluation_SDK.jsp
Normal file
File diff suppressed because it is too large
Load Diff
1483
WebRoot/jsp/digitalProcess/processParametersList.jsp
Normal file
1483
WebRoot/jsp/digitalProcess/processParametersList.jsp
Normal file
File diff suppressed because it is too large
Load Diff
615
WebRoot/jsp/digitalProcess/sludge_screw_pump_SDK.jsp
Normal file
615
WebRoot/jsp/digitalProcess/sludge_screw_pump_SDK.jsp
Normal file
@ -0,0 +1,615 @@
|
||||
<%@ page language="java" pageEncoding="UTF-8" %>
|
||||
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
|
||||
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
|
||||
<%@ page import="com.sipai.entity.base.ServerObject" %>
|
||||
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security" %>
|
||||
<%String contextPath = request.getContextPath();%>
|
||||
<!DOCTYPE html>
|
||||
<!-- <html lang="zh-CN"> -->
|
||||
<!-- BEGIN HEAD -->
|
||||
<head>
|
||||
<title><%= ServerObject.atttable.get("TOPTITLE")%>
|
||||
</title>
|
||||
|
||||
<!-- 引用页头及CSS页-->
|
||||
<jsp:include page="/jsp/inc.jsp"></jsp:include>
|
||||
<style type="text/css">
|
||||
.triangle {
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 8px solid transparent;
|
||||
border-bottom: 8px solid transparent;
|
||||
border-top-color: #FFFFFF;
|
||||
}
|
||||
|
||||
.helpTitle {
|
||||
/*border-bottom: 1px dotted #666;*/
|
||||
color: #333;
|
||||
cursor: help;
|
||||
}
|
||||
|
||||
.helpTitle:hover {
|
||||
color: #FFF;
|
||||
background-color: #3399FF;
|
||||
}
|
||||
|
||||
.helpTitle-content {
|
||||
position: absolute;
|
||||
white-space: pre;
|
||||
top: 10px;
|
||||
left: 850px;
|
||||
padding: 10px;
|
||||
background-color: #333;
|
||||
color: #FFF;
|
||||
border-radius: 5px;
|
||||
font-size: 14px;
|
||||
z-index: 9999;
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
|
||||
let FJType = '0';
|
||||
let beginTimeStore1 = '';
|
||||
let endTimeStore1 = '';
|
||||
let end_reservationtime = '';
|
||||
|
||||
$(function () {
|
||||
if ('${param.unitId}' != '') {
|
||||
bizid = '${param.unitId}';
|
||||
} else {
|
||||
bizid = unitId;
|
||||
}
|
||||
|
||||
// 给需要提示的元素绑定鼠标悬浮事件
|
||||
$('.helpTitle').hover(function () {
|
||||
// 鼠标悬浮时显示提示内容
|
||||
// var title = $(this).attr('title');
|
||||
var title = "注意事项:\n① 请保证该仓目前没有进泥\n② 每次计算单泵效率,请保证只有一台泵处于运行状态\n③ 记录期间,请保持螺杆泵的频率恒定不变化\n④ 模型以雷达泥位计为准";
|
||||
$(this).attr('data-title', title);
|
||||
$(this).removeAttr('title');
|
||||
$('<div class="helpTitle-content"></div>').text(title).appendTo('body').fadeIn();
|
||||
}, function () {
|
||||
// 鼠标移出时隐藏提示内容
|
||||
$(this).attr('title', $(this).attr('data-title'));
|
||||
$('.helpTitle-content').remove();
|
||||
});
|
||||
|
||||
setInterval(function () {
|
||||
let nowTime = getNowTime().substring(0,19);
|
||||
$('#beginTime').text(nowTime);
|
||||
}, 1000);
|
||||
|
||||
getData();
|
||||
initDate1();
|
||||
initDate2();
|
||||
})
|
||||
|
||||
function initDate1() {
|
||||
var locale = {
|
||||
"format": 'YYYY-MM-DD HH:mm:ss',
|
||||
"separator": " 至 ",
|
||||
"applyLabel": "确定",
|
||||
"cancelLabel": "取消",
|
||||
"fromLabel": "起始时间",
|
||||
"toLabel": "结束时间'",
|
||||
"customRangeLabel": "自定义",
|
||||
"weekLabel": "W",
|
||||
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
|
||||
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
"firstDay": 1
|
||||
};
|
||||
|
||||
beginTimeStore1 = moment().subtract(30, 'days').format('YYYY-MM-DD HH:mm:ss');
|
||||
endTimeStore1 = moment().subtract(0, 'days').format('YYYY-MM-DD HH:mm:ss');
|
||||
$('#reservationtime1').val(beginTimeStore1 + locale.separator + endTimeStore1);
|
||||
|
||||
$('#reservationtime1').daterangepicker({
|
||||
"timePicker": true,
|
||||
"timePicker24Hour": true,
|
||||
"timePickerSeconds": true, //时间显示到秒
|
||||
// "singleDatePicker": true,
|
||||
"linkedCalendars": false,
|
||||
"autoUpdateInput": false,
|
||||
"timePickerIncrement": 1,
|
||||
"locale": locale,
|
||||
"opens": 'right', //日期选择框的弹出位置
|
||||
"drops": 'up', //日期选择框的弹出位置
|
||||
//汉化按钮部分
|
||||
ranges: {
|
||||
// '今日': [moment(), moment().subtract(-1, 'days')],
|
||||
'昨日': [moment().subtract(1, 'days'), moment()],
|
||||
'最近7日': [moment().subtract(7, 'days'), moment()],
|
||||
'本月': [moment().startOf('month'), moment().endOf('month')],
|
||||
'上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
|
||||
},
|
||||
startDate: beginTimeStore1,
|
||||
endDate: endTimeStore1
|
||||
}, function (start, end, label) {
|
||||
beginTimeStore1 = start.format(this.locale.format);
|
||||
endTimeStore1 = end.format(this.locale.format);
|
||||
if (!this.startDate) {
|
||||
this.element.val('');
|
||||
} else {
|
||||
this.element.val(this.startDate.format(this.locale.format) + this.locale.separator + this.endDate.format(this.locale.format));
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
function initDate2() {
|
||||
var locale = {
|
||||
"format": 'YYYY-MM-DD HH:mm:ss',
|
||||
"separator": " 至 ",
|
||||
"applyLabel": "确定",
|
||||
"cancelLabel": "取消",
|
||||
"fromLabel": "起始时间",
|
||||
"toLabel": "结束时间'",
|
||||
"customRangeLabel": "自定义",
|
||||
"weekLabel": "W",
|
||||
"daysOfWeek": ["日", "一", "二", "三", "四", "五", "六"],
|
||||
"monthNames": ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
|
||||
"firstDay": 1
|
||||
};
|
||||
|
||||
end_reservationtime = moment().format('YYYY-MM-DD HH:mm:ss');
|
||||
// endTimeStore1 = moment().subtract(0, 'days').format('YYYY-MM-DD HH:mm:ss');
|
||||
$('#end_reservationtime').val(end_reservationtime);
|
||||
|
||||
$('#end_reservationtime').daterangepicker({
|
||||
"timePicker": true,
|
||||
"timePicker24Hour": true,
|
||||
"timePickerSeconds": true, //时间显示到秒
|
||||
"singleDatePicker": true,
|
||||
"linkedCalendars": false,
|
||||
"autoUpdateInput": false,
|
||||
"timePickerIncrement": 1,
|
||||
"locale": locale,
|
||||
"opens": 'left', //日期选择框的弹出位置
|
||||
"drops": 'down', //日期选择框的弹出位置
|
||||
//汉化按钮部分
|
||||
ranges: {
|
||||
// '今日': [moment(), moment().subtract(-1, 'days')],
|
||||
'昨日': [moment().subtract(1, 'days'), moment()],
|
||||
'最近7日': [moment().subtract(7, 'days'), moment()],
|
||||
'本月': [moment().startOf('month'), moment().endOf('month')],
|
||||
'上月': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
|
||||
},
|
||||
startDate: end_reservationtime,
|
||||
// endDate: endTimeStore1
|
||||
}, function (start, end, label) {
|
||||
end_reservationtime = start.format(this.locale.format);
|
||||
// endTimeStore1 = end.format(this.locale.format);
|
||||
if (!this.startDate) {
|
||||
this.element.val('');
|
||||
} else {
|
||||
this.element.val(this.startDate.format(this.locale.format));
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
function getData() {
|
||||
$.ajax({
|
||||
type: 'GET',
|
||||
url: ext.contextPath + "/digitalProcess/digitalTechnologist/getSDKJspData.do",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
unitId: bizid,
|
||||
jspId: 'primaryFanSysESDK',
|
||||
modelType: FJType,
|
||||
// time:""
|
||||
},
|
||||
async: true,
|
||||
error: function () {
|
||||
return false;
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.length > 0) {
|
||||
console.log(data)
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function changeFJType() {
|
||||
let nowType = $('#FJ_Type').val();
|
||||
FJType = nowType;
|
||||
getData();
|
||||
}
|
||||
|
||||
function changeNowModel(st) {
|
||||
if (st == '1') {
|
||||
$('#timeModel').css("color", "#FFFFFF");
|
||||
$('#timeModel').css("background", "#0AABFF");
|
||||
$('#timeModel').css("border", "1px solid #00cbff");
|
||||
$('#endMudShow').css("display", "none");
|
||||
|
||||
$('#mudModel').css("color", "#00D3FF");
|
||||
$('#mudModel').css("background", "rgba(24,105,174,0.70)");
|
||||
$('#mudModel').css("border", "1px solid rgba(0,203,255,0.30)");
|
||||
} else if (st == '2') {
|
||||
$('#mudModel').css("color", "#FFFFFF");
|
||||
$('#mudModel').css("background", "#0AABFF");
|
||||
$('#mudModel').css("border", "1px solid #00cbff");
|
||||
$('#endMudShow').css("display", "block");
|
||||
|
||||
$('#timeModel').css("color", "#00D3FF");
|
||||
$('#timeModel').css("background", "rgba(24,105,174,0.70)");
|
||||
$('#timeModel').css("border", "1px solid rgba(0,203,255,0.30)");
|
||||
} else if (st == '0') {
|
||||
$('#timeModel').css("color", "#FFFFFF");
|
||||
$('#timeModel').css("background", "#0AABFF");
|
||||
$('#timeModel').css("border", "1px solid #00cbff");
|
||||
$('#endMudShow').css("display", "none");
|
||||
|
||||
$('#mudModel').css("color", "#00D3FF");
|
||||
$('#mudModel').css("background", "rgba(24,105,174,0.70)");
|
||||
$('#mudModel').css("border", "1px solid rgba(0,203,255,0.30)");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body onload="initMenu()" class="hold-transition ${cu.themeclass} sidebar-mini">
|
||||
<div id="mainAlertdiv"></div>
|
||||
<div id="subDiv"></div>
|
||||
|
||||
<div id="main"
|
||||
style="width: 1265px;height: 629px;background:rgba(0,17,33,0.80);border: 1px solid #454545;border-radius: 8px;padding: 20px 25px 20px 25px;">
|
||||
<div style="float: left;width: 60%;height: 100%;">
|
||||
<div style="float: left;width: 100%;height: 38px;">
|
||||
<div style="float: left;width: 108px;height: 100%;color: #ffffff;line-height: 38px;font-size: 18px;">
|
||||
污泥仓选择:
|
||||
</div>
|
||||
<div style="float: left;width: 333px;height: 100%;color: #ffffff;line-height: 38px;font-size: 18px;">
|
||||
<select id="WNSC_Type" onchange="changeWNSCType();"
|
||||
style="width: 333px;height: 38px;padding-left: 15px;background-color:rgba(24,105,174,0.70);color: #FFFFFF;border: 1px solid #00cbff;border-radius: 2px;">
|
||||
<option value='0'>污泥接收仓A – P001A/P001B</option>
|
||||
<option value='1'>污泥接收仓B – P001A/P001B</option>
|
||||
<option value='2'>污泥接收仓C – P001A/P001B</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 702px;height: 423px;background: rgba(12,12,12,0.60);margin-top: 30px;position:relative;">
|
||||
<div style="left:95px;top:92px;width: 82px;height: 51px;background: url(<%=request.getContextPath()%>/IMG/digitalProcess/污泥车.png);background-size: 100% 100%;position: absolute;">
|
||||
</div>
|
||||
<div style="left:210px;top:105px;width: 24px;height: 14px;position: absolute;">
|
||||
<svg t="1692595306070" class="icon" viewBox="0 0 1024 1024" version="1.1" p-id="3289" width="24"
|
||||
height="24">
|
||||
<path d="M47.104 453.632q0-43.008 20.992-57.856t66.048-14.848q20.48 0 64.512 0.512t93.696 0.512 96.768 0.512 74.752 0.512q38.912 1.024 61.44-6.656t22.528-35.328q0-20.48 1.536-48.64t1.536-48.64q1.024-35.84 20.48-45.568t49.152 14.848q30.72 24.576 71.68 58.368t84.992 69.12 86.016 69.632 74.752 59.904q29.696 24.576 30.208 46.592t-28.16 45.568q-29.696 24.576-70.144 56.32t-83.968 65.536-85.504 67.072-74.752 58.88q-35.84 28.672-58.88 21.504t-22.016-44.032l0-24.576 0-29.696q0-15.36-0.512-30.208t-0.512-27.136q0-25.6-15.36-32.256t-41.984-6.656q-29.696 0-77.824-0.512t-100.352-0.512-101.376-0.512-79.872-0.512q-13.312 0-27.648-2.56t-26.112-9.728-18.944-20.992-7.168-37.376q0-27.648-0.512-53.248t0.512-57.344z"
|
||||
p-id="3290" fill="#ffffff"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="left:256px;top:20px;width: 222px;height: 240px;background: url(<%=request.getContextPath()%>/IMG/digitalProcess/接收仓.png);background-size: 100% 100%;position: absolute;">
|
||||
<div style="float:left;color: #FFFFFF;font-size: 16px;font-weight: 700;text-align: center;width: 100%;margin-top: 70px;">
|
||||
污泥接收仓A<br>F001A
|
||||
</div>
|
||||
</div>
|
||||
<div style="left:255px;top:223px;width: 89px;height: 91px;background: url(<%=request.getContextPath()%>/IMG/digitalProcess/接收车.png);background-size: 100% 100%;position: absolute;">
|
||||
</div>
|
||||
<div style="left:290.5px;top:274px;width: 18px;height: 18px;position: absolute;">
|
||||
<svg t="1692596178318" class="icon" viewBox="0 0 1024 1024" version="1.1" p-id="15444" width="18"
|
||||
height="18">
|
||||
<path d="M513.024 65.536q93.184 0 175.616 35.84t143.872 97.28 97.28 143.872 35.84 175.616q0 94.208-35.84 176.64t-97.28 143.872-143.872 97.28-175.616 35.84q-94.208 0-176.64-35.84t-143.872-97.28-97.28-143.872-35.84-176.64q0-93.184 35.84-175.616t97.28-143.872 143.872-97.28 176.64-35.84zM513.024 909.312q80.896 0 152.064-30.72t124.416-83.968 83.968-124.416 30.72-152.064-30.72-152.064-83.968-124.416-124.416-83.968-152.064-30.72q-81.92 0-153.088 30.72t-124.416 83.968-83.968 124.416-30.72 152.064 30.72 152.064 83.968 124.416 124.416 83.968 153.088 30.72zM513.024 190.464q66.56 0 124.928 25.088t102.4 69.12 69.12 102.4 25.088 124.928-25.088 125.44-69.12 102.912-102.4 69.12-124.928 25.088-125.44-25.088-102.912-69.12-69.12-102.912-25.088-125.44 25.088-124.928 69.12-102.4 102.912-69.12 125.44-25.088z"
|
||||
p-id="15445" fill="#1AFF01"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="left:390px;top:223px;width: 89px;height: 91px;background: url(<%=request.getContextPath()%>/IMG/digitalProcess/接收车.png);background-size: 100% 100%;position: absolute;">
|
||||
|
||||
</div>
|
||||
<div style="left:425.5px;top:274px;width: 18px;height: 18px;position: absolute;">
|
||||
<svg t="1692596178318" class="icon" viewBox="0 0 1024 1024" version="1.1" p-id="15444" width="18"
|
||||
height="18">
|
||||
<path d="M513.024 65.536q93.184 0 175.616 35.84t143.872 97.28 97.28 143.872 35.84 175.616q0 94.208-35.84 176.64t-97.28 143.872-143.872 97.28-175.616 35.84q-94.208 0-176.64-35.84t-143.872-97.28-97.28-143.872-35.84-176.64q0-93.184 35.84-175.616t97.28-143.872 143.872-97.28 176.64-35.84zM513.024 909.312q80.896 0 152.064-30.72t124.416-83.968 83.968-124.416 30.72-152.064-30.72-152.064-83.968-124.416-124.416-83.968-152.064-30.72q-81.92 0-153.088 30.72t-124.416 83.968-83.968 124.416-30.72 152.064 30.72 152.064 83.968 124.416 124.416 83.968 153.088 30.72zM513.024 190.464q66.56 0 124.928 25.088t102.4 69.12 69.12 102.4 25.088 124.928-25.088 125.44-69.12 102.912-102.4 69.12-124.928 25.088-125.44-25.088-102.912-69.12-69.12-102.912-25.088-125.44 25.088-124.928 69.12-102.4 102.912-69.12 125.44-25.088z"
|
||||
p-id="15445" fill="#FF0000"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="left:240px;top:320px;width: 120px;height: 60px;position: absolute;">
|
||||
<div style="float:left;width: 100%;height: 30px;color: #FFFFFF;font-size: 16px;font-weight: 700;text-align: center;">
|
||||
P001A
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 30px;background: #000000;border: 1px solid #707070;line-height:30px;">
|
||||
<div style="float:left;width: 35%;height: 100%;text-align: right;color: #ffffff;">
|
||||
频率
|
||||
</div>
|
||||
<div style="float:left;width: 45%;height: 100%;text-align: center;color: #00FF33;">
|
||||
35.5
|
||||
</div>
|
||||
<div style="float:left;width: 20%;height: 100%;text-align: left;color: #b8bebe;">
|
||||
Hz
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="left:375px;top:320px;width: 120px;height: 60px;position: absolute;">
|
||||
<div style="float:left;width: 100%;height: 30px;color: #FFFFFF;font-size: 16px;font-weight: 700;text-align: center;">
|
||||
P001B
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 30px;background: #000000;border: 1px solid #707070;line-height:30px;">
|
||||
<div style="float:left;width: 35%;height: 100%;text-align: right;color: #ffffff;">
|
||||
频率
|
||||
</div>
|
||||
<div style="float:left;width: 45%;height: 100%;text-align: center;color: #00FF33;">
|
||||
0
|
||||
</div>
|
||||
<div style="float:left;width: 20%;height: 100%;text-align: left;color: #b8bebe;">
|
||||
Hz
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="left:500px;top:40px;width: 170px;height: 130px;position: absolute;">
|
||||
<div style="float:left;width: 100%;height: 20px;color: #B1B1B1;text-align: left;">
|
||||
超声波液位计
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 30px;background: #000000;border: 1px solid #707070;line-height:30px;margin-top: 10px;">
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: right;color: #ffffff;">
|
||||
当前泥位
|
||||
</div>
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: center;color: #00FF33;">
|
||||
12.5
|
||||
</div>
|
||||
<div style="float:left;width: 20%;height: 100%;text-align: left;color: #b8bebe;">
|
||||
m
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 30px;background: #000000;border: 1px solid #707070;line-height:30px;margin-top: 10px;">
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: right;color: #ffffff;">
|
||||
起始泥位
|
||||
</div>
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: center;color: #00FF33;">
|
||||
12.5
|
||||
</div>
|
||||
<div style="float:left;width: 20%;height: 100%;text-align: left;color: #b8bebe;">
|
||||
m
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 30px;background: #000000;border: 1px solid #707070;line-height:30px;margin-top: 10px;">
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: right;color: #ffffff;">
|
||||
终止泥位
|
||||
</div>
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: center;color: #00FF33;">
|
||||
10.5
|
||||
</div>
|
||||
<div style="float:left;width: 20%;height: 100%;text-align: left;color: #b8bebe;">
|
||||
m
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="left:500px;top:200px;width: 170px;height: 130px;position: absolute;display: none;">
|
||||
<div style="float:left;width: 100%;height: 20px;color: #B1B1B1;text-align: left;">
|
||||
雷达液位计
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 30px;background: #000000;border: 1px solid #707070;line-height:30px;margin-top: 10px;">
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: right;color: #ffffff;">
|
||||
当前泥位
|
||||
</div>
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: center;color: #00FF33;">
|
||||
12.5
|
||||
</div>
|
||||
<div style="float:left;width: 20%;height: 100%;text-align: left;color: #b8bebe;">
|
||||
m
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 30px;background: #000000;border: 1px solid #707070;line-height:30px;margin-top: 10px;">
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: right;color: #ffffff;">
|
||||
起始泥位
|
||||
</div>
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: center;color: #00FF33;">
|
||||
12.5
|
||||
</div>
|
||||
<div style="float:left;width: 20%;height: 100%;text-align: left;color: #b8bebe;">
|
||||
m
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width: 100%;height: 30px;background: #000000;border: 1px solid #707070;line-height:30px;margin-top: 10px;">
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: right;color: #ffffff;">
|
||||
终止泥位
|
||||
</div>
|
||||
<div style="float:left;width: 40%;height: 100%;text-align: center;color: #00FF33;">
|
||||
10.5
|
||||
</div>
|
||||
<div style="float:left;width: 20%;height: 100%;text-align: left;color: #b8bebe;">
|
||||
m
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 30px;padding-left: 20px;margin-top: 30px;">
|
||||
<div style="float: left;width: 90px;height: 100%;color: #ffffff;line-height: 30px;font-size: 18px;">历史记录:
|
||||
</div>
|
||||
<div style="float: left;width: 350px;height: 100%;color: #ffffff;line-height: 30px;background: rgba(24,105,174,0.70);border: 1px solid #00cbff;border-radius: 2px;">
|
||||
<div style="float:left;width: 20px;height: 20px;margin-left: 5px;margin-top: 5px;">
|
||||
<svg t="1692582451969" class="icon" viewBox="0 0 1024 1024" version="1.1" p-id="15641" width="20"
|
||||
height="20">
|
||||
<path d="M512 960c-246.4 0-448-201.6-448-448s201.6-448 448-448 448 201.6 448 448-201.6 448-448 448z m0-64c211.2 0 384-172.8 384-384s-172.8-384-384-384-384 172.8-384 384 172.8 384 384 384z m32-576v211.2l3.2 3.2 156.8 156.8c12.8 12.8 12.8 32 0 44.8s-32 12.8-44.8 0l-156.8-156.8c-3.2-3.2-22.4-22.4-22.4-35.2v-224c0-19.2 12.8-32 32-32s32 12.8 32 32z"
|
||||
fill="#ffffff" p-id="15642"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="float:left;width:310px;height: 100%;margin-left: 5px;">
|
||||
<input type="text" class="form-control pull-left" id="reservationtime1"
|
||||
style="width:100%;height: 100%;color: #ffffff;background-color: transparent;border: 0px;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float:left;width:70px;height: 100%;margin-left: 20px;color: #ffffff;line-height: 30px;background: rgba(24,105,174,0.70);border: 1px solid #00cbff;border-radius: 2px;cursor: pointer;">
|
||||
<div style="float:left;width: 20px;height: 20px;margin-left: 5px;margin-top: 5px;">
|
||||
<svg t="1692584554915" class="icon" viewBox="0 0 1024 1024" version="1.1" p-id="16800" width="20"
|
||||
height="20">
|
||||
<path d="M512 202.666667a32 32 0 0 0-32-32H256a85.333333 85.333333 0 0 0-85.333333 85.333333v512a85.333333 85.333333 0 0 0 85.333333 85.333333h512a85.333333 85.333333 0 0 0 85.333333-85.333333v-224a32 32 0 0 0-64 0V768a21.333333 21.333333 0 0 1-21.333333 21.333333H256a21.333333 21.333333 0 0 1-21.333333-21.333333V256a21.333333 21.333333 0 0 1 21.333333-21.333333h224a32 32 0 0 0 32-32z"
|
||||
fill="#ffffff" p-id="16801"></path>
|
||||
<path d="M848.469333 361.258667a8.533333 8.533333 0 0 1-0.085333 12.8l-194.218667 171.178666a8.533333 8.533333 0 0 1-14.165333-6.4V448c0-27.434667-25.898667-10.325333-67.370667-3.029333-44.288 7.722667-124.970667 63.018667-164.906666 92.032-6.954667 5.034667-16.170667-1.92-12.928-9.856 18.773333-45.781333 59.008-135.466667 96.981333-164.48C599.594667 280.362667 640 310.869333 640 283.434667V192.853333a8.533333 8.533333 0 0 1 14.250667-6.314666l194.218666 174.72z"
|
||||
fill="#ffffff" p-id="16802"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="float:left;width:28px;height: 100%;margin-left: 5px;color: #FFFFFF;">
|
||||
导出
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 40%;height: 100%;padding-left: 10px;">
|
||||
<div style="float: left;width: 100%;height: 40px;">
|
||||
<div style="float: left;width: 100px;height: 100px;line-height: 38px;font-size: 18px;color: #ffffff;">
|
||||
当前模式:
|
||||
</div>
|
||||
<div id="timeModel" onclick="changeNowModel('1');"
|
||||
style="float: left;width: 100px;height: 38px;line-height: 38px;text-align:center;font-size: 18px;color: #FFFFFF;background: #0AABFF;border: 1px solid #00cbff;border-radius: 2px;cursor: pointer;">
|
||||
时间模式
|
||||
</div>
|
||||
<div id="mudModel" onclick="changeNowModel('2');"
|
||||
style="float: left;width: 100px;height: 38px;line-height: 38px;text-align:center;font-size: 18px;color: #00D3FF;background: rgba(24,105,174,0.70);border: 1px solid rgba(0,203,255,0.30);border-radius: 2px;margin-left: 20px;cursor: pointer;">
|
||||
泥位模式
|
||||
</div>
|
||||
<div id="stopModel" onclick="changeNowModel('0');"
|
||||
style="float: left;width: 100px;height: 38px;line-height: 38px;text-align:center;font-size: 18px;color: #FFFFFF;background: rgba(174,24,24,0.70);border: 1px solid rgba(255,0,0,0.30);border-radius: 2px;margin-left: 20px;cursor: pointer;">
|
||||
紧急停止
|
||||
</div>
|
||||
<div class="helpTitle"
|
||||
style="float: left;width: 18px;height: 18px;margin-left: 10px;margin-top: 10px;">
|
||||
<svg t="1692608718093" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="4032" width="18" height="18">
|
||||
<path d="M512 938.666667c235.648 0 426.666667-191.018667 426.666667-426.666667S747.648 85.333333 512 85.333333 85.333333 276.352 85.333333 512s191.018667 426.666667 426.666667 426.666667z m0 85.333333C229.248 1024 0 794.752 0 512S229.248 0 512 0s512 229.248 512 512-229.248 512-512 512z"
|
||||
fill="#ffffff" p-id="4033"></path>
|
||||
<path d="M520.96 232.106667c-62.293333 0-111.786667 17.92-147.626667 54.613333-36.693333 35.84-54.613333 84.48-54.613333 146.773333h90.453333c0-37.546667 7.68-67.413333 23.04-87.893333 17.066667-23.893333 45.226667-35.84 83.626667-35.84 30.72 0 54.613333 8.533333 71.68 25.6 16.213333 17.066667 24.746667 40.106667 24.746667 69.973333 0 22.186667-7.68 42.666667-23.04 62.293334l-14.506667 16.213333c-52.906667 46.933333-85.333333 81.92-97.28 105.813333-11.093333 22.186667-16.213333 49.493333-16.213333 81.066667v14.506667h91.306666v-14.506667c0-21.333333 4.266667-40.106667 13.653334-57.173333 7.68-15.36 19.626667-29.866667 34.986666-43.52 40.96-34.986667 64.853333-57.173333 72.533334-66.56 20.48-27.306667 31.573333-62.293333 31.573333-104.106667 0-51.2-17.066667-92.16-50.346667-122.026667-34.133333-30.72-78.506667-45.226667-133.973333-45.226666z m-14.506667 499.2c-17.92 0-32.426667 5.12-43.52 17.066666-12.8 11.093333-18.773333 25.6-18.773333 43.52 0 17.066667 5.973333 31.573333 18.773333 43.52 11.093333 11.946667 25.6 17.92 43.52 17.92 17.066667 0 32.426667-5.973333 45.226667-17.066666 11.946667-11.946667 17.92-26.453333 17.92-44.373334 0-17.92-5.973333-32.426667-17.92-43.52-11.946667-11.946667-27.306667-17.066667-45.226667-17.066666z"
|
||||
fill="#ffffff" p-id="4034"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 30px;margin-top: 30px;">
|
||||
<div style="float: left;width: 100px;height: 100%;line-height: 38px;font-size: 18px;color: #ffffff;">
|
||||
开始时间:
|
||||
</div>
|
||||
<div id="beginTime"
|
||||
style="float: left;width: 200px;height: 100%;line-height: 38px;font-size: 18px;color: #0AFA02;">
|
||||
<%-- 2023-07-13 08:00:00--%>
|
||||
</div>
|
||||
<div style="float: left;width: 67px;height: 30px;line-height: 30px;text-align:center;font-size: 14px;color: #FFFFFF;background: rgba(24,105,174,0.70);border: 1px solid #00cbff;border-radius: 2px;margin-left: 20px;margin-top: 4px;cursor: pointer;">
|
||||
开始
|
||||
</div>
|
||||
</div>
|
||||
<div id="endMudShow" style="float: left;width: 100%;height: 30px;margin-top: 20px;display: none;">
|
||||
<div style="float: left;width: 100px;height: 100%;line-height: 38px;font-size: 18px;color: #ffffff;">
|
||||
结束泥位:
|
||||
</div>
|
||||
<div style="float: left;width: 72px;height: 100%;line-height: 38px;font-size: 18px;color: #B1B1B1;">
|
||||
<input type="text" id="endMudLevel"
|
||||
style="width:52px;height: 100%;background-color: transparent;border: 0px;" value="10.5">
|
||||
m
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 30px;margin-top: 20px;">
|
||||
<div style="float: left;width: 100px;height: 100%;line-height: 38px;font-size: 18px;color: #ffffff;">
|
||||
结束时间:
|
||||
</div>
|
||||
<div style="float: left;width: 200px;height: 100%;line-height: 38px;">
|
||||
<input type="text" id="end_reservationtime"
|
||||
style="width:100%;height: 100%;background-color: transparent;border: 0px;font-size: 18px;color: #B1B1B1;box-shadow: none;" readonly>
|
||||
<%-- 2023-07-13 18:00:00--%>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 30px;margin-top: 20px;">
|
||||
<div style="float: left;width: 194px;height: 30px;background: url(<%=request.getContextPath()%>/IMG/digitalProcess/titleStyle3.png);background-size: 100% 100%;position: absolute;">
|
||||
<div style="float:left;width: 20px;height: 20px;margin-left: 5px;margin-top: 5px;">
|
||||
<svg t="1692606074713" class="icon" viewBox="0 0 1024 1024" version="1.1" p-id="19011" width="20"
|
||||
height="20">
|
||||
<path d="M512 0C229.232 0 0 229.232 0 512s229.232 512 512 512 512-229.232 512-512S794.768 0 512 0zM512 928C282.256 928 96 741.744 96 512 96 282.256 282.256 96 512 96l0 416 294.16 294.16C730.88 881.44 626.88 928 512 928z"
|
||||
fill="#ffffff" p-id="19012"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="float:left;width:164px;height: 100%;margin-left: 5px;color: #FFFFFF;font-weight: 700;font-size: 16px;line-height: 30px;">
|
||||
螺杆泵能效计算结果
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 33px;margin-top: 20px;font-size: 18px;">
|
||||
<div style="float: left;width: 160px;height: 100%;color: #FFFFFF;text-align: right;">
|
||||
下降泥位
|
||||
</div>
|
||||
<div style="float: left;width: 120px;height: 100%;color: #01FFFF;text-align: center;">
|
||||
12
|
||||
</div>
|
||||
<div style="float: left;width: 75px;height: 100%;color: #B8BEBE;text-align: left;">
|
||||
m
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 33px;font-size: 18px;">
|
||||
<div style="float: left;width: 160px;height: 100%;color: #FFFFFF;text-align: right;">
|
||||
记录时长
|
||||
</div>
|
||||
<div style="float: left;width: 120px;height: 100%;color: #01FFFF;text-align: center;">
|
||||
5.5
|
||||
</div>
|
||||
<div style="float: left;width: 75px;height: 100%;color: #B8BEBE;text-align: left;">
|
||||
h
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 33px;font-size: 18px;">
|
||||
<div style="float: left;width: 160px;height: 100%;color: #FFFFFF;text-align: right;">
|
||||
螺杆泵编号
|
||||
</div>
|
||||
<div style="float: left;width: 120px;height: 100%;color: #01FFFF;text-align: center;">
|
||||
P001A
|
||||
</div>
|
||||
<div style="float: left;width: 75px;height: 100%;color: #B8BEBE;text-align: left;">
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 33px;font-size: 18px;">
|
||||
<div style="float: left;width: 160px;height: 100%;color: #FFFFFF;text-align: right;">
|
||||
运行频率
|
||||
</div>
|
||||
<div style="float: left;width: 120px;height: 100%;color: #01FFFF;text-align: center;">
|
||||
40
|
||||
</div>
|
||||
<div style="float: left;width: 75px;height: 100%;color: #B8BEBE;text-align: left;">
|
||||
Hz
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 33px;font-size: 18px;">
|
||||
<div style="float: left;width: 160px;height: 100%;color: #FFFFFF;text-align: right;">
|
||||
理论泥量
|
||||
</div>
|
||||
<div style="float: left;width: 120px;height: 100%;color: #01FFFF;text-align: center;">
|
||||
12.33
|
||||
</div>
|
||||
<div style="float: left;width: 75px;height: 100%;color: #B8BEBE;text-align: left;">
|
||||
m³/h
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 33px;font-size: 18px;">
|
||||
<div style="float: left;width: 160px;height: 100%;color: #FFFFFF;text-align: right;">
|
||||
实际泥量估算
|
||||
</div>
|
||||
<div style="float: left;width: 120px;height: 100%;color: #01FFFF;text-align: center;">
|
||||
15.33
|
||||
</div>
|
||||
<div style="float: left;width: 75px;height: 100%;color: #B8BEBE;text-align: left;">
|
||||
m³/h
|
||||
</div>
|
||||
</div>
|
||||
<div style="float: left;width: 100%;height: 33px;font-size: 18px;">
|
||||
<div style="float: left;width: 160px;height: 100%;color: #FFFFFF;text-align: right;">
|
||||
效率
|
||||
</div>
|
||||
<div style="float: left;width: 120px;height: 100%;color: #01FFFF;text-align: center;">
|
||||
80
|
||||
</div>
|
||||
<div style="float: left;width: 75px;height: 100%;color: #B8BEBE;text-align: left;">
|
||||
%
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
<!-- 引入daterangepicker-->
|
||||
<link rel="stylesheet" href="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
|
||||
charset="utf-8"></script>
|
||||
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/daterangepicker.js"
|
||||
charset="utf-8"></script>
|
||||
</html>
|
||||
1016
WebRoot/jsp/digitalProcess/waterIntakeManagement.jsp
Normal file
1016
WebRoot/jsp/digitalProcess/waterIntakeManagement.jsp
Normal file
File diff suppressed because it is too large
Load Diff
1165
WebRoot/jsp/digitalProcess/waterQualityMonitoring.jsp
Normal file
1165
WebRoot/jsp/digitalProcess/waterQualityMonitoring.jsp
Normal file
File diff suppressed because it is too large
Load Diff
2132
WebRoot/jsp/digitalProcess/waterVolumePrediction.jsp
Normal file
2132
WebRoot/jsp/digitalProcess/waterVolumePrediction.jsp
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user