From 0fdd403b7b57b02b3c224f1d160404c0b7e6c1e0 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 15 三月 2024 15:32:14 +0800
Subject: [PATCH] 1.优化生产进度报表查询语句

---
 VueWebApi/DLL/DAL/ReportManagerDAL.cs |   98 +++++++++++++++++++++++++++---------------------
 1 files changed, 55 insertions(+), 43 deletions(-)

diff --git a/VueWebApi/DLL/DAL/ReportManagerDAL.cs b/VueWebApi/DLL/DAL/ReportManagerDAL.cs
index 5167ff3..46d154a 100644
--- a/VueWebApi/DLL/DAL/ReportManagerDAL.cs
+++ b/VueWebApi/DLL/DAL/ReportManagerDAL.cs
@@ -1621,7 +1621,7 @@
 
 
         #region[鐢熶骇杩涘害鎶ヨ〃]
-        public static ToMessage ProductionScheduleReportSearch(string wkshopcode, string status, string wocode,string saleordercode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate, int startNum, int endNum, string prop, string order)
+        public static ToMessage ProductionScheduleReportSearch(string wkshopcode, string status, string wocode, string saleordercode, string routecode, string routename, string partcode, string partname, string partspec, string opendate, string closedate, int startNum, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
@@ -1632,18 +1632,18 @@
                     search += "and AA.wkshp_code=@wkshopcode ";
                     dynamicParams.Add("@wkshopcode", wkshopcode);
                 }
-                if (status != "" && status != null) 
+                if (status != "" && status != null)
                 {
                     switch (status)
                     {
                         case "START":
-                            search += "and AA.status='START' ";
+                            search += "and AA.status='鎵ц涓�' ";
                             break;
                         case "CLOSED":
-                            search += "and AA.status='CLOSED' ";
+                            search += "and AA.status='宸插畬鎴�' ";
                             break;
                         default:
-                            search += "and AA.status<>'START' and AA.status<>'CLOSED' ";
+                            search += "and AA.status='鏈紑濮�' ";
                             break;
                     }
                 }
@@ -1695,23 +1695,28 @@
                 search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select  AA.saleOrderCode,AA.m_po,AA.wkshp_code,AA.wkshp_name,AA.wo_code,
-                            (case when AA.status='START' then '鎵ц涓�' when AA.status='CLOSED' then '宸插畬鎴�' else '鏈紑濮�' end) as status,
-                            AA.lm_date,AA.route_code,AA.route_name,AA.partcode,AA.partname,AA.partspec,AA.plan_qty,left(AA.concat_name,len(concat_name)-1) as concat_name  from
-                            (
-                            select E.saleOrderCode,W.m_po,m.wo_code,W.wkshp_code,F.org_name as wkshp_name,W.status,W.lm_date,W.route_code,R.name as route_name,P.partcode,P.partname,P.partspec,m.plan_qty,
-                            (select s.stepname+'/'+cast(cast(n.good_qty as decimal(18,2)) AS varchar(50))+',' from TK_Wrk_Step n
-                             inner join TStep S on n.step_code=S.stepcode
-                             where n.wo_code=m.wo_code for xml path('')) as concat_name
-                            from TK_Wrk_Step m
-                            inner join TK_Wrk_Man W on m.wo_code=W.wo_code
-                            left join TKimp_Ewo E on W.m_po=E.wo
-                            inner join TMateriel_Info P on W.materiel_code=p.partcode
-                            inner join TFlw_Rout R on W.route_code=R.code
-                            left join  TOrganization F on W.wkshp_code=F.org_code
-                            group by E.saleOrderCode,W.m_po,m.wo_code,W.wkshp_code,F.org_name,W.status,W.lm_date,W.route_code,R.name,P.partcode,P.partname,P.partspec,m.plan_qty
-                            ) AA 
-                            where " + search;
+                var sql = @"select top 100 percent AA.saleOrderCode,AA.m_po,AA.wkshp_code,AA.wkshp_name,AA.wo_code,AA.status,AA.lm_date,
+                            AA.route_code,AA.route_name,AA.partcode,AA.partname,AA.partspec,AA.plan_qty,left(AA.concat_name,len(concat_name)-1) as concat_name 
+                            from (
+                                 select E.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.org_name as wkshp_name,
+                                 case when W.status='START' then '鎵ц涓�' when W.status='CLOSED' then '宸插畬鎴�' else '鏈紑濮�' end as status,
+                                 W.lm_date,W.route_code,R.name as route_name,
+                                 P.partcode,P.partname,P.partspec,W.plan_qty,
+                                 (
+                                   select s.stepname+'/'+cast(cast(n.good_qty as decimal(18,2)) AS varchar(50))+',' 
+                                   from TK_Wrk_Step n
+                                   inner join TStep S on n.step_code=S.stepcode
+                                   where n.wo_code=W.wo_code for xml path('')
+                                 ) as concat_name   
+                                 from TK_Wrk_Man W
+                                 left join (
+                                   select wo,saleOrderCode   from TKimp_Ewo 
+                                 ) as E on W.m_po=E.wo
+                                 left join TMateriel_Info P on W.materiel_code=p.partcode
+                                 left join TFlw_Rout R on W.route_code=R.code
+                                 left join  TOrganization F on W.wkshp_code=F.org_code
+                            	 group by E.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.org_name,W.status,W.lm_date,W.route_code,R.name,P.partcode,P.partname,P.partspec,W.plan_qty
+                            ) as AA where " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -1730,7 +1735,7 @@
         #endregion
 
         #region[鐢熶骇杩涘害鎶ヨ〃瀵煎嚭]
-        public static ToMessage ProductionScheduleReportExcelSearch(string wkshopcode, string status, string wocode,string saleordercode, string routecode, string routename, string partcode, string partname, string partspec,string opendate,string closedate)
+        public static ToMessage ProductionScheduleReportExcelSearch(string wkshopcode, string status, string wocode, string saleordercode, string routecode, string routename, string partcode, string partname, string partspec, string opendate, string closedate)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
@@ -1746,13 +1751,13 @@
                     switch (status)
                     {
                         case "START":
-                            search += "and AA.status='START' ";
+                            search += "and AA.status='鎵ц涓�' ";
                             break;
                         case "CLOSED":
-                            search += "and AA.status='CLOSED' ";
+                            search += "and AA.status='宸插畬鎴�' ";
                             break;
                         default:
-                            search += "and AA.status<>'START' and AA.status<>'CLOSED' ";
+                            search += "and AA.status='鏈紑濮�' ";
                             break;
                     }
                 }
@@ -1804,23 +1809,30 @@
                 search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select  AA.saleOrderCode as 閿�鍞鍗曞彿,AA.m_po as 鐢熶骇璁㈠崟鍙�,AA.wkshp_code as 杞﹂棿缂栫爜,AA.wkshp_name as 杞﹂棿鍚嶇О,AA.wo_code as 鐢熶骇宸ュ崟鍙�,
-                            (case when AA.status='START' then '鎵ц涓�' when AA.status='CLOSED' then '宸插畬鎴�' else '鏈紑濮�' end) as 宸ュ崟鐘舵��,
-                            AA.lm_date as 鍗曟嵁鏃ユ湡,AA.route_code as 宸ヨ壓璺嚎缂栧彿,AA.route_name as 宸ヨ壓璺嚎鍚嶇О,
-                            AA.partcode as 浜у搧缂栫爜,AA.partname as 浜у搧鍚嶇О,AA.partspec as 浜у搧瑙勬牸,AA.plan_qty as 浠诲姟鏁伴噺,left(AA.concat_name,len(concat_name)-1) as 鐢熶骇杩涘害  from
-                            (
-                            select E.saleOrderCode,W.m_po,m.wo_code,W.wkshp_code,F.org_name as wkshp_name,W.status,W.lm_date,W.route_code,R.name as route_name,P.partcode,P.partname,P.partspec,m.plan_qty,
-                            (select s.stepname+'/'+cast(cast(n.good_qty as decimal(18,2)) AS varchar(50))+',' from TK_Wrk_Step n
-                             inner join TStep S on n.step_code=S.stepcode
-                             where n.wo_code=m.wo_code for xml path('')) as concat_name
-                            from TK_Wrk_Step m
-                            inner join TK_Wrk_Man W on m.wo_code=W.wo_code
-                            left join TKimp_Ewo E on W.m_po=E.wo
-                            inner join TMateriel_Info P on W.materiel_code=p.partcode
-                            inner join TFlw_Rout R on W.route_code=R.code
-                            left join  TOrganization F on W.wkshp_code=F.org_code
-                            group by E.saleOrderCode,W.m_po,m.wo_code,W.wkshp_code,F.org_name,W.status,W.lm_date,W.route_code,R.name,P.partcode,P.partname,P.partspec,m.plan_qty
-                            ) AA  
+
+                var sql = @"select top 100 percent AA.saleOrderCode as 閿�鍞鍗曞彿,AA.m_po as 鐢熶骇璁㈠崟鍙�,AA.wkshp_code as 杞﹂棿缂栫爜,AA.wkshp_name as 杞﹂棿鍚嶇О,AA.wo_code as 鐢熶骇宸ュ崟鍙�,
+                             AA.status as 宸ュ崟鐘舵��,AA.lm_date as 鍗曟嵁鏃ユ湡,AA.route_code as 宸ヨ壓璺嚎缂栧彿,AA.route_name as 宸ヨ壓璺嚎鍚嶇О,
+                             AA.partcode as 浜у搧缂栫爜,AA.partname as 浜у搧鍚嶇О,AA.partspec as 浜у搧瑙勬牸,AA.plan_qty as 浠诲姟鏁伴噺,left(AA.concat_name,len(concat_name)-1) as 鐢熶骇杩涘害 
+                             from (
+                                 select E.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.org_name as wkshp_name,
+                                 case when W.status='START' then '鎵ц涓�' when W.status='CLOSED' then '宸插畬鎴�' else '鏈紑濮�' end as status,
+                                 W.lm_date,W.route_code,R.name as route_name,
+                                 P.partcode,P.partname,P.partspec,W.plan_qty,
+                                 (
+                                   select s.stepname+'/'+cast(cast(n.good_qty as decimal(18,2)) AS varchar(50))+',' 
+                                   from TK_Wrk_Step n
+                                   inner join TStep S on n.step_code=S.stepcode
+                                   where n.wo_code=W.wo_code for xml path('')
+                                 ) as concat_name   
+                                 from TK_Wrk_Man W
+                                 left join (
+                                   select wo,saleOrderCode   from TKimp_Ewo 
+                                 ) as E on W.m_po=E.wo
+                                 left join TMateriel_Info P on W.materiel_code=p.partcode
+                                 left join TFlw_Rout R on W.route_code=R.code
+                                 left join  TOrganization F on W.wkshp_code=F.org_code
+                            	 group by E.saleOrderCode,W.m_po,W.wo_code,W.wkshp_code,F.org_name,W.status,W.lm_date,W.route_code,R.name,P.partcode,P.partname,P.partspec,W.plan_qty
+                            ) as AA
                             where " + search;
                 DataTable data = DapperHelper.selectdata(sql, dynamicParams);
                 data.TableName = "Table"; //璁剧疆DataTable鐨勫悕绉�

--
Gitblit v1.9.3