From 8b3020c92010076e03d0314f1719083444063626 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 20 十一月 2023 11:26:05 +0800
Subject: [PATCH] 1.生产开报工,修改开工数量功能 2.车间看板,左上产线加工任务增加开工数量字段 3.修改用户清单,用户名称查询无数据问题

---
 VueWebApi/obj/Release/VueWebApi.pdb                                  |    0 
 VueWebApi/Logs/2023-11-13.TXT                                        |   25 +
 VueWebApi/DLL/DAL/BasicSettingDAL.cs                                 |    2 
 VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt          |    1 
 .vs/VueWebApi/v16/.suo                                               |    0 
 VueWebApi/DLL/BLL/ProductionManagementBLL.cs                         |    4 
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs                         |  114 ++--
 VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user      |   10 
 VueWebApi/bin/VueWebApi.xml                                          |   11 
 VueWebApi/Logs/2023-11-14.TXT                                        |    0 
 VueWebApi/DDKanBanModel/ShopTopLeft.cs                               |    1 
 VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache       |    0 
 VueWebApi/Tools/ScanStartReport.cs                                   |  990 +++++++++++++++++++++++++++++++-----------------
 VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache |    0 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb           |    0 
 VueWebApi/Controllers/ProductionManagementController.cs              |   11 
 VueWebApi/DLL/DAL/KanBanManagerentDAL.cs                             |    4 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml           |   11 
 VueWebApi/bin/VueWebApi.pdb                                          |    0 
 19 files changed, 748 insertions(+), 436 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index 4034f3e..720baba 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/Controllers/ProductionManagementController.cs b/VueWebApi/Controllers/ProductionManagementController.cs
index 604e14e..f4171db 100644
--- a/VueWebApi/Controllers/ProductionManagementController.cs
+++ b/VueWebApi/Controllers/ProductionManagementController.cs
@@ -435,7 +435,10 @@
         /// <summary>
         /// 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)
         /// </summary>
-        /// <param name="orderstepqrcode">鎵弿鐨勪簩缁寸爜淇℃伅</param>
+        /// <param name="wocode">宸ュ崟鍙�</param>
+        /// <param name="partcode">浜у搧缂栫爜</param>
+        /// <param name="partname">浜у搧鍚嶇О</param>
+        /// <param name="partspec">瑙勬牸鍨嬪彿</param>
         /// <param name="page">椤电爜</param>
         /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
         /// <param name="prop">鎺掑簭瀛楁</param>
@@ -443,13 +446,13 @@
         /// <returns></returns>
         [Route(template: "MesOrderStepSearch")]
         [HttpGet]
-        public HttpResponseMessage MesOrderStepSearch(string orderstepqrcode = null, int page = 0, int rows = 0, string prop = null, string order = null)
+        public HttpResponseMessage MesOrderStepSearch(string wocode = null, string partcode = null, string partname = null, string partspec = null, int page = 0, int rows = 0, string prop = null, string order = null)
         {
             var stu_torgcode = HttpContext.Current.Request.Cookies["stu_torgcode"].Value.ToString(); //鎵�灞炵粍缁�
             var stu_torgtypecode = HttpContext.Current.Request.Cookies["description"].Value.ToString(); //鎵�灞炵粍缁囩被鍨�
             int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
             int endNum = rows * page;   //缁撴潫璁板綍 rowNum
-            mes = ProductionManagementBLL.MesOrderStepSearch(stu_torgcode, stu_torgtypecode,orderstepqrcode, startNum, endNum, prop, order);
+            mes = ProductionManagementBLL.MesOrderStepSearch(stu_torgcode, stu_torgtypecode, wocode,partcode,partname,partspec, startNum, endNum, prop, order);
             return TJson.toJson(mes);
         }
         #endregion
@@ -520,7 +523,7 @@
         /// 鐢熶骇寮�鎶ュ伐锛氬紑宸�(寮�濮�/鎶ュ伐)/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛
         /// </summary>
         /// <param name="OperType">鎿嶄綔绫诲瀷锛氳嚜鍒�(ZZ)/澶栧崗(WX)</param>
-        /// <param name="SelectType">鎿嶄綔绫诲瀷锛氳嚜鍒�(璁惧缂栫爜)/澶栧崗(鍙戞枡鏍囪瘑(OUT)/鏀舵枡鏍囪瘑(IN))</param>
+        /// <param name="SelectType">鎿嶄綔绫诲瀷锛氳嚜鍒�(寮�宸�(START)/鎶ュ伐(REPORT))/澶栧崗(鍙戞枡鏍囪瘑(OUT)/鏀舵枡鏍囪瘑(IN))</param>
         /// <param name="orderstepqrcode">鎵弿浜岀淮鐮佷俊鎭�</param>
         /// <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
         /// <returns></returns>
diff --git a/VueWebApi/DDKanBanModel/ShopTopLeft.cs b/VueWebApi/DDKanBanModel/ShopTopLeft.cs
index 039040a..9056e1a 100644
--- a/VueWebApi/DDKanBanModel/ShopTopLeft.cs
+++ b/VueWebApi/DDKanBanModel/ShopTopLeft.cs
@@ -22,6 +22,7 @@
         public string stepcode { set; get; }
         public string stepname { set; get; }
         public string planqty { set; get; }
+        public string startqty { set; get; }
         public string goodqty { set; get; }
         public string ngqty { set; get; }
         public string status { set; get; }
diff --git a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
index 20903c5..716388a 100644
--- a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
+++ b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -156,9 +156,9 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟]
-        public static ToMessage MesOrderStepSearch(string stu_torgcode,string stu_torgtypecode, string orderstepqrcode, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderStepSearch(string stu_torgcode,string stu_torgtypecode, string wocode,string partcode,string partname,string partspec, int startNum, int endNum, string prop, string order)
         {
-            return ProductionManagementDAL.MesOrderStepSearch(stu_torgcode, stu_torgtypecode, orderstepqrcode, startNum, endNum, prop, order);
+            return ProductionManagementDAL.MesOrderStepSearch(stu_torgcode, stu_torgtypecode, wocode, partcode, partname, partspec, startNum, endNum, prop, order);
         }
         #endregion
 
diff --git a/VueWebApi/DLL/DAL/BasicSettingDAL.cs b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
index 7ecfbc5..2a2127d 100644
--- a/VueWebApi/DLL/DAL/BasicSettingDAL.cs
+++ b/VueWebApi/DLL/DAL/BasicSettingDAL.cs
@@ -330,7 +330,7 @@
                 }
                 if (UserName != "" && UserName != null)
                 {
-                    search += " and S.username like '%'+@UserName+'%' ";
+                    search += " and u.username like '%'+@UserName+'%' ";
                     dynamicParams.Add("@UserName", UserName);
                 }
                 if (wagetype != "" && wagetype != null)
diff --git a/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
index 9724209..65943ae 100644
--- a/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
+++ b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
@@ -93,7 +93,7 @@
                             lineone.children = new List<TreeTwo>();
 
                             //鏌ユ柊宸ュ崟涓嬪伐搴忎俊鎭�
-                            sql = @"select A.seq,T.stepcode,T.stepname,A.plan_qty,A.good_qty,A.ng_qty,A.status  
+                            sql = @"select A.seq,T.stepcode,T.stepname,A.plan_qty,A.start_qty,A.good_qty,A.ng_qty,A.status  
                                             from TK_Wrk_Step A
                                             left join TStep T on A.step_code=T.stepcode
                                             where A.wo_code=@wo_code";
@@ -105,6 +105,7 @@
                                 string stepcode = data1.Rows[k]["STEPCODE"].ToString();//宸ュ簭缂栫爜
                                 string stepname = data1.Rows[k]["STEPNAME"].ToString();//宸ュ簭鍚嶇О
                                 string planqty = data1.Rows[k]["PLAN_QTY"].ToString();//浠诲姟鏁伴噺
+                                string startqty = data1.Rows[k]["START_QTY"].ToString();//寮�宸ユ暟閲�
                                 string good_qty = data1.Rows[k]["GOOD_QTY"].ToString();//鎶ュ伐鏁伴噺
                                 string ng_qty = data1.Rows[k]["NG_QTY"].ToString();//涓嶈壇鏁伴噺
                                 string status = data1.Rows[k]["STATUS"].ToString();//鐘舵��
@@ -113,6 +114,7 @@
                                 linetwo.stepcode = stepcode;
                                 linetwo.stepname = stepname;
                                 linetwo.planqty = planqty;
+                                linetwo.startqty = startqty;
                                 linetwo.goodqty = good_qty;
                                 linetwo.ngqty = ng_qty;
                                 linetwo.status = status;
diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index 65a66de..5f7ba7b 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -1591,7 +1591,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)]
-        public static ToMessage MesOrderStepSearch(string stu_torgcode, string stu_torgtypecode, string orderstepqrcode, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderStepSearch(string stu_torgcode, string stu_torgtypecode, string wocode,string partcode,string partname,string partspec, int startNum, int endNum, string prop, string order)
         {
             var sql = "";
             string search = "";
@@ -1601,17 +1601,12 @@
             var total = 0; //鎬绘潯鏁�
             try
             {
-                if (orderstepqrcode != "" && orderstepqrcode != null)
+                if (wocode != "" && wocode != null)
                 {
-                    string[] arra = orderstepqrcode.Split(';');
+                    string[] arra = wocode.Split(';');
                     if (arra.Length == 1) //宸ュ崟鍙蜂簩缁寸爜
                     {
                         ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.Message = "璇锋壂鎻忓伐搴忎簩缁寸爜!";
-                        mes.data = null;
-                        return mes;
                     }
                     if (arra.Length == 2) //宸ュ崟鍙�+宸ュ簭鍙蜂簩缁寸爜
                     {
@@ -1619,9 +1614,9 @@
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
 
-                    if (ordercode != "" && stepcode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+                    if (ordercode != "" && (stepcode == null || stepcode == "")) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
                     {
-                        search += "and A.wo_code=@ordercode ";
+                        search += "and A.wo_code like '%'+@ordercode+'%' ";
                         dynamicParams.Add("@ordercode", ordercode);
                     }
                     if (ordercode != "" && stepcode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
@@ -1632,14 +1627,6 @@
                         dynamicParams.Add("@stepcode", stepcode);
                     }
                 }
-                //else
-                //{
-                //    mes.code = "300";
-                //    mes.count = 0;
-                //    mes.Message = "浜岀淮鐮佷俊鎭负绌�!";
-                //    mes.data = null;
-                //    return mes;
-                //}
                 if (stepcode != "")
                 {
                     //鏌ユ壘褰撳墠宸ュ簭灞炴��
@@ -1673,9 +1660,24 @@
                     default:
                         break;
                 }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and M.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and M.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and M.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
                 sql = @"select A.status,A.wo_code,B.route_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
-                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,A.plan_startdate,A.plan_enddate,B.lm_date,
+                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.start_qty,A.good_qty,A.ng_qty,A.bad_qty,A.plan_startdate,A.plan_enddate,B.lm_date,
                         B.m_po,W.saleOrderCode
                         from TK_Wrk_Step A
                         left join TK_Wrk_Man B on A.wo_code=B.wo_code
@@ -1696,7 +1698,7 @@
                 }
                 else
                 {
-                    mes.code = "300";
+                    mes.code = "200";
                     mes.count = 0;
                     mes.Message = "鏃犲彲鎵ц鐨勭敓浜т换鍔�,浠诲姟宸插畬鎴愭垨宸插叧闂�!";
                     mes.data = null;
@@ -2418,34 +2420,36 @@
                 string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
                 list.Clear();
                 //鍒ゆ柇鏄惁鏈夊紑宸ヨ褰�
-                sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code  and eqp_code=@eqpcode and style='S'";
+                sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code  and style='S'";
                 dynamicParams.Add("@wo_code", mesordercode);
                 dynamicParams.Add("@step_code", stepcode);
                 dynamicParams.Add("@eqpcode", eqpcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 if (data.Rows.Count > 0)
                 {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.Message = "褰撳墠宸ュ簭浠诲姟璁惧宸插紑宸�!";
-                    mes.data = null;
-                    return mes;
+                    //淇敼寮�鎶ュ伐璁板綍琛�(寮�宸ユ暟閲�)
+                    sql = @"update  TK_Wrk_Record set start_qty=start_qty+@startqty where wo_code=@mesordercode and step_seq=@stepseq and step_code=@stepcode and materiel_code=@partcode and style=@style";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, partcode = partcode, startqty = startqty, style = "S"} });
+                    //淇敼宸ュ崟宸ュ簭琛�(寮�宸ユ暟閲�)
+                    sql = @"update  TK_Wrk_Step set start_qty=start_qty+@startqty where wo_code=@mesordercode and step_code=@stepcode";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode,stepcode = stepcode, startqty = startqty } });
+                }
+                else 
+                {
+                    //鍐欏叆寮�鎶ュ伐璁板綍琛�
+                    sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,eqp_code,materiel_code,open_person,open_time,task_qty,start_qty,style,lm_user,lm_date) 
+                                values(@mesordercode,@stepseq,@stepcode,@eqpcode,@partcode,@username,@opentime,@taskqty,@startqty,@style,@lm_user,@lm_date)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, eqpcode = eqpcode, partcode = partcode, username = username, opentime = date, taskqty = taskqty, startqty = startqty, style = "S", lm_user = username, lm_date = date } });
+                    //鍥炲啓宸ュ崟宸ュ簭琛ㄧ姸鎬佷负START: 寮�宸�
+                    sql = @"update TK_Wrk_Step set status='START',start_qty=@startqty  where wo_code=@mesordercode and step_code=@stepcode";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, startqty = startqty } });
+
+                    //鍥炲啓宸ュ崟琛ㄧ姸鎬佷负锛� 寮�宸ワ細START 
+                    sql = @"update TK_Wrk_Man set status='START'  where wo_code=@mesordercode";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode } });
                 }
 
-                //鍐欏叆寮�鎶ュ伐璁板綍琛�
-                sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,eqp_code,materiel_code,open_person,open_time,task_qty,start_qty,style,lm_user,lm_date) 
-                                values(@mesordercode,@stepseq,@stepcode,@eqpcode,@partcode,@username,@opentime,@taskqty,@startqty,@style,@lm_user,@lm_date)";
-                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, eqpcode = eqpcode, partcode = partcode, username = username, opentime = date, taskqty = taskqty, startqty = startqty, style = "S", lm_user = username, lm_date = date } });
-                //鍥炲啓宸ュ崟宸ュ簭琛ㄧ姸鎬佷负START: 寮�宸�
-                sql = @"update TK_Wrk_Step set status='START'  where wo_code=@mesordercode and step_code=@stepcode";
-                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode } });
-
-                //鍥炲啓宸ュ崟宸ュ簭琛ㄧ姸鎬佷负宸插紑宸�
-                sql = @"update TK_Wrk_Step set status='START'  where wo_code=@mesordercode and step_code=@stepcode";
-                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode } });
-                //鍥炲啓宸ュ崟琛ㄧ姸鎬佷负锛� 寮�宸ワ細START 
-                sql = @"update TK_Wrk_Man set status='START'  where wo_code=@mesordercode";
-                list.Add(new { str = sql, parm = new { mesordercode = mesordercode } });
+               
 
                 bool aa = DapperHelper.DoTransaction(list);
                 if (aa)
@@ -2506,21 +2510,21 @@
                 dynamicParams.Add("@step_code", stepcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 //鑾峰彇寮�宸ヨ褰曠殑榛樿閫変腑鐨勮澶�(浜х嚎)涓庢姤宸ユ椂鐨勮澶囦骇绾垮仛瀵规瘮鍒ゆ柇
-                sql = @"select A.eqp_code,B.name  from TK_Wrk_Record A
-                        inner join TEqpInfo B on A.eqp_code=B.code
-                        where A.wo_code=@wo_code and A.step_code=@step_code and eqp_code=@eqpcode  and A.style='S'";
-                dynamicParams.Add("@wo_code", mesordercode);
-                dynamicParams.Add("@step_code", stepcode);
-                dynamicParams.Add("@eqpcode", eqpcode);
-                var da = DapperHelper.selectdata(sql, dynamicParams);
-                if (da.Rows[0]["EQP_CODE"].ToString() != eqpcode)
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.Message = "鎿嶄綔澶辫触,褰撳墠鎶ュ伐浜х嚎搴斾负锛�" + da.Rows[0]["NAME"].ToString() + "!";
-                    mes.data = null;
-                    return mes;
-                }
+                //sql = @"select A.eqp_code,B.name  from TK_Wrk_Record A
+                //        inner join TEqpInfo B on A.eqp_code=B.code
+                //        where A.wo_code=@wo_code and A.step_code=@step_code and eqp_code=@eqpcode  and A.style='S'";
+                //dynamicParams.Add("@wo_code", mesordercode);
+                //dynamicParams.Add("@step_code", stepcode);
+                //dynamicParams.Add("@eqpcode", eqpcode);
+                //var da = DapperHelper.selectdata(sql, dynamicParams);
+                //if (da.Rows[0]["EQP_CODE"].ToString() != eqpcode)
+                //{
+                //    mes.code = "300";
+                //    mes.count = 0;
+                //    mes.Message = "鎿嶄綔澶辫触,褰撳墠鎶ュ伐浜х嚎搴斾负锛�" + da.Rows[0]["NAME"].ToString() + "!";
+                //    mes.data = null;
+                //    return mes;
+                //}
                 if (data.Rows.Count > 0)
                 {
                     //鑾峰彇涓昏〃鏈�澶D
diff --git a/VueWebApi/Logs/2023-11-13.TXT b/VueWebApi/Logs/2023-11-13.TXT
new file mode 100644
index 0000000..487f0c4
--- /dev/null
+++ b/VueWebApi/Logs/2023-11-13.TXT
@@ -0,0 +1,25 @@
+ 【时间】:2023-11-13 17:08:22,228
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 5 
+ 【文件地址】:D:\新凯迪MES\MES项目\MES正清河\VueWebApi\VueWebApi\Tools\LogHelper.cs 第26行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:“(”附近有语法错误。
+引发异常路径:/api/ProductionManagement/SavaMesOrderStepStart
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource`1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
+   在 Dapper.SqlMapper.ExecuteCommand(IDbConnection cnn, CommandDefinition& command, Action`2 paramReader)
+   在 Dapper.SqlMapper.ExecuteImpl(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.Execute(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.DoTransaction(List`1 sqlList) 位置 D:\新凯迪MES\MES项目\MES正清河\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 459
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
diff --git a/VueWebApi/Logs/2023-11-14.TXT b/VueWebApi/Logs/2023-11-14.TXT
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/VueWebApi/Logs/2023-11-14.TXT
diff --git a/VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user b/VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user
index b7468da..533291a 100644
--- a/VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user
+++ b/VueWebApi/Properties/PublishProfiles/FolderProfile1.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\MES姝f竻娌�</_PublishTargetUrl>
-    <History>True|2023-11-10T05:01:23.2795198Z;True|2023-11-09T16:18:47.9473781+08:00;True|2023-11-09T14:46:45.7310735+08:00;True|2023-11-09T14:36:57.4272880+08:00;True|2023-11-02T18:28:55.6712926+08:00;True|2023-11-02T18:25:31.3074727+08:00;True|2023-11-02T16:25:20.2217266+08:00;True|2023-11-02T14:59:12.9729377+08:00;True|2023-11-02T14:03:21.3142180+08:00;True|2023-11-02T13:10:06.4259793+08:00;True|2023-11-02T13:04:59.2726100+08:00;True|2023-10-30T17:10:12.6270482+08:00;True|2023-10-30T14:52:35.6311299+08:00;True|2023-10-30T11:08:33.1712753+08:00;True|2023-10-13T12:07:07.3822225+08:00;True|2023-10-10T10:34:01.3167190+08:00;True|2023-10-10T10:28:48.9531906+08:00;True|2023-10-10T09:54:43.0218459+08:00;True|2023-10-10T09:43:57.3542420+08:00;True|2023-09-27T07:47:41.5372303+08:00;True|2023-09-21T18:22:16.9575605+08:00;True|2023-09-21T18:09:09.2828591+08:00;True|2023-09-21T17:57:05.3919457+08:00;True|2023-09-21T17:40:17.7722883+08:00;True|2023-09-21T17:24:20.7004108+08:00;True|2023-09-21T17:14:30.5230341+08:00;True|2023-09-21T15:14:11.3019288+08:00;True|2023-09-20T09:47:15.7375677+08:00;True|2023-09-12T14:37:37.0665432+08:00;True|2023-08-16T16:52:02.7063729+08:00;True|2023-08-11T10:35:11.9236725+08:00;True|2023-08-07T10:34:44.0844087+08:00;True|2023-08-07T10:28:56.2230477+08:00;True|2023-07-31T11:18:06.9546379+08:00;True|2023-07-03T10:38:22.8080444+08:00;True|2023-06-26T08:15:27.3611577+08:00;True|2023-06-25T15:36:41.8736654+08:00;True|2023-06-25T14:33:49.5287543+08:00;True|2023-06-13T10:24:59.6876648+08:00;</History>
+    <History>True|2023-11-20T02:49:12.5383967Z;True|2023-11-14T09:40:54.4312378+08:00;True|2023-11-14T09:40:10.8006338+08:00;True|2023-11-14T09:13:25.3929022+08:00;True|2023-11-14T09:10:50.7065424+08:00;True|2023-11-14T08:40:49.3427048+08:00;True|2023-11-13T17:14:18.8132307+08:00;True|2023-11-13T17:03:53.7755485+08:00;True|2023-11-13T16:59:15.1429785+08:00;True|2023-11-13T16:54:21.4762275+08:00;True|2023-11-13T16:11:03.4596175+08:00;True|2023-11-13T15:20:57.4191158+08:00;True|2023-11-10T13:01:23.2795198+08:00;True|2023-11-09T16:18:47.9473781+08:00;True|2023-11-09T14:46:45.7310735+08:00;True|2023-11-09T14:36:57.4272880+08:00;True|2023-11-02T18:28:55.6712926+08:00;True|2023-11-02T18:25:31.3074727+08:00;True|2023-11-02T16:25:20.2217266+08:00;True|2023-11-02T14:59:12.9729377+08:00;True|2023-11-02T14:03:21.3142180+08:00;True|2023-11-02T13:10:06.4259793+08:00;True|2023-11-02T13:04:59.2726100+08:00;True|2023-10-30T17:10:12.6270482+08:00;True|2023-10-30T14:52:35.6311299+08:00;True|2023-10-30T11:08:33.1712753+08:00;True|2023-10-13T12:07:07.3822225+08:00;True|2023-10-10T10:34:01.3167190+08:00;True|2023-10-10T10:28:48.9531906+08:00;True|2023-10-10T09:54:43.0218459+08:00;True|2023-10-10T09:43:57.3542420+08:00;True|2023-09-27T07:47:41.5372303+08:00;True|2023-09-21T18:22:16.9575605+08:00;True|2023-09-21T18:09:09.2828591+08:00;True|2023-09-21T17:57:05.3919457+08:00;True|2023-09-21T17:40:17.7722883+08:00;True|2023-09-21T17:24:20.7004108+08:00;True|2023-09-21T17:14:30.5230341+08:00;True|2023-09-21T15:14:11.3019288+08:00;True|2023-09-20T09:47:15.7375677+08:00;True|2023-09-12T14:37:37.0665432+08:00;True|2023-08-16T16:52:02.7063729+08:00;True|2023-08-11T10:35:11.9236725+08:00;True|2023-08-07T10:34:44.0844087+08:00;True|2023-08-07T10:28:56.2230477+08:00;True|2023-07-31T11:18:06.9546379+08:00;True|2023-07-03T10:38:22.8080444+08:00;True|2023-06-26T08:15:27.3611577+08:00;True|2023-06-25T15:36:41.8736654+08:00;True|2023-06-25T14:33:49.5287543+08:00;True|2023-06-13T10:24:59.6876648+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="Areas/HelpPage/HelpPage.css">
@@ -750,13 +750,13 @@
       <publishTime>12/24/2021 15:38:29</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll">
-      <publishTime>11/10/2023 13:01:17</publishTime>
+      <publishTime>11/20/2023 10:49:02</publishTime>
     </File>
     <File Include="bin/VueWebApi.pdb">
-      <publishTime>11/10/2023 13:01:17</publishTime>
+      <publishTime>11/20/2023 10:49:02</publishTime>
     </File>
     <File Include="bin/VueWebApi.xml">
-      <publishTime>11/10/2023 13:01:17</publishTime>
+      <publishTime>11/20/2023 10:49:02</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>02/08/2013 16:42:28</publishTime>
@@ -1161,7 +1161,7 @@
       <publishTime>06/16/2022 13:39:23</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>11/10/2023 13:01:22</publishTime>
+      <publishTime>11/20/2023 10:49:11</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/VueWebApi/Tools/ScanStartReport.cs b/VueWebApi/Tools/ScanStartReport.cs
index 1be8f6d..953c26f 100644
--- a/VueWebApi/Tools/ScanStartReport.cs
+++ b/VueWebApi/Tools/ScanStartReport.cs
@@ -18,7 +18,7 @@
         /// 鎵爜淇℃伅涓哄伐鍗�+宸ュ簭鏉$爜
         /// </summary>
         /// <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
-        /// <param name="SelectType">璁惧缂栫爜</param>
+        /// <param name="SelectType">鎿嶄綔绫诲瀷(寮�宸ワ細START銆佹姤宸ワ細REPORT)</param>
         /// <param name="ordercode">宸ュ崟缂栧彿</param>
         /// <param name="stepcode">宸ュ簭缂栫爜</param>
         /// <returns></returns>
@@ -39,7 +39,7 @@
                 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;
@@ -53,7 +53,7 @@
                 dynamicParams.Add("@ordercode", ordercode);
                 dynamicParams.Add("@stu_torgcode", stu_torgcode);
                 var da1 = DapperHelper.selectdata(sql, dynamicParams);
-                if (da1.Rows.Count<=0) 
+                if (da1.Rows.Count <= 0)
                 {
                     mes.code = "300";
                     mes.count = 0;
@@ -63,7 +63,7 @@
                 }
 
                 //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.status,A.plan_qty,isnull(A.start_qty,0) as start_qty,A.isbott,A.isend,L.org_code,L.org_name,
                         M.m_po,W.saleOrderCode
                         from TK_Wrk_Step A
                         left join  TStep T on A.step_code=T.stepcode
@@ -77,10 +77,10 @@
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 if (data.Rows.Count > 0)
                 {
-                    rt.wkshopcode= data.Rows[0]["org_code"].ToString(); //杞﹂棿缂栫爜
+                    rt.wkshopcode = data.Rows[0]["org_code"].ToString(); //杞﹂棿缂栫爜
                     rt.wkshopname = data.Rows[0]["org_name"].ToString(); //杞﹂棿鍚嶇О
                     rt.saleOrderCode = data.Rows[0]["saleOrderCode"].ToString();//閿�鍞鍗曞彿
-                    rt.m_po= data.Rows[0]["m_po"].ToString();//璁㈠崟鍙�
+                    rt.m_po = data.Rows[0]["m_po"].ToString();//璁㈠崟鍙�
                     rt.wo_code = data.Rows[0]["WO_CODE"].ToString(); //宸ュ崟鍙�
                     rt.partnumber = data.Rows[0]["PARTCODE"].ToString(); //浜у搧缂栫爜
                     rt.partname = data.Rows[0]["PARTNAME"].ToString(); //浜у搧鍚嶇О
@@ -121,190 +121,301 @@
                     mes.data = null;
                     return mes;
                 }
-
-                switch (flwtype)
+                switch (SelectType)
                 {
-                    case "Z":  //鑷埗宸ュ簭
-                        if (isbott == "Y")  //棣栭亾宸ュ簭
+                    case "START": //寮�宸�
+                        switch (flwtype) //宸ュ簭灞炴��(鑷埗銆佸鍗�)
                         {
-                            //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 eqp_code=@eqp_code and R.style='S'";
-                            dynamicParams.Add("@ordercode", ordercode);
-                            dynamicParams.Add("@stepcode", stepcode);
-                            dynamicParams.Add("@eqp_code", SelectType);
-                            var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                            if (data0.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)
+                            case "Z":  //鑷埗宸ュ簭
+                                if (isbott == "Y")  //棣栭亾宸ュ簭
                                 {
-                                    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)//鏃犲彲鎶ュ伐鏁伴噺
+                                    //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'";
+                                    dynamicParams.Add("@ordercode", ordercode);
+                                    dynamicParams.Add("@stepcode", stepcode);
+                                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                                    if (data0.Rows.Count > 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;             //宸叉姤鏁伴噺=鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+鎶ュ簾鏁伴噺
+                                        if (decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - decimal.Parse(data0.Rows[0]["START_QTY"].ToString()) == 0)
+                                        {
+                                            mes.code = "300";
+                                            mes.count = 0;
+                                            mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏃犲彲寮�宸ユ暟閲�!";
+                                            mes.data = null;
+                                            break;
+                                        }
+                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                        //寮�宸ユ暟閲�=浠诲姟鏁伴噺-宸插紑宸ユ�绘暟閲�
+                                        rt.startqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - decimal.Parse(data0.Rows[0]["START_QTY"].ToString());
+                                        //鏈紑鏁伴噺=浠诲姟鏁伴噺-宸插紑宸ユ�绘暟閲�
+                                        rt.noreportqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - decimal.Parse(data0.Rows[0]["START_QTY"].ToString());
+                                        //宸插紑鏁伴噺
+                                        rt.reportqty = decimal.Parse(data0.Rows[0]["START_QTY"].ToString());
                                         mes.code = "200";
                                         mes.count = 1;
                                         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.data = rt;
                                     }
                                 }
-                                else
+                                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;                                                    //宸叉姤鏁伴噺
-                                    mes.code = "200";
-                                    mes.count = 1;
-                                    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.data = rt;
-                            }
-                        }
-                        else   //闈為閬撳伐搴�
-                        {
-                            //鏌ユ壘褰撳墠宸ュ簭涓婂埌宸ュ簭(鑷埗鎴栬�呭鍗�)
-                            sql = @"select A.step_code,S.stepname,S.flwtype  from TFlw_Rtdt A
+                                    //鏌ユ壘褰撳墠宸ュ簭涓婂埌宸ュ簭(鑷埗鎴栬�呭鍗�)
+                                    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";
-                            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 eqp_code=@eqp_code  and R.style='S'";
-                                dynamicParams.Add("@ordercode", ordercode);
-                                dynamicParams.Add("@stepcode", stepcode);
-                                dynamicParams.Add("@eqp_code", SelectType);
-                                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 data2 = DapperHelper.selectdata(sql, dynamicParams);
-                                    if (data2.Rows.Count > 0) //鏈夋姤宸ヨ褰�
+                                    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)
                                     {
-                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細鑷埗宸ュ簭
+                                        //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'";
+                                        dynamicParams.Add("@ordercode", ordercode);
+                                        dynamicParams.Add("@stepcode", stepcode);
+                                        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", data0.Rows[0]["STEP_CODE"].ToString());
-                                            var data3 = DapperHelper.selectdata(sql, dynamicParams);
-                                            if (data3.Rows.Count > 0) //涓婇亾鏈夋姤宸�
+                                            dynamicParams.Add("@stepcode", stepcode);
+                                            var data2 = DapperHelper.selectdata(sql, dynamicParams);
+                                            if (data2.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)
+                                                if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細鑷埗宸ュ簭
                                                 {
-                                                    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) 
+                                                    //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
+                                                    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 bstartgood_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum();  //鏈亾寮�宸ユ�绘暟閲�
+                                                        decimal bgood_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鏈亾鎶ュ伐鎬诲悎鏍兼暟閲�
+                                                        decimal bng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //鏈亾鎶ュ伐鎬讳笉鑹暟閲�
+                                                        decimal bbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎶ュ伐鎬绘姤搴熸暟閲�
+                                                        //鏈亾宸ュ簭鍙紑宸ユ暟閲�=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        if (sgood_qty - bstartgood_qty == 0)
+                                                        {
+                                                            mes.code = "300";
+                                                            mes.count = 0;
+                                                            mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏆傛棤鍙紑宸ユ暟閲�!";
+                                                            mes.data = null;
+                                                            return mes;
+                                                        }
+                                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                                        rt.startqty = sgood_qty - bstartgood_qty;//寮�宸ユ暟閲�=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        rt.noreportqty = sgood_qty - bstartgood_qty; //鏈紑鏁伴噺=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        rt.reportqty = bstartgood_qty;//宸插紑鏁伴噺=鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        mes.code = "200";
+                                                        mes.count = 0;
+                                                        mes.Message = "寮圭獥寮�宸ョ晫闈�!";
+                                                        mes.data = rt;
+                                                    }
+                                                    else
                                                     {
                                                         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() + " 鏈姤宸�,鏈亾涓嶅厑璁稿紑宸�!";
                                                         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;
+                                                }
+                                                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 bstartqty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum();  //鏈亾寮�宸ユ�绘暟閲�
+                                                        decimal bgood_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();  //鏈亾鎶ュ伐鎬绘暟閲�
+                                                        decimal bng_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("NG_QTY")).Sum();  //鏈亾涓嶈壇鎬绘暟閲�
+                                                        decimal bbad_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("BAD_QTY")).Sum();  //鏈亾鎬绘姤搴熸暟閲�
+
+                                                        if (sqty - bstartqty == 0)
+                                                        {
+                                                            mes.code = "300";
+                                                            mes.count = 0;
+                                                            mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏃犲彲寮�宸ユ暟閲�!";
+                                                            mes.data = null;
+                                                            return mes;
+                                                        }
+                                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                                        //寮�宸ユ暟閲�=涓婇亾宸ュ簭鏀舵枡鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        rt.startqty = sqty - bstartqty;
+                                                        //鏈紑鏁伴噺=涓婇亾宸ュ簭鏀舵枡鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        rt.noreportqty = sqty - bstartqty;
+                                                        //宸插紑鏁伴噺=鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        rt.reportqty = bstartqty;                            
+                                                        mes.code = "200";
+                                                        mes.count = 0;
+                                                        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
+                                            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() == "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 bstart_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum();  //鏈亾寮�宸ユ�绘暟閲�
+                                                        //涓婇亾鎶ュ伐鎬绘暟-鏈亾寮�宸ユ�绘暟
+                                                        if (sgood_qty- bstart_qty == 0)
+                                                        {
+                                                            mes.code = "300";
+                                                            mes.count = 0;
+                                                            mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏆傛棤鍙紑宸ユ暟閲�!";
+                                                            mes.data = null;
+                                                            return mes;
+                                                        }
+                                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                                        rt.startqty = sgood_qty - bstart_qty;//寮�宸ユ暟閲�=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        rt.noreportqty = sgood_qty - bstart_qty; //鏈紑鏁伴噺=涓婇亾宸ュ簭鎶ュ伐鎬绘暟-鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        rt.reportqty = bstart_qty;//宸插紑鏁伴噺=鏈亾宸ュ簭寮�宸ユ�绘暟
+                                                        mes.code = "200";
+                                                        mes.count = 0;
+                                                        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;
+                                                    }
+                                                }
+                                                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 bstart_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum();  //鏈亾寮�宸ユ�绘暟閲�
+                                                        //涓婇亾鏀舵枡鎬绘暟-鏈亾寮�宸ユ�绘暟
+                                                        if (sqty - bstart_qty == 0)
+                                                        {
+                                                            mes.code = "300";
+                                                            mes.count = 0;
+                                                            mes.Message = "褰撳墠宸ュ崟宸ュ簭浠诲姟鏆傛棤鍙紑宸ユ暟閲�!";
+                                                            mes.data = null;
+                                                            return mes;
+                                                        }
+                                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                                        rt.startqty = sqty - bstart_qty;//寮�宸ユ暟閲�=涓婇亾鏀舵枡鎬绘暟-鏈亾寮�宸ユ�绘暟
+                                                        rt.noreportqty = sqty - bstart_qty; //鏈紑鏁伴噺=涓婇亾鏀舵枡鎬绘暟-鏈亾寮�宸ユ�绘暟
+                                                        rt.reportqty = bstart_qty;//宸插紑鏁伴噺=鏈亾寮�宸ユ�绘暟
+                                                        mes.code = "200";
+                                                        mes.count = 0;
+                                                        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;
+                                                    }
+                                                }
                                             }
                                         }
-                                        if (data0.Rows[0]["FLWTYPE"].ToString() == "W")  //鍒ゆ柇涓婇亾宸ュ簭灞炴�э細濮斿宸ュ簭
+                                        else //鏃犲紑宸ヨ褰�
                                         {
-                                            //鏌ユ壘涓婂埌宸ュ簭鏀舵枡璁板綍
-                                            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) //涓婇亾鏈夋敹鏂�
+                                            if (data0.Rows[0]["FLWTYPE"].ToString() == "Z")  //褰撳墠宸ュ簭涓婇亾鑷埗宸ュ簭
                                             {
-                                                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)
+                                                //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
+                                                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) //涓婂埌宸ュ簭鏈夋姤宸�
                                                 {
-                                                    mes.code = "300";
+                                                    decimal good_qty = data2.AsEnumerable().Select(d => d.Field<decimal>("GOOD_QTY")).Sum();//涓婇亾宸ュ簭鎶ュ伐鎬诲悎鏍兼暟閲�
+                                                    if (good_qty == null || good_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.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
+                                                    rt.startqty = good_qty;                               //寮�宸ユ暟閲�=(涓婁竴閬撶殑鎶ュ伐鎬绘暟閲�)
+                                                    rt.noreportqty = good_qty;                            //鏈紑鏁伴噺=(涓婁竴閬撶殑鎶ュ伐鎬绘暟閲�)
+                                                    rt.reportqty = 0;                                     //宸插紑鏁伴噺
+                                                    mes.code = "200";
                                                     mes.count = 0;
-                                                    mes.Message = "褰撳墠宸ュ簭锛�" + data.Rows[0]["STEPNAME"].ToString() + "鏃犲彲鎶ユ暟閲�!";
-                                                    mes.data = null;
-                                                    return mes;
+                                                    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;
+                                                }
+                                            }
+                                            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) //涓婇亾宸ュ簭鏈夋敹鏂�
+                                                {
+                                                    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();// 鎶ュ簾鏁伴噺
                                                     if (sqty == null || sqty == 0)
                                                     {
                                                         mes.code = "300";
@@ -313,211 +424,364 @@
                                                         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;                            //宸叉姤鏁伴噺=鏈亾鎶ュ伐鎬绘暟閲�+鏈亾鎶ュ伐鎬讳笉鑹�+鏈亾鎬绘姤搴熸暟
+                                                    rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
+                                                    rt.startqty = sqty;                                                  //寮�宸ユ暟閲�=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
+                                                    rt.noreportqty = sqty;                                               //鏈紑鏁伴噺=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
+                                                    rt.reportqty = 0;                                                    //宸插紑鏁伴噺
                                                     mes.code = "200";
-                                                    mes.count = 1;
-                                                    mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+                                                    mes.count = 0;
+                                                    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)
+                                                else
                                                 {
                                                     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() + " 鏈敹鏂�,鏈亾涓嶅厑璁稿紑鎶ュ伐,璇峰墠寰�澶栧崗鎿嶄綔椤垫墽琛�!";
                                                     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;                                                    //宸叉姤鏁伴噺
-                                                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;
-                                            }
-                                        }
-                                        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 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.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;                                                    //宸叉姤鏁伴噺
-                                                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")  //鑷埗宸ュ簭
+                                    else
                                     {
-                                        //鏌ユ壘涓婂埌宸ュ簭鎶ュ伐璁板綍
-                                        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) //涓婂埌宸ュ簭鏈夋姤宸�
-                                        {
-                                            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)
-                                            {
-                                                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.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
-                                            rt.startqty = good_qty;                               //寮�宸ユ暟閲�=(涓婁竴閬撶殑鎶ュ伐鎬绘暟閲�)
-                                            rt.noreportqty = good_qty;                            //鏈姤鏁伴噺=(涓婁竴閬撶殑鎶ュ伐鎬绘暟閲�)
-                                            rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
-                                            mes.code = "200";
-                                            mes.count = 0;
-                                            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;
-                                        }
+                                        mes.code = "300";
+                                        mes.count = 0;
+                                        mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+                                        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) //涓婇亾宸ュ簭鏈夋敹鏂�
-                                        {
-                                            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();// 鎶ュ簾鏁伴噺
-                                            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.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());     //浠诲姟鏁伴噺
-                                            rt.startqty = sqty;                                                  //寮�宸ユ暟閲�=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
-                                            rt.noreportqty = sqty;                                               //鏈姤鏁伴噺=(涓婁竴閬撶殑鏀舵枡鏁伴噺)
-                                            rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
-                                            mes.code = "200";
-                                            mes.count = 0;
-                                            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
-                            {
+                                break;
+                            case "W":  //澶栧崗宸ュ簭
                                 mes.code = "300";
                                 mes.count = 0;
-                                mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+                                mes.Message = "褰撳墠鏍囩涓哄鍗忔爣绛�,璇峰墠寰�澶栧崗鎿嶄綔鏍囩椤垫壂鐮�!";
                                 mes.data = null;
-                                return mes;
-                            }
-
+                                break;
+                            default:   //鑷埗+澶栧崗宸ュ簭
+                                break;
                         }
                         break;
-                    case "W":  //澶栧崗宸ュ簭
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.Message = "褰撳墠鏍囩涓哄鍗忔爣绛�,璇峰墠寰�澶栧崗鎿嶄綔鏍囩椤垫壂鐮�!";
-                        mes.data = null;
+                    case "REPORT": //鎶ュ伐
+                        switch (flwtype)
+                        {
+                            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'";
+                                    dynamicParams.Add("@ordercode", ordercode);
+                                    dynamicParams.Add("@stepcode", stepcode);
+                                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                                    if (data0.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 start_qty = data0.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum();  //褰撳墠寮�宸ユ�绘暟閲�
+                                            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 = start_qty - (good_qty + ng_qty + bad_qty); //鍓╀綑鍙姤宸ユ暟閲�=寮�宸ユ�绘暟閲�-(鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+鎶ュ簾鏁伴噺)
+                                            if (kbqty <= 0)//鏃犲彲鎶ュ伐鏁伴噺
+                                            {
+                                                mes.code = "300";
+                                                mes.count = 0;
+                                                mes.Message = "褰撳墠宸ュ簭鏃犲彲鎶ュ伐鏁伴噺!";
+                                                mes.data = null;
+                                                return mes;
+                                            }
+                                            else
+                                            {
+                                                rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString());//浠诲姟鏁伴噺
+                                                rt.startqty = start_qty;           //寮�宸ユ暟閲�=褰撳墠寮�宸ユ�绘暟閲�
+                                                rt.noreportqty = kbqty;  //鏈姤鏁伴噺=鍓╀綑鍙姤宸ユ暟閲�
+                                                rt.reportqty = good_qty + ng_qty + bad_qty;//宸叉姤鏁伴噺=鎶ュ伐鏁伴噺+涓嶈壇鏁伴噺+鎶ュ簾鏁伴噺
+                                                mes.code = "200";
+                                                mes.count = 1;
+                                                mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+                                                mes.data = rt;
+                                            }
+                                        }
+                                        else
+                                        {
+                                            rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                            rt.startqty = decimal.Parse(data.Rows[0]["START_QTY"].ToString()); //寮�宸ユ暟閲�
+                                            rt.noreportqty = decimal.Parse(data.Rows[0]["START_QTY"].ToString()); //鏈姤鏁伴噺=寮�宸ユ暟閲�
+                                            rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
+                                            mes.code = "200";
+                                            mes.count = 1;
+                                            mes.Message = "寮圭獥鎶ュ伐鐣岄潰!";
+                                            mes.data = rt;
+                                        }
+                                    }
+                                    else
+                                    {
+                                        mes.code = "300";
+                                        mes.count = 0;
+                                        mes.Message = "褰撳墠宸ュ簭鏈紑宸�!";
+                                        mes.data = null;
+                                        return mes;
+                                    }
+                                }
+                                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";
+                                    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'";
+                                        dynamicParams.Add("@ordercode", ordercode);
+                                        dynamicParams.Add("@stepcode", stepcode);
+                                        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 data2 = DapperHelper.selectdata(sql, dynamicParams);
+                                            if (data2.Rows.Count > 0) //鏈夋姤宸ヨ褰�
+                                            {
+                                                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 start_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_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 = start_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.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                                            rt.startqty = decimal.Parse(data1.Rows[0]["START_QTY"].ToString());//寮�宸ユ暟閲�=鏈亾寮�宸ユ�绘暟閲�
+                                                            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;
+                                                    }
+                                                }
+                                                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 startqty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_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 = startqty - 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.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                                            rt.startqty = startqty;                                         //寮�宸ユ暟閲�=鏈亾寮�宸ユ�绘暟閲�
+                                                            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 start_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum();  //鏈亾寮�宸ユ�绘暟閲�
+                                                        decimal sybqty = start_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.data = null;
+                                                            return mes;
+                                                        }
+                                                        rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                                        rt.startqty = sybqty;                                                //寮�宸ユ暟閲�=鏈亾鍓╀綑鍙姤鏁伴噺
+                                                        rt.noreportqty = sybqty;                                             //鏈姤鏁伴噺=鏈亾鍓╀綑鍙姤鏁伴噺
+                                                        rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
+                                                        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;
+                                                    }
+                                                }
+                                                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 start_qty = data1.AsEnumerable().Select(d => d.Field<decimal>("START_QTY")).Sum();//鏈亾寮�宸ユ�绘暟閲�
+                                                        decimal sybqty = start_qty;                   //鏈亾鍓╀綑鎶ユ暟閲�=鏈亾寮�宸ユ�绘暟閲�
+                                                        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.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
+                                                        rt.startqty = sybqty;                                                //寮�宸ユ暟閲�=鏈亾鍓╀綑鎶ユ暟閲�
+                                                        rt.noreportqty = sybqty;                                             //鏈姤鏁伴噺=鏈亾鍓╀綑鎶ユ暟閲�
+                                                        rt.reportqty = 0;                                                    //宸叉姤鏁伴噺
+                                                        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 //鏃犲紑宸ヨ褰�
+                                        {
+                                            mes.code = "300";
+                                            mes.count = 0;
+                                            mes.Message = "褰撳墠宸ュ簭鏈紑宸�!";
+                                            mes.data = null;
+                                            return mes;
+                                        }
+                                    }
+                                    else
+                                    {
+                                        mes.code = "300";
+                                        mes.count = 0;
+                                        mes.Message = "鏈壘鍒板綋鍓嶅伐搴忕殑涓婇亾宸ュ簭淇℃伅,璇疯仈绯荤鐞嗗憳鏍稿疄!";
+                                        mes.data = null;
+                                        return mes;
+                                    }
+
+                                }
+                                break;
+                            case "W":  //澶栧崗宸ュ簭
+                                mes.code = "300";
+                                mes.count = 0;
+                                mes.Message = "褰撳墠鏍囩涓哄鍗忔爣绛�,璇峰墠寰�澶栧崗鎿嶄綔鏍囩椤垫壂鐮�!";
+                                mes.data = null;
+                                break;
+                            default:   //鑷埗+澶栧崗宸ュ簭
+                                break;
+                        }
                         break;
-                    default:   //鑷埗+澶栧崗宸ュ簭
+                    default:
                         break;
                 }
-
             }
             catch (Exception e)
             {
@@ -663,9 +927,9 @@
                                     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 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 kfqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()) - fqty - ng_qty - bad_qty;  //鍓╀綑鍙彂鏁伴噺
                                         if (kfqty <= 0)
                                         {
                                             mes.code = "300";
@@ -733,7 +997,7 @@
                                                     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 sybqty = sgood_qty - sqty - ng_qty - bad_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鎶ュ伐鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
                                                     if (sybqty <= 0)
                                                     {
                                                         mes.code = "300";
@@ -754,7 +1018,7 @@
                                                         }
                                                         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 + bad_qty;                                //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾鎶ュ簾鏁伴噺                                       
                                                         rt.startqty = sybqty;                                                //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺      
 
                                                         mes.code = "200";
@@ -786,7 +1050,7 @@
                                                     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 sybqty = ssqty - sqty - ng_qty - bad_qty;//鏈亾鍓╀綑鍙彂鏁伴噺=涓婇亾鏀舵枡鏁伴噺-鏈亾鍙戞枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
                                                     if (sybqty <= 0)
                                                     {
                                                         mes.code = "300";
@@ -807,7 +1071,7 @@
                                                         }
                                                         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 + bad_qty;                                //宸插彂鏁伴噺= 鏈亾鍙戞枡鏁伴噺+鏈亾涓嶈壇鏁伴噺+鏈亾鎶ュ簾鏁伴噺                                       
                                                         rt.startqty = sybqty;                                                //鏀舵枡鏁伴噺=鍓╀綑鍙彂鏁伴噺      
 
                                                         mes.code = "200";
@@ -975,7 +1239,7 @@
                                             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 ksqty = fqty - sqty - ng_qty - bad_qty;  //鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
                                             if (ksqty <= 0)
                                             {
                                                 mes.code = "300";
@@ -988,16 +1252,18 @@
                                             {
                                                 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 + bad_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"]),
@@ -1022,12 +1288,14 @@
                                             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"]),
@@ -1091,7 +1359,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();  //鏈亾鎶ュ簾鏁伴噺
-                                                decimal ksqty = fqty - sqty - ng_qty-bad_qty;//鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
+                                                decimal ksqty = fqty - sqty - ng_qty - bad_qty;//鍓╀綑鍙彂鏁伴噺=鏈亾鍙戞枡鏁伴噺-鏈亾鏀舵枡鏁伴噺-鏈亾涓嶈壇鏁伴噺-鏈亾鎶ュ簾鏁伴噺
                                                 if (ksqty <= 0)
                                                 {
                                                     mes.code = "300";
@@ -1104,24 +1372,26 @@
                                                 {
                                                     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 + bad_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"])
                                                     }).ToList();
-                                                  
+
                                                     mes.code = "200";
                                                     mes.count = 3;
                                                     mes.Message = "寮圭獥鏀舵枡鐣岄潰!";
@@ -1136,12 +1406,14 @@
                                                 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"]),
diff --git a/VueWebApi/bin/VueWebApi.pdb b/VueWebApi/bin/VueWebApi.pdb
index 66fc99a..f11353a 100644
--- a/VueWebApi/bin/VueWebApi.pdb
+++ b/VueWebApi/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/bin/VueWebApi.xml b/VueWebApi/bin/VueWebApi.xml
index 1ce4345..3528d16 100644
--- a/VueWebApi/bin/VueWebApi.xml
+++ b/VueWebApi/bin/VueWebApi.xml
@@ -2737,11 +2737,14 @@
             <param name="orderstepqrcode">鎵弿鐨勪簩缁寸爜淇℃伅</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepSearch(System.String,System.Int32,System.Int32,System.String,System.String)">
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepSearch(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
             <summary>
             鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)
             </summary>
-            <param name="orderstepqrcode">鎵弿鐨勪簩缁寸爜淇℃伅</param>
+            <param name="wocode">宸ュ崟鍙�</param>
+            <param name="partcode">浜у搧缂栫爜</param>
+            <param name="partname">浜у搧鍚嶇О</param>
+            <param name="partspec">瑙勬牸鍨嬪彿</param>
             <param name="page">椤电爜</param>
             <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
             <param name="prop">鎺掑簭瀛楁</param>
@@ -2782,7 +2785,7 @@
             鐢熶骇寮�鎶ュ伐锛氬紑宸�(寮�濮�/鎶ュ伐)/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛
             </summary>
             <param name="OperType">鎿嶄綔绫诲瀷锛氳嚜鍒�(ZZ)/澶栧崗(WX)</param>
-            <param name="SelectType">鎿嶄綔绫诲瀷锛氳嚜鍒�(璁惧缂栫爜)/澶栧崗(鍙戞枡鏍囪瘑(OUT)/鏀舵枡鏍囪瘑(IN))</param>
+            <param name="SelectType">鎿嶄綔绫诲瀷锛氳嚜鍒�(寮�宸�(START)/鎶ュ伐(REPORT))/澶栧崗(鍙戞枡鏍囪瘑(OUT)/鏀舵枡鏍囪瘑(IN))</param>
             <param name="orderstepqrcode">鎵弿浜岀淮鐮佷俊鎭�</param>
             <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
             <returns></returns>
@@ -4761,7 +4764,7 @@
             鎵爜淇℃伅涓哄伐鍗�+宸ュ簭鏉$爜
             </summary>
             <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
-            <param name="SelectType">璁惧缂栫爜</param>
+            <param name="SelectType">鎿嶄綔绫诲瀷(寮�宸ワ細START銆佹姤宸ワ細REPORT)</param>
             <param name="ordercode">宸ュ崟缂栧彿</param>
             <param name="stepcode">宸ュ簭缂栫爜</param>
             <returns></returns>
diff --git a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
index 5b52e30..500ab4c 100644
--- a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
index 66fc99a..f11353a 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
index 1ce4345..3528d16 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -2737,11 +2737,14 @@
             <param name="orderstepqrcode">鎵弿鐨勪簩缁寸爜淇℃伅</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepSearch(System.String,System.Int32,System.Int32,System.String,System.String)">
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderStepSearch(System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
             <summary>
             鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)
             </summary>
-            <param name="orderstepqrcode">鎵弿鐨勪簩缁寸爜淇℃伅</param>
+            <param name="wocode">宸ュ崟鍙�</param>
+            <param name="partcode">浜у搧缂栫爜</param>
+            <param name="partname">浜у搧鍚嶇О</param>
+            <param name="partspec">瑙勬牸鍨嬪彿</param>
             <param name="page">椤电爜</param>
             <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
             <param name="prop">鎺掑簭瀛楁</param>
@@ -2782,7 +2785,7 @@
             鐢熶骇寮�鎶ュ伐锛氬紑宸�(寮�濮�/鎶ュ伐)/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛
             </summary>
             <param name="OperType">鎿嶄綔绫诲瀷锛氳嚜鍒�(ZZ)/澶栧崗(WX)</param>
-            <param name="SelectType">鎿嶄綔绫诲瀷锛氳嚜鍒�(璁惧缂栫爜)/澶栧崗(鍙戞枡鏍囪瘑(OUT)/鏀舵枡鏍囪瘑(IN))</param>
+            <param name="SelectType">鎿嶄綔绫诲瀷锛氳嚜鍒�(寮�宸�(START)/鎶ュ伐(REPORT))/澶栧崗(鍙戞枡鏍囪瘑(OUT)/鏀舵枡鏍囪瘑(IN))</param>
             <param name="orderstepqrcode">鎵弿浜岀淮鐮佷俊鎭�</param>
             <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
             <returns></returns>
@@ -4761,7 +4764,7 @@
             鎵爜淇℃伅涓哄伐鍗�+宸ュ簭鏉$爜
             </summary>
             <param name="stu_torgcode">鎵�灞炵粍缁囩紪鐮�</param>
-            <param name="SelectType">璁惧缂栫爜</param>
+            <param name="SelectType">鎿嶄綔绫诲瀷(寮�宸ワ細START銆佹姤宸ワ細REPORT)</param>
             <param name="ordercode">宸ュ崟缂栧彿</param>
             <param name="stepcode">宸ュ簭缂栫爜</param>
             <returns></returns>
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache b/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
index f5e894a..f385988 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
Binary files differ
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
index 44908df..64afa43 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
@@ -868,7 +868,6 @@
 D:\鏂板嚡杩狹ES\MES椤圭洰\MES姝f竻娌砛VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.resources.dll
 D:\鏂板嚡杩狹ES\MES椤圭洰\MES姝f竻娌砛VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Deployment.resources.dll
 D:\鏂板嚡杩狹ES\MES椤圭洰\MES姝f竻娌砛VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Razor.resources.dll
-D:\鏂板嚡杩狹ES\MES椤圭洰\MES姝f竻娌砛VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.AssemblyReference.cache
 D:\鏂板嚡杩狹ES\MES椤圭洰\MES姝f竻娌砛VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CoreCompileInputs.cache
 D:\鏂板嚡杩狹ES\MES椤圭洰\MES姝f竻娌砛VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CopyComplete
 D:\鏂板嚡杩狹ES\MES椤圭洰\MES姝f竻娌砛VueWebApi\VueWebApi\obj\Release\VueWebApi.dll
diff --git a/VueWebApi/obj/Release/VueWebApi.pdb b/VueWebApi/obj/Release/VueWebApi.pdb
index 66fc99a..f11353a 100644
--- a/VueWebApi/obj/Release/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ

--
Gitblit v1.9.3