zhuguifei
2026-03-10 2c1fd10c6fbabb8e9f0e9f07fe66fb36c008e883
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
<%@page import="com.shlanbao.tzsc.pms.md.fixCode.beans.FixCodeBean"%>
<%@page import="com.shlanbao.tzsc.base.mapping.SysModelPermis"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- 引入 echarts.js -->
<script src="../pub/echarts.min.js"></script>
<title>Insert title here</title>
<style type="text/css">
 li{margin:0; padding:2; list-sytle:none}
</style>
</head>
<script type="text/javascript">
var zFixCode=""; //质检Id
var gFixCode=""; //故障统计Id
 
$(function goToCheckModel(){
    $.ajax( {
        url:"${pageContext.request.contextPath}/pms/sysUser/getModel.do",// 跳转到 action
        type:'post',
        cache:false,
        dataType:'json',
        data : {param:"check"},
        success:function(data) {
        //    data = JSON.parse(data);
            if(data!=null && data.length>0){
                 for(var i=0;i<data.length;i++){
                    if("YZSMK0001001"==data[i].type){
                        zFixCode = data[i].type;
                    }
                    if("YZSMK0001002"==data[i].type){
                        gFixCode = data[i].type;
                    }
                 }
                 if("YZSMK0001001"==zFixCode){
                        document.getElementById("zj_1").style.display="block";
                    }else{
                        document.getElementById("zj_1").style.display="none";
                    }
                    if("YZSMK0001002"==gFixCode){
                        document.getElementById("gz_1").style.display="block";
                    }else{
                        document.getElementById("gz_1").style.display="none";
                    }
            }
         },
         error : function() {
              // view("异常!");
              //alert("异常!");
         }
    });
 
})
 
var dialog;
function goToModelAddJsp(){
    dialog = parent.$.modalDialog({
        title : '统计图',
        width : 1270,
        height : 600,
        href : '${pageContext.request.contextPath}/pms/sysUser/goToUserModelJsp.do',
        buttons : [ {
            text : '保存',
            iconCls:'icon-standard-disk',
            handler : function() {
                var f = dialog.find('#form');
                if(f.form("validate")){
                    $.post("${pageContext.request.contextPath}/pms/sysUser/updateModelPremis.do",f.form("getData"),function(json){
                        if (json.success) {
                            $.messager.show('提示', json.msg, 'info');
                            dialog.dialog('destroy');
                            getAllWorkOrder();
                        }else{
                            $.messager.show('提示', json.msg, 'error');
                        }
                    },"JSON");
                }
 
            }
        } ]
    });
}
</script>
<body>
<div style="width: 100%; height: 800px; OVERFLOW-Y: auto; OVERFLOW-X:hidden;">
   <!--  <a style="margin-left:1000px; margin-top:50px;"  onclick="goToModelAddJsp();" href="javascript:void(0);" class="easyui-linkbutton" data-options="iconCls:'icon-standard-add',plain:true">编辑</a>
     --><div id="zj_1" style="width: 100%">
        <h2 style="text-align: center;">在线监测数据统计图</h2>
        <!-- 显示Echarts图表 -->
        <div style="height: 450px;display: block;width: 1660px;" id="main"></div>
    </div>
    <div id="gz_1">
        <h2 style="text-align: center;">生产实绩故障数据统计图</h2>
        <div id="mainBar" style="height:450px;  width: 1660px"></div>
    </div>
</div>
    <script type="text/javascript">
 
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById('main'));
    // 指定图表的配置项和数据
    var option = {
        tooltip: {
            trigger: 'axis', //坐标轴触发提示框,多用于柱状、折线图中
            /*
             控制提示框内容输出格式
            formatter: '{b0}<br/><font color=#FF3333>&nbsp;●&nbsp;</font>{a0} : {c0} ℃ ' +
                           '<br/><font color=#53FF53>●&nbsp;</font>{a1} : {c1} % ' +
                           '<br/><font color=#68CFE8>&nbsp;●&nbsp;</font>{a3} : {c3} mm ' +
                           '<br/><font color=#FFDC35>&nbsp;●&nbsp;</font>{a4} : {c4} m/s ' +
                           '<br/><font color=#B15BFF>&nbsp;&nbsp;&nbsp;&nbsp;●&nbsp;</font>{a2} : {c2} hPa '
            */
        },
 
        dataZoom: [
             {
                 type: 'slider',    //支持鼠标滚轮缩放
                 start: 0,            //默认数据初始缩放范围为10%到90%
                 end: 100
             },
             {
                 type: 'inside',    //支持单独的滑动条缩放
                 start: 0,            //默认数据初始缩放范围为10%到90%
                 end: 100
             }
        ],
 
        color:[
               '#FF3333',    //重量平均数
               '#53FF53',    //圆周平均数
               '#B15BFF',    //圆度平均数
               '#FFCCCF',    //长度平均数
               '#FFDC35',   //吸阻平均数
               '#63CEEC',    //总通风率
               '#E93EFF'    //硬度
               ],
       toolbox : {
                   //显示策略,可选为:true(显示) | false(隐藏),默认值为false
                   show : true,
                   //启用功能,目前支持feature,工具箱自定义功能回调处理
           orient:'vertical',
           x: 'right',
           y:'center',
                   feature : {
                       //辅助线标志
                       mark : {
                           show : true
                       },
                       //dataZoom,框选区域缩放,自动与存在的dataZoom控件同步,分别是启用,缩放后退
                       dataZoom : {
                           show : true,
                           title : {
                               dataZoom : '区域缩放',
                               dataZoomReset : '区域缩放后退'
                           }
                       },
                       //数据视图,打开数据视图,可设置更多属性,readOnly 默认数据视图为只读(即值为true),可指定readOnly为false打开编辑功能
                       dataView : {
                           show : true,
                           readOnly : true
                       },
                       //magicType,动态类型切换,支持直角系下的折线图、柱状图、堆积、平铺转换
                       magicType : {
                           show : true,
                           type : [ 'line', 'bar' ]
                       },
                       //restore,还原,复位原始图表
                       restore : {
                           show : true
                       },
                       //saveAsImage,保存图片(IE8-不支持),图片类型默认为'png'
                       saveAsImage : {
                           show : true
                       }
                   }
               },
        xAxis:  {    //X轴
            type : 'category',
            data : []    //先设置数据值为空,后面用Ajax获取动态数据填入
        },
        yAxis : [    //Y轴(这里我设置了两个Y轴,左右各一个)
                    {
                        //第一个(左边)Y轴,yAxisIndex为0
                         type : 'value',
                         name : 'SD值',
                         /* max: 120,
                         min: -40, */
                         axisLabel : {
                             formatter: '{value}'    //控制输出格式
                         }
                     }
 
        ],
        series : [    //系列(内容)列表
                    {
                        name:'重量',
                        type:'line',    //折线图表示(生成温度曲线)
                        symbol:'emptycircle',    //设置折线图中表示每个坐标点的符号;emptycircle:空心圆;emptyrect:空心矩形;circle:实心圆;emptydiamond:菱形
                        data:[]        //数据值通过Ajax动态获取
                    },
 
                    {
                        name:'圆周',
                        type:'line',
                        symbol:'emptyrect',
                        data:[]
                    },
 
                    {
                        name:'圆度)',
                        type:'line',
                        symbol:'circle',    //标识符号为实心圆
                        data:[]
                    },
 
                    {
                        name:'长度',
                        type:'line',        //柱状图表示
                        //barMinHeight: 10,    //柱条最小高度,可用于防止某数据项的值过小而影响交互
                        /* label: {    //显示值
                            normal: {
                                show: true,
                                position: 'top'
                            }
                        }, */
                        data:[]
                    },
 
                    {
                        name:'吸阻',
                        type:'line',
                        symbol:'emptydiamond',
                        data:[]
                    },
                    {
                        name:'通风率',
                        type:'line',
                        symbol:'emptydiamond',
                        data:[]
                    },
                    {
                        name:'硬度',
                        type:'line',
                        symbol:'emptydiamond',
                        data:[]
                    }
        ]
    };
 
    myChart.showLoading();    //数据加载完之前先显示一段简单的loading动画
 
     var weightAvg=[];        //重量平均值
     var cirAvg=[];        //圆周平均值
     var roundAvg=[];        //圆度平均值
     var lenAvg=[];        //长度平均值
     var xzAvg=[];    //吸阻平均值
     var ventsAvg=[];        //总通风率平均值
     var hdAvg=[];        //硬度平均值
     var dates=[];        //时间数组
     $.ajax({    //使用JQuery内置的Ajax方法
     type : "post",        //post请求方式
     async : true,        //异步请求(同步请求将会锁住浏览器,用户其他操作必须等待请求完成才可以执行)
     url : "${pageContext.request.contextPath}/pms/onlineCheck/getJson.do",    //请求发送到ShowInfoIndexServlet处
     data : {param:"A0001"},        //请求内包含一个key为name,value为A0001的参数;服务器接收到客户端请求时通过request.getParameter方法获取该参数值
     dataType : "JSON",        //返回数据形式为json
     success : function(result) {
        // result = JSON.parse(result);
         //请求成功时执行该函数内容,result即为服务器返回的json对象
         if (result != null && result.length > 0) {
                for(var i=0;i<result.length;i++){
                    weightAvg.push(result[i].weightSD);
                    cirAvg.push(result[i].cirSD);
                    roundAvg.push(result[i].roundSD);
                    lenAvg.push(result[i].lenSD);
                    xzAvg.push(result[i].xzSD);
                    ventsAvg.push(result[i].ventsSD);
                    hdAvg.push(result[i].hdSD);
                    dates.push(result[i].timestamp_);
                }
                myChart.hideLoading();    //隐藏加载动画
 
                myChart.setOption({        //载入数据
                    xAxis: {
                        data: dates    //填入X轴数据
                    },
                    series: [    //填入系列(内容)数据
                                  {
                                // 根据名字对应到相应的系列
                                name: '重量',
                                data: weightAvg
                            },
                                  {
                                name: '圆周',
                                data: cirAvg
                            },
                                {
                                name: '圆度',
                                data: roundAvg
                            },
                                {
                                name: '长度',
                                data: lenAvg
                            },
                                {
                            name: '吸阻',
                            data: xzAvg
                           },
                           {
                               name: '通风率',
                               data: ventsAvg
                              },
                           {
                               name: '硬度',
                               data: hdAvg
                              }
                   ]
                });
 
         }
         else {
             //返回的数据为空时显示提示信息
             //alert("图表请求数据为空,可能服务器暂未录入上个班次的观测数据,您可以稍后再试!");
               myChart.hideLoading();
         }
 
    },
     error : function(errorMsg) {
         //请求失败时执行该函数
         //alert("图表请求数据失败,可能是服务器开小差了");
         myChart.hideLoading();
     }
})
myChart.setOption(option);    //载入图表
 
 
 
 
        //--- 折柱 ---
        //基于准备好的dom,初始化echart图表
        var myChart2 = echarts.init(document.getElementById('mainBar'));
        //定义图表option
        var option = {
            //标题,每个图表最多仅有一个标题控件,每个标题控件可设主副标题
 
            //提示框,鼠标悬浮交互时的信息提示
            tooltip : {
                //触发类型,默认('item')数据触发,可选为:'item' | 'axis'
                trigger : 'axis'
            },
 
            //图例,每个图表最多仅有一个图例
            //legend : {
                //显示策略,可选为:true(显示) | false(隐藏),默认值为true
            //    show : true,
                //水平安放位置,默认为全图居中,可选为:'center' | 'left' | 'right' | {number}(x坐标,单位px)
            //    x : 'center',
                //垂直安放位置,默认为全图顶端,可选为:'top' | 'bottom' | 'center' | {number}(y坐标,单位px)
            //    y : 'top',
                //legend的data: 用于设置图例,data内的字符串数组需要与sereis数组内每一个series的name值对应
            //    data : [ '蒸发量', '降水量' ]
            //},
            //工具箱,每个图表最多仅有一个工具箱
            toolbox : {
                //显示策略,可选为:true(显示) | false(隐藏),默认值为false
                show : true,
                orient:'vertical',
                x: 'right',
                y:'center',
                //启用功能,目前支持feature,工具箱自定义功能回调处理
                feature : {
                    //辅助线标志
                    mark : {
                        show : true
                    },
                    //dataZoom,框选区域缩放,自动与存在的dataZoom控件同步,分别是启用,缩放后退
                    dataZoom : {
                        show : true,
                        title : {
                            dataZoom : '区域缩放',
                            dataZoomReset : '区域缩放后退'
                        }
                    },
                    //数据视图,打开数据视图,可设置更多属性,readOnly 默认数据视图为只读(即值为true),可指定readOnly为false打开编辑功能
                    dataView : {
                        show : true,
                        readOnly : true
                    },
                    //magicType,动态类型切换,支持直角系下的折线图、柱状图、堆积、平铺转换
                    magicType : {
                        show : true,
                        type : [ 'line', 'bar' ]
                    },
                    //restore,还原,复位原始图表
                    restore : {
                        show : true
                    },
                    //saveAsImage,保存图片(IE8-不支持),图片类型默认为'png'
                    saveAsImage : {
                        show : true
                    }
                }
            },
            //是否启用拖拽重计算特性,默认关闭(即值为false)
            calculable : true,
            //直角坐标系中横轴数组,数组中每一项代表一条横轴坐标轴,仅有一条时可省略数值
            //横轴通常为类目型,但条形图时则横轴为数值型,散点图时则横纵均为数值型
            xAxis : [ {
                splitLine: {
                    show: false
                },
                //显示策略,可选为:true(显示) | false(隐藏),默认值为true
                show : true,
                //坐标轴类型,横轴默认为类目型'category'
                type : 'category',
                //类目型坐标轴文本标签数组,指定label内容。 数组项通常为文本,'\n'指定换行
                data :[],
                axisLabel :{
                    interval:0 ,
                    formatter:function(val){
                    },
                },
            } ],
            //直角坐标系中纵轴数组,数组中每一项代表一条纵轴坐标轴,仅有一条时可省略数值
            //纵轴通常为数值型,但条形图时则纵轴为类目型
            yAxis : [ {
 
                //坐标轴类型,纵轴默认为数值型'value'
                type : 'value',
                name:'单位:次数/时间',
 
            } ],
 
            //sereis的数据: 用于设置图表数据之用。series是一个对象嵌套的结构;对象内包含对象
            series : [
                    {
                        //系列名称,如果启用legend,该值将被legend.data索引相关
                        name : '停机时间',
                        //图表类型,必要参数!如为空或不支持类型,则该系列数据不被显示。
                        type : 'bar',
                        //系列中的数据内容数组,折线图以及柱状图时数组长度等于所使用类目轴文本标签数组axis.data的长度,并且他们间是一一对应的。数组项通常为数值
                        data :[],
                        itemStyle: {//设置柱状图上面的数字显示格式
                            normal: {
                                label: {
                                    show: true,
                                    position: 'top',
                                    formatter: '{c}'
                                }
                            }
                        },
                        barWidth: 30,//设置柱状图宽度
                    },
                    {
                        //系列名称,如果启用legend,该值将被legend.data索引相关
                        name : '停机次数',
                        //图表类型,必要参数!如为空或不支持类型,则该系列数据不被显示。
                        type : 'bar',
                        //系列中的数据内容数组,折线图以及柱状图时数组长度等于所使用类目轴文本标签数组axis.data的长度,并且他们间是一一对应的。数组项通常为数值
                        data :[],
                        itemStyle: {//设置柱状图上面的数字显示格式
                            normal: {
                                label: {
                                    show: true,
                                    position: 'top',
                                    formatter: '{c}'
                                }
                            }
                        },
                        barWidth: 30,//设置柱状图宽度
                    } ]
        };
 
          var names=[];
            var times=[];
            var times2=[];
            $.ajax( {
                    url:"${pageContext.request.contextPath}/pms/sysUser/getSchStatfaultJson.do",
                    type:'post',
                    async : true,
                    dataType:'json',
                    success:function(result) {
                  //      var result = JSON.parse(data);
                        if(result != null && result.length>0){
                            for(var i=0;i<result.length;i++){
                                names.push(result[i].name);
                                times.push(result[i].time);
                                times2.push(result[i].times);
                           }
                        myChart2.setOption({        //载入数据
                                    xAxis: {
                                        data: names    //填入X轴数据
                                    },
                                    series: [    //填入系列(内容)数据
                                                  {
                                                // 根据名字对应到相应的系列
                                                name: '停机时间',
                                                data: times
                                            },
                                                  {
                                                name: '停机次数',
                                                data: times2
                                            }
                                   ]
                                });
                        }
                     },
                     error : function() {
                          // view("异常!");
                          //alert("异常!");
                     }
                });
        //为echarts对象加载数据
        myChart2.setOption(option);
 
    </script>
</body>
</html>