From 925394b1b7f61a2c2a15fdaa0ecd0763214ccda1 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期二, 30 五月 2023 18:01:29 +0800
Subject: [PATCH] 增加App报工、工序检验功能

---
 VueWebApi/DLL/DAL/KanBanManagerentDAL.cs |  395 +++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 377 insertions(+), 18 deletions(-)

diff --git a/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
index aa496a9..afe308f 100644
--- a/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
+++ b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
@@ -58,12 +58,30 @@
                 {
                     string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
                     //鏌ヨ浜х嚎涓嬪凡寮�宸ョ殑鍔犲伐鍗曚俊鎭�
-                    sql = @"select distinct E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname   from TK_Wrk_Record A
-                                    inner join TK_Wrk_Man P on A.wo_code=P.wo_code
-                                    left join TMateriel_Info M on P.materiel_code=M.partcode
-                                    left join TUom T on M.uom_code=T.code 
-                                    left join TKimp_Ewo E on P.m_po=E.wo and P.sourceid=E.id
-                                    where P.status<>'CLOSED' and P.status<>'NEW' and P.wkshp_code in @shopcode and A.style='S' and A.step_seq='1'";
+                    //sql = @"select *  from ( 
+                    //                select distinct E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname,S.good_qty,S.ng_qty,S.bad_qty   from TK_Wrk_Record A
+                    //                inner join TK_Wrk_Man P on A.wo_code=P.wo_code
+                    //                left join TMateriel_Info M on P.materiel_code=M.partcode
+                    //                left join TUom T on M.uom_code=T.code 
+                    //                left join TKimp_Ewo E on P.m_po=E.wo and P.sourceid=E.id
+                    //                left join (
+                    //                  select wo_code,sum(good_qty) as good_qty,sum(ng_qty) as ng_qty,sum(bad_qty) as bad_qty  from TK_Wrk_Step where isend='Y' group by wo_code
+                    //                ) S on P.wo_code=S.wo_code
+                    //                where P.status<>'CLOSED' and P.status<>'NEW' and P.wkshp_code in @shopcode and A.style='S' and A.step_seq='1'
+                    //                ) as AA where AA.plan_qty>(AA.good_qty+aa.bad_qty+AA.ng_qty)";
+                    sql = @"select  AA.lm_date,AA.saleOrderCode,AA.wo_code,AA.plan_qty,AA.partcode,AA.partname,AA.partspec,AA.uomname,
+                          sum(AA.good_qty) as good_qty,sum(AA.ng_qty)+sum(AA.bad_qty) as ng_qty,sum(AA.bad_qty) as  bad_qty
+                          from(
+                          select  P.lm_date,E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname,A.good_qty,A.ng_qty,A.bad_qty   
+                          from TK_Wrk_Record A
+                          inner join TK_Wrk_Man P on A.wo_code=P.wo_code
+                          left join TMateriel_Info M on P.materiel_code=M.partcode
+                          left join TUom T on M.uom_code=T.code 
+                          left join TKimp_Ewo E on P.m_po=E.wo and P.sourceid=E.id
+                          where P.status<>'CLOSED' and P.status<>'NEW' 
+                          and P.wkshp_code in @shopcode and  DateDiff(dd,P.lm_date,getdate())<=15
+                          ) as AA  group by AA.lm_date,AA.saleOrderCode,AA.wo_code,AA.plan_qty,AA.partcode,AA.partname,AA.partspec,AA.uomname
+                          order by AA.lm_date desc";
                     var data0 = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                 
                     if (data0.Rows.Count > 0)
@@ -88,7 +106,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.good_qty,A.ng_qty+A.bad_qty as 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";
@@ -142,7 +160,7 @@
             mes.data = list;
             return mes;
         }
-        #endregion\
+        #endregion
 
         #region[澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笅鍒楄〃鎺ュ彛]
         public static ToMessage LineSearchBottomLeftData(string shopcode)
@@ -153,16 +171,30 @@
             try
             {
                 //鑾峰彇浠诲姟鍒楄〃淇℃伅
-                sql = @"select A.*,ROW_NUMBER() OVER(ORDER BY (case when A.warning<=2 then A.planenddate end) asc ,A.planstartdate asc) AS RowNum from(
+                //sql = @"select A.*,ROW_NUMBER() OVER(ORDER BY (case when A.warning<=2 then A.planenddate end) asc ,A.planstartdate asc) AS RowNum from(
+                //         select  A.status,A.lm_date,E.saleOrderCode,A.wo_code,M.partcode,M.partname,M.partspec,U.name,
+                //         A.plan_qty,B.good_qty,B.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
+                //         from TK_Wrk_Man A 
+                //         inner join TK_Wrk_Step B on A.wo_code=B.wo_code
+                //         inner join TKimp_Ewo E on A.m_po=E.wo and A.sourceid=E.id
+                //         left  join TMateriel_Info M on A.materiel_code=M.partcode
+                //         left  join TUom U on M.uom_code=U.code
+                //         where A.status<>'CLOSED' and A.wkshp_code in @shopcode and A.is_delete<>'1' and B.isend='Y'
+                //         and A.plan_qty>(B.good_qty+B.ng_qty+B.bad_qty)
+                //         )as A ";
+                sql = @"select *  from(
+                         select A.*,ROW_NUMBER() OVER(ORDER BY A.lm_date desc) AS RowNum from(
                          select  A.status,A.lm_date,E.saleOrderCode,A.wo_code,M.partcode,M.partname,M.partspec,U.name,
-                         A.plan_qty,B.good_qty,B.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
+                         A.plan_qty,B.good_qty,BS.ng_qty,E.planstartdate,E.planenddate, datediff(day,getdate(),E.planenddate) warning
                          from TK_Wrk_Man A 
-                         inner join TK_Wrk_Step B on A.wo_code=B.wo_code
+                         inner join (select wo_code, sum(good_qty) as good_qty from TK_Wrk_Step where isend='Y' group by wo_code) B on A.wo_code=B.wo_code
+                          inner join (select wo_code, sum(ng_qty)+sum(bad_qty) as ng_qty from TK_Wrk_Step group by wo_code) BS on A.wo_code=BS.wo_code
                          inner join TKimp_Ewo E on A.m_po=E.wo and A.sourceid=E.id
                          left  join TMateriel_Info M on A.materiel_code=M.partcode
                          left  join TUom U on M.uom_code=U.code
-                         where A.status<>'CLOSED' and A.wkshp_code in @shopcode and A.is_delete<>'1' and B.isend='Y'
-                         )as A ";
+                         where A.status<>'CLOSED' and A.wkshp_code in @shopcode and A.is_delete<>'1' and  DateDiff(dd,A.lm_date,getdate())<=15
+                         )as A 
+                         ) as AA ";
                 var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -233,7 +265,6 @@
                         inner join TK_Wrk_Man M on A.wo_code=M.wo_code
                         where DateDiff(dd,A.lm_date,getdate())<=7 and M.wkshp_code in @shopcode
                         group by B.name order by cont desc";
-                dynamicParams.Add("@shopcode", shopcode);
                 var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -282,7 +313,7 @@
             try
             {
                 //鑾峰彇閲囪喘璁㈠崟璺熻釜鍒楄〃
-                sql = @"select * from h_v_DDKanBan_PurchaseLeftBottom ";
+                sql = @"select * from h_v_DDKanBan_PurchaseLeftBottom order by voucherdate desc";
                 var data = DapperHelper.selecttable(sql);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -332,7 +363,7 @@
             try
             {
                 //鑾峰彇浠撳簱鐢熶骇鍔犲伐鍗曞緟鍏ュ簱鍒楄〃
-                sql = @"select * from h_v_DDKanBan_WareHouseTopLeft";
+                sql = @"select * from h_v_DDKanBan_WareHouseTopLeft order by voucherdate desc";
                 var data = DapperHelper.selecttable(sql);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -356,7 +387,7 @@
             try
             {
                 //鑾峰彇浠撳簱鐢熶骇鍔犲伐鍗曞緟鍏ュ簱鍒楄〃
-                sql = @"select * from h_v_DDKanBan_WareHouseTopBottom";
+                sql = @"select * from h_v_DDKanBan_WareHouseTopBottom order by voucherdate desc";
                 var data = DapperHelper.selecttable(sql);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -418,5 +449,333 @@
             return mes;
         }
         #endregion
+
+
+        #region[杞﹂棿鐪嬫澘鍏憡]
+        public static ToMessage WkspReportNotice(string shopcode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                //鑾峰彇杞﹂棿鍏憡淇℃伅
+                sql = @"select contents  from TSystemAnnouncement
+                       where wksp_code in @shopcode";
+                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[瀵屽皵杈捐溅闂寸敓浜ф暟瀛楀寲鐪嬫澘锛屼骇绾挎暟鎹甝
+        public static ToMessage WkshpLineData(string lineCode)
+        {
+            string sql = "";
+            string search = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //鑾峰彇浜х嚎閿�鍞鍗曟姤宸ヤ俊鎭�,鎶ュ伐鏁伴噺>0  涓斿伐鍗曠姸鎬佷负闈炲叧闂姸鎬�  涓斿伐搴忎负鏈亾宸ュ簭 锛�--and (S.good_qty+S.ng_qty+S.bad_qty)<S.plan_qty)
+                //sql = @"select AA.saleOrderCode,AA.materiel_code,AA.partname,sum(AA.good_qty) as good_qty   from (
+                //        select distinct A.saleOrderCode,A.materiel_code,M.partname,isnull(S.good_qty,0) as good_qty
+                //        from TKimp_Ewo A
+                //        left join TK_Wrk_Man B on A.wo=B.m_po and A.materiel_code=B.materiel_code 
+                //        left join TK_Wrk_Step S on B.wo_code=S.wo_code and S.isend='Y' 
+                //        left join TFlw_Rteqp R on S.step_code=R.step_code
+                //        left  join TMateriel_Info M on A.materiel_code=M.partcode
+                //        where A.saleOrderCode is not null and A.saleOrderCode<>'' 
+                //        and R.eqp_code=@lineCode and B.status<>'CLOSED' 
+                //        ) as AA
+                //        group by AA.saleOrderCode,AA.materiel_code,AA.partname";
+                sql = @"select AA.saleOrderCode,AA.materiel_code,AA.partname,sum(AA.good_qty) as good_qty   from (
+                        select distinct A.saleOrderCode,A.materiel_code,M.partname,isnull(S.good_qty,0) as good_qty
+                        from TKimp_Ewo A
+                        left join TK_Wrk_Man B on A.wo=B.m_po and A.materiel_code=B.materiel_code 
+                        left join TK_Wrk_Step S on B.wo_code=S.wo_code and S.isend='Y' 
+                        left join TK_Wrk_Record T on S.wo_code=T.wo_code
+                        left  join TMateriel_Info M on A.materiel_code=M.partcode
+                        where A.saleOrderCode is not null and A.saleOrderCode<>'' 
+                        and T.eqp_code=@lineCode and B.status<>'CLOSED' and  DateDiff(dd,B.lm_date,getdate())<=15
+                        ) as AA
+                        group by AA.saleOrderCode,AA.materiel_code,AA.partname";
+                dynamicParams.Add("@lineCode", lineCode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[瀵屽皵杈捐溅闂寸敓浜ф暟瀛楀寲鐪嬫澘锛岀敓浜т俊鎭痌
+        public static ToMessage WkshpContentData()
+        {
+            string sql = "";
+            try
+            {
+                //鑾峰彇宸ュ崟鎶ュ伐淇℃伅,鎶ュ伐鏁伴噺>0  涓斿伐鍗曠姸鎬佷负闈炲叧闂姸鎬�  
+                //sql = @"select row_number() over(order by A.wo_code,B.seq) as RowNum,A.wo_code,E.name as eqp_name,M.partname,B.plan_qty,A.plan_startdate,A.plan_enddate,T.stepname,B.good_qty
+                //        from TK_Wrk_Man A
+                //        inner join TK_Wrk_Step B on A.wo_code=B.wo_code
+                //        inner join(
+                //          select wo_code,step_code,materiel_code,eqp_code, sum(good_qty) as  good_qty  
+                //          from TK_Wrk_Record where style='B' group by wo_code,step_code,materiel_code,eqp_code
+                //          ) as S on A.wo_code=S.wo_code and A.materiel_code=S.materiel_code and B.step_code=S.step_code
+                //        left join TStep T on B.step_code=T.stepcode
+                //        left join TMateriel_Info M on A.materiel_code=M.partcode
+                //        left join TEqpInfo E on S.eqp_code=E.code
+                //        where   A.status<>'CLOSED' 
+                //        order by A.wo_code,B.seq";
+                sql = @"select row_number() over(order by A.plan_startdate,B.seq) as RowNum,A.wo_code,E.name as eqp_name,M.partname,B.plan_qty,A.plan_startdate,A.plan_enddate,T.stepname,B.good_qty
+                        from TK_Wrk_Man A
+                        inner join TK_Wrk_Step B on A.wo_code=B.wo_code
+                        inner join(
+                          select wo_code,step_code,materiel_code,eqp_code, sum(good_qty) as  good_qty  
+                          from TK_Wrk_Record where style='B' group by wo_code,step_code,materiel_code,eqp_code
+                          ) as S on A.wo_code=S.wo_code and A.materiel_code=S.materiel_code and B.step_code=S.step_code
+                        left join TStep T on B.step_code=T.stepcode
+                        left join TMateriel_Info M on A.materiel_code=M.partcode
+                        left join TEqpInfo E on S.eqp_code=E.code
+                        where   A.status<>'CLOSED' and  DateDiff(dd,A.lm_date,getdate())<=15
+                        order by A.plan_startdate,B.seq";
+                var data = DapperHelper.selecttable(sql);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+
+        #region[瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,top5涓嶈壇]
+        public static ToMessage BadTop5(string StepCode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,top5涓嶈壇(鍙栬川妫�宸ュ簭)
+                sql = @"select T.name,count(*) as cont   from CSR_WorkRecord_Defect A
+                        inner join TDefect T on A.defect_code=T.code
+                        where step_code=@StepCode and datediff(day,GETDATE(),A.lm_date)=0
+                        group by T.name order by cont desc";
+                dynamicParams.Add("@StepCode", StepCode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,鍛ㄤ笉鑹秼鍔縘
+        public static ToMessage BadWeek(string StepCode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,鍛ㄤ笉鑹秼鍔�(鍙栬川妫�宸ュ簭褰撳墠鏃堕棿寰�鍓嶄竴鍛�)
+                sql = @"select 
+                        case when datepart(weekday,a.click_date)=2 then '鍛ㄤ竴'  
+                        when datepart(weekday,a.click_date)=3 then '鍛ㄤ簩' 
+                        when datepart(weekday,a.click_date)=3 then '鍛ㄤ簩' 
+                        when datepart(weekday,a.click_date)=4 then '鍛ㄤ笁' 
+                        when datepart(weekday,a.click_date)=5 then '鍛ㄥ洓' 
+                        when datepart(weekday,a.click_date)=6 then '鍛ㄤ簲'
+                        when datepart(weekday,a.click_date)=7 then '鍛ㄥ叚'
+                        when datepart(weekday,a.click_date)=1 then '鍛ㄦ棩' end as click_date,
+                        ISNULL(b.count,0) as count
+                        from (
+                        SELECT convert(varchar(10),getdate()-6,120) as click_date
+                        union all
+                        SELECT convert(varchar(10),getdate()-5,120) as click_date
+                        union all
+                        SELECT convert(varchar(10),getdate()-4,120) as click_date
+                        union all
+                        SELECT convert(varchar(10),getdate()-3,120) as click_date
+                        union all
+                        SELECT convert(varchar(10),getdate()-2,120) as click_date
+                        union all
+                        SELECT convert(varchar(10),getdate()-1,120) as click_date
+                        union all
+                        SELECT convert(varchar(10),getdate(),120) as click_date
+                        ) a left join (
+                        select convert(varchar(10),lm_date,120) as datetime, count(*) as count
+                        from CSR_WorkRecord_Defect where step_code=@StepCode
+                        group by convert(varchar(10),lm_date,120)
+                        ) b on a.click_date = b.datetime;";
+                dynamicParams.Add("@StepCode", StepCode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,鏃ヤ笉鑹垎甯僝
+        public static ToMessage BadDayDistriBute(string StepCode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,鏃ヤ笉鑹垎甯�(鍙栬川妫�宸ュ簭,鎸変骇绾跨粺璁�)
+                sql = @"select A.eqp_code,E.name as eqp_name,count(*) as cont   from TK_Wrk_Record A
+                        inner join CSR_WorkRecord_Defect B on A.id=B.record_id
+                        left  join TEqpInfo E on A.eqp_code=E.code
+                        where B.step_code=@StepCode and datediff(day,GETDATE(),B.lm_date)=0
+                        group by A.eqp_code,E.name order by cont desc";
+                dynamicParams.Add("@StepCode", StepCode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,鍛ㄤ笉鑹垎甯僝
+        public static ToMessage BadWeekDistriBute(string StepCode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,鍛ㄤ笉鑹垎甯�(鍙栬川妫�宸ュ簭,鎸変骇绾跨粺璁�)
+                sql = @"select A.eqp_code,E.name as eqp_name,count(*) as cont   from TK_Wrk_Record A
+                        inner join CSR_WorkRecord_Defect B on A.id=B.record_id
+                        left  join TEqpInfo E on A.eqp_code=E.code
+                        where B.step_code=@StepCode and  DateDiff(dd,B.lm_date,getdate())<=7
+                        group by A.eqp_code,E.name order by cont desc";
+                dynamicParams.Add("@StepCode", StepCode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,涓嶈壇鏄庣粏]
+        public static ToMessage BadContManger(string StepCode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //瀵屽皵杈捐溅闂磋川閲忔暟瀛楀寲鐪嬫澘,涓嶈壇鏄庣粏(鍙栬川妫�宸ュ簭,鎸変骇绾跨粺璁�)
+                //sql = @"select row_number() over(order by MM.lm_date,MM.wo_code) as RowNum,MM.lm_date,A.eqp_code,E.name as eqp_name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty as report_qty,A.ng_qty,
+                //        defect_name=( STUFF(( SELECT  ',' + B.name
+                //                                  FROM  CSR_WorkRecord_Defect N
+                //        						  inner join TDefect B on N.defect_code=B.code
+                //        						  where record_id=MM.record_id
+                //                                FOR
+                //                                  XML PATH('')
+                //                                ), 1, 1, '') )
+                //        from CSR_WorkRecord_Defect as MM
+                //        inner join TK_Wrk_Record A on MM.record_id=a.id
+                //        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
+                //        inner join TStep T on MM.step_code=T.stepcode
+                //        inner join TEqpInfo E on A.eqp_code=E.code
+                //        inner join TMateriel_Info M on A.materiel_code=M.partcode
+                //        where  MM.step_code=@StepCode and MM.style='B' and A.style='B' and A.ng_qty>0 and S.status<>'CLOSED' 
+                //        group by MM.lm_date,MM.record_id,A.eqp_code,E.name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty,A.ng_qty";
+                sql = @"select row_number() over(order by MM.lm_date,MM.wo_code) as RowNum,MM.lm_date,A.eqp_code,E.name as eqp_name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty as report_qty,A.ng_qty,
+                        defect_name=( STUFF(( SELECT  ',' + B.name
+                                                  FROM  CSR_WorkRecord_Defect N
+                        						  inner join TDefect B on N.defect_code=B.code
+                        						  where record_id=MM.record_id
+                                                FOR
+                                                  XML PATH('')
+                                                ), 1, 1, '') )
+                        from CSR_WorkRecord_Defect as MM
+                        inner join TK_Wrk_Record A on MM.record_id=a.id
+                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
+                        inner join TStep T on MM.step_code=T.stepcode
+                        inner join TEqpInfo E on A.eqp_code=E.code
+                        inner join TMateriel_Info M on A.materiel_code=M.partcode
+                        where  MM.step_code=@StepCode and MM.style='B' and A.style='B' and A.ng_qty>0 and S.status<>'CLOSED' 
+                        and  DateDiff(dd,MM.lm_date,getdate())<=15
+                        group by MM.lm_date,MM.record_id,A.eqp_code,E.name,MM.wo_code,A.materiel_code,M.partname,MM.step_code,T.stepname,A.good_qty,A.ng_qty
+                        order by MM.lm_date desc";
+                dynamicParams.Add("@StepCode", StepCode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.data = data;
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
     }
-}
\ No newline at end of file
+}
+

--
Gitblit v1.9.3