Parcourir la source

高压成型看板完成

ztl il y a 2 ans
Parent
commit
42474b0434
2 fichiers modifiés avec 172 ajouts et 104 suppressions
  1. 115 52
      wwwroot/main/Procedure/test6/demo.ashx
  2. 57 52
      wwwroot/main/Procedure/test6/demo.html

+ 115 - 52
wwwroot/main/Procedure/test6/demo.ashx

@@ -19,20 +19,27 @@ public class demo : IHttpHandler {
                 //成型缺陷扇形图
                 if (context.Request["m"].ToString() == "defect")
             {
-                string sqlStr = @"SELECT T.DEFECTNAME,T.数量 FROM(									
-                                                SELECT
-	                                                TPD.DEFECTNAME,
-	                                                count(*) AS 数量
-                                                FROM
-	                                                TP_PM_DEFECT TPD
-	                                                LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID 
-                                                WHERE
-	                                                TPD.CREATETIME >= TRUNC( SYSDATE ) 
-	                                                AND TMD.DEFECTTYPEID IN ( 8, 15, 16 ) 
-                                                GROUP BY
-	                                                TPD.DEFECTNAME
-                                                ORDER BY count(*) DESC )T
-                                                WHERE ROWNUM < 4";
+                string sqlStr = @"SELECT
+	                                    T.S_NAME AS 缺陷名称,
+	                                    T.数量 
+                                    FROM
+	                                    (
+	                                    SELECT
+		                                    TMD.S_NAME,
+		                                    count( * ) AS 数量 
+	                                    FROM
+		                                    TP_PM_DEFECT TPD
+		                                    LEFT JOIN TP_MST_DEFECT TMD ON TPD.DEFECTID = TMD.DEFECTID 
+	                                    WHERE
+		                                    TPD.CREATETIME >= TRUNC( SYSDATE ) 
+		                                    AND TMD.DEFECTTYPEID IN ( 8, 15, 16 ) 
+	                                    GROUP BY
+		                                    TMD.S_NAME 
+	                                    ORDER BY
+		                                    count( * ) DESC 
+	                                    ) T 
+                                    WHERE
+	                                    ROWNUM < 4";
                 //直接获取不分页数据
                 DataTable dt = conn.ExecuteDatatable(sqlStr);
                 string jsonStr = new JsonResult(dt).ToJson();
@@ -41,44 +48,100 @@ public class demo : IHttpHandler {
                 //成型折线图
                 if (context.Request["m"].ToString() == "zx")
             {
-                string sqlStr = @"SELECT * FROM (
-                                    --半检数量
-                                    SELECT DISTINCT
-                                        COUNT( TPS.BARCODE ) 半检数量,
-                                        to_char(TPS.CREATETIME, 'yyyymmdd')   as CREATETIME
-                                      FROM
-                                        TP_PM_SEMICHECK TPS
-                                        INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
-                                        LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
-                                      WHERE
-                                         TPGL.HIGHPRESSUREFLAG = 1
-	                                      AND PGD.TESTFLAG = 0
-		                                    AND SUBSTR(TPGL.GROUTINGLINENAME, 1, 4) = 'C05A'
-                                        AND TPS.CREATETIME >= trunc(sysdate-6)
-                                      GROUP BY
-                                        to_char(TPS.CREATETIME, 'yyyymmdd') 
-		                                    ORDER BY to_char(TPS.CREATETIME, 'yyyymmdd') desc) T
-		                                    LEFT JOIN (
-		                                    SELECT DISTINCT
-		                                    --本烧数量
-                                        COUNT( TPPD.BARCODE ) 本烧数量,
-                                        to_char(TPPD.CREATETIME, 'yyyymmdd')   as CREATETIME
-                                      FROM
-                                        TP_PM_PRODUCTIONDATA TPPD
-                                        INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPPD.BARCODE
-                                        LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
-                                      WHERE
-                                         TPGL.HIGHPRESSUREFLAG = 1
-	                                      AND TPPD.PROCEDUREID IN (104)
-		                                    AND TPPD.ISREFIRE = 0
-	                                      AND PGD.TESTFLAG = 0
-		                                    AND TPPD.VALUEFLAG = 1
-		                                    AND TPPD.checkflag = '1'
-		                                    AND SUBSTR(TPGL.GROUTINGLINENAME, 1, 4) = 'C05A'
-                                        AND TPPD.CREATETIME >= trunc(sysdate-6)
-                                      GROUP BY
-                                        to_char(TPPD.CREATETIME, 'yyyymmdd') 
-		                                    ORDER BY to_char(TPPD.CREATETIME, 'yyyymmdd') desc) T1 ON T.CREATETIME = T1.CREATETIME";
+                string sqlStr = @"SELECT
+                                 TO_CHAR(ROUND(T4.半检合格/T4.半检数量,2)* 100,'9,990.00') || '%'  AS 半检合格率,
+                                 TO_CHAR(ROUND(T4.本烧合格/T4.本烧数量,2)* 100,'9,990.00') || '%'  AS 本烧合格率
+                                FROM(
+                                SELECT 
+                                  T.半检数量,
+                                  T.半检数量 - (CASE WHEN T2.半检不合格数量 IS NULL THEN 0 ELSE T2.半检不合格数量 END) AS 半检合格,
+	                                T1.本烧数量,
+	                                T3.本烧不合格数量,
+	                                T1.本烧数量 - T3.本烧不合格数量 AS 本烧合格,
+	                                T.CREATETIME
+                                FROM (
+                                --半检数量
+                                SELECT DISTINCT
+                                    COUNT( TPS.BARCODE ) 半检数量,
+                                    to_char(TPS.CREATETIME, 'yyyymmdd')   as CREATETIME
+                                  FROM
+                                    TP_PM_SEMICHECK TPS
+                                    INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
+                                    LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
+                                  WHERE
+                                     TPGL.HIGHPRESSUREFLAG = 1
+	                                  AND PGD.TESTFLAG = 0
+		                                AND SUBSTR(TPGL.GROUTINGLINENAME, 1, 4) = 'C05A'
+                                    AND TPS.CREATETIME >= trunc(sysdate-6)
+                                  GROUP BY
+                                    to_char(TPS.CREATETIME, 'yyyymmdd') 
+		                                ORDER BY to_char(TPS.CREATETIME, 'yyyymmdd') desc) T
+		                                LEFT JOIN (
+		                                --半检不合格
+		                                SELECT DISTINCT
+                                    NVL(COUNT(TPS.BARCODE),0) 半检不合格数量,
+                                    to_char(TPS.CREATETIME, 'yyyymmdd')   as CREATETIME
+                                  FROM
+                                    TP_PM_SEMICHECK TPS
+                                    LEFT JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPS.BARCODE
+                                    LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
+                                  WHERE
+				                                TPS.GOODSLEVELID IN (13,14)
+		                                AND PGD.TESTFLAG = 0
+                                    AND TPGL.HIGHPRESSUREFLAG = 1
+		                                AND SUBSTR(TPGL.GROUTINGLINENAME, 1, 4) = 'C05A'
+                                    AND TPS.CREATETIME >= trunc(sysdate-6)
+                                  GROUP BY
+                                    to_char(TPS.CREATETIME, 'yyyymmdd') 
+		                                ORDER BY to_char(TPS.CREATETIME, 'yyyymmdd') desc
+		                                )T2 ON T2.CREATETIME = T.CREATETIME
+		                                LEFT JOIN (
+		                                SELECT DISTINCT
+		                                --本烧数量
+                                    COUNT( TPPD.BARCODE ) 本烧数量,
+                                    to_char(TPPD.CREATETIME, 'yyyymmdd')   as CREATETIME
+                                  FROM
+                                    TP_PM_PRODUCTIONDATA TPPD
+                                    INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPPD.BARCODE
+                                    LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
+                                  WHERE
+                                     TPGL.HIGHPRESSUREFLAG = 1
+	                                  AND TPPD.PROCEDUREID IN (104)
+		                                AND TPPD.ISREFIRE = 0
+	                                  AND PGD.TESTFLAG = 0
+		                                AND TPPD.VALUEFLAG = 1
+		                                AND TPPD.checkflag = '1'
+		                                AND SUBSTR(TPGL.GROUTINGLINENAME, 1, 4) = 'C05A'
+                                    AND TPPD.CREATETIME >= trunc(sysdate-6)
+                                  GROUP BY
+                                    to_char(TPPD.CREATETIME, 'yyyymmdd') 
+		                                ORDER BY to_char(TPPD.CREATETIME, 'yyyymmdd') desc) T1 ON T.CREATETIME = T1.CREATETIME
+		                                LEFT JOIN(
+		                                SELECT DISTINCT
+		                                --本烧不合格数量
+                                    COUNT( TPPD.BARCODE ) 本烧不合格数量,
+                                    to_char(TPPD.CREATETIME, 'yyyymmdd')   as CREATETIME
+                                  FROM
+                                    TP_PM_PRODUCTIONDATA TPPD
+                                    INNER JOIN TP_PM_GROUTINGDAILYDETAIL PGD ON PGD.BARCODE = TPPD.BARCODE
+                                    LEFT JOIN TP_PC_GROUTINGLINE TPGL ON TPGL.GROUTINGLINEID = PGD.GROUTINGLINEID
+                                  WHERE
+                                     TPGL.HIGHPRESSUREFLAG = 1
+		                                AND PGD.TESTFLAG = 0
+		                                and TPPD.modeltype IN (-1, -4, -5)  
+		                                and TPPD.CHECKFLAG = 1 
+		                                AND TPPD.GOODSLEVELID IN (6,7)
+	                                  AND TPPD.PROCEDUREID IN (104)
+		                                AND TPPD.ISREFIRE = 0
+		                                AND TPPD.VALUEFLAG = 1
+		                                AND TPPD.checkflag = '1'
+		                                AND SUBSTR(TPGL.GROUTINGLINENAME, 1, 4) = 'C05A'
+                                    AND TPPD.CREATETIME >= trunc(sysdate-6)
+                                  GROUP BY
+                                    to_char(TPPD.CREATETIME, 'yyyymmdd') 
+		                                ORDER BY to_char(TPPD.CREATETIME, 'yyyymmdd') desc
+		                                ) T3 ON T3.CREATETIME = T.CREATETIME 
+                                )T4 ORDER BY CREATETIME DESC";
                 //直接获取不分页数据
                 DataTable dt = conn.ExecuteDatatable(sqlStr);
                 string jsonStr = new JsonResult(dt).ToJson();

+ 57 - 52
wwwroot/main/Procedure/test6/demo.html

@@ -59,32 +59,34 @@
                             <td style="width:4.5%;">合格率</td>
                         </tr>
                     </table>
-                    <div style=" height:580px;overflow:hidden;">
-                        <table id="dayTable_template" style="display:none;">
-                            <tr class="tr_title_warning">
-                                <td style="width:7%;">{成型线}</td>
-                                <td style="width:4.5%;">{工号}</td>
-                                <td style="width:7.5%;font-size:18px;">{产品}</td>
-                                <td style="width:4.5%;">{日注浆数}</td>
-                                <td style="width:4.5%;">{日成型数}</td>
-                                <td style="width:4.5%;">{日注成率}</td>
-                                <td style="width:4.5%;">{日半检数}</td>
-                                <td style="width:4.5%;">{日半检合格数}</td>
-                                <td style="width:4.5%;">{日半检合格率}</td>
-                                <td style="width:4.5%;">{日成检数}</td>
-                                <td style="width:4.5%;">{日成检合格数}</td>
-                                <td style="width:4.5%;">{日成检合格率}</td>
-                                <td style="width:4.5%;">{月注浆数}</td>
-                                <td style="width:4.5%;">{月成型数}</td>
-                                <td style="width:4.5%;">{月注成率}</td>
-                                <td style="width:4.5%;">{月半检数}</td>
-                                <td style="width:4.5%;">{月半检合格数}</td>
-                                <td style="width:4.5%;">{月半检合格率}</td>
-                                <td style="width:4.5%;">{月成检数}</td>
-                                <td style="width:4.5%;">{月成检合格数}</td>
-                                <td style="width:4.5%;">{月成检合格率}</td>
-                            </tr>
-                        </table>
+                    <div style=" height: 580px; overflow: hidden; width: 100%;">
+                        <div>
+                            <table id="dayTable_template" style="display:none;">
+                                <tr class="tr_title_warning" style="height: 60px;">
+                                    <td style="width: 7.1%;  font-size: 14px;">{成型线}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{工号}</td>
+                                    <td style="width: 7.5%; font-size: 14px;">{产品}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{日注浆数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{日成型数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{日注成率}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{日半检数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{日半检合格数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{日半检合格率}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{日成检数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{日成检合格数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{日成检合格率}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{月注浆数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{月成型数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{月注成率}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{月半检数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{月半检合格数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{月半检合格率}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{月成检数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{月成检合格数}</td>
+                                    <td style="width: 4.5%; font-size: 14px;">{月成检合格率}</td>
+                                </tr>
+                            </table>
+                        </div>
                         <table id="dayTable" style="width: 100%; ">
                         </table>
                     </div>
@@ -110,7 +112,6 @@
                     <canvas id="canvasMonthCL" style="-moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; height: 200px; width: 100%"></canvas>
                 </div>
             </div>
-
         </div>
     </div>
 
@@ -179,7 +180,7 @@
             setInterval(function () { DdfectData(); }, 5000);
             ZxData();
             setInterval(function () { ZxData(); }, 5000);
-            
+
         });
 
         function DdfectData() {
@@ -189,7 +190,11 @@
                     var defect1 = parseFloat(json["rows"][0]["数量"]);
                     var defect2 = parseFloat(json["rows"][1]["数量"]);
                     var defect3 = parseFloat(json["rows"][2]["数量"]);
+                    var defectname1 = json["rows"][0]["缺陷名称"];
+                    var defectname2 = json["rows"][1]["缺陷名称"];
+                    var defectname3 = json["rows"][2]["缺陷名称"];
                     window.DefectA.data.datasets[0].data = [defect1, defect2, defect3];
+                    window.DefectA.data.labels = [defectname1, defectname2, defectname3]
                     window.DefectA.update();
                 }
             });
@@ -199,20 +204,20 @@
             $.get("demo.ashx?m=zx", function (data) {
                 var json = JSON.parse(data);
                 if (json["success"] == true) {
-                    var BJ1 = parseFloat(json["rows"][0]["半检数量"]);
-                    var BJ2 = parseFloat(json["rows"][1]["半检数量"]);
-                    var BJ3 = parseFloat(json["rows"][2]["半检数量"]);
-                    var BJ4 = parseFloat(json["rows"][3]["半检数量"]);
-                    var BJ5 = parseFloat(json["rows"][4]["半检数量"]);
-                    var BJ6 = parseFloat(json["rows"][5]["半检数量"]);
-                    var BJ7 = parseFloat(json["rows"][6]["半检数量"]);
-                    var BS1 = parseFloat(json["rows"][0]["本烧数量"]);
-                    var BS2 = parseFloat(json["rows"][1]["本烧数量"]);
-                    var BS3 = parseFloat(json["rows"][2]["本烧数量"]);
-                    var BS4 = parseFloat(json["rows"][3]["本烧数量"]);
-                    var BS5 = parseFloat(json["rows"][4]["本烧数量"]);
-                    var BS6 = parseFloat(json["rows"][5]["本烧数量"]);
-                    var BS7 = parseFloat(json["rows"][6]["本烧数量"]);
+                    var BJ1 = parseFloat(json["rows"][0]["半检合格率"]);
+                    var BJ2 = parseFloat(json["rows"][1]["半检合格率"]);
+                    var BJ3 = parseFloat(json["rows"][2]["半检合格率"]);
+                    var BJ4 = parseFloat(json["rows"][3]["半检合格率"]);
+                    var BJ5 = parseFloat(json["rows"][4]["半检合格率"]);
+                    var BJ6 = parseFloat(json["rows"][5]["半检合格率"]);
+                    var BJ7 = parseFloat(json["rows"][6]["半检合格率"]);
+                    var BS1 = parseFloat(json["rows"][0]["本烧合格率"]);
+                    var BS2 = parseFloat(json["rows"][1]["本烧合格率"]);
+                    var BS3 = parseFloat(json["rows"][2]["本烧合格率"]);
+                    var BS4 = parseFloat(json["rows"][3]["本烧合格率"]);
+                    var BS5 = parseFloat(json["rows"][4]["本烧合格率"]);
+                    var BS6 = parseFloat(json["rows"][5]["本烧合格率"]);
+                    var BS7 = parseFloat(json["rows"][6]["本烧合格率"]);
 
                     window.DayZL.data.datasets[0].data = [BJ1, BJ2, BJ3, BJ4, BJ5, BJ6, BJ7];
                     window.DayZL.data.datasets[1].data = [BS1, BS2, BS3, BS4, BS5, BS6, BS7];
@@ -250,12 +255,12 @@
             //window.DayZL.update();
 
             //成型缺陷top5
-            window.DefectA.data.datasets[0].data = [
-                randomScalingFactor(8),
-                randomScalingFactor(8),
-                randomScalingFactor(8)
-            ];
-            window.DefectA.update();
+            //window.DefectA.data.datasets[0].data = [
+            //    randomScalingFactor(8),
+            //    randomScalingFactor(8),
+            //    randomScalingFactor(8)
+            //];
+            //window.DefectA.update();
             //成检缺陷top5
             window.DefectB.data.datasets[0].data = [
                 randomScalingFactor(8),
@@ -305,7 +310,7 @@
                         pointRadius: 15,
                         data: [0, 0, 0, 0, 0, 0, 0],
                         fill: false,
-                    },  {
+                    }, {
                         label: "一烧",
                         fill: false,
                         backgroundColor: color(window.chartColors.blue).alpha(0.35).rgbString(),
@@ -349,8 +354,8 @@
                             },
                             ticks: {
                                 min: 50,
-                                stepSize: 200,
-                                max: 1000
+                                stepSize: 10,
+                                max: 100
                             }
                         }]
                     }
@@ -363,7 +368,7 @@
             //成型缺陷TOP5===========================================
             window.configDefectA = {
                 data: {
-                    labels: ['缺陷1', '缺陷2', '缺陷3'],
+                    labels: ['1', '2', '3'],
                     datasets: [{
                         label: '工序',
                         backgroundColor: [