Jason(Fruit Of Eden) 6 лет назад
Родитель
Сommit
c1c95fbe15
6 измененных файлов с 726 добавлено и 500 удалено
  1. 92 491
      dapingmu.html
  2. 2 0
      js/basic.js
  3. 308 0
      js/dapingmu-display.js
  4. 315 0
      js/dapingmu.js
  5. 0 9
      js/lazhang-data.js
  6. 9 0
      js/lazhang-display.js

+ 92 - 491
dapingmu.html

@@ -5,7 +5,7 @@
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=Edge">
     <meta content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" name="viewport">
-    <title>流水线管理页</title>
+    <title>流水线管理页-度彼科技</title>
     <!-- Favicon-->
     <link rel="icon" href="favicon.ico" type="image/x-icon">
 
@@ -79,499 +79,100 @@
 
 </head>
 
-<body  class="theme-red" style="height: 100%;background-color: #17253f !important;" onload="startTime()">
-    <section class="content" style="margin: 0 auto;height: 100%">
-        <nav class="navbar" style="background-color: red">
-            <div class="container-fluid">
-                <div class="navbar-header">
-                    <a class="navbar-brand" href="index.html">工厂产能监控系统</a>
+<body class="theme-black" style="background-color: #17253f !important;" onload="startTime()">
+<nav class="navbar" style="background-color: red">
+    <div class="container-fluid">
+        <div class="navbar-header">
+            <a class="navbar-brand" href="index.html">工厂产能监控系统</a>
+        </div>
+        <div style="color:#fff" class="text-center"><img src="images/logo.jpg" style="width: 10%;"> 深圳市度彼电子有限公司</div>
+        <div onclick="get_stop_scheudle()" class="btn btn-warning"> 下班 </div>
+        <font color="#ffffff"><span id="nowDateTimeSpan"></span></font>
+    </div>
+
+</nav>
+<div class="container" style="max-width:none; !important; padding-top:100px;">
+    <div class="alert alert-warning" id="mpAlert" style="display:none">
+    </div>
+    <div class="text-white row">
+        <div class="col-md-4">
+            <div class="text-center">全厂产能统计</div>
+            <table class="table table-bordered text-center" style="color: #ffffff">
+                <thead>
+                <tr>
+                    <th scope="col">时间</th>
+                    <th scope="col">良品数</th>
+                    <th scope="col">不良品数</th>
+                    <th scope="col">堆积数</th>
+                    <th scope="col">不良率</th>
+                </tr>
+                </thead>
+                <tbody id="rank-one">
+
+                </tbody>
+            </table>
+        </div>
+        <div class="col-md-8 text-white">
+            <div class="text-center text-lg">本厂今日生产能手榜</div>
+            <div class="row">
+                <div class="col-md-6">
+                    <table class="table table-bordered text-center table-striped">
+                        <thead>
+                        <tr>
+                            <th scope="col" colspan="3">红榜</th>
+
+                        </tr>
+                        <tr>
+                            <th>人员</th>
+                            <th>良品数</th>
+                            <th>不良率</th>
+                        </tr>
+                        </thead>
+                        <tbody id="rank-two">
+                        </tbody>
+                    </table>
+                </div>
+                <div class="col-md-6">
+                    <table class="table table-bordered text-center table-striped">
+                        <thead>
+                        <tr>
+                            <th scope="col" colspan="3">黑榜</th>
+                        </tr>
+                        <tr>
+                            <th>人员</th>
+                            <th>良品数</th>
+                            <th>不良率</th>
+                        </tr>
+                        </thead>
+                        <tbody id="rank-three">
+                        </tbody>
+                    </table>
                 </div>
-                <div style="color: #ffffff"><img src="images/logo.jpg" style="width: 10%"> 深圳市度彼电子有限公司——</div>
-                <font color="#ffffff"><span id="nowDateTimeSpan"></span></font>
-            </div>
-        </nav>
-        <!-- #END# CPU Usage -->
-        <section style="margin-top: 100px;color: #ffffff" >
-            <div style="width: 38%;float: left">
-                <div class="text-center">全厂产能统计</div>
-                <table class="table table-bordered text-center" style="color: #ffffff">
-                    <thead>
-                    <tr>
-                        <th scope="col">时间</th>
-                        <th scope="col">良品数</th>
-                        <th scope="col">不良品数</th>
-                        <th scope="col">堆积数</th>
-                        <th scope="col">不良率</th>
-                    </tr>
-                    </thead>
-                    <tbody id="rank-one">
-
-                    </tbody>
-                </table>
-            </div>
-            <div style="width: 60%;float: right">
-                <div class="text-center">本厂今日生产能手榜</div>
-                <table class="table table-bordered text-center" style="color: #ffffff;width: 50%;float: left" >
-                    <thead>
-                    <tr >
-                        <th scope="col" colspan="4">红榜</th>
-
-                    </tr>
-                    <tr >
-                        <th >人员</th>
-                        <th >良品数</th>
-                        <th >人员</th>
-                        <th >不良率</th>
-
-                    </tr>
-                    </thead>
-                    <tbody id="rank-two">
-                    <tr>
-                        <th scope="row">1</th>
-                        <td>Mark</td>
-                        <td>Otto</td>
-                        <td>@mdo</td>
-
-                    </tr>
-                    <tr>
-                        <th scope="row">2</th>
-                        <td>Jacob</td>
-                        <td>Thornton</td>
-                        <td>@fat</td>
-                    </tr>
-                    <tr>
-                        <th scope="row">2</th>
-                        <td>Jacob</td>
-                        <td>Thornton</td>
-                        <td>@fat</td>
-                    </tr>
-                    <tr>
-                        <th scope="row">3</th>
-                        <td>Larry</td>
-                        <td>the Bird</td>
-                        <td>@twitter</td>
-                    </tr>
-                    </tbody>
-                </table>
-                <table class="table table-bordered text-center" style="color: #ffffff;width: 50%;float: right" >
-                    <thead>
-                    <tr >
-                        <th scope="col" colspan="4">黑榜</th>
-                    </tr>
-                    <tr >
-                        <th >人员</th>
-                        <th >良品数</th>
-                        <th >人员</th>
-                        <th >不良率</th>
-
-                    </tr>
-                    </thead>
-                    <tbody id="rank-three">
-                    <tr>
-                        <th scope="row">1</th>
-                        <td>Mark</td>
-                        <td>Otto</td>
-                        <td>@mdo</td>
-
-                    </tr>
-                    <tr>
-                        <th scope="row">2</th>
-                        <td>Jacob</td>
-                        <td>Thornton</td>
-                        <td>@fat</td>
-                    </tr>
-                    <tr>
-                        <th scope="row">2</th>
-                        <td>Jacob</td>
-                        <td>Thornton</td>
-                        <td>@fat</td>
-                    </tr>
-                    <tr>
-                        <th scope="row">3</th>
-                        <td>Larry</td>
-                        <td>the Bird</td>
-                        <td>@twitter</td>
-                    </tr>
-                    </tbody>
-                </table>
             </div>
-        </section>
-
-        <section style="margin-top: 5em" >
-            <div id="graph-1" ></div>
-            <div class="row" style="height: 6em"></div>
-            <div id="graph-2" ></div>
-        </section>
-
-
-    </section>
-
-    <!-- Jquery Core Js -->
-    <script src="plugins/jquery/jquery.min.js"></script>
-
-    <!-- Bootstrap Core Js -->
-    <script src="plugins/bootstrap/js/bootstrap.js"></script>
-
-    <!-- Select Plugin Js -->
-    <script src="plugins/bootstrap-select/js/bootstrap-select.js"></script>
-
-    <!-- Slimscroll Plugin Js -->
-    <script src="plugins/jquery-slimscroll/jquery.slimscroll.js"></script>
-
-    <!-- Waves Effect Plugin Js -->
-    <script src="plugins/node-waves/waves.js"></script>
-
-    <!-- Jquery CountTo Plugin Js -->
-    <script src="plugins/jquery-countto/jquery.countTo.js"></script>
-
-    <!-- Morris Plugin Js -->
-    <script src="plugins/raphael/raphael.min.js"></script>
-    <script src="plugins/morrisjs/morris.js"></script>
-
-    <!-- ChartJs -->
-    <script src="plugins/chartjs/Chart.bundle.js"></script>
-
-    <!-- Flot Charts Plugin Js -->
-    <script src="plugins/flot-charts/jquery.flot.js"></script>
-    <script src="plugins/flot-charts/jquery.flot.resize.js"></script>
-    <script src="plugins/flot-charts/jquery.flot.pie.js"></script>
-    <script src="plugins/flot-charts/jquery.flot.categories.js"></script>
-    <script src="plugins/flot-charts/jquery.flot.time.js"></script>
-
-    <!-- Sparkline Chart Plugin Js -->
-    <script src="plugins/jquery-sparkline/jquery.sparkline.js"></script>
-
-    <script src="js/admin.js"></script>
-    <!--<script src="js/pages/index.js"></script>-->
-
-    <!-- Demo Js -->
-    <script src="js/demo.js"></script>
-
-    <!--<script src="js/demo.js"></script> -->
-    <script src="js/basic1.js"></script>
-    <script src="js/getparam.js"></script>
-
-    <script>
-        var timeday=new Array("今日" ,"昨日" ,"本周" ,"本月");
-        function getSpotHtml(htmlbody,  i) {
-            htmlbody += "<tr>";
-            htmlbody += `<tr>
-                                            <td>${timeday[i]}</td>
-                                            <td>${hispass[i]}</td>
-                                            <td>${hisfail[i]}</td>
-                                            <td>${hisstack[i]}</td>
-                                            <td>${hisrate[i]}</td>
-                                        </tr>`;
-            htmlbody += "</tr>";
-            return htmlbody;
-        }
-        function getSpotHtml1(htmlbody,  i) {
-            htmlbody += "<tr>";
-            htmlbody += `<tr>
-                                            <td>${goodid[i]}</td>
-                                            <td>${goodpass[i]}</td>
-                                            <td>${goodid[i]}</td>
-                                            <td>${goodfailrate[i]}</td>
-                                        </tr>`;
-            htmlbody += "</tr>";
-            return htmlbody;
-        }
-        function getSpotHtml2(htmlbody,  i) {
-            htmlbody += "<tr>";
-            htmlbody += `<tr>
-                                            <td>${badid[i]}</td>
-                                            <td>${badpass[i]}</td>
-                                            <td>${badid[i]}</td>
-                                            <td>${badfailrate[i]}</td>
-                                        </tr>`;
-            htmlbody += "</tr>";
-            return htmlbody;
-        }
-
-
-        function showEachSpot() {
-            var htmlbody = "", one_person = "";
-            var i = 0;
-            var triGap = 4;
-
-            htmlbody = "";
-            for (i = 0; i < triGap; i++) {
-
-                htmlbody = getSpotHtml(htmlbody, i);
-            }
-            $("#rank-one").html(htmlbody);
-            console.log(htmlbody);
-        }
-        function showEachSpot1() {
-            var htmlbody = "", one_person = "";
-            var i = 0;
-            var triGap = 3;
-
-            htmlbody = "";
-            for (i = 0; i < triGap; i++) {
+        </div>
+    </div>
+
+    <div class="row" style-height="50">
+        <div class="row col-md-12 ">
+            <div id="graph-1" class="chartsize col-md-12" style-height="30"></div>
+        </div>
+        <div class="row col-md-12 ">
+            <div id="graph-2" class="chartsize col-md-12" style-height="30"></div>
+        </div>
+    </div>
+
+</div>
+
+<!-- Modal -->
+<div id="modalContainer"></div>
+
+<!-- Demo Js -->
+<script src="js/basic.js"></script>
+<script src="js/getparam.js"></script>
+<script src="js/resize.js"></script>
+<script src="js/dapingmu.js">    </script>
+<script src="js/dapingmu-display.js">    </script>
 
-                htmlbody = getSpotHtml1(htmlbody, i);
-            }
-            $("#rank-two").html(htmlbody);
-            console.log(htmlbody);
-        }
-        function showEachSpot2() {
-            var htmlbody = "", one_person = "";
-            var i = 0;
-            var triGap = 3;
-
-            htmlbody = "";
-            for (i = 0; i < triGap; i++) {
-
-                htmlbody = getSpotHtml2(htmlbody, i);
-            }
-            $("#rank-three").html(htmlbody);
-            console.log(htmlbody);
-        }
-        var i =0,j=0;
-        function showChart() {
-
-            var stackdata = [];
-            var passdata=[];
-            var faildata=[];
-            var ratedata=[];
-            var failmax=0;
-            var passmax=0;
-            var iddata=[];
-            var summax=0;
-            var stackmax=0;
-            var ratemax=0;
-            for (i = 0; i < passeverynum.length; i++) {
-                passdata.push(passeverynum[i]);
-                faildata.push(faileverynum[i]);
-                stackdata.push(stackeverynum[i]);
-                ratedata.push(failrate[i]);
-                iddata.push(flownum[i]);
-
-                if (ratemax < ratedata[i]) {
-                    ratemax = ratedata[i];
-                }
-                if(passmax<passeverynum[i]){
-                    passmax=passeverynum[i];
-                }
-                if(failmax<passeverynum[i]){
-                    failmax=passeverynum[i];
-                }
-                if(stackmax<passeverynum[i]){
-                    stackmax=passeverynum[i];
-                }
-
-            }
-            if(passmax<failmax)
-            {
-                passmax=failmax
-            }
-            if(passmax<stackmax){
-                passmax=stackmax;
-            }
-
-            showEachSpot();
-            showEachSpot1();
-            showEachSpot2();
-
-            stackAndFailChart = Highcharts.chart('graph-1', {
-                chart: {
-                    zoomType: 'xy',
-                    height: (4 / 16 * 100) + '%' // 16:9 ratio
-                },
-                title: {
-                    text: '各产线今日产能'
-                },
-                credits: {
-                    enabled: false // 禁用版权信息
-                },
-                exporting: {
-                    enabled: false
-                },
-                xAxis: [{
-                    crosshair: true,
-                    labels: {
-                        style: {
-                            fontSize: '1.5em'
-                        }
-                    },
-                    categories: iddata,
-                }],
-                yAxis: [{ // Primary yAxis
-                    labels: {
-                        format: '{value}',
-                        style: {
-                            color: Highcharts.getOptions().colors[0],
-                            fontSize: '1.5em'
-                        }
-                    },
-                    min: 0,
-                    max: passmax*1.5,
-                    title: {
-
-                        style: {
-                            color: Highcharts.getOptions().colors[0],
-                            fontSize: '1em'
-                        }
-                    }
-                },
-                ],
-                tooltip: {
-                    shared: true
-                },
-                legend: {
-                    layout: 'vertical',
-                    align: 'right',
-                    x: -100,
-                    verticalAlign: 'top',
-                    y: 0,
-                    floating: true,
-                    backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
-                },
-                series: [{
-                    name: '良品数',
-                    type: 'column',
-                    data: passdata,
-
-                }, {
-                    name: '不良品数',
-                    type: 'column',
-                    data: faildata,
-
-                },
-                    {
-                        name: '堆积数',
-                        type: 'column',
-                        data: stackdata,
-
-                    },]
-            });
-            FailChart = Highcharts.chart('graph-2', {
-                chart: {
-
-                    height: (4 / 16 * 100) + '%' // 16:9 ratio
-                },
-                title: {
-                    text: '各产线今日不良率'
-                },
-                credits: {
-                    enabled: false // 禁用版权信息
-                },
-                exporting: {
-                    enabled: false
-                },
-                xAxis: [{
-                    crosshair: true,
-                    labels: {
-                        style: {
-                            fontSize: '1.5em'
-                        }
-                    },
-                    categories: iddata,
-                }],
-                yAxis: [ { // Secondary yAxis
-                    title: {
-                        text: '不良率',
-                        style: {
-                            color: 'red',
-                            fontSize: '1em'
-                        }
-                    },
-                    min: 0,
-                    max: 1.5 * ratemax,
-                    labels: {
-                        formatter: function () {
-                            return Math.floor(this.value) + "%";
-                        },
-                        style: {
-                            color: 'red',
-                            fontSize: '20px'
-                        }
-                    },
-
-                }],
-                tooltip: {
-                    shared: true
-                },
-                legend: {
-                    layout: 'vertical',
-                    align: 'right',
-                    x: -120,
-                    verticalAlign: 'top',
-                    y: 0,
-                    floating: true,
-                    backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
-                },
-                series: [{
-                    name: '不良率',
-                    type: 'spline',
-
-                    data: ratedata,
-                    color: 'red',
-                    tooltip: {
-                        valueSuffix: '%'
-                    }
-                }]
-            });
-
-        }
-        function updateChart() {
-            var stackdata = [];
-            var passdata=[];
-            var faildata=[];
-            var ratedata=[];
-            var failmax=0;
-            var passmax=0;
-            var iddata=[];
-            var summax=0;
-            var stackmax=0;
-            var ratemax=0;
-            for (i = 0; i < passeverynum.length; i++) {
-                passdata.push(passeverynum[i]);
-                faildata.push(faileverynum[i]);
-                stackdata.push(stackeverynum[i]);
-                ratedata.push(failrate[i]);
-                iddata.push(flownum[i]);
-                if (ratemax < ratedata[i]) {
-                    ratemax = ratedata[i];
-                }
-                if(passmax<passeverynum[i]){
-                    passmax=passeverynum[i];
-                }
-                if(failmax<passeverynum[i]){
-                    failmax=passeverynum[i];
-                }
-                if(stackmax<passeverynum[i]){
-                    stackmax=passeverynum[i];
-                }
-
-            }
-            if(passmax<failmax)
-            {
-                passmax=failmax
-            }
-            if(passmax<stackmax){
-                passmax=stackmax;
-            }
-
-
-            // https://api.hcharts.cn/highcharts#Series.addPoint;
-            stackAndFailChart.series[0].setData(passdata);
-            stackAndFailChart.series[1].setData(faildata);
-            stackAndFailChart.series[2].setData(stackdata);
-            FailChart.series[0].setData(ratedata);
-
-
-             showEachSpot();
-            showEachSpot1();
-            showEachSpot2();
-        }
-
-        var stackAndFailChart = null;
-        var FailChart = null;
-
-        $(document).ready(on_document_load);
-    </script>
 </body>
 
 </html>

+ 2 - 0
js/basic.js

@@ -135,6 +135,8 @@ function check_if_success(a,b){
     if(a.ret === "10000") {
         return true;
     }else{
+        console.trace();
+        console.error(b);
         console.error(JSON.stringify(a));
         send_alert("查询失败 : 请参阅控制台输出! ");
     }

+ 308 - 0
js/dapingmu-display.js

@@ -0,0 +1,308 @@
+var timeday = new Array("今日", "昨日", "本周", "本月");
+
+function getSpotHtml(htmlbody, i) {
+    htmlbody += "<tr>";
+    htmlbody += `<tr>
+                    <td>${timeday[i]}</td>
+                    <td>${hispass[i]}</td>
+                    <td>${hisfail[i]}</td>
+                    <td>${hisstack[i]}</td>
+                    <td>${hisrate[i]}</td>
+                </tr>`;
+    htmlbody += "</tr>";
+    return htmlbody;
+}
+
+function getSpotHtml1(htmlbody, i) {
+    htmlbody += "<tr>";
+    htmlbody += `<tr>
+                    <td>${goodid[i]}</td>
+                    <td>${goodpass[i]}</td>
+                    <td>${goodfailrate[i]}</td>
+                </tr>`;
+    htmlbody += "</tr>";
+    return htmlbody;
+}
+
+function getSpotHtml2(htmlbody, i) {
+    htmlbody += "<tr>";
+    htmlbody += `<tr>
+                    <td>${badid[i]}</td>
+                    <td>${badpass[i]}</td>
+                    <td>${badfailrate[i]}</td>
+                </tr>`;
+    htmlbody += "</tr>";
+    return htmlbody;
+}
+
+
+function showEachSpot() {
+    var htmlbody = "", one_person = "";
+    var i = 0;
+    var triGap = 4;
+
+    htmlbody = "";
+    for (i = 0; i < triGap; i++) {
+        htmlbody = getSpotHtml(htmlbody, i);
+    }
+    $("#rank-one").html(htmlbody);
+    console.log(htmlbody);
+}
+
+function showEachSpot1() {
+    var htmlbody = "", one_person = "";
+    var i = 0;
+    var triGap = 3;
+
+    htmlbody = "";
+    for (i = 0; i < triGap; i++) {
+
+        htmlbody = getSpotHtml1(htmlbody, i);
+    }
+    $("#rank-two").html(htmlbody);
+    console.log(htmlbody);
+}
+
+function showEachSpot2() {
+    var htmlbody = "", one_person = "";
+    var i = 0;
+    var triGap = 3;
+
+    htmlbody = "";
+    for (i = 0; i < triGap; i++) {
+
+        htmlbody = getSpotHtml2(htmlbody, i);
+    }
+    $("#rank-three").html(htmlbody);
+    console.log(htmlbody);
+}
+
+var i = 0, j = 0;
+
+function showChart() {
+
+    var stackdata = [];
+    var passdata = [];
+    var faildata = [];
+    var ratedata = [];
+    var failmax = 0;
+    var passmax = 0;
+    var iddata = [];
+    var summax = 0;
+    var stackmax = 0;
+    var ratemax = 0;
+    for (i = 0; i < passNumber.length; i++) {
+        passdata.push(passNumber[i]);
+        faildata.push(failNumber[i]);
+        stackdata.push(stackeverynum[i]);
+        ratedata.push(failrate[i]);
+        iddata.push(flownum[i]);
+
+        if (ratemax < ratedata[i]) {
+            ratemax = ratedata[i];
+        }
+        if (passmax < passNumber[i]) {
+            passmax = passNumber[i];
+        }
+        if (failmax < passNumber[i]) {
+            failmax = passNumber[i];
+        }
+        if (stackmax < passNumber[i]) {
+            stackmax = passNumber[i];
+        }
+
+    }
+    if (passmax < failmax) {
+        passmax = failmax
+    }
+    if (passmax < stackmax) {
+        passmax = stackmax;
+    }
+
+    showEachSpot();
+    showEachSpot1();
+    showEachSpot2();
+
+    stackAndFailChart = Highcharts.chart('graph-1', {
+        chart: {
+            zoomType: 'xy',
+            height: (4 / 16 * 100) + '%' // 16:9 ratio
+        },
+        title: {
+            text: '各产线今日产能'
+        },
+        credits: {
+            enabled: false // 禁用版权信息
+        },
+        exporting: {
+            enabled: false
+        },
+        xAxis: [uaxv],
+        yAxis: [{ // Primary yAxis
+            labels: {
+                format: '{value}',
+                style: {
+                    color: Highcharts.getOptions().colors[0],
+                    fontSize: '1.5em'
+                }
+            },
+            min: 0,
+            max: passmax * 1.5,
+            title: {
+
+                style: {
+                    color: Highcharts.getOptions().colors[0],
+                    fontSize: '1em'
+                }
+            }
+        },
+        ],
+        tooltip: {
+            shared: true
+        },
+        legend: {
+            layout: 'vertical',
+            align: 'right',
+            x: -100,
+            verticalAlign: 'top',
+            y: 0,
+            floating: true,
+            backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
+        },
+        series: [{
+            name: '良品数',
+            type: 'column',
+            data: passdata,
+
+        }, {
+            name: '不良品数',
+            type: 'column',
+            data: faildata,
+
+        },
+            {
+                name: '堆积数',
+                type: 'column',
+                data: stackdata,
+
+            },]
+    });
+    FailChart = Highcharts.chart('graph-2', {
+        chart: {
+            height: (4 / 16 * 100) + '%' // 16:9 ratio
+        }, title: {
+            text: '各产线今日不良率'
+        }, credits: {
+            enabled: false // 禁用版权信息
+        }, exporting: {
+            enabled: false
+        }, xAxis: [uaxv],
+        yAxis: [{ // Secondary yAxis
+            title: {
+                text: '不良率',
+                style: {
+                    color: 'red',
+                    fontSize: '1em'
+                }
+            },
+            min: 0,
+            max: 1.5 * ratemax,
+            labels: {
+                formatter: function () {
+                    return Math.floor(this.value) + "%";
+                },
+                style: {
+                    color: 'red',
+                    fontSize: '20px'
+                }
+            },
+
+        }],
+        tooltip: {
+            shared: true
+        },
+        legend: {
+            layout: 'vertical',
+            align: 'right',
+            x: -120,
+            verticalAlign: 'top',
+            y: 0,
+            floating: true,
+            backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
+        },
+        series: [{
+            name: '不良率',
+            type: 'spline',
+
+            data: ratedata,
+            color: 'red',
+            tooltip: {
+                valueSuffix: '%'
+            }
+        }]
+    });
+
+}
+
+function updateChart() {
+    var stackdata = [];
+    var passdata = [];
+    var faildata = [];
+    var ratedata = [];
+    var failmax = 0;
+    var passmax = 0;
+    var iddata = [];
+    var summax = 0;
+    var stackmax = 0;
+    var ratemax = 0;
+    for (i = 0; i < passNumber.length; i++) {
+        passdata.push(passNumber[i]);
+        faildata.push(failNumber[i]);
+        stackdata.push(stackeverynum[i]);
+        ratedata.push(failrate[i]);
+        iddata.push(flownum[i]);
+        if (ratemax < ratedata[i]) {
+            ratemax = ratedata[i];
+        }
+        if (passmax < passNumber[i]) {
+            passmax = passNumber[i];
+        }
+        if (failmax < passNumber[i]) {
+            failmax = passNumber[i];
+        }
+        if (stackmax < passNumber[i]) {
+            stackmax = passNumber[i];
+        }
+    }
+    if (passmax < failmax) {
+        passmax = failmax
+    }
+    if (passmax < stackmax) {
+        passmax = stackmax;
+    }
+
+
+    // https://api.hcharts.cn/highcharts#Series.addPoint;
+    stackAndFailChart.series[0].setData(passdata);
+    stackAndFailChart.series[1].setData(faildata);
+    stackAndFailChart.series[2].setData(stackdata);
+    FailChart.series[0].setData(ratedata);
+
+
+    showEachSpot();
+    showEachSpot1();
+    showEachSpot2();
+}
+
+var stackAndFailChart = null;
+var FailChart = null;
+
+var uaxv = {
+    crosshair: true,
+    labels: {
+        style: {
+            fontSize: '1.5em'
+        }
+    },
+    categories: iddata,
+};

+ 315 - 0
js/dapingmu.js

@@ -0,0 +1,315 @@
+var passNumber = [];
+var failNumber = [];
+var failrate = [];
+var stackeverynum = [];
+var failnum = 0;
+var num = 0;
+var hispass = [];
+var hisfail = [];
+var hisstack = [];
+var hisrate = [];
+var goodpass = [];
+var goodid = [];
+var goodfailrate = [];
+var badpass = [];
+var badid = [];
+var badfailrate = [];
+var n = 0;
+var flowIds = [];
+var namedata = [];
+var lazhang = {};
+
+
+function page_document_load() {
+    get_data("fcWorkScheduleLoad/get", first_success)
+}
+
+function first_success(obj, sta) {
+    let output = first_parse(this, obj);
+    let i, j, k, z;
+    failnum = 0;
+    let x = 0;
+    let worksum = [];
+    z = 0;
+
+    if (output.list == undefined || output.list.length == 0) {
+        send_alert("没有数据");
+    }
+
+    if (output.list.length > 0) {
+        flowIds[0] = output.list[0].sectorId;
+
+        for (i = 1; i < output.list.length; i++) {
+            var thisUid = output.list[i].flowId;
+            x = 0;
+            for (j = 0; j < flowIds.length; j++) {
+                if (flowIds[j] === thisUid) {
+                    x = 1;
+                    break;
+                }
+            }
+            if (x === 0) {
+                flowIds.push(thisUid);
+            }
+        }
+
+        j = 0;
+        for (k = 0; k < flowIds.length; k++) {
+            var uid = flowIds[k];
+            z = 0;
+            passNumber[k] = 0;
+            failNumber[k] = 0;
+            stackeverynum[k] = 0;
+            for (i = 0; i < output.list.length; i++) {
+                if (uid === output.list[i].flowId) {
+                    passNumber[k] = output.list[i].passNum + passNumber[j];
+                    failNumber[k] = output.list[i].failNum + failNumber[j];
+                    stackeverynum[k] = output.list[i].due + stackeverynum[j];
+                    z++;
+                }
+            }
+            if (failNumber[k] + passNumber[k] == 0) {
+                failrate[k] = 0;
+            }
+            else {
+                failrate[k] = failNumber[k] / (failNumber[k] + passNumber[k]) * 100;
+
+            }
+        }
+    }
+
+
+    for (i = 1; i <= 3; i++) {
+        load_flows_history_data(i);
+    }
+    showChart();
+    lazhang.timer = setInterval(request_data_realtime, 1000);
+
+}
+
+function request_data_realtime() {
+    get_data("fcWorkScheduleLoad/get", realtime_success);
+    //load_flows_history_realtime_data();
+    load_table_red_rank();
+    load_table_black_rank();
+}
+
+function load_flows_history_data(nnm) {
+    get_data("fcBiFactoryDaily/list?type=" + nnm, history_success);
+}
+
+function load_flows_history_realtime_data() {
+    get_data("fcBiFactoryDaily/list?type=1" , history_success);
+}
+
+function load_table_red_rank() {
+    get_data("fcBiWorkerDaily/get?type=0&limit=3", on_red_rank_success);
+}
+
+function load_table_black_rank() {
+    get_data("fcBiWorkerDaily/get?type=4&limit=3", on_black_rank_success);
+
+}
+
+function get_stop_scheudle() {
+    location.href='denglu.html';
+}
+
+
+function history_success(obj, sta) {
+    var history = first_parse(this, obj);
+    var i, j, t;
+    console.log(" history : ");
+    console.log(history);
+    if (this.url.indexOf("type=1") >= 0) {
+        t = 1;
+    } else if (this.url.indexOf("type=2") >= 0) {
+        t = 2;
+    } else if (this.url.indexOf("type=3") >= 0) {
+        t = 3;
+    } else {
+        t = 0;
+    }
+
+    if (t == 2 || t == 3) {
+        hispass[t] = 0;
+        hisfail[t] = 0;
+        hisstack[t] = 0;
+        hisrate[t] = 0;
+        for (i = 0; i < history.length; i++) {
+            hispass[t] = history[i].passNum + hispass[t];
+            hisfail[t] = history[i].failNum + hisfail[t];
+            hisstack[t] = history[i].avgDue + hisstack[t];
+        }
+        if (history.length != 1) {
+            if (hispass[t] + hisfail[t] == 0) {
+                hisrate[t] = 0;
+            } else {
+                hisrate[t] = Math.floor(hisfail[t] / (hispass[t] + hisfail[t]) * 10000) / 100;
+            }
+        }
+    } else if (t == 1) {
+        hispass[1] = history[0].passNum;
+        hisfail[1] = history[0].failNum;
+        hisstack[1] = history[0].avgDue;
+        if (hispass[1] + hisfail[1] == 0) {
+            hisrate[1] = 0;
+        } else {
+            hisrate[1] = Math.floor(hisfail[1] / (hispass[1] + hisfail[1]) * 10000) / 100;
+        }
+    }
+
+    hispass[0] = history[history.length - 1].passNum;
+    hisfail[0] = history[history.length - 1].failNum;
+    hisstack[0] = history[history.length - 1].avgDue;
+    if (hispass[0] + hisfail[0] == 0) {
+        hisrate[0] = 0;
+    } else {
+        hisrate[0] = Math.floor(hisfail[0] / (hispass[0] + hisfail[0]) * 10000) / 100;
+    }
+
+}
+
+function on_red_rank_success(obj, sta) {
+    var redchart = first_parse(this, obj);
+    var i, j;
+    i = j = 0;
+    console.log(" redchart : ");
+    console.log(redchart);
+    for (i = 0; i < redchart.list.length; i++) {
+        goodid[i] = getUserName(redchart.list[i].workerId);
+        goodpass[i] = redchart.list[i].passNum;
+        goodfailrate[i] = redchart.list[i].failRate / 100;
+    }
+
+
+}
+
+function on_black_rank_success(obj, sta) {
+    var blackchart = first_parse(this, obj);
+    var i, j;
+    i = j = 0;
+    console.log(" black chart : ");
+    console.log(blackchart);
+
+    for (i = 0; i < blackchart.list.length; i++) {
+        badid[i] = getUserName(blackchart.list[i].workerId);
+        badpass[i] = blackchart.list[i].passNum;
+        badfailrate[i] = blackchart.list[i].failRate / 100;
+    }
+
+
+}
+
+function add_success(obj, sta) {
+    var history1 = first_parse(this, obj);
+    var i, j;
+    console.log(" history1 : ");
+    console.log(history1);
+    hispass[t] = 0;
+    hisfail[t] = 0;
+    hisstack[t] = 0;
+    hisrate[t] = 0;
+    var lengthnum = history1.length - 1;
+    for (i = lengthnum; i < history1.length; i++) {
+        hispass[t] = history1[i].passNum + hispass[t];
+        hisfail[t] = history1[i].failNum + hisfail[t];
+        hisstack[t] = history1[i].avgDue + hisstack[t];
+        hisrate[t] = history1[i].failRate;
+        hisrate[t] = hisrate[t] / 100;
+    }
+
+    if (hispass[t] + hisfail[t] == 0) {
+        hisrate[t] = 0;
+    }
+    t++;
+
+}
+
+function realtime_success(obj, sta) {
+    var output = first_parse(this, obj);
+    //在这里排序 spo\
+    console.log(" output : ");
+    console.log(output);
+
+    var i, j, k, z;
+    failnum = 0;
+    var x = 0;
+    var worksum = [];
+    var hhp = 0, hhf = 0, hhs = 0;
+
+
+    if (output.list.length > 0) {
+        flowIds[0] = output.list[0].flowId;
+        passNumber[0] = 0;
+        failNumber[0] = 0;
+        stackeverynum[0] = 0;
+        z = 0;
+        for (i = 1; i < output.list.length; i++) {
+            var thisUid = output.list[i].flowId;
+            x = 0;
+            for (j = 0; j < flowIds.length; j++) {
+                if (flowIds[j] === thisUid) {
+                    x = 1;
+                    break;
+                }
+            }
+            if (x === 0) {
+                flowIds.push(thisUid);
+            }
+
+        }
+        j = 0;
+        for (k = 0; k < flowIds.length; k++) {
+            var uid = flowIds[k];
+            z = 0;
+            passNumber[k] = 0;
+            failNumber[k] = 0;
+            stackeverynum[k] = 0;
+            for (i = 0; i < output.list.length; i++) {
+                if (uid === output.list[i].flowId) {
+                    passNumber[k] = output.list[i].passNum + passNumber[k];
+                    failNumber[k] = output.list[i].failNum + failNumber[k];
+                    stackeverynum[k] = output.list[i].due + stackeverynum[k];
+                    z++;
+                }
+            }
+            if (failNumber[k] + passNumber[k] == 0) {
+                failrate[k] = 0;
+            } else {
+                failrate[k] = failNumber[k] / (failNumber[k] + passNumber[k]) * 100;
+            }
+            /*stackeverynum[k]=stackeverynum[k]/z;*/
+            ///
+
+        }
+        output.list.forEach(function (val, fid, arr) {
+            hhp += val.passNum;
+            hhf += val.failNum;
+            hhs += val.due;
+        })
+    }
+
+    hispass[0] = hhp;
+    hisfail[0] = hhf;
+
+    if (output.list.length > 0) {
+        hisstack[0] = hhs / output.list.length;
+    } else {
+        hisstack[0] = 0;
+    }
+
+    if (hispass[0] + hisfail[0] <= 0) {
+        hisrate[0] = 0;
+    } else {
+        hisrate[0] = Math.floor(hisfail[0] / (hispass[0] + hisfail[0]) * 10000) / 100;
+    }
+
+
+    updateChart();
+
+}
+
+
+
+

+ 0 - 9
js/lazhang-data.js

@@ -19,18 +19,9 @@ var sectorID = [];
 var namedata = [];
 var lazhang = {};
 
-
 var scheduleId = utils_get_param("scheduleId");
 var flowId = utils_get_param("flowId");
 
-if (flowId == null || scheduleId == null) {
-    alert("出错啦!请检查参数完整性");
-}
-
-function page_document_load() {
-    get_data("fcWorkScheduleLoad/list?scheduleId=" + scheduleId, first_success)
-}
-
 function first_success(obj, sta) {
     let output = first_parse(this, obj);
     let i, j, k, z;

+ 9 - 0
js/lazhang-display.js

@@ -1,5 +1,14 @@
 var timeday = ["今日", "昨日", "本周", "本月"];
 
+if (flowId == null || scheduleId == null) {
+    send_alert("出错啦!请检查参数完整性");
+}
+
+function page_document_load() {
+    get_data("fcWorkScheduleLoad/list?scheduleId=" + scheduleId, first_success)
+}
+
+
 function getSpotHtml(htmlbody, i) {
     htmlbody += "<tr>";
     htmlbody += `<tr>