From 5b4fb9c56426b5096555560a44dd365b02853ad4 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期六, 17 六月 2023 13:14:54 +0800
Subject: [PATCH] 代码加组织过滤

---
 VueWebApi/Tools/ScanStartReport.cs |  202 +++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 157 insertions(+), 45 deletions(-)

diff --git a/VueWebApi/Tools/ScanStartReport.cs b/VueWebApi/Tools/ScanStartReport.cs
index 7decc57..0a8dd4e 100644
--- a/VueWebApi/Tools/ScanStartReport.cs
+++ b/VueWebApi/Tools/ScanStartReport.cs
@@ -34,17 +34,20 @@
             {
               
                 //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  
+                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  
                         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
                         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.wo_code = data.Rows[0]["WO_CODE"].ToString(); //宸ュ崟鍙�
                     rt.partnumber = data.Rows[0]["PARTCODE"].ToString(); //浜у搧缂栫爜
                     rt.partname = data.Rows[0]["PARTNAME"].ToString(); //浜у搧鍚嶇О
@@ -73,8 +76,8 @@
                     }
                     if (isend == "Y")  //褰撳墠宸ュ簭鏄湯閬撳伐搴�
                     {
-                        rt.nextstepcode = data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
-                        rt.nextstepname = data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+                        rt.nextstepcode = "";//data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
+                        rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
                     }
                 }
                 else
@@ -91,7 +94,9 @@
                         if (isbott == "Y")  //棣栭亾宸ュ簭
                         {
                             //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊紑宸ヨ褰�
-                            sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='S'";
+                            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'";
                             dynamicParams.Add("@ordercode", ordercode);
                             dynamicParams.Add("@stepcode", stepcode);
                             var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -106,8 +111,9 @@
                                 {
                                     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); //鍓╀綑鍙姤宸ユ暟閲�=浠诲姟鏁伴噺-(鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺)
+                                    decimal kbqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - (good_qty + ng_qty+bad_qty); //鍓╀綑鍙姤宸ユ暟閲�=浠诲姟鏁伴噺-(鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+鎶ュ簾鏁伴噺)
                                     if (kbqty <= 0)//鏃犲彲鎶ュ伐鏁伴噺
                                     {
                                         mes.code = "300";
@@ -118,10 +124,12 @@
                                     }
                                     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;  //鏈姤鏁伴噺=浠诲姟鏁伴噺-宸叉姤鏁伴噺-涓嶈壇鏁伴噺
-                                        rt.reportqty = good_qty + ng_qty;             //宸叉姤鏁伴噺=鎶ュ伐鏁伴噺-涓嶈壇鏁伴噺
+                                        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 = "寮圭獥鎶ュ伐鐣岄潰!";
@@ -130,6 +138,8 @@
                                 }
                                 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()); //鏈姤鏁伴噺
@@ -165,7 +175,9 @@
                             if (data0.Rows.Count > 0)
                             {
                                 //1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁寮�宸ヨ褰�
-                                sql = @"select *   from TK_Wrk_Record where wo_code=@ordercode and step_code=@stepcode and style='S'";
+                                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'";
                                 dynamicParams.Add("@ordercode", ordercode);
                                 dynamicParams.Add("@stepcode", stepcode);
                                 var data1 = DapperHelper.selectdata(sql, dynamicParams);
@@ -178,7 +190,7 @@
                                     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'";
@@ -190,8 +202,9 @@
                                                 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;//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�
+                                                decimal sybqty = sgood_qty - good_qty - ng_qty-bad_qty;//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾鎶ュ簾鎬绘暟
                                                 if (sybqty <= 0)
                                                 {
                                                     mes.code = "300";
@@ -202,10 +215,12 @@
                                                 }
                                                 else
                                                 {
+                                                    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;                                    //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�
+                                                    rt.reportqty = good_qty + ng_qty+bad_qty;                            //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎶ュ簾鎬绘暟
                                                     mes.code = "200";
                                                     mes.count = 1;
                                                     mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
@@ -221,7 +236,7 @@
                                                 return mes;
                                             }
                                         }
-                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //濮斿宸ュ簭
+                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細濮斿宸ュ簭
                                         {
                                             //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
                                             sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
@@ -232,9 +247,10 @@
                                             {
                                                 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>("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;//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�
+                                                decimal sybqty = sqty - good_qty - ng_qty-bad_qty;//鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鎬绘暟閲�-鏈亾鎶ュ伐鎬绘暟閲�-鏈亾涓嶈壇鎬绘暟閲�-鏈亾鎬绘姤搴熸暟
                                                 if (sybqty <= 0)
                                                 {
                                                     mes.code = "300";
@@ -245,10 +261,12 @@
                                                 }
                                                 else
                                                 {
+                                                    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;                                    //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�
+                                                    rt.reportqty = good_qty + ng_qty+bad_qty;                            //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎬绘姤搴熸暟
                                                     mes.code = "200";
                                                     mes.count = 1;
                                                     mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
@@ -279,6 +297,8 @@
                                                 decimal sgood_qty = data3.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鏈亾鎶ュ伐鎬绘暟閲�
                                                 decimal sybqty = sgood_qty;                                      //鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鎶ュ伐鏁伴噺
 
+                                                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;                                             //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
@@ -307,11 +327,13 @@
                                             if (data3.Rows.Count > 0) //涓婇亾鏈夋敹鏂�
                                             {
                                                 decimal sqty = data3.AsEnumerable().Select(d =>d.Field<decimal>("SQTY")).Sum();//涓婇亾鏀舵枡鏁伴噺
-                                                decimal sybqty = sqty;                   //鏈亾鍓╀綑鍙姤鏁伴噺=涓婇亾鏀舵枡鏁伴噺
+                                                decimal sybqty = sqty;                   //鏈亾鍓╀綑鍙敹鏁伴噺=涓婇亾鏀舵枡鏁伴噺
 
+                                                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.startqty = sybqty;                                                //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙敹鏁伴噺
+                                                rt.noreportqty = sybqty;                                             //鏈姤鏁伴噺=鏈亾鍓╀綑鍙敹鏁伴噺
                                                 rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
                                                 mes.code = "200";
                                                 mes.count = 1;
@@ -342,6 +364,7 @@
                                         {
                                             string good_qty = data2.Rows[0]["GOOD_QTY"].ToString();//鎶ュ伐鏁伴噺
                                             string ng_qty = data2.Rows[0]["NG_QTY"].ToString();// 涓嶈壇鏁伴噺
+                                            string bad_qty = data2.Rows[0]["BAD_QTY"].ToString();// 鎶ュ簾鏁伴噺
 
                                             rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                             rt.startqty = decimal.Parse(good_qty);                               //寮�宸ユ暟閲�=(涓婁竴閬撶殑鎶ュ伐鏁伴噺)
@@ -372,6 +395,7 @@
                                         {
                                             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();// 鎶ュ簾鏁伴噺
 
                                             rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                             rt.startqty = sqty;                                                  //寮�宸ユ暟閲�=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
@@ -443,23 +467,25 @@
             string isend = "";  //鏈亾宸ュ簭
             string seq = "";    //宸ュ簭搴忓彿
             List<object> list = new List<object>();
-            ScanStartReportData rt = new ScanStartReportData();
+            ScanStartReportDataOut rt = new ScanStartReportDataOut();
             var dynamicParams = new DynamicParameters();
             try
             {
                 //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  
+                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   
                         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
                         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.wo_code = data.Rows[0]["WO_CODE"].ToString(); //宸ュ崟鍙�
                     rt.partnumber = data.Rows[0]["PARTCODE"].ToString(); //浜у搧缂栫爜
                     rt.partname = data.Rows[0]["PARTNAME"].ToString(); //浜у搧鍚嶇О
@@ -488,8 +514,8 @@
                     }
                     if (isend == "Y")  //褰撳墠宸ュ簭鏄湯閬撳伐搴�
                     {
-                        rt.nextstepcode = data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
-                        rt.nextstepname = data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+                        rt.nextstepcode = "";// data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
+                        rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
                     }
                 }
                 else
@@ -515,7 +541,9 @@
                                 if (isbott == "Y")  //棣栭亾宸ュ簭
                                 {
                                     //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊彂鏂欒褰�
-                                    sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='F'";
+                                    sql = @"select *   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'";
                                     dynamicParams.Add("@ordercode", ordercode);
                                     dynamicParams.Add("@stepcode", stepcode);
                                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -523,7 +551,8 @@
                                     {
                                         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 kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty;                                           //鍓╀綑鍙彂鏁伴噺
+                                        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;  //鍓╀綑鍙彂鏁伴噺
                                         if (kfqty <= 0)
                                         {
                                             mes.code = "300";
@@ -569,13 +598,15 @@
                                     if (data0.Rows.Count > 0)
                                     {
                                         //1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鍙戞枡璁板綍
-                                        sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='F'";
+                                        sql = @"select *   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'";
                                         dynamicParams.Add("@ordercode", ordercode);
                                         dynamicParams.Add("@stepcode", stepcode);
                                         var data1 = DapperHelper.selectdata(sql, dynamicParams);
                                         if (data1.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'";
@@ -587,8 +618,9 @@
                                                     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;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+                                                    decimal sybqty =sgood_qty - sqty - ng_qty- bad_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
                                                     if (sybqty <= 0)
                                                     {
                                                         mes.code = "300";
@@ -601,7 +633,7 @@
                                                     {
                                                         rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                         rt.noreportqty = sybqty;                                             //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
-                                                        rt.reportqty = sqty + ng_qty;                                        //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺                                       
+                                                        rt.reportqty = sqty + ng_qty+bad_qty;                                //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾鎶ュ簾鏁伴噺                                       
                                                         rt.startqty = sybqty;                                                //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺      
 
                                                         mes.code = "200";
@@ -619,7 +651,7 @@
                                                     return mes;
                                                 }
                                             }
-                                            if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //澶栧崗宸ュ簭
+                                            if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細澶栧崗宸ュ簭
                                             {
                                                 //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
                                                 sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
@@ -631,8 +663,9 @@
                                                     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;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+                                                    decimal sybqty = ssqty - sqty - ng_qty-bad_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
                                                     if (sybqty <= 0)
                                                     {
                                                         mes.code = "300";
@@ -645,7 +678,7 @@
                                                     {
                                                         rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                         rt.noreportqty = sybqty;                                             //鏈彂鏁伴噺=鍓╀綑鍙彂鏁伴噺
-                                                        rt.reportqty = sqty + ng_qty;                                        //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺                                       
+                                                        rt.reportqty = sqty + ng_qty+bad_qty;                                //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾鎶ュ簾鏁伴噺                                       
                                                         rt.startqty = sybqty;                                                //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺      
 
                                                         mes.code = "200";
@@ -770,14 +803,25 @@
                                 if (isbott == "Y")  //棣栭亾宸ュ簭
                                 {
                                     //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夊彂鏂欒褰�
-                                    sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='F'";
+                                    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   
+                                            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'
+                                            group by R.wo_code,R.step_code,R.wx_code,C.name,R.materiel_code";
                                     dynamicParams.Add("@ordercode", ordercode);
                                     dynamicParams.Add("@stepcode", stepcode);
                                     var data0 = DapperHelper.selectdata(sql, dynamicParams);
                                     if (data0.Rows.Count > 0)  //鏈夊彂鏂欒褰�
                                     {
                                         //1.棣栭亾宸ュ簭鏃讹紝鍒ゆ柇鏄惁鏈夋敹鏂欒褰�
-                                        sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+                                        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     
+                                                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'
+                                                group by R.wo_code,R.step_code,R.wx_code,C.name,R.materiel_code";
+                                        //sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
                                         dynamicParams.Add("@ordercode", ordercode);
                                         dynamicParams.Add("@stepcode", stepcode);
                                         var data1 = DapperHelper.selectdata(sql, dynamicParams);
@@ -786,7 +830,8 @@
                                             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 ksqty = fqty - sqty - ng_qty;                                                //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+                                            decimal bad_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎶ュ簾鏁伴噺
+                                            decimal ksqty = fqty - sqty - ng_qty-bad_qty;  //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
                                             if (ksqty <= 0)
                                             {
                                                 mes.code = "300";
@@ -799,8 +844,23 @@
                                             {
                                                 rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                 rt.noreportqty = ksqty;                                              //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
-                                                rt.reportqty = sqty + ng_qty;                                        //宸叉敹鏁伴噺                                   
+                                                rt.reportqty = sqty + ng_qty+bad_qty;                                //宸叉敹鏁伴噺                                   
                                                 rt.startqty = ksqty;                                                  //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺      
+                                              
+                                                data0.Merge(data1);//灏嗘寚瀹氱殑dt鍚堝苟                                                 
+                                                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 {
+                                                    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"])
+                                                }).ToList();
 
                                                 mes.code = "200";
                                                 mes.count = 3;
@@ -812,11 +872,25 @@
                                         else
                                         {
                                             decimal fqty = data0.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();//鏈亾鍙戞枡鏁伴噺
-
                                             rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                             rt.noreportqty = fqty;                                               //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
                                             rt.reportqty = 0;                                                    //宸叉敹鏁伴噺                                   
-                                            rt.startqty = fqty;                                                  //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺      
+                                            rt.startqty = fqty;                                                  //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺
+                                                                                                                 //
+                                            data0.Merge(data1);//灏嗘寚瀹氱殑dt鍚堝苟                                                 
+                                            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 {
+                                                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"])
+                                            }).ToList();
 
                                             mes.code = "200";
                                             mes.count = 3;
@@ -846,14 +920,24 @@
                                     if (data0.Rows.Count > 0)
                                     {
                                         //1.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鍙戞枡璁板綍
-                                        sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='F'";
+                                        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   
+                                            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'
+                                            group by R.wo_code,R.step_code,R.wx_code,C.name,R.materiel_code";
                                         dynamicParams.Add("@ordercode", ordercode);
                                         dynamicParams.Add("@stepcode", stepcode);
                                         var data1 = DapperHelper.selectdata(sql, dynamicParams);
                                         if (data1.Rows.Count > 0)//鏈亾鏈夊彂鏂欒褰�
                                         {
                                             //2.闈為閬撳伐搴忔椂锛屽垽鏂湰閬撴槸鍚︽湁鏀舵枡璁板綍
-                                            sql = @"select *   from TK_Wrk_OutRecord where wo_code=@ordercode and step_code=@stepcode and style='S'";
+                                            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     
+                                                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'
+                                                group by R.wo_code,R.step_code,R.wx_code,C.name,R.materiel_code";
                                             dynamicParams.Add("@ordercode", ordercode);
                                             dynamicParams.Add("@stepcode", stepcode);
                                             var data2 = DapperHelper.selectdata(sql, dynamicParams);
@@ -862,7 +946,8 @@
                                                 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 ksqty = fqty - sqty - ng_qty;                                               //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺
+                                                decimal bad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎶ュ簾鏁伴噺
+                                                decimal ksqty = fqty - sqty - ng_qty-bad_qty;//鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
                                                 if (ksqty <= 0)
                                                 {
                                                     mes.code = "300";
@@ -875,9 +960,24 @@
                                                 {
                                                     rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                     rt.noreportqty = ksqty;                                              //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
-                                                    rt.reportqty = sqty + ng_qty;                                        //宸叉敹鏁伴噺                                   
+                                                    rt.reportqty = sqty + ng_qty+bad_qty;                                 //宸叉敹鏁伴噺                                   
                                                     rt.startqty = ksqty;                                                  //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺      
-
+                                                    
+                                                    data1.Merge(data2);//灏嗘寚瀹氱殑dt鍚堝苟                                                 
+                                                    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 { 
+                                                        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"])
+                                                    }).ToList();
+                                                  
                                                     mes.code = "200";
                                                     mes.count = 3;
                                                     mes.Message = "寮圭獥鏀舵枡鐣岄潰!";
@@ -887,12 +987,24 @@
                                             else
                                             {
                                                 decimal fqty = data1.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();  //鏈亾鍙戞枡鏁伴噺
-
                                                 rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
                                                 rt.noreportqty = fqty;                                               //鏈敹鏁伴噺=鏈亾鍙戞枡鏁伴噺
                                                 rt.reportqty = 0;                                                    //宸叉敹鏁伴噺                                   
                                                 rt.startqty = fqty;                                                  //鏀舵枡鏁伴噺=鏈亾鍙戞枡鏁伴噺      
-
+                                                data1.Merge(data2);//灏嗘寚瀹氱殑dt鍚堝苟                                                 
+                                                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 {
+                                                    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"])
+                                                }).ToList();
                                                 mes.code = "200";
                                                 mes.count = 3;
                                                 mes.Message = "寮圭獥鏀舵枡鐣岄潰!";

--
Gitblit v1.9.3