From 22af5bed0da8a5852bd824a1e21e6fc43df6df2a Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 11 十二月 2023 19:20:43 +0800
Subject: [PATCH] 1.App 智能分析,生产进度看板接口 2.PC端设备点检项目、保养项目、点检标准、保养标准、点检记录、保养记录、维修记录 3.工序检验扫码添加判断(条码任务是否存在、工单是否关闭) 4.添加App图标图片文件

---
 VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs |  255 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 254 insertions(+), 1 deletions(-)

diff --git a/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs b/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
index 5e3289f..336c300 100644
--- a/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/AppAnalyticsDAL.cs
@@ -30,7 +30,7 @@
             try
             {
                 //鑾峰彇褰撳墠鐢ㄦ埛鎵�灞炵粍缁囧強鎵�鏈夊瓙鑺傜偣缁勭粐
-                mes = TOrganizationRecursion.TOrgCodeSeach("SCB");
+                mes = TOrganizationRecursion.TOrgCodeSeach(us.storg_code);
                 if (mes.code == "300")
                 {
                     return mes;
@@ -78,5 +78,258 @@
             return mes;
         }
         #endregion
+
+        #region[App鐢熶骇杩涘害鐪嬫澘鍗曟嵁淇℃伅]
+        public static ToMessage ProductionScheduleKanban(User us, 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 = "", search1 = "", sql = "", torg_codelist = "";
+            DataTable dt;
+            try
+            {
+                //鑾峰彇褰撳墠鐢ㄦ埛鎵�灞炵粍缁囧強鎵�鏈夊瓙鑺傜偣缁勭粐
+                mes = TOrganizationRecursion.TOrgCodeSeachNo(us.storg_code);
+                if (mes.code == "300")
+                {
+                    return mes;
+                }
+                else
+                {
+                    torg_codelist = mes.data.ToString(); //鑾峰彇缁勭粐闆嗗悎
+                    string[] torglist = Array.ConvertAll<string, string>(torg_codelist.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                    search1 += " and A.wkshp_code in @wkshp_code ";
+                    dynamicParams.Add("@wkshp_code", torglist.ToArray());
+                }
+                
+                //鏍规嵁鏌ヨ鏉′欢,鏌ユ壘绗﹀悎瑕佹眰鐨勫崟鎹�
+                switch (ordertype)
+                {
+                    case "SO": //鎸夐攢鍞鍗曠粺璁�
+                        if (partcode != "" && partcode != null)
+                        {
+                            string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                            search += " and A.materiel_code in @partcode ";
+                            dynamicParams.Add("@partcode", selects.ToArray());
+                        }
+                        if (startopendate != "" && startopendate != null)
+                        {
+                            search += " and convert(varchar(100),A.saleOrderDate,21)>=@startopendate and convert(varchar(100),A.saleOrderDate,21)<=@endclosedate ";
+                            dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
+                            dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
+                        }
+                        //鑾峰彇鍗曟嵁淇℃伅
+                        sql = @"select distinct saleOrderCode,A.saleOrderDate,sum(A.saleOrderqty) as saleOrderqty
+                                from TKimp_Ewo A 
+                                where A.saleOrderCode<>'' " + search + " group by A.saleOrderCode,A.saleOrderDate  order by A.saleOrderDate desc";
+                        dt = DapperHelper.selectlist(sql, dynamicParams);
+                        if (dt.Rows.Count > 0)
+                        {
+                            for (int i = 0; i < dt.Rows.Count; i++)
+                            {
+                                AppScheduleKanban cmp = new AppScheduleKanban();
+                                cmp.ordercode = dt.Rows[i]["saleOrderCode"].ToString();
+                                cmp.orderqty = dt.Rows[i]["saleOrderqty"].ToString();
+                                cmp.children = new List<AppScheduleKanbanSub>();
+                                //鑾峰彇鍗曟嵁涓嬩骇鍝佸畬鎴愪俊鎭�
+                                sql = @"select AA.wo,AA.partcode,AA.partname,AA.partspec,AA.saleOrderqty,isnull(BB.good_qty,0) as good_qty  from(
+                                        select distinct E.wo,T.partcode,T.partname,T.partspec,sum(E.saleOrderqty) as saleOrderqty   
+                                        from TKimp_Ewo E 
+                                        left  join TMateriel_Info T on E.materiel_code=T.partcode 
+                                        where E.saleOrderCode=@saleOrderCode
+                                        group by E.wo,T.partcode,T.partname,T.partspec
+                                        ) as AA
+                                        left join
+                                        (
+                                          select M.m_po,sum(S.good_qty) as good_qty    from TK_Wrk_Man M
+                                          inner join TK_Wrk_Step S on M.wo_code=S.wo_code 
+                                          where  S.isend='Y' and S.good_qty>0
+                                          group by M.m_po
+                                        ) as BB  on AA.wo=BB.m_po";
+                                dynamicParams.Add("@saleOrderCode", dt.Rows[i]["saleOrderCode"].ToString());
+                                var data = DapperHelper.selectdata(sql, dynamicParams);
+                                decimal good_qty = data.AsEnumerable().Select(d => d.Field<decimal>("good_qty")).Sum();  //鎶ュ伐鎬绘暟閲�
+                                cmp.ordergoodqty = good_qty.ToString();
+                                for (int j = 0; j < data.Rows.Count; j++)
+                                {
+                                    AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
+                                    cbp.code = data.Rows[j]["partcode"].ToString();
+                                    cbp.name = data.Rows[j]["partname"].ToString();
+                                    cbp.spec = data.Rows[j]["partspec"].ToString();
+                                    cbp.planqty = data.Rows[j]["saleOrderqty"].ToString();
+                                    cbp.goodqty = data.Rows[j]["good_qty"].ToString();
+                                    cmp.children.Add(cbp);
+                                }
+                                list.Add(cmp);
+                            }
+                            mes.code = "200";
+                            mes.message = "success!";
+                            mes.data = list;
+                            return mes;
+                        }
+                        else
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.message = "鏃犵鍚堣姹傚崟鎹紒";
+                            mes.data = null;
+                        }
+                        break;
+                    case "MO": //鎸夌敓浜ц鍗曠粺璁�
+                        if (partcode != "" && partcode != null)
+                        {
+                            string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                            search += " and A.materiel_code in @partcode ";
+                            dynamicParams.Add("@partcode", selects.ToArray());
+                        }
+                        if (startopendate != "" && startopendate != null)
+                        {
+                            search += " and convert(varchar(100),A.createdate,21)>=@startopendate and convert(varchar(100),A.createdate,21)<=@endclosedate ";
+                            dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
+                            dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
+                        }
+                        //鑾峰彇鍗曟嵁淇℃伅
+                        sql = @"select distinct A.wo,A.createdate,sum(A.qty) as orderqty
+                                from TKimp_Ewo A  
+                                where 1=1  " + search + " group by A.wo,A.createdate  order by A.createdate desc";
+                        dt = DapperHelper.selectlist(sql, dynamicParams);
+                        if (dt.Rows.Count > 0)
+                        {
+                            for (int i = 0; i < dt.Rows.Count; i++)
+                            {
+                                AppScheduleKanban cmp = new AppScheduleKanban();
+                                cmp.ordercode = dt.Rows[i]["wo"].ToString();
+                                cmp.orderqty = dt.Rows[i]["orderqty"].ToString();
+                                cmp.children = new List<AppScheduleKanbanSub>();
+                                //鑾峰彇鍗曟嵁涓嬩骇鍝佸畬鎴愪俊鎭�
+                                sql = @"select distinct E.wo,T.partcode,T.partname,T.partspec,sum(E.qty) as orderqty,isnull(BB.good_qty,0) as good_qty   
+                                        from TKimp_Ewo E 
+                                        left  join TMateriel_Info T on E.materiel_code=T.partcode 
+                                        left  join (
+                                          select M.m_po,sum(S.good_qty) as good_qty    from TK_Wrk_Man M
+                                          inner join TK_Wrk_Step S on M.wo_code=S.wo_code 
+                                          where  S.isend='Y' and S.good_qty>0
+                                          group by M.m_po
+                                        ) as BB  on E.wo=BB.m_po
+                                        where E.wo=@wo
+                                        group by E.wo,T.partcode,T.partname,T.partspec,BB.good_qty";
+                                dynamicParams.Add("@wo", dt.Rows[i]["wo"].ToString());
+                                var data = DapperHelper.selectdata(sql, dynamicParams);
+                                decimal good_qty = data.AsEnumerable().Select(d => d.Field<decimal>("good_qty")).Sum();  //鎶ュ伐鎬绘暟閲�
+                                cmp.ordergoodqty = good_qty.ToString();
+                                for (int j = 0; j < data.Rows.Count; j++)
+                                {
+                                    AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
+                                    cbp.code = data.Rows[j]["partcode"].ToString();
+                                    cbp.name = data.Rows[j]["partname"].ToString();
+                                    cbp.spec = data.Rows[j]["partspec"].ToString();
+                                    cbp.planqty = data.Rows[j]["orderqty"].ToString();
+                                    cbp.goodqty = data.Rows[j]["good_qty"].ToString();
+                                    cmp.children.Add(cbp);
+                                }
+                                list.Add(cmp);
+                            }
+                            mes.code = "200";
+                            mes.message = "success!";
+                            mes.data = list;
+                            return mes;
+                        }
+                        else
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.message = "鏃犵鍚堣姹傚崟鎹紒";
+                            mes.data = null;
+                        }
+                        break;
+                    case "PO": //鎸夌敓浜у伐鍗曠粺璁�
+                        if (partcode != "" && partcode != null)
+                        {
+                            string[] selects = Array.ConvertAll<string, string>(partcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                            search += " and A.materiel_code in @partcode ";
+                            dynamicParams.Add("@partcode", selects.ToArray());
+                        }
+                        if (startopendate != "" && startopendate != null)
+                        {
+                            search += " and convert(varchar(100),A.lm_date,21)>=@startopendate and convert(varchar(100),A.lm_date,21)<=@endclosedate ";
+                            dynamicParams.Add("@startopendate", startopendate + " 00:00:00");
+                            dynamicParams.Add("@endclosedate", endclosedate + " 23:59:59");
+                        }
+                        //鑾峰彇鍗曟嵁淇℃伅
+                        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 TMateriel_Info T on A.materiel_code=T.partcode
+                                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)
+                        {
+                            for (int i = 0; i < dt.Rows.Count; i++)
+                            {
+                                AppScheduleKanban cmp = new AppScheduleKanban();
+                                cmp.ordercode = dt.Rows[i]["wo_code"].ToString();
+                                cmp.partcode = dt.Rows[i]["partcode"].ToString();
+                                cmp.partname = dt.Rows[i]["partname"].ToString();
+                                cmp.partspec = dt.Rows[i]["partspec"].ToString();
+                                cmp.orderqty = dt.Rows[i]["orderqty"].ToString();
+                                cmp.children = new List<AppScheduleKanbanSub>();
+                                //鑾峰彇鍗曟嵁涓嬩骇鍝佸畬鎴愪俊鎭�
+                                sql = @"select M.wo_code,T.stepcode,T.stepname,S.plan_qty,S.good_qty,S.isend    
+                                        from TK_Wrk_Man M
+                                        inner join TK_Wrk_Step S on M.wo_code=S.wo_code 
+                                        left  join TStep T on S.step_code=T.stepcode
+                                        where  M.wo_code=@wo_code
+                                        order by S.seq ";
+                                dynamicParams.Add("@wo_code", dt.Rows[i]["wo_code"].ToString());
+                                var data = DapperHelper.selectdata(sql, dynamicParams);
+                                if (data.Rows.Count > 0)
+                                {
+                                    cmp.ordergoodqty = data.AsEnumerable().Where(t => t.Field<string>("isend") == "Y").ToList().Select(c => c.Field<decimal>("good_qty")).First().ToString();
+                                    for (int j = 0; j < data.Rows.Count; j++)
+                                    {
+                                        AppScheduleKanbanSub cbp = new AppScheduleKanbanSub();
+                                        cbp.code = data.Rows[j]["stepcode"].ToString();
+                                        cbp.name = data.Rows[j]["stepname"].ToString();
+                                        cbp.spec = data.Rows[j]["isend"].ToString();
+                                        cbp.planqty = data.Rows[j]["plan_qty"].ToString();
+                                        cbp.goodqty = data.Rows[j]["good_qty"].ToString();
+                                        cmp.children.Add(cbp);
+                                    }
+                                    list.Add(cmp);
+                                }
+                                else
+                                {
+                                    cmp.ordergoodqty = "0";
+                                    list.Add(cmp);
+                                }
+                            }
+                            mes.code = "200";
+                            mes.message = "success!";
+                            mes.data = list;
+                            return mes;
+                        }
+                        else
+                        {
+                            mes.code = "300";
+                            mes.count = 0;
+                            mes.message = "鏃犵鍚堣姹傚崟鎹紒";
+                            mes.data = null;
+                        }
+                        break;
+                    default:
+                        break;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
     }
 }

--
Gitblit v1.9.3