From 7ff74f599084561338eef1230db5aa45f74565f8 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 15 四月 2024 18:03:33 +0800
Subject: [PATCH] 1.ERP订单关闭增加单据id 2.MES工单关闭增加源单id关联

---
 VueWebCoreApi/Tools/ScanStartReport.cs |  613 +++++++++++++++++++++----------------------------------
 1 files changed, 239 insertions(+), 374 deletions(-)

diff --git a/VueWebCoreApi/Tools/ScanStartReport.cs b/VueWebCoreApi/Tools/ScanStartReport.cs
index 79e42c5..779e32b 100644
--- a/VueWebCoreApi/Tools/ScanStartReport.cs
+++ b/VueWebCoreApi/Tools/ScanStartReport.cs
@@ -17,11 +17,10 @@
         /// <summary>
         /// 鎵爜淇℃伅涓哄伐鍗�+宸ュ簭鏉$爜
         /// </summary>
-        /// <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
         /// <param name="ordercode">宸ュ崟缂栧彿</param>
         /// <param name="stepcode">宸ュ簭缂栫爜</param>
         /// <returns></returns>
-        public static ToMessage ZZEncodingSeach(string stu_torgcode, string ordercode, string stepcode)
+        public static ToMessage ZZEncodingSeach(string ordercode, string stepcode)
         {
             var sql = "";
             string flwtype = ""; //宸ュ簭灞炴��
@@ -34,48 +33,33 @@
             try
             {
                 //鍒ゆ柇褰撳墠宸ュ崟鏄惁鍏抽棴
-                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode and status='CLOSED'";
+                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and status='CLOSED'";
                 dynamicParams.Add("@ordercode", ordercode);
-                dynamicParams.Add("@stu_torgcode", stu_torgcode);
                 var da0 = DapperHelper.selectdata(sql, dynamicParams);
-                if (da0.Rows.Count > 0) 
+                if (da0.Rows.Count > 0)
                 {
                     mes.code = "300";
                     mes.count = 0;
-                    mes.Message = "褰撳墠宸ュ崟宸插叧闂�,涓嶅厑璁稿紑鎶ュ伐鎿嶄綔!";
-                    mes.data = null;
-                    return mes;
-                }
-
-                //0.鍒ゆ柇褰撳墠宸ュ崟鎵�灞炶溅闂存槸鍚︿负褰撳墠鐧诲綍浜哄憳杞﹂棿
-                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode";
-                dynamicParams.Add("@ordercode", ordercode);
-                dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                var da1 = DapperHelper.selectdata(sql, dynamicParams);
-                if (da1.Rows.Count<=0) 
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.Message = "涓嶆槸鏈溅闂寸敓浜т换鍔�,涓嶅厑璁告搷浣�!";
+                    mes.message = "褰撳墠宸ュ崟宸插叧闂�,涓嶅厑璁稿紑鎶ュ伐鎿嶄綔!";
                     mes.data = null;
                     return mes;
                 }
 
                 //1.鏍规嵁宸ュ崟+宸ュ簭鏌ユ壘褰撳墠宸ュ簭鏄惁棣栭亾宸ュ簭
-                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.isbott,A.isend,L.org_code,L.org_name  
+                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.stepprice,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.isbott,A.isend,L.torg_code,L.torg_name  
                         from TK_Wrk_Step A
                         left join  TStep T on A.step_code=T.stepcode
                         left join  TK_Wrk_Man M on A.wo_code=M.wo_code
                         left join  TMateriel_Info P on M.materiel_code=P.partcode
-                        left join  TOrganization L on M.wkshp_code=L.org_code
+                        left join  TOrganization L on M.wkshp_code=L.torg_code
                         where A.wo_code=@ordercode and A.step_code=@stepcode";
                 dynamicParams.Add("@ordercode", ordercode);
                 dynamicParams.Add("@stepcode", stepcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 if (data.Rows.Count > 0)
                 {
-                    rt.wkshopcode= data.Rows[0]["org_code"].ToString(); //杞﹂棿缂栫爜
-                    rt.wkshopname = data.Rows[0]["org_name"].ToString(); //杞﹂棿鍚嶇О
+                    rt.wkshopcode = data.Rows[0]["torg_code"].ToString(); //杞﹂棿缂栫爜
+                    rt.wkshopname = data.Rows[0]["torg_name"].ToString(); //杞﹂棿鍚嶇О
                     rt.wo_code = data.Rows[0]["WO_CODE"].ToString(); //宸ュ崟鍙�
                     rt.partnumber = data.Rows[0]["PARTCODE"].ToString(); //浜у搧缂栫爜
                     rt.partname = data.Rows[0]["PARTNAME"].ToString(); //浜у搧鍚嶇О
@@ -83,6 +67,7 @@
                     rt.stepcode = data.Rows[0]["STEPCODE"].ToString(); //宸ュ簭缂栫爜
                     rt.stepname = data.Rows[0]["STEPNAME"].ToString(); //宸ュ簭鍚嶇О
                     rt.stepdesc = data.Rows[0]["DESCR"].ToString(); //宸ュ簭鎻忚堪
+                    rt.stepprice= data.Rows[0]["STEPPRICE"].ToString(); //宸ュ簭宸ヤ环
                     rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
 
                     flwtype = data.Rows[0]["FLWTYPE"].ToString();//鑾峰彇宸ュ簭灞炴��
@@ -91,7 +76,7 @@
                     rt.seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
 
                     //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭
-                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
+                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname,A.stepprice from TK_Wrk_Step A
                             left join  TStep T on A.step_code=T.stepcode
                             where A.wo_code=@ordercode and A.seq=@seq+1 ";
                     dynamicParams.Add("@ordercode", ordercode);
@@ -101,18 +86,20 @@
                     {
                         rt.nextstepcode = dt.Rows[0]["STEPCODE"].ToString();//涓嬮亾宸ュ簭缂栫爜
                         rt.nextstepname = dt.Rows[0]["STEPNAME"].ToString();//涓嬮亾宸ュ簭鍚嶇О
+                        rt.nextstepprice = dt.Rows[0]["STEPPRICE"].ToString(); //涓嬮亾宸ュ簭宸ヤ环
                     }
                     if (isend == "Y")  //褰撳墠宸ュ簭鏄湯閬撳伐搴�
                     {
                         rt.nextstepcode = "";//data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
                         rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+                        rt.nextstepprice = "";// data.Rows[0]["STEPPRICE"].ToString();//褰撳墠宸ュ簭宸ヤ环
                     }
                 }
                 else
                 {
                     mes.code = "300";
                     mes.count = 0;
-                    mes.Message = "褰撳墠鎵爜宸ュ簭浠诲姟涓嶅瓨鍦�!";
+                    mes.message = "褰撳墠宸ュ簭浠诲姟涓嶅瓨鍦�!";
                     mes.data = null;
                     return mes;
                 }
@@ -121,295 +108,174 @@
                     case "Z":  //鑷埗宸ュ簭
                         if (isbott == "Y")  //棣栭亾宸ュ簭
                         {
-                            //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊紑宸ヨ褰�
-                            sql = @"select *   from TK_Wrk_Record R
-                                    left join TEqpInfo E on R.eqp_code=E.code
-                                    where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'";
+                            //棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夋姤宸ヨ褰�
+                            sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                             dynamicParams.Add("@ordercode", ordercode);
                             dynamicParams.Add("@stepcode", stepcode);
-                            var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                            if (data0.Rows.Count > 0)  //鏈夊紑宸ヨ褰�
+                            var data1 = DapperHelper.selectdata(sql, dynamicParams);
+                            if (data1.Rows.Count > 0)
                             {
-                                //棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夋姤宸ヨ褰�
-                                sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
-                                dynamicParams.Add("@ordercode", ordercode);
-                                dynamicParams.Add("@stepcode", stepcode);
-                                var data1 = DapperHelper.selectdata(sql, dynamicParams);
-                                if (data1.Rows.Count > 0)
+                                decimal good_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鎶ュ伐鎬绘暟閲�
+                                decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //涓嶈壇鏁伴噺
+                                decimal laborbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum();  //宸ュ簾鏁伴噺
+                                decimal materielbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum();  //鏂欏簾鏁伴噺
+                                //鍓╀綑鍙姤宸ユ暟閲�=浠诲姟鏁伴噺-(鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+宸ュ簾搴熸暟閲�+鏂欏簾鏁伴噺)
+                                decimal kbqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - (good_qty + ng_qty + laborbad_qty + materielbad_qty);
+                                if (kbqty <= 0)//鏃犲彲鎶ュ伐鏁伴噺
                                 {
-                                    decimal good_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鎶ュ伐鎬绘暟閲�
-                                    decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //涓嶈壇鏁伴噺
-                                    decimal bad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鎶ュ簾鏁伴噺
-
-                                    decimal kbqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - (good_qty + ng_qty+bad_qty); //鍓╀綑鍙姤宸ユ暟閲�=浠诲姟鏁伴噺-(鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+鎶ュ簾鏁伴噺)
-                                    if (kbqty <= 0)//鏃犲彲鎶ュ伐鏁伴噺
-                                    {
-                                        mes.code = "300";
-                                        mes.count = 0;
-                                        mes.Message = "褰撳墠宸ュ簭鏃犲彲鎶ュ伐鏁伴噺!";
-                                        mes.data = null;
-                                        return mes;
-                                    }
-                                    else
-                                    {
-                                        rt.eqpcode = data0.Rows[0]["code"].ToString();                              //寮�宸ヨ澶囩紪鐮�
-                                        rt.eqpname = data0.Rows[0]["name"].ToString();                              //寮�宸ヨ澶囧悕绉�
-                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());            //浠诲姟鏁伴噺
-                                        rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());           //寮�宸ユ暟閲�=浠诲姟鏁伴噺
-                                        rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - good_qty- ng_qty-bad_qty;  //鏈姤鏁伴噺=浠诲姟鏁伴噺-宸叉姤鏁伴噺-涓嶈壇鏁伴噺-鎶ュ簾鏁伴噺
-                                        rt.reportqty = good_qty + ng_qty+bad_qty;             //宸叉姤鏁伴噺=鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+鎶ュ簾鏁伴噺
-                                        mes.code = "200";
-                                        mes.count = 1;
-                                        mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
-                                        mes.data = rt;
-                                    }
+                                    mes.code = "300";
+                                    mes.count = 0;
+                                    mes.message = "褰撳墠宸ュ簭鏃犲彲鎶ュ伐鏁伴噺!";
+                                    mes.data = null;
+                                    return mes;
                                 }
                                 else
                                 {
-                                    rt.eqpcode = data0.Rows[0]["code"].ToString();                              //寮�宸ヨ澶囩紪鐮�
-                                    rt.eqpname = data0.Rows[0]["name"].ToString();                              //寮�宸ヨ澶囧悕绉�
                                     rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
-                                    rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //寮�宸ユ暟閲�
-                                    rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //鏈姤鏁伴噺
-                                    rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
+                                    rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - good_qty - ng_qty - laborbad_qty - materielbad_qty;  //鏈姤鏁伴噺=浠诲姟鏁伴噺-宸叉姤鏁伴噺-涓嶈壇鏁伴噺-宸ュ簾鏁伴噺-鏂欏簾鏁伴噺
+                                    rt.reportqty = good_qty + ng_qty + laborbad_qty+ materielbad_qty;             //宸叉姤鏁伴噺=鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+宸ュ簾鏁伴噺+鏂欏簾鏁伴噺
                                     mes.code = "200";
                                     mes.count = 1;
-                                    mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+                                    mes.message = "鏌ユ壘鎴愬姛!";
                                     mes.data = rt;
                                 }
                             }
                             else
                             {
                                 rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
-                                rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //寮�宸ユ暟閲�
                                 rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //鏈姤鏁伴噺
                                 rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
                                 mes.code = "200";
-                                mes.count = 0;
-                                mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+                                mes.count = 1;
+                                mes.message = "鏌ユ壘鎴愬姛!";
                                 mes.data = rt;
                             }
+
                         }
                         else   //闈為閬撳伐搴�
                         {
                             //鏌ユ壘褰撳墠宸ュ簭涓婂埌宸ュ簭(鑷埗鎴栬�呭鍗�)
-                            sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
-                                               left join TK_Wrk_Man M on A.rout_code=M.route_code
-                                               left join TStep S on A.step_code=S.stepcode
-                                               where M.wo_code=@wocode  and A.seq=@seq-1";
+                            sql = @"select A.step_code,S.stepname,S.flwtype   from TK_Wrk_Step A
+                                    left join TStep S on A.step_code=S.stepcode
+                                    where A.wo_code=@wocode  and A.seq=@seq-1";
                             dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
                             dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                             var data0 = DapperHelper.selectdata(sql, dynamicParams);
                             if (data0.Rows.Count > 0)
                             {
-                                //1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁寮�宸ヨ褰�
-                                sql = @"select *   from TK_Wrk_Record R
-                                        left join TEqpInfo E on R.eqp_code=E.code
-                                        where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'";
+                                //闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鎶ュ伐璁板綍
+                                sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                 dynamicParams.Add("@ordercode", ordercode);
                                 dynamicParams.Add("@stepcode", stepcode);
-                                var data1 = DapperHelper.selectdata(sql, dynamicParams);
-                                if (data1.Rows.Count > 0)//鏈亾鏈夊紑宸ヨ褰�
+                                var data2 = DapperHelper.selectdata(sql, dynamicParams);
+                                if (data2.Rows.Count > 0) //鏈夋姤宸ヨ褰�
                                 {
-                                    //闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鎶ュ伐璁板綍
-                                    sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
-                                    dynamicParams.Add("@ordercode", ordercode);
-                                    dynamicParams.Add("@stepcode", stepcode);
-                                    var data2 = DapperHelper.selectdata(sql, dynamicParams);
-                                    if (data2.Rows.Count > 0) //鏈夋姤宸ヨ褰�
+                                    if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細鑷埗宸ュ簭
                                     {
-                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細鑷埗宸ュ簭
+                                        //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
+                                        sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
+                                        dynamicParams.Add("@ordercode", ordercode);
+                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+                                        var data3 = DapperHelper.selectdata(sql, dynamicParams);
+                                        if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
                                         {
-                                            //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
-                                            sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
-                                            dynamicParams.Add("@ordercode", ordercode);
-                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
-                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
-                                            if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
-                                            {
-                                                decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //涓婇亾鎶ュ伐鎬绘暟閲�
-                                                decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鏈亾鎶ュ伐鎬绘暟閲�
-                                                decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //鏈亾涓嶈壇鎬绘暟閲�
-                                                decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎬绘姤搴熸暟閲�
-
-                                                decimal sybqty = sgood_qty - good_qty - ng_qty-bad_qty;//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾鎶ュ簾鎬绘暟
-                                                if (sybqty <= 0)
-                                                {
-                                                    mes.code = "300";
-                                                    mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鎶ユ暟閲�!";
-                                                    mes.data = null;
-                                                    return mes;
-                                                }
-                                                else
-                                                {
-                                                    if (sgood_qty == null || sgood_qty == 0) 
-                                                    {
-                                                        mes.code = "300";
-                                                        mes.count = 0;
-                                                        mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
-                                                        mes.data = null;
-                                                        return mes;
-                                                    }
-                                                    rt.eqpcode = data1.Rows[0]["code"].ToString();                              //寮�宸ヨ澶囩紪鐮�
-                                                    rt.eqpname = data1.Rows[0]["name"].ToString();                              //寮�宸ヨ澶囧悕绉�
-                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
-                                                    rt.startqty = sybqty;                                                //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙姤鏁伴噺
-                                                    rt.noreportqty = sybqty;                                             //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
-                                                    rt.reportqty = good_qty + ng_qty+bad_qty;                            //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎶ュ簾鎬绘暟
-                                                    mes.code = "200";
-                                                    mes.count = 1;
-                                                    mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
-                                                    mes.data = rt;
-                                                }
-                                            }
-                                            else
+                                            decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //涓婇亾鎶ュ伐鎬绘暟閲�
+                                            decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鏈亾鎶ュ伐鎬绘暟閲�
+                                            decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //鏈亾涓嶈壇鎬绘暟閲�
+                                            decimal laborbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum();  //鏈亾鎬诲伐搴熸暟閲�
+                                            decimal materielbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum();  //鏈亾鎬绘枡搴熸暟閲�
+                                            //鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾宸ュ簾鎬绘暟-鏈亾鏂欏簾鎬绘暟
+                                            decimal sybqty = sgood_qty - good_qty - ng_qty - laborbad_qty- materielbad_qty;
+                                            if (sybqty <= 0)
                                             {
                                                 mes.code = "300";
                                                 mes.count = 0;
-                                                mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+                                                mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鎶ユ暟閲�!";
                                                 mes.data = null;
                                                 return mes;
-                                            }
-                                        }
-                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細濮斿宸ュ簭
-                                        {
-                                            //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
-                                            sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
-                                            dynamicParams.Add("@ordercode", ordercode);
-                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
-                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
-                                            if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
-                                            {
-                                                decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();  //涓婇亾鏀舵枡鏁伴噺
-                                                decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鏈亾鎶ュ伐鎬绘暟閲�
-                                                decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //鏈亾涓嶈壇鎬绘暟閲�
-                                                decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎬绘姤搴熸暟閲�
-
-                                                decimal sybqty = sqty - good_qty - ng_qty-bad_qty;//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾鎬绘姤搴熸暟
-                                                if (sybqty <= 0)
-                                                {
-                                                    mes.code = "300";
-                                                    mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鎶ユ暟閲�!";
-                                                    mes.data = null;
-                                                    return mes;
-                                                }
-                                                else
-                                                {
-                                                    if (sqty == null || sqty == 0)
-                                                    {
-                                                        mes.code = "300";
-                                                        mes.count = 0;
-                                                        mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
-                                                        mes.data = null;
-                                                        return mes;
-                                                    }
-                                                    rt.eqpcode = data1.Rows[0]["code"].ToString();                              //寮�宸ヨ澶囩紪鐮�
-                                                    rt.eqpname = data1.Rows[0]["name"].ToString();                              //寮�宸ヨ澶囧悕绉�
-                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
-                                                    rt.startqty = sybqty;                                                //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙姤鏁伴噺
-                                                    rt.noreportqty = sybqty;                                             //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
-                                                    rt.reportqty = good_qty + ng_qty+bad_qty;                            //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎬绘姤搴熸暟
-                                                    mes.code = "200";
-                                                    mes.count = 1;
-                                                    mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
-                                                    mes.data = rt;
-                                                }
                                             }
                                             else
                                             {
-                                                mes.code = "300";
-                                                mes.count = 0;
-                                                mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
-                                                mes.data = null;
-                                                return mes;
-                                            }
-                                        }
-                                    }
-                                    else  //鏈亾鏃犳姤宸ヨ褰�
-                                    {
-                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //鑷埗宸ュ簭
-                                        {
-                                            //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
-                                            sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
-                                            dynamicParams.Add("@ordercode", ordercode);
-                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
-                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
-                                            if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
-                                            {
-                                                decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //涓婇亾鎶ュ伐鎬绘暟閲�
-                                                decimal sybqty = sgood_qty;                                      //鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鏁伴噺
                                                 if (sgood_qty == null || sgood_qty == 0)
                                                 {
                                                     mes.code = "300";
                                                     mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+                                                    mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁告姤宸�!";
                                                     mes.data = null;
                                                     return mes;
                                                 }
-                                                rt.eqpcode = data1.Rows[0]["code"].ToString();                              //寮�宸ヨ澶囩紪鐮�
-                                                rt.eqpname = data1.Rows[0]["name"].ToString();                              //寮�宸ヨ澶囧悕绉�
                                                 rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
-                                                rt.startqty = sybqty;                                                //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙姤鏁伴噺
-                                                rt.noreportqty = sybqty;                                             //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
-                                                rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
+                                                rt.noreportqty = sybqty;                                         //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
+                                                rt.reportqty = good_qty + ng_qty + laborbad_qty+ materielbad_qty;//宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾宸ュ簾鎬绘暟+鏈亾鏂欏簾鎬绘暟
                                                 mes.code = "200";
                                                 mes.count = 1;
-                                                mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+                                                mes.message = "寮圭獥鎶ュ伐鐣岄潰!";
                                                 mes.data = rt;
                                             }
-                                            else
+                                        }
+                                        else
+                                        {
+                                            mes.code = "300";
+                                            mes.count = 0;
+                                            mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁告姤宸�!";
+                                            mes.data = null;
+                                            return mes;
+                                        }
+                                    }
+                                    if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細濮斿宸ュ簭
+                                    {
+                                        //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
+                                        sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+                                        dynamicParams.Add("@ordercode", ordercode);
+                                        dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
+                                        var data3 = DapperHelper.selectdata(sql, dynamicParams);
+                                        if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
+                                        {
+                                            decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();  //涓婇亾鏀舵枡鏁伴噺
+                                            decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鏈亾鎶ュ伐鎬绘暟閲�
+                                            decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //鏈亾涓嶈壇鎬绘暟閲�
+                                            decimal laborbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum();  //鏈亾鎬诲伐搴熸暟閲�
+                                            decimal materielbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum();  //鏈亾鎬绘枡搴熸暟閲�
+                                            //鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾鎬诲伐搴熸暟閲�-鏈亾鎬绘枡搴熸暟閲�
+                                            decimal sybqty = sqty - good_qty - ng_qty - laborbad_qty- materielbad_qty;
+                                            if (sybqty <= 0)
                                             {
                                                 mes.code = "300";
                                                 mes.count = 0;
-                                                mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+                                                mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鎶ユ暟閲�!";
                                                 mes.data = null;
                                                 return mes;
                                             }
-                                        }
-                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //濮斿宸ュ簭
-                                        {
-                                            //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
-                                            sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
-                                            dynamicParams.Add("@ordercode", ordercode);
-                                            dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
-                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
-                                            if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
+                                            else
                                             {
-                                                decimal sqty = data3.AsEnumerable().Select(d =>d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
-                                                decimal sybqty = sqty;                   //鏈亾鍓╀綑鍙敹鏁伴噺=涓婇亾鏀舵枡鏁伴噺
                                                 if (sqty == null || sqty == 0)
                                                 {
                                                     mes.code = "300";
                                                     mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+                                                    mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
                                                     mes.data = null;
                                                     return mes;
                                                 }
-                                                rt.eqpcode = data1.Rows[0]["code"].ToString();                              //寮�宸ヨ澶囩紪鐮�
-                                                rt.eqpname = data1.Rows[0]["name"].ToString();                              //寮�宸ヨ澶囧悕绉�
                                                 rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
-                                                rt.startqty = sybqty;                                                //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙敹鏁伴噺
-                                                rt.noreportqty = sybqty;                                             //鏈姤鏁伴噺=鏈亾鍓╀綑鍙敹鏁伴噺
-                                                rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
+                                                rt.noreportqty = sybqty;                                         //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
+                                                rt.reportqty = good_qty + ng_qty + laborbad_qty+materielbad_qty; //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎬诲伐搴熸暟+鏈亾鎬绘枡搴熸暟
                                                 mes.code = "200";
                                                 mes.count = 1;
-                                                mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+                                                mes.message = "鏌ユ壘鎴愬姛!";
                                                 mes.data = rt;
                                             }
-                                            else
-                                            {
-                                                mes.code = "300";
-                                                mes.count = 0;
-                                                mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
-                                                mes.data = null;
-                                                return mes;
-                                            }
+                                        }
+                                        else
+                                        {
+                                            mes.code = "300";
+                                            mes.count = 0;
+                                            mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
+                                            mes.data = null;
+                                            return mes;
                                         }
                                     }
                                 }
-                                else //鏃犲紑宸ヨ褰�
+                                else  //鏈亾鏃犳姤宸ヨ褰�
                                 {
                                     if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //鑷埗宸ュ簭
                                     {
@@ -417,72 +283,68 @@
                                         sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='B'";
                                         dynamicParams.Add("@ordercode", ordercode);
                                         dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
-                                        var data2 = DapperHelper.selectdata(sql, dynamicParams);
-                                        if (data2.Rows.Count > 0) //涓婂埌宸ュ簭鏈夋姤宸�
+                                        var data3 = DapperHelper.selectdata(sql, dynamicParams);
+                                        if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
                                         {
-                                            decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();//鎶ュ伐鏁伴噺
-                                            decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
-                                            decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();// 鎶ュ簾鏁伴噺
-                                            if (good_qty == null || good_qty == 0)
+                                            decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //涓婇亾鎶ュ伐鎬绘暟閲�
+                                            decimal sybqty = sgood_qty;                                      //鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鏁伴噺
+                                            if (sgood_qty == null || sgood_qty == 0)
                                             {
                                                 mes.code = "300";
                                                 mes.count = 0;
-                                                mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+                                                mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
                                                 mes.data = null;
                                                 return mes;
                                             }
-                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
-                                            rt.startqty = good_qty;                               //寮�宸ユ暟閲�=(涓婁竴閬撶殑鎶ュ伐鎬绘暟閲�)
-                                            rt.noreportqty = good_qty;                            //鏈姤鏁伴噺=(涓婁竴閬撶殑鎶ュ伐鎬绘暟閲�)
-                                            rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
+                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                            rt.noreportqty = sybqty;                                         //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
+                                            rt.reportqty = 0;                                                //宸叉姤鏁伴噺
                                             mes.code = "200";
-                                            mes.count = 0;
-                                            mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+                                            mes.count = 1;
+                                            mes.message = "鏌ユ壘鎴愬姛!";
                                             mes.data = rt;
                                         }
                                         else
                                         {
                                             mes.code = "300";
                                             mes.count = 0;
-                                            mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+                                            mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁告姤宸�!";
                                             mes.data = null;
                                             return mes;
                                         }
                                     }
                                     if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //濮斿宸ュ簭
                                     {
-                                        //鏌ユ壘涓婇亾宸ュ簭澶栧崗鏀舵枡璁板綍
+                                        //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
                                         sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                         dynamicParams.Add("@ordercode", ordercode);
                                         dynamicParams.Add("@stepcode", data0.Rows[0]["STEP_CODE"].ToString());
-                                        var data2 = DapperHelper.selectdata(sql, dynamicParams);
-                                        if (data2.Rows.Count > 0) //涓婇亾宸ュ簭鏈夋敹鏂�
+                                        var data3 = DapperHelper.selectdata(sql, dynamicParams);
+                                        if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
                                         {
-                                            decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏀舵枡鏁伴噺
-                                            decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
-                                            decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();// 鎶ュ簾鏁伴噺
+                                            decimal sqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
+                                            decimal sybqty = sqty;                   //鏈亾鍓╀綑鍙敹鏁伴噺=涓婇亾鏀舵枡鏁伴噺
                                             if (sqty == null || sqty == 0)
                                             {
                                                 mes.code = "300";
                                                 mes.count = 0;
-                                                mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
+                                                mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿紑鎶ュ伐!";
                                                 mes.data = null;
                                                 return mes;
                                             }
-                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
-                                            rt.startqty = sqty;                                                  //寮�宸ユ暟閲�=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
-                                            rt.noreportqty = sqty;                                               //鏈姤鏁伴噺=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
-                                            rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
+                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                            rt.noreportqty = sybqty;                                         //鏈姤鏁伴噺=鏈亾鍓╀綑鍙敹鏁伴噺
+                                            rt.reportqty = 0;                                                //宸叉姤鏁伴噺
                                             mes.code = "200";
-                                            mes.count = 0;
-                                            mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+                                            mes.count = 1;
+                                            mes.message = "鏌ユ壘鎴愬姛!";
                                             mes.data = rt;
                                         }
                                         else
                                         {
                                             mes.code = "300";
                                             mes.count = 0;
-                                            mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
+                                            mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁告姤宸�,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
                                             mes.data = null;
                                             return mes;
                                         }
@@ -493,7 +355,7 @@
                             {
                                 mes.code = "300";
                                 mes.count = 0;
-                                mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+                                mes.message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
                                 mes.data = null;
                                 return mes;
                             }
@@ -503,7 +365,7 @@
                     case "W":  //澶栧崗宸ュ簭
                         mes.code = "300";
                         mes.count = 0;
-                        mes.Message = "褰撳墠鏍囩涓哄鍗忔爣绛�,璇峰墠寰�澶栧崗鎿嶄綔鏍囩椤垫壂鐮�!";
+                        mes.message = "褰撳墠宸ュ崟宸ュ簭浠诲姟涓哄鍗�,璇峰墠寰�澶栧崗鎿嶄綔鏍囩椤垫搷浣�!";
                         mes.data = null;
                         break;
                     default:   //鑷埗+澶栧崗宸ュ簭
@@ -515,7 +377,7 @@
             {
                 mes.code = "300";
                 mes.count = 0;
-                mes.Message = e.Message;
+                mes.message = e.Message;
                 mes.data = null;
                 return mes;
             }
@@ -527,12 +389,11 @@
         /// <summary>
         /// 鐢熶骇寮�鎶ュ伐:澶栧崗宸ュ簭浠诲姟寮�鎶ュ伐鍒ゆ柇:宸ュ崟鍙�+宸ュ簭
         /// </summary>
-        /// <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
         /// <param name="SelectType">鎿嶄綔绫诲瀷</param>
         /// <param name="ordercode">宸ュ崟缂栧彿</param>
         /// <param name="stepcode">宸ュ簭缂栫爜</param>
         /// <returns></returns>
-        public static ToMessage WXEncodingSeach(string stu_torgcode, string SelectType, string ordercode, string stepcode)
+        public static ToMessage WXEncodingSeach(string SelectType, string ordercode, string stepcode)
         {
             var sql = "";
             string flwtype = ""; //宸ュ簭灞炴��
@@ -545,48 +406,33 @@
             try
             {
                 //鍒ゆ柇褰撳墠宸ュ崟鏄惁鍏抽棴
-                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode and status='CLOSED'";
+                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and status='CLOSED'";
                 dynamicParams.Add("@ordercode", ordercode);
-                dynamicParams.Add("@stu_torgcode", stu_torgcode);
                 var da0 = DapperHelper.selectdata(sql, dynamicParams);
                 if (da0.Rows.Count > 0)
                 {
                     mes.code = "300";
                     mes.count = 0;
-                    mes.Message = "褰撳墠宸ュ崟宸插叧闂�,涓嶅厑璁稿紑鎶ュ伐鎿嶄綔!";
-                    mes.data = null;
-                    return mes;
-                }
-
-                //0.鍒ゆ柇褰撳墠宸ュ崟鎵�灞炶溅闂存槸鍚︿负褰撳墠鐧诲綍浜哄憳杞﹂棿
-                sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode";
-                dynamicParams.Add("@ordercode", ordercode);
-                dynamicParams.Add("@stu_torgcode", stu_torgcode);
-                var da1 = DapperHelper.selectdata(sql, dynamicParams);
-                if (da1.Rows.Count <= 0)
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.Message = "涓嶆槸鏈溅闂寸敓浜т换鍔�,涓嶅厑璁告搷浣�!";
+                    mes.message = "褰撳墠宸ュ崟宸插叧闂�,涓嶅厑璁稿紑鎶ュ伐鎿嶄綔!";
                     mes.data = null;
                     return mes;
                 }
 
                 //1.鏍规嵁宸ュ崟+宸ュ簭鏌ユ壘褰撳墠宸ュ簭鏄惁棣栭亾宸ュ簭
-                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.isbott,A.isend,L.org_code,L.org_name   
+                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.stepprice,A.status,A.plan_qty,A.isbott,A.isend,L.torg_code,L.torg_name   
                         from TK_Wrk_Step A
                         left join  TStep T on A.step_code=T.stepcode
                         left join  TK_Wrk_Man M on A.wo_code=M.wo_code
                         left join  TMateriel_Info P on M.materiel_code=P.partcode
-                        left join  TOrganization L on M.wkshp_code=L.org_code
+                        left join  TOrganization L on M.wkshp_code=L.torg_code
                         where A.wo_code=@ordercode and A.step_code=@stepcode";
                 dynamicParams.Add("@ordercode", ordercode);
                 dynamicParams.Add("@stepcode", stepcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 if (data.Rows.Count > 0)
                 {
-                    rt.wkshopcode = data.Rows[0]["org_code"].ToString(); //杞﹂棿缂栫爜
-                    rt.wkshopname = data.Rows[0]["org_name"].ToString(); //杞﹂棿鍚嶇О
+                    rt.wkshopcode = data.Rows[0]["torg_code"].ToString(); //杞﹂棿缂栫爜
+                    rt.wkshopname = data.Rows[0]["torg_name"].ToString(); //杞﹂棿鍚嶇О
                     rt.wo_code = data.Rows[0]["WO_CODE"].ToString(); //宸ュ崟鍙�
                     rt.partnumber = data.Rows[0]["PARTCODE"].ToString(); //浜у搧缂栫爜
                     rt.partname = data.Rows[0]["PARTNAME"].ToString(); //浜у搧鍚嶇О
@@ -595,14 +441,14 @@
                     rt.stepname = data.Rows[0]["STEPNAME"].ToString(); //宸ュ簭鍚嶇О
                     rt.stepdesc = data.Rows[0]["DESCR"].ToString(); //宸ュ簭鎻忚堪
                     rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
-
+                    rt.stepprice = data.Rows[0]["STEPPRICE"].ToString(); //宸ュ簭宸ヤ环
                     flwtype = data.Rows[0]["FLWTYPE"].ToString();//鑾峰彇宸ュ簭灞炴��
                     isbott = data.Rows[0]["ISBOTT"].ToString();//棣栭亾宸ュ簭
                     isend = data.Rows[0]["ISEND"].ToString();//鏈亾宸ュ簭
                     rt.seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
 
                     //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭
-                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
+                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname,A.stepprice from TK_Wrk_Step A
                             left join  TStep T on A.step_code=T.stepcode
                             where A.wo_code=@ordercode and A.seq=@seq+1 ";
                     dynamicParams.Add("@ordercode", ordercode);
@@ -612,18 +458,20 @@
                     {
                         rt.nextstepcode = dt.Rows[0]["STEPCODE"].ToString();//涓嬮亾宸ュ簭缂栫爜
                         rt.nextstepname = dt.Rows[0]["STEPNAME"].ToString();//涓嬮亾宸ュ簭鍚嶇О
+                        rt.nextstepprice = dt.Rows[0]["STEPPRICE"].ToString(); //涓嬮亾宸ュ簭宸ヤ环
                     }
                     if (isend == "Y")  //褰撳墠宸ュ簭鏄湯閬撳伐搴�
                     {
                         rt.nextstepcode = "";// data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
                         rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+                        rt.nextstepprice = ""; //data.Rows[0]["NEXTSTEPPRICE"].ToString();//涓嬮亾宸ュ簭宸ヤ环
                     }
                 }
                 else
                 {
                     mes.code = "300";
                     mes.count = 0;
-                    mes.Message = "褰撳墠鎵爜宸ュ簭浠诲姟涓嶅瓨鍦�!";
+                    mes.message = "褰撳墠鎵爜宸ュ簭浠诲姟涓嶅瓨鍦�!";
                     mes.data = null;
                     return mes;
                 }
@@ -635,7 +483,7 @@
                             case "Z":
                                 mes.code = "300";
                                 mes.count = 0;
-                                mes.Message = "褰撳墠鏍囩涓鸿嚜鍒舵爣绛�,璇峰墠寰�鑷埗鎿嶄綔鏍囩椤垫壂鐮�!";
+                                mes.message = "褰撳墠鏍囩涓鸿嚜鍒舵爣绛�,璇峰墠寰�鑷埗鎿嶄綔鏍囩椤垫壂鐮�!";
                                 mes.data = null;
                                 break;
                             case "W":
@@ -651,14 +499,15 @@
                                     if (data0.Rows.Count > 0)  //鏈夊彂鏂欒褰�
                                     {
                                         decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();  //鍙戞枡鏁伴噺
-                                        decimal ng_qty =data0.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
-                                        decimal bad_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鎶ュ簾鏁伴噺
-                                        decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty- bad_qty;  //鍓╀綑鍙彂鏁伴噺
+                                        decimal ng_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 涓嶈壇鏁伴噺
+                                        decimal laborbad_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum();  //宸ュ簾鏁伴噺
+                                        decimal materielbad_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum();  //鏂欏簾鏁伴噺
+                                        decimal kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty - laborbad_qty-materielbad_qty; //鍓╀綑鍙彂鏁伴噺
                                         if (kfqty <= 0)
                                         {
                                             mes.code = "300";
                                             mes.count = 0;
-                                            mes.Message = "褰撳墠宸ュ簭鏃犲彲鍙戞枡鏁伴噺!";
+                                            mes.message = "褰撳墠宸ュ簭鏃犲彲鍙戞枡鏁伴噺!";
                                             mes.data = null;
                                             return mes;
                                         }
@@ -670,7 +519,7 @@
                                             rt.startqty = kfqty;                                                 //鍙戞枡鏁伴噺=鍓╀綑鍙彂鏁伴噺      
                                             mes.code = "200";
                                             mes.count = 2;
-                                            mes.Message = "寮圭獥鍙戞枡鐣岄潰!";
+                                            mes.message = "鏌ヨ鎴愬姛!";
                                             mes.data = rt;
                                         }
                                     }
@@ -682,17 +531,16 @@
                                         rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());    //鍙戞枡鏁伴噺=浠诲姟鏁伴噺      
                                         mes.code = "200";
                                         mes.count = 2;
-                                        mes.Message = "寮圭獥鍙戞枡鐣岄潰!";
+                                        mes.message = "寮圭獥鍙戞枡鐣岄潰!";
                                         mes.data = rt;
                                     }
                                 }
                                 else //闈為閬�
                                 {
                                     //鏌ユ壘褰撳墠宸ュ簭涓婂埌宸ュ簭(鑷埗鎴栬�呭鍗�)
-                                    sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
-                                               left join TK_Wrk_Man M on A.rout_code=M.route_code
-                                               left join TStep S on A.step_code=S.stepcode
-                                               where M.wo_code=@wocode  and A.seq=@seq-1";
+                                    sql = @"select A.step_code,S.stepname,S.flwtype   from TK_Wrk_Step A
+                                            left join TStep S on A.step_code=S.stepcode
+                                            where A.wo_code=@wocode  and A.seq=@seq-1";
                                     dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
                                     dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -719,14 +567,15 @@
                                                     decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鏈亾鎶ュ伐鎬绘暟閲�
                                                     decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
                                                     decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 鏈亾涓嶈壇鏁伴噺
-                                                    decimal bad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎶ュ簾鏁伴噺
-
-                                                    decimal sybqty =sgood_qty - sqty - ng_qty- bad_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
+                                                    decimal laborbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum();  //鏈亾宸ュ簾鏁伴噺
+                                                    decimal materielbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum();  //鏈亾鏂欏簾鏁伴噺
+                                                    //鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾宸ュ簾鏁伴噺-鏈亾鏂欏簾鏁伴噺
+                                                    decimal sybqty = sgood_qty - sqty - ng_qty - laborbad_qty- materielbad_qty;
                                                     if (sybqty <= 0)
                                                     {
                                                         mes.code = "300";
                                                         mes.count = 0;
-                                                        mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鍙戞暟閲�!";
+                                                        mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鍙戞暟閲�!";
                                                         mes.data = null;
                                                         return mes;
                                                     }
@@ -736,18 +585,18 @@
                                                         {
                                                             mes.code = "300";
                                                             mes.count = 0;
-                                                            mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
+                                                            mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
                                                             mes.data = null;
                                                             return mes;
                                                         }
                                                         rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                         rt.noreportqty = sybqty;                                             //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
-                                                        rt.reportqty = sqty + ng_qty+bad_qty;                                //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾鎶ュ簾鏁伴噺                                       
+                                                        rt.reportqty = sqty + ng_qty + laborbad_qty+ materielbad_qty;       //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾宸ュ簾鏁伴噺+鏈亾鏂欏簾鏁伴噺                                       
                                                         rt.startqty = sybqty;                                                //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺      
 
                                                         mes.code = "200";
                                                         mes.count = 2;
-                                                        mes.Message = "寮圭獥鍙戞枡鐣岄潰!";
+                                                        mes.message = "寮圭獥鍙戞枡鐣岄潰!";
                                                         mes.data = rt;
                                                     }
                                                 }
@@ -755,7 +604,7 @@
                                                 {
                                                     mes.code = "300";
                                                     mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿彂鏂�!";
+                                                    mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿彂鏂�!";
                                                     mes.data = null;
                                                     return mes;
                                                 }
@@ -772,14 +621,15 @@
                                                     decimal ssqty = data3.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
                                                     decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
                                                     decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();// 鏈亾涓嶈壇鏁伴噺
-                                                    decimal bad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎶ュ簾鏁伴噺
-
-                                                    decimal sybqty = ssqty - sqty - ng_qty-bad_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
+                                                    decimal laborbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum();  //鏈亾宸ュ簾鏁伴噺
+                                                    decimal materielbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum();  //鏈亾鏂欏簾鏁伴噺
+                                                    //鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾宸ュ簾鏁伴噺-鏈亾鏂欏簾鏁伴噺
+                                                    decimal sybqty = ssqty - sqty - ng_qty - laborbad_qty-materielbad_qty;
                                                     if (sybqty <= 0)
                                                     {
                                                         mes.code = "300";
                                                         mes.count = 0;
-                                                        mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鍙戞暟閲�!";
+                                                        mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鍙戞暟閲�!";
                                                         mes.data = null;
                                                         return mes;
                                                     }
@@ -789,18 +639,18 @@
                                                         {
                                                             mes.code = "300";
                                                             mes.count = 0;
-                                                            mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
+                                                            mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
                                                             mes.data = null;
                                                             return mes;
                                                         }
                                                         rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                         rt.noreportqty = sybqty;                                             //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
-                                                        rt.reportqty = sqty + ng_qty+bad_qty;                                //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾鎶ュ簾鏁伴噺                                       
+                                                        rt.reportqty = sqty + ng_qty + laborbad_qty+materielbad_qty;         //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾宸ュ簾鏁伴噺+鏈亾鏂欏簾鏁伴噺                                      
                                                         rt.startqty = sybqty;                                                //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺      
 
                                                         mes.code = "200";
                                                         mes.count = 2;
-                                                        mes.Message = "寮圭獥鍙戞枡鐣岄潰!";
+                                                        mes.message = "寮圭獥鍙戞枡鐣岄潰!";
                                                         mes.data = rt;
                                                     }
                                                 }
@@ -808,7 +658,7 @@
                                                 {
                                                     mes.code = "300";
                                                     mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈彂鏂�,鏈亾涓嶅厑璁稿彂鏂�!";
+                                                    mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈彂鏂�,鏈亾涓嶅厑璁稿彂鏂�!";
                                                     mes.data = null;
                                                     return mes;
                                                 }
@@ -832,7 +682,7 @@
                                                     {
                                                         mes.code = "300";
                                                         mes.count = 0;
-                                                        mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
+                                                        mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸浜у嚭涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
                                                         mes.data = null;
                                                         return mes;
                                                     }
@@ -843,7 +693,7 @@
 
                                                     mes.code = "200";
                                                     mes.count = 2;
-                                                    mes.Message = "寮圭獥鍙戞枡鐣岄潰!";
+                                                    mes.message = "寮圭獥鍙戞枡鐣岄潰!";
                                                     mes.data = rt;
 
                                                 }
@@ -851,7 +701,7 @@
                                                 {
                                                     mes.code = "300";
                                                     mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿彂鏂�!";
+                                                    mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈姤宸�,鏈亾涓嶅厑璁稿彂鏂�!";
                                                     mes.data = null;
                                                     return mes;
                                                 }
@@ -872,7 +722,7 @@
                                                     {
                                                         mes.code = "300";
                                                         mes.count = 0;
-                                                        mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鍙戞暟閲�!";
+                                                        mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鍙戞暟閲�!";
                                                         mes.data = null;
                                                         return mes;
                                                     }
@@ -882,7 +732,7 @@
                                                         {
                                                             mes.code = "300";
                                                             mes.count = 0;
-                                                            mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
+                                                            mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鍚堟牸鏀舵枡涓�0,鏈亾涓嶅厑璁稿彂鏂�!";
                                                             mes.data = null;
                                                             return mes;
                                                         }
@@ -893,7 +743,7 @@
 
                                                         mes.code = "200";
                                                         mes.count = 2;
-                                                        mes.Message = "寮圭獥鍙戞枡鐣岄潰!";
+                                                        mes.message = "寮圭獥鍙戞枡鐣岄潰!";
                                                         mes.data = rt;
                                                     }
                                                 }
@@ -901,7 +751,7 @@
                                                 {
                                                     mes.code = "300";
                                                     mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿彂鏂�!";
+                                                    mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鐨勪笂閬撳伐搴忥細" + data0.Rows[0]["STEPNAME"].ToString() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿彂鏂�!";
                                                     mes.data = null;
                                                     return mes;
                                                 }
@@ -912,7 +762,7 @@
                                     {
                                         mes.code = "300";
                                         mes.count = 0;
-                                        mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+                                        mes.message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
                                         mes.data = null;
                                         return mes;
                                     }
@@ -928,7 +778,7 @@
                             case "Z"://鑷埗
                                 mes.code = "300";
                                 mes.count = 0;
-                                mes.Message = "褰撳墠鏍囩涓鸿嚜鍒舵爣绛�,璇峰墠寰�鑷埗鎿嶄綔鏍囩椤垫壂鐮�!";
+                                mes.message = "褰撳墠鏍囩涓鸿嚜鍒舵爣绛�,璇峰墠寰�鑷埗鎿嶄綔鏍囩椤垫壂鐮�!";
                                 mes.data = null;
                                 break;
                             case "W":
@@ -936,7 +786,7 @@
                                 {
                                     //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊彂鏂欒褰�
                                     sql = @"select R.wo_code,R.step_code,R.wx_code as code,C.name,R.materiel_code, 
-                                            isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.bad_qty),0) as bad_qty   
+                                            isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.laborbad_qty),0) as laborbad_qty,isnull(sum(R.materielbad_qty),0) as materielbad_qty   
                                             from TK_Wrk_OutRecord R
                                             left join TCustomer C on R.wx_code=C.code
                                             where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='F'
@@ -948,7 +798,7 @@
                                     {
                                         //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夋敹鏂欒褰�
                                         sql = @"select R.wo_code,R.step_code,R.wx_code as code,C.name,R.materiel_code, 
-                                                isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.bad_qty),0) as bad_qty     
+                                                isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.laborbad_qty),0) as laborbad_qty,isnull(sum(R.materielbad_qty),0) as materielbad_qty      
                                                 from TK_Wrk_OutRecord R
                                                 left join TCustomer C on R.wx_code=C.code
                                                 where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'
@@ -962,13 +812,15 @@
                                             decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
                                             decimal sqty = data1.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏈亾鏀舵枡鏁伴噺
                                             decimal ng_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//鏈亾涓嶈壇鏁伴噺
-                                            decimal bad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎶ュ簾鏁伴噺
-                                            decimal ksqty = fqty - sqty - ng_qty-bad_qty;  //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
+                                            decimal laborbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum();  //鏈亾宸ュ簾鏁伴噺
+                                            decimal materielbad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum();  //鏈亾鏂欏簾鏁伴噺
+                                            //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾宸ュ簾鏁伴噺-鏈亾鏂欏簾鏁伴噺
+                                            decimal ksqty = fqty - sqty - ng_qty - laborbad_qty-materielbad_qty;  
                                             if (ksqty <= 0)
                                             {
                                                 mes.code = "300";
                                                 mes.count = 0;
-                                                mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏃犲彲鏀舵枡鏁伴噺!";
+                                                mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏃犲彲鏀舵枡鏁伴噺!";
                                                 mes.data = null;
                                                 return mes;
                                             }
@@ -976,27 +828,30 @@
                                             {
                                                 rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                 rt.noreportqty = ksqty;                                              //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
-                                                rt.reportqty = sqty + ng_qty+bad_qty;                                //宸叉敹鏁伴噺                                   
+                                                rt.reportqty = sqty + ng_qty + laborbad_qty+materielbad_qty;          //宸叉敹鏁伴噺                                   
                                                 rt.startqty = ksqty;                                                  //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺      
-                                              
+
                                                 data0.Merge(data1);//灏嗘寚瀹氱殑dt鍚堝苟                                                 
-                                                rt.list = data0.AsEnumerable().GroupBy(r => new {
+                                                rt.list = data0.AsEnumerable().GroupBy(r => new
+                                                {
                                                     wo_code = r["wo_code"],
                                                     step_code = r["step_code"],
                                                     code = r["code"],
                                                     name = r["name"]
-                                                }).Select(g => new {
+                                                }).Select(g => new
+                                                {
                                                     Name = g.Key.code,
                                                     tp = g.Key.name,
                                                     fqty = g.Sum(i => (decimal)i["fqty"]),
                                                     sqty = g.Sum(i => (decimal)i["sqty"]),
                                                     ng_qty = g.Sum(i => (decimal)i["ng_qty"]),
-                                                    bad_qty = g.Sum(i => (decimal)i["bad_qty"])
+                                                    laborbad_qty = g.Sum(i => (decimal)i["laborbad_qty"]),
+                                                    materielbad_qty = g.Sum(i => (decimal)i["materielbad_qty"])
                                                 }).ToList();
 
                                                 mes.code = "200";
                                                 mes.count = 3;
-                                                mes.Message = "寮圭獥鏀舵枡鐣岄潰!";
+                                                mes.message = "寮圭獥鏀舵枡鐣岄潰!";
                                                 mes.data = rt;
                                             }
 
@@ -1010,23 +865,26 @@
                                             rt.startqty = fqty;                                                  //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
                                                                                                                  //
                                             data0.Merge(data1);//灏嗘寚瀹氱殑dt鍚堝苟                                                 
-                                            rt.list = data0.AsEnumerable().GroupBy(r => new {
+                                            rt.list = data0.AsEnumerable().GroupBy(r => new
+                                            {
                                                 wo_code = r["wo_code"],
                                                 step_code = r["step_code"],
                                                 code = r["code"],
                                                 name = r["name"]
-                                            }).Select(g => new {
+                                            }).Select(g => new
+                                            {
                                                 Name = g.Key.code,
                                                 tp = g.Key.name,
                                                 fqty = g.Sum(i => (decimal)i["fqty"]),
                                                 sqty = g.Sum(i => (decimal)i["sqty"]),
                                                 ng_qty = g.Sum(i => (decimal)i["ng_qty"]),
-                                                bad_qty = g.Sum(i => (decimal)i["bad_qty"])
+                                                laborbad_qty = g.Sum(i => (decimal)i["laborbad_qty"]),
+                                                materielbad_qty = g.Sum(i => (decimal)i["materielbad_qty"])
                                             }).ToList();
 
                                             mes.code = "200";
                                             mes.count = 3;
-                                            mes.Message = "寮圭獥鏀舵枡鐣岄潰!";
+                                            mes.message = "寮圭獥鏀舵枡鐣岄潰!";
                                             mes.data = rt;
                                         }
                                     }
@@ -1034,7 +892,7 @@
                                     {
                                         mes.code = "300";
                                         mes.count = 0;
-                                        mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏈彂鏂�,璇峰厛鍙戞枡!";
+                                        mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏈彂鏂�,璇峰厛鍙戞枡!";
                                         mes.data = null;
                                         return mes;
                                     }
@@ -1042,10 +900,9 @@
                                 else //闈為閬�
                                 {
                                     //鏌ユ壘褰撳墠宸ュ簭涓婂埌宸ュ簭(鑷埗鎴栬�呭鍗�)
-                                    sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
-                                               left join TK_Wrk_Man M on A.rout_code=M.route_code
-                                               left join TStep S on A.step_code=S.stepcode
-                                               where M.wo_code=@wocode  and A.seq=@seq-1";
+                                    sql = @"select A.step_code,S.stepname,S.flwtype   from TK_Wrk_Step A
+                                            left join TStep S on A.step_code=S.stepcode
+                                            where A.wo_code=@wocode  and A.seq=@seq-1";
                                     dynamicParams.Add("@wocode", data.Rows[0]["WO_CODE"].ToString());
                                     dynamicParams.Add("@seq", decimal.Parse(data.Rows[0]["SEQ"].ToString()));
                                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -1053,7 +910,7 @@
                                     {
                                         //1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鍙戞枡璁板綍
                                         sql = @"select R.wo_code,R.step_code,R.wx_code as code,C.name,R.materiel_code, 
-                                            isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.bad_qty),0) as bad_qty   
+                                            isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.laborbad_qty),0) as laborbad_qty,isnull(sum(R.materielbad_qty),0) as materielbad_qty   
                                             from TK_Wrk_OutRecord R
                                             left join TCustomer C on R.wx_code=C.code
                                             where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='F'
@@ -1065,7 +922,7 @@
                                         {
                                             //2.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鏀舵枡璁板綍
                                             sql = @"select R.wo_code,R.step_code,R.wx_code as code,C.name,R.materiel_code, 
-                                                isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.bad_qty),0) as bad_qty     
+                                                isnull(sum(R.fqty),0) as fqty,isnull(sum(R.sqty),0) as sqty,isnull(sum(R.ng_qty),0) as ng_qty,isnull(sum(R.laborbad_qty),0) as laborbad_qty,isnull(sum(R.materielbad_qty),0) as materielbad_qty       
                                                 from TK_Wrk_OutRecord R
                                                 left join TCustomer C on R.wx_code=C.code
                                                 where R.wo_code=@ordercode and R.step_code=@stepcode and R.style='S'
@@ -1078,13 +935,15 @@
                                                 decimal fqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
                                                 decimal sqty = data2.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();//鏈亾鏀舵枡鏁伴噺
                                                 decimal ng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();//鏈亾涓嶈壇鏁伴噺
-                                                decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎶ュ簾鏁伴噺
-                                                decimal ksqty = fqty - sqty - ng_qty-bad_qty;//鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
+                                                decimal laborbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("LABORBAD_QTY")).Sum();  //鏈亾宸ュ簾鏁伴噺
+                                                decimal materielbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("MATERIELBAD_QTY")).Sum();  //鏈亾鏂欏簾鏁伴噺
+                                                //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾宸ュ簾鏁伴噺-鏈亾鏂欏簾鏁伴噺
+                                                decimal ksqty = fqty - sqty - ng_qty - laborbad_qty- materielbad_qty;
                                                 if (ksqty <= 0)
                                                 {
                                                     mes.code = "300";
                                                     mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏃犲彲鏀舵枡鏁伴噺!";
+                                                    mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏃犲彲鏀舵枡鏁伴噺!";
                                                     mes.data = null;
                                                     return mes;
                                                 }
@@ -1092,27 +951,30 @@
                                                 {
                                                     rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                     rt.noreportqty = ksqty;                                              //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
-                                                    rt.reportqty = sqty + ng_qty+bad_qty;                                 //宸叉敹鏁伴噺                                   
+                                                    rt.reportqty = sqty + ng_qty + laborbad_qty+materielbad_qty;         //宸叉敹鏁伴噺                                   
                                                     rt.startqty = ksqty;                                                  //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺      
-                                                    
+
                                                     data1.Merge(data2);//灏嗘寚瀹氱殑dt鍚堝苟                                                 
-                                                    rt.list = data1.AsEnumerable().GroupBy(r => new { 
-                                                        wo_code = r["wo_code"], 
+                                                    rt.list = data1.AsEnumerable().GroupBy(r => new
+                                                    {
+                                                        wo_code = r["wo_code"],
                                                         step_code = r["step_code"],
-                                                        code= r["code"],
+                                                        code = r["code"],
                                                         name = r["name"]
-                                                    }).Select(g => new { 
-                                                        Name = g.Key.code, 
-                                                        tp = g.Key.name, 
+                                                    }).Select(g => new
+                                                    {
+                                                        Name = g.Key.code,
+                                                        tp = g.Key.name,
                                                         fqty = g.Sum(i => (decimal)i["fqty"]),
                                                         sqty = g.Sum(i => (decimal)i["sqty"]),
                                                         ng_qty = g.Sum(i => (decimal)i["ng_qty"]),
-                                                        bad_qty = g.Sum(i => (decimal)i["bad_qty"])
+                                                        laborbad_qty = g.Sum(i => (decimal)i["laborbad_qty"]),
+                                                        materielbad_qty = g.Sum(i => (decimal)i["materielbad_qty"])
                                                     }).ToList();
-                                                  
+
                                                     mes.code = "200";
                                                     mes.count = 3;
-                                                    mes.Message = "寮圭獥鏀舵枡鐣岄潰!";
+                                                    mes.message = "寮圭獥鏀舵枡鐣岄潰!";
                                                     mes.data = rt;
                                                 }
                                             }
@@ -1124,22 +986,25 @@
                                                 rt.reportqty = 0;                                                    //宸叉敹鏁伴噺                                   
                                                 rt.startqty = fqty;                                                  //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺      
                                                 data1.Merge(data2);//灏嗘寚瀹氱殑dt鍚堝苟                                                 
-                                                rt.list = data1.AsEnumerable().GroupBy(r => new {
+                                                rt.list = data1.AsEnumerable().GroupBy(r => new
+                                                {
                                                     wo_code = r["wo_code"],
                                                     step_code = r["step_code"],
                                                     code = r["code"],
                                                     name = r["name"]
-                                                }).Select(g => new {
+                                                }).Select(g => new
+                                                {
                                                     Name = g.Key.code,
                                                     tp = g.Key.name,
                                                     fqty = g.Sum(i => (decimal)i["fqty"]),
                                                     sqty = g.Sum(i => (decimal)i["sqty"]),
                                                     ng_qty = g.Sum(i => (decimal)i["ng_qty"]),
-                                                    bad_qty = g.Sum(i => (decimal)i["bad_qty"])
+                                                    laborbad_qty = g.Sum(i => (decimal)i["laborbad_qty"]),
+                                                    materielbad_qty = g.Sum(i => (decimal)i["materielbad_qty"])
                                                 }).ToList();
                                                 mes.code = "200";
                                                 mes.count = 3;
-                                                mes.Message = "寮圭獥鏀舵枡鐣岄潰!";
+                                                mes.message = "寮圭獥鏀舵枡鐣岄潰!";
                                                 mes.data = rt;
                                             }
                                         }
@@ -1147,7 +1012,7 @@
                                         {
                                             mes.code = "300";
                                             mes.count = 0;
-                                            mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏈彂鏂�,璇峰厛鍙戞枡!";
+                                            mes.message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + " 鏈彂鏂�,璇峰厛鍙戞枡!";
                                             mes.data = null;
                                             return mes;
                                         }
@@ -1156,7 +1021,7 @@
                                     {
                                         mes.code = "300";
                                         mes.count = 0;
-                                        mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+                                        mes.message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
                                         mes.data = null;
                                         return mes;
                                     }
@@ -1174,7 +1039,7 @@
             {
                 mes.code = "300";
                 mes.count = 0;
-                mes.Message = e.Message;
+                mes.message = e.Message;
                 mes.data = null;
                 return mes;
             }

--
Gitblit v1.9.3