From 9c634fd767aec36ef97c3a814bf7a29c67d20ee1 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 29 三月 2024 10:57:35 +0800
Subject: [PATCH] 修改单据重复显示问题,增加工单源单id关联

---
 VueWebApi/DLL/DAL/AppAnalyticsDAL.cs |   77 ++++++++++++++++++++++++++++----------
 1 files changed, 56 insertions(+), 21 deletions(-)

diff --git a/VueWebApi/DLL/DAL/AppAnalyticsDAL.cs b/VueWebApi/DLL/DAL/AppAnalyticsDAL.cs
index e96f522..5e1c401 100644
--- a/VueWebApi/DLL/DAL/AppAnalyticsDAL.cs
+++ b/VueWebApi/DLL/DAL/AppAnalyticsDAL.cs
@@ -20,13 +20,28 @@
         public static SqlParameter[] parameters; //瀹氫箟鍏ㄥ眬SqlParameter鍙傛暟鏁扮粍
 
         #region[App鐢熶骇鐪嬫澘]
-        public static ToMessage ProductionKanban(string usercode, string startopendate, string endclosedate,string defecttype)
+        public static ToMessage ProductionKanban(string stu_torgcode,string stu_torgtypecode,string usercode, string startopendate, string endclosedate,string defecttype)
         {
             Dictionary<object, object> dList = new Dictionary<object, object>();
             var dynamicParams = new DynamicParameters();
             string search = "";
             try
             {
+                switch (stu_torgtypecode)
+                {
+                    case "":
+                        break;
+                    case "D":
+                        search += "and L.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    case "W":
+                        search += "and C.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 // --------------鐢熶骇鎬昏--------------
                 var sql = @"select 
                              sum(CASE AA.clmname WHEN '璁″垝鏁伴噺' THEN AA.clmqty ELSE 0 END) as 'plan_qty', 
@@ -34,16 +49,21 @@
                              sum(CASE AA.clmname WHEN '缂洪櫡浜у嚭' THEN AA.clmqty ELSE 0 END) as 'defect_qty'
                              from(
                              select  isnull(sum(A.plan_qty),0) as clmqty,'璁″垝鏁伴噺'as clmname  from TK_Wrk_Man  A
-                             where A.lm_date between @startopendate and @endclosedate
-                             union all
+                             left join TOrganization C on A.wkshp_code=C.org_code
+                             left join TOrganization L on  C.parent_id=L.id
+                             where A.lm_date between @startopendate and @endclosedate "+search;
+                    sql += @"union all
                              select isnull(sum(P.good_qty),0) as report_qty,'鍚堟牸浜у嚭' as 鍚堟牸浜у嚭  from TK_Wrk_Man  A
                              inner join TK_Wrk_Step P on A.wo_code=P.wo_code  and P.isend='Y'
-                             where A.lm_date between @startopendate and @endclosedate
-                             union all
+                             left join TOrganization C on A.wkshp_code=C.org_code
+                             left join TOrganization L on  C.parent_id=L.id
+                             where A.lm_date between @startopendate and @endclosedate "+search;
+                    sql += @"union all
                              select (isnull(sum(P.ng_qty),0)+isnull(sum(P.bad_qty),0)) as ngqty,'缂洪櫡浜у嚭' as 缂洪櫡浜у嚭  from TK_Wrk_Man  A
                              inner join TK_Wrk_Step P on A.wo_code=P.wo_code 
-                             where A.lm_date between @startopendate and @endclosedate
-                             ) as AA";
+                             left join TOrganization C on A.wkshp_code=C.org_code
+                             left join TOrganization L on  C.parent_id=L.id
+                             where A.lm_date between @startopendate and @endclosedate "+search+") as AA";
                 dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
                 dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
                 var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -53,9 +73,9 @@
                              select COUNT(A.id) as cluntqty,
                              case when A.status='START' then '鎵ц涓�' when A.status='CLOSED' then '宸茬粨鏉�' else '鏈紑濮�' end as wo_status
                              from TK_Wrk_Man A
-                             where A.lm_date between @startopendate and @endclosedate
-                             group by A.status
-                             ) as AA group by AA.wo_status";
+                             left join TOrganization C on A.wkshp_code=C.org_code
+                             left join TOrganization L on  C.parent_id=L.id
+                             where A.lm_date between @startopendate and @endclosedate "+search+" group by A.status) as AA group by AA.wo_status";
                 var data1 = DapperHelper.selectdata(sql1, dynamicParams);
                 dList.Add("dt1", data1);
                 // --------------缂洪櫡缁熻--------------
@@ -67,20 +87,18 @@
                                   select A.plan_qty,M.partname,S.ng_qty,S.bad_qty   from TK_Wrk_Man A
                                   inner join (select wo_code, isnull(sum(ng_qty),0) as ng_qty,isnull(sum(bad_qty),0) as bad_qty from TK_Wrk_Step where ng_qty>0 or bad_qty>0 group by wo_code) S on A.wo_code=S.wo_code
                                   inner join TMateriel_Info M on A.materiel_code=M.partcode
-                                  where A.lm_date between @startopendate and @endclosedate 
-                                  ) as AA
-                                  group by AA.partname
-                                  order by defect_qty desc";
+                                  left join TOrganization C on A.wkshp_code=C.org_code
+                                  left join TOrganization L on  C.parent_id=L.id
+                                  where A.lm_date between @startopendate and @endclosedate "+search+") as AA group by AA.partname order by defect_qty desc";
                         break;
                     case "stp"://鎸夊伐搴忕粺璁�
                          sql2 = @"select top 5 sum(AA.plan_qty) as plan_qty,AA.stepname,sum(AA.ng_qty)+sum(AA.bad_qty) as defect_qty  from (
                                   select A.plan_qty,T.stepname,S.ng_qty,S.bad_qty   from TK_Wrk_Man A
                                   inner join (select wo_code,step_code, isnull(sum(ng_qty),0) as ng_qty,isnull(sum(bad_qty),0) as bad_qty from TK_Wrk_Step where ng_qty>0 or bad_qty>0 group by wo_code,step_code) S on A.wo_code=S.wo_code
                                   inner join TStep T on S.step_code=T.stepcode
-                                  where A.lm_date between @startopendate and @endclosedate 
-                                  ) as AA
-                                  group by AA.stepname
-                                  order by defect_qty desc";
+                                  left join TOrganization C on A.wkshp_code=C.org_code
+                                  left join TOrganization L on  C.parent_id=L.id
+                                  where A.lm_date between @startopendate and @endclosedate "+search+") as AA group by AA.stepname order by defect_qty desc";
                         break;
                     default:
                         break;
@@ -103,15 +121,30 @@
         #endregion
 
         #region[App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅]
-        public static ToMessage ProductionScheduleKanban(string ordertype, string partcode, string startopendate, string endclosedate)
+        public static ToMessage ProductionScheduleKanban(string stu_torgcode,string stu_torgtypecode, string ordertype, string partcode, string startopendate, string endclosedate)
         {
             Dictionary<object, object> dList = new Dictionary<object, object>();
             List<AppScheduleKanban> list = new List<AppScheduleKanban>();
             var dynamicParams = new DynamicParameters();
-            string search = "",sql="";
+            string search = "", search1 = "",sql ="";
             DataTable dt;
             try
             {
+                switch (stu_torgtypecode)
+                {
+                    case "":
+                        break;
+                    case "D":
+                        search1 += "and L.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    case "W":
+                        search1 += "and C.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 //鏍规嵁鏌ヨ鏉′欢,鏌ユ壘绗﹀悎瑕佹眰鐨勫崟鎹�
                 switch (ordertype)
                 {
@@ -268,8 +301,10 @@
                         //鑾峰彇鍗曟嵁淇℃伅
                         sql = @"select distinct A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date,sum(A.plan_qty) as orderqty
                                 from TK_Wrk_Man A  
+                                left join TOrganization C on A.wkshp_code=C.org_code
+                                left join TOrganization L on  C.parent_id=L.id
                                 left  join TMateriel_Info T on A.materiel_code=T.partcode
-                                where 1=1 "+search+" group by A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date  order by A.lm_date desc";
+                                where 1=1 " + search+search1+" group by A.wo_code,T.partcode,T.partname,T.partspec,A.lm_date  order by A.lm_date desc";
                         dt = DapperHelper.selectlist(sql, dynamicParams);
                         if (dt.Rows.Count > 0)
                         {

--
Gitblit v1.9.3