From 6fe3d6fc4e93f4cf31dc02d4f0cbc48d56c249b7 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 30 六月 2023 13:35:23 +0800
Subject: [PATCH] 多车间模式接口过滤

---
 VueWebApi/DLL/DAL/ProductModelDAL.cs |  133 ++++++++++++++++++++++++++-----------------
 1 files changed, 80 insertions(+), 53 deletions(-)

diff --git a/VueWebApi/DLL/DAL/ProductModelDAL.cs b/VueWebApi/DLL/DAL/ProductModelDAL.cs
index 0f15076..8ea9b24 100644
--- a/VueWebApi/DLL/DAL/ProductModelDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductModelDAL.cs
@@ -421,12 +421,28 @@
         #endregion
 
         #region[瀛樿揣妗f鏌ヨ]
-        public static ToMessage InventoryFileSelect(string partcode, string partname, string partspec, string stocktypecode, string materialtypecode, string storehousecode, int startNum, int endNum, string prop, string order)
+        public static ToMessage InventoryFileSelect(string stu_torgcode,string stu_torgtypecode,string partcode, string partname, string partspec, string stocktypecode, string materialtypecode, string storehousecode, int startNum, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
+            string search1 = "";
             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 F.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 if (partcode != "" && partcode != null)
                 {
                     search += "and A.partcode like '%'+@partcode+'%' ";
@@ -473,9 +489,10 @@
                             left join T_Sec_Stck T on A.stck_code=T.code 
                             left join TUser U on A.lm_user=U.usercode
                             left join (
-                              select distinct materiel_code from TMateriel_Route 
-                            )  M on A.partcode=M.materiel_code
-                            where A.is_delete<>'1' " + search;
+                               select distinct materiel_code from TMateriel_Route M
+                               left join TOrganization F on M.torg_code=F.org_code 
+                               left join TOrganization as L on F.parent_id=L.id 
+                               where  1=1 "+search1+")  M on A.partcode=M.materiel_code where A.is_delete<>'1' " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -657,6 +674,18 @@
                 }
                 //褰撳墠鐗╂枡鏄惁鐢熸垚鍑哄叆搴撹褰�
                 //鏈夋病鏈夎宸ュ崟寮曠敤
+                sql = @"select *  from TK_Wrk_Man
+                        where materiel_code=@materialcode";
+                dynamicParams.Add("@materialcode", materialcode);
+                var data3 = DapperHelper.selectdata(sql, dynamicParams);
+                if (data2.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鐗╂枡宸叉湁鍏宠仈鐨勭敓浜у伐鍗�,涓嶅厑璁稿垹闄�!";
+                    mes.data = null;
+                    return mes;
+                }
 
                 //鍒犻櫎鐗╂枡
                 sql = @"delete TMateriel_Info  where partcode=@materialcode";
@@ -760,63 +789,40 @@
         public static ToMessage SaveInventoryFile(string stu_torgcode,string stu_torgtypecode, string partcode, string defaultroute_code, string username, List<PartRout> json)
         {
             var sql = "";
+            var dynamicParams = new DynamicParameters();
+            string search = "";
             List<object> list = new List<object>();
             try
             {
                 list.Clear();
-                if (json == null || json.Count <= 0)
+                switch (stu_torgtypecode)
                 {
-                    switch (stu_torgtypecode)
-                    {
-                        case "":
-                            //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
-                            sql = @"delete TMateriel_Route where materiel_code=@partcode";
-                            list.Add(new { str = sql, parm = new { partcode = partcode } });
-                            break;
-                        case "D":
-                            //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
-                            sql = @"delete from TMateriel_Route where id in (select A.id   from TMateriel_Route A
+                    case "":
+                        //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
+                        sql = @"delete TMateriel_Route where materiel_code=@partcode";
+                        list.Add(new { str = sql, parm = new { partcode = partcode } });
+                        break;
+                    case "D":
+                        //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
+                        sql = @"delete from TMateriel_Route where id in (select A.id   from TMateriel_Route A
                                     left join TOrganization T on A.torg_code=T.org_code 
                                     left join TOrganization as L on T.parent_id=L.id 
                                     where 1=1 and  A.materiel_code=@partcode and  L.org_code=@stu_torgcode)";
-                            list.Add(new { str = sql, parm = new { partcode = partcode, stu_torgcode = stu_torgcode } });
-                            break;
-                        case "W":
-                            //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
-                            sql = @"delete from TMateriel_Route where id in (select A.id   from TMateriel_Route A
+                        list.Add(new { str = sql, parm = new { partcode = partcode, stu_torgcode = stu_torgcode } });
+                        break;
+                    case "W":
+                        //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
+                        sql = @"delete from TMateriel_Route where id in (select A.id   from TMateriel_Route A
                                     left join TOrganization T on A.torg_code=T.org_code 
                                     left join TOrganization as L on T.parent_id=L.id 
                                     where 1=1 and  A.materiel_code=@partcode and  T.org_code=@stu_torgcode)";
-                            list.Add(new { str = sql, parm = new { partcode = partcode, stu_torgcode = stu_torgcode } });
-                            break;
-                    }
+                        list.Add(new { str = sql, parm = new { partcode = partcode, stu_torgcode = stu_torgcode } });
+                        break;
                 }
-                else
+                if (json != null && json.Count >0)
                 {
-                    switch (stu_torgtypecode)
-                    {
-                        case "":
-                            //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
-                            sql = @"delete TMateriel_Route where materiel_code=@partcode";
-                            list.Add(new { str = sql, parm = new { partcode = partcode } });
-                            break;
-                        case "D":
-                            //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
-                            sql = @"delete from TMateriel_Route where id in (select A.id   from TMateriel_Route A
-                                    left join TOrganization T on A.torg_code=T.org_code 
-                                    left join TOrganization as L on T.parent_id=L.id 
-                                    where 1=1 and  A.materiel_code=@partcode and  L.org_code=@stu_torgcode)";
-                            list.Add(new { str = sql, parm = new { partcode = partcode, stu_torgcode = stu_torgcode } });
-                            break;
-                        case "W":
-                            //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
-                            sql = @"delete from TMateriel_Route where id in (select A.id   from TMateriel_Route A
-                                    left join TOrganization T on A.torg_code=T.org_code 
-                                    left join TOrganization as L on T.parent_id=L.id 
-                                    where 1=1 and  A.materiel_code=@partcode and  T.org_code=@stu_torgcode)";
-                            list.Add(new { str = sql, parm = new { partcode = partcode, stu_torgcode = stu_torgcode } });
-                            break;
-                    }
+                    //鐗╂枡+缁勭粐鏌ヨ鑺傛媿宸ヤ环琛ㄤ腑瀵瑰簲鐨勬墍鏈夊伐鑹鸿矾绾�,鐒跺悗鏍规嵁浼犺繃鏉ョ殑鍋氬姣旓紝鍐嶅幓鍒犻櫎鑺傛媿宸ヤ环琛�
+
                     //寰幆鍐欏叆鐢ㄦ埛鍏宠仈瑙掕壊琛�
                     for (int i = 0; i < json.Count; i++)
                     {
@@ -1905,12 +1911,19 @@
                     //鏍囪宸ュ簭琛ㄥ叧鑱斿伐浣滅珯鏍囪瘑
                     sql = @"update TStep set is_eqp='N' where stepcode=@stepcode";
                     list.Add(new { str = sql, parm = new { stepcode = stepcode } });
+                    //鏍规嵁宸ュ簭娓呴櫎鑺傛媿宸ヤ环琛�
+                    sql = @"delete TPrteEqp_Stad where step_code=@stepcode";
+                    list.Add(new { str = sql, parm = new { stepcode = stepcode } });
                 }
                 else
                 {
                     //娓呴櫎宸ュ簭鍏宠仈宸ヤ綔绔欒〃鏁版嵁
                     sql = @"delete TFlw_Rteqp where step_code=@stepcode";
                     list.Add(new { str = sql, parm = new { stepcode = stepcode } });
+                    //鏍规嵁宸ュ簭娓呴櫎鑺傛媿宸ヤ环琛�
+                    sql = @"delete TPrteEqp_Stad where step_code=@stepcode";
+                    list.Add(new { str = sql, parm = new { stepcode = stepcode } });
+
                     //寰幆鍐欏叆鐢ㄦ埛鍏宠仈瑙掕壊琛�
                     for (int i = 0; i < json.Count; i++)
                     {
@@ -2307,6 +2320,7 @@
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
+            string search1 = "";
             try
             {
                 switch (stu_torgtypecode)
@@ -2314,11 +2328,11 @@
                     case "":
                         break;
                     case "D":
-                        search += "and L.org_code=@stu_torgcode ";
+                        search1 += "and L.org_code=@stu_torgcode ";
                         dynamicParams.Add("@stu_torgcode", stu_torgcode);
                         break;
                     case "W":
-                        search += "and F.org_code=@stu_torgcode ";
+                        search1 += "and F.org_code=@stu_torgcode ";
                         dynamicParams.Add("@stu_torgcode", stu_torgcode);
                         break;
                     default:
@@ -2341,7 +2355,7 @@
                 }
                 if (eqpcode != "" && eqpcode != null)
                 {
-                    search += "and A.eqp_code=@eqpcode";
+                    search += "and A.eqp_code=@eqpcode ";
                     dynamicParams.Add("@eqpcode", eqpcode);
                 }
                 if (search == "")
@@ -2358,9 +2372,22 @@
                             left join TFlw_Rout C on A.route_code=C.code
                             left join TStep D on A.step_code=D.stepcode
                             left join TEqpInfo E on A.eqp_code=E.code
-                            left join TOrganization F on E.wksp_code=F.org_code
+                            left join TOrganization F on C.torg_code=F.org_code
                             left join TOrganization L on  F.parent_id=L.id
-                            where B.is_delete<>'1' and C.is_delete<>'1' and D.is_delete<>'1' and E.is_delete<>'1' and F.is_delete<>'1' " + search;
+                            where B.is_delete<>'1' and C.is_delete<>'1' and D.is_delete<>'1' and E.is_delete<>'1' and F.is_delete<>'1' " + search1 + search;
+                    sql += @"union all 
+                            select A.materiel_code as partcode,B.partname,B.partspec,A.route_code,C.name as route_name,
+                            D.stepcode,D.stepname,A.eqp_code,E.name as eqp_name,''as wksp_code,'' as wksp_name,
+                            A.eqp_value,A.stand_value,A.cavity_qty,A.unprice
+                            from TPrteEqp_Stad A
+                            left join TMateriel_Info B on A.materiel_code=B.partcode
+                            left join TFlw_Rout C on A.route_code=C.code
+                            left join TStep D on A.step_code=D.stepcode
+                            left join TCustomer E on A.eqp_code=E.code
+                            left join TOrganization F on C.torg_code=F.org_code
+                            left join TOrganization L on  F.parent_id=L.id
+                            where B.is_delete<>'1' and C.is_delete<>'1' and D.is_delete<>'1' and E.is_delete<>'1' " + search;     
+                            
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";

--
Gitblit v1.9.3