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