first commit

This commit is contained in:
2026-01-16 14:13:44 +08:00
commit 903ff8d495
34603 changed files with 8585054 additions and 0 deletions

View 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">&times;</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>

View 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>

File diff suppressed because it is too large Load Diff

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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>

View 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">&times;</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>

View 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">&times;</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>

View 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">&times;</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>

View 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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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">&times;</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>

View 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>

View 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>

View 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>

View 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">&times;</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>

View 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>

File diff suppressed because it is too large Load Diff

View 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>

View 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>

View 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>

File diff suppressed because it is too large Load Diff

View 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>

View 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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff