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/ProductModelDAL.cs |  584 ++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 506 insertions(+), 78 deletions(-)

diff --git a/VueWebApi/DLL/DAL/ProductModelDAL.cs b/VueWebApi/DLL/DAL/ProductModelDAL.cs
index 724f0d6..90d4eec 100644
--- a/VueWebApi/DLL/DAL/ProductModelDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductModelDAL.cs
@@ -27,7 +27,7 @@
             try
             {
                 //鑾峰彇璁惧绫诲瀷鏁版嵁
-                sql = @"select code,name from T_Dict where dict_type='CHLX' ";
+                sql = @"select code,name,iparent_id from T_Dict where dict_type='CHLX' ";
                 var data = DapperHelper.selecttable(sql);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -421,12 +421,29 @@
         #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 search0 = "";
             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+'%' ";
@@ -444,7 +461,8 @@
                 }
                 if (stocktypecode != "" && stocktypecode != null)
                 {
-                    search += "and D.code=@stocktypecode ";
+                    search0 += " where code = @stocktypecode";
+                    search += " and   CTE.iparent_id<>'' and CTE.dict_type='CHLX'";
                     dynamicParams.Add("@stocktypecode", stocktypecode);
                 }
                 if (materialtypecode != "" && materialtypecode != null)
@@ -463,21 +481,80 @@
                 }
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,
-                            C.code as materialtypecode,C.name as materialtypename,A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,A.default_route,
-                            A.lm_date,A.proute_id,A.is_batchno,A.is_fifo,A.is_incheck,A.is_outcheck
-                            from TMateriel_Info A
-                            left join TUom B on A.uom_code=B.code
-                            left join TMateriel_Type C on A.materieltype_code=C.code
-                            left join T_Dict D on A.stocktype_code=D.code and D.dict_type='CHLX'
-                            left join T_Sec_Stck T on A.stck_code=T.code 
-                            left join TUser U on A.lm_user=U.usercode
-                            where A.is_delete<>'1' " + search;
-                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                               //var sql = @"select A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,
+                               //            C.code as materialtypecode,C.name as materialtypename,A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,
+                               //            A.lm_date,(case when isnull(M.materiel_code,'')='' then 'N' else 'Y' end) as proute_id,A.is_batchno,A.is_fifo,A.is_incheck,A.is_outcheck
+                               //            from TMateriel_Info A
+                               //            left join TUom B on A.uom_code=B.code
+                               //            left join TMateriel_Type C on A.materieltype_code=C.code
+                               //            left join T_Dict D on A.stocktype_code=D.code and D.dict_type='CHLX'
+                               //            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
+                               //               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 sql0 = @"WITH CTE AS (
+                        SELECT  code,name,iparent_id,dict_type
+                        FROM T_Dict " + search0 + " ";
+                sql0 += @"UNION ALL
+                        SELECT t.code,t.name,t.iparent_id,t.dict_type
+                        FROM T_Dict t
+                        INNER JOIN CTE c ON c.code = t.iparent_id)
+                        SELECT COUNT(1) as total FROM (
+                        SELECT distinct A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,D.iparent_id,
+                            A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,
+                            A.lm_date,(case when isnull(M.materiel_code,'')='' then 'N' else 'Y' end) as proute_id,A.is_batchno,A.is_fifo,A.is_incheck,A.is_outcheck
+						FROM CTE
+						right join TMateriel_Info A on CTE.code=A.stocktype_code
+						left join TUom B on A.uom_code=B.code
+                        left join T_Dict D on A.stocktype_code=D.code 
+                        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
+                               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 + ") AS Result";
+                var data0 = DapperHelper.selectdata(sql0, dynamicParams);
+                if (data0.Rows.Count > 0)
+                {
+                    total = Convert.ToInt32(data0.Rows[0]["total"].ToString());
+                }
+                else
+                {
+                    total = 0;
+                }
+
+                var sql = @"WITH CTE AS (
+                        SELECT  code,name,iparent_id,dict_type
+                        FROM T_Dict " + search0 + " ";
+                sql += @"UNION ALL
+                        SELECT t.code,t.name,t.iparent_id,t.dict_type
+                        FROM T_Dict t
+                        INNER JOIN CTE c ON c.code = t.iparent_id)
+                        SELECT * FROM(SELECT *,ROW_NUMBER() OVER(ORDER BY lm_date desc) AS RowNum
+                        FROM(
+                        SELECT distinct A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,D.iparent_id,
+                            A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,
+                            A.lm_date,(case when isnull(M.materiel_code,'')='' then 'N' else 'Y' end) as proute_id,A.is_batchno,A.is_fifo,A.is_incheck,A.is_outcheck
+						FROM CTE
+						right join TMateriel_Info A on CTE.code=A.stocktype_code
+						left join TUom B on A.uom_code=B.code
+                        left join T_Dict D on A.stocktype_code=D.code 
+                        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
+                               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 + " ) AS Temp) AS Result WHERE RowNum >= " + startNum + " AND RowNum <=" + endNum + " ORDER BY " + prop + " " + order + "";
+                var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
                 mes.count = total;
-                mes.data = data.ToList();
+                mes.data = data;
             }
             catch (Exception e)
             {
@@ -491,7 +568,7 @@
         #endregion
 
         #region[瀛樿揣妗f鏂板缂栬緫]
-        public static ToMessage AddUpdateInventoryFile(string materialid, string materialcode, string materialname, string materialspec, string uomcode, string warehousecode, string stocktypecode, string materialtypecode, string minstockqty, string maxstockqty,string is_batchno,string is_fifo,string is_incheck,string is_outcheck, string username, string operType)
+        public static ToMessage AddUpdateInventoryFile(string materialid, string materialcode, string materialname, string materialspec, string uomcode, string warehousecode, string stocktypecode, string minstockqty, string maxstockqty, string is_batchno, string is_fifo, string is_incheck, string is_outcheck, string username, string operType)
         {
             var dynamicParams = new DynamicParameters();
             try
@@ -517,7 +594,7 @@
                     dynamicParams.Add("@uomcode", uomcode);
                     dynamicParams.Add("@warehousecode", warehousecode);
                     dynamicParams.Add("@stocktypecode", stocktypecode);
-                    dynamicParams.Add("@materialtypecode", materialtypecode);
+                    dynamicParams.Add("@materialtypecode", "");
                     dynamicParams.Add("@minstockqty", minstockqty);
                     dynamicParams.Add("@maxstockqty", maxstockqty);
                     dynamicParams.Add("@username", username);
@@ -553,7 +630,7 @@
                     dynamicParams.Add("@uomcode", uomcode);
                     dynamicParams.Add("@warehousecode", warehousecode);
                     dynamicParams.Add("@stocktypecode", stocktypecode);
-                    dynamicParams.Add("@materialtypecode", materialtypecode);
+                    dynamicParams.Add("@materialtypecode", "");
                     dynamicParams.Add("@minstockqty", minstockqty);
                     dynamicParams.Add("@maxstockqty", maxstockqty);
                     dynamicParams.Add("@username", username);
@@ -654,6 +731,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";
@@ -686,20 +775,38 @@
         #endregion
 
         #region[瀛樿揣妗f鍏宠仈宸ヨ壓璺嚎鏌ヨ]
-        public static ToMessage InventoryFileAssociationRoute(string partcode)
+        public static ToMessage InventoryFileAssociationRoute(string stu_torgcode, string stu_torgtypecode, string partcode)
         {
             string sql = "";
+            string search = "";
             var dynamicParams = new DynamicParameters();
             List<MaterialRout> list = new List<MaterialRout>();
             try
             {
+                switch (stu_torgtypecode)
+                {
+                    case "":
+                        break;
+                    case "D":
+                        search += "and parent.org_code=@stu_torgcode or child.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    case "W":
+                        search += "and parent.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 //鑾峰彇宸ヨ壓璺嚎闆嗗悎(鍖呭惈鐗╂枡缁戝畾宸ヨ壓璺嚎鏍囪瘑)
-                sql = @"select distinct A.code as routecode,A.name as routename,(case when B.route_code is null then 'N' else 'Y' end) flag  from TFlw_Rout A 
+                sql = @"select distinct parent.org_code,parent.org_name,A.code as routecode,A.name as routename,(case when B.route_code is null then 'N' else 'Y' end) flag  from TFlw_Rout A 
+                        left join TOrganization parent on A.torg_code=parent.org_code 
+                        left join TOrganization as child on parent.parent_id=child.id 
                         left join (
                           select distinct route_code  from TMateriel_Route where  materiel_code=@partcode and is_delete<>'1'
                         ) B
                         on A.code=B.route_code 
-                        where  A.is_delete='0' and A.enable='Y'";
+                        where  A.is_delete='0' and A.enable='Y' " + search;
                 dynamicParams.Add("@partcode", partcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 for (int i = 0; i < data.Rows.Count; i++)
@@ -708,7 +815,8 @@
                     rout.code = data.Rows[i]["ROUTECODE"].ToString();
                     rout.name = data.Rows[i]["ROUTENAME"].ToString();
                     rout.flag = data.Rows[i]["FLAG"].ToString();
-
+                    rout.wkshopcode = data.Rows[i]["ORG_CODE"].ToString();
+                    rout.wkshopname = data.Rows[i]["ORG_NAME"].ToString();
                     //鏍规嵁宸ヨ壓璺嚎缂栫爜鑾峰彇鍏宠仈鐨勫伐搴忎俊鎭�
                     sql = @"select A.seq,B.stepcode,B.stepname,B.enable from TFlw_Rtdt A
                             inner join TStep B on A.step_code=B.stepcode
@@ -735,31 +843,47 @@
         #endregion
 
         #region[瀛樿揣妗f鍏宠仈宸ヨ壓璺嚎鎻愪氦]
-        public static ToMessage SaveInventoryFile(string partcode, string defaultroute_code, string username, List<ObjectData> json)
+        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)
                 {
-                    //娓呴櫎鐗╂枡鍏宠仈宸ヨ壓璺嚎琛ㄦ暟鎹�
-                    sql = @"delete TMateriel_Route where materiel_code=@partcode";
-                    list.Add(new { str = sql, parm = new { partcode = partcode } });
-                    //鏍囪鐗╂枡琛ㄥ叧鑱斿伐鑹鸿矾绾挎爣璇�
-                    sql = @"update TMateriel_Info set proute_id='N',default_route='' where partcode=@partcode";
-                    list.Add(new { str = sql, parm = new { partcode = partcode } });
+                    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;
                 }
-                else
+                if (json != null && json.Count > 0)
                 {
-                    //娓呴櫎鐢ㄦ埛鍏宠仈瑙掕壊琛ㄦ暟鎹�
-                    sql = @"delete TMateriel_Route where materiel_code=@partcode";
-                    list.Add(new { str = sql, parm = new { partcode = partcode } });
+                    //鐗╂枡+缁勭粐鏌ヨ鑺傛媿宸ヤ环琛ㄤ腑瀵瑰簲鐨勬墍鏈夊伐鑹鸿矾绾�,鐒跺悗鏍规嵁浼犺繃鏉ョ殑鍋氬姣旓紝鍐嶅幓鍒犻櫎鑺傛媿宸ヤ环琛�
+
                     //寰幆鍐欏叆鐢ㄦ埛鍏宠仈瑙掕壊琛�
                     for (int i = 0; i < json.Count; i++)
                     {
-                        sql = @"insert into TMateriel_Route(materiel_code,route_code,lm_user,lm_date) values(@materiel_code,@route_code,@lm_user,@lm_date)";
+                        sql = @"insert into TMateriel_Route(materiel_code,route_code,lm_user,lm_date,torg_code) values(@materiel_code,@route_code,@lm_user,@lm_date,@torg_code)";
                         list.Add(new
                         {
                             str = sql,
@@ -768,13 +892,11 @@
                                 materiel_code = partcode,
                                 route_code = json[i].code,
                                 lm_user = username,
-                                lm_date = DateTime.Now.ToString()
+                                lm_date = DateTime.Now.ToString(),
+                                torg_code = json[i].wkshopcode
                             }
                         });
                     }
-                    //鏍囪鐗╂枡琛ㄥ叧鑱斿伐鑹鸿矾绾挎爣璇�
-                    sql = @"update TMateriel_Info set proute_id='Y',default_route=@defaultroute_code where partcode=@partcode";
-                    list.Add(new { str = sql, parm = new { partcode = partcode, defaultroute_code = defaultroute_code } });
                 }
                 bool aa = DapperHelper.DoTransaction(list);
                 if (aa)
@@ -907,7 +1029,7 @@
                     mes.Message = "鑾峰彇鐗堟湰鍙峰け璐�!";
                     mes.data = null;
                 }
-               
+
             }
             catch (Exception e)
             {
@@ -947,7 +1069,7 @@
                             version = version,
                             username = username,
                             CreateDate = DateTime.Now.ToString(),
-                            startdate= startdate
+                            startdate = startdate
                         }
                     });
                     //鍐欏叆BOM瀛愯〃
@@ -1164,12 +1286,31 @@
 
 
         #region[宸ヨ壓璺嚎鏌ヨ]
-        public static ToMessage RouteSearch(string routecode, string routename, string description, string createuser, int startNum, int endNum, string prop, string order)
+        public static ToMessage RouteSearch(string stu_torgcode, string stu_torgtypecode, string WorkShop, string routecode, string routename, string description, string createuser, int startNum, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
             try
             {
+                if (WorkShop != "" && WorkShop != null)
+                {
+                    search += "and A.torg_code=@workShop ";
+                    dynamicParams.Add("@workShop", WorkShop);
+                }
+                else
+                {
+                    switch (stu_torgtypecode)
+                    {
+                        case "":
+                            search += "and T.description=@description ";
+                            dynamicParams.Add("@description", "W");
+                            break;
+                        case "D":
+                            search += "and  L.org_code=@stu_torgcode ";
+                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                            break;
+                    }
+                }
                 if (routecode != "" && routecode != null)
                 {
                     search += "and A.code like '%'+@routecode+'%' ";
@@ -1196,8 +1337,15 @@
                 }
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.id,A.code,A.name,A.description,A.enable,U.username as lm_user,A.lm_date  from TFlw_Rout A
+                var sql = @"select A.id,T.org_code,T.org_name,A.code,A.name,A.description,A.enable,U.username as lm_user,A.lm_date,
+                            ISNULL(STUFF((SELECT ',' + R.materiel_code
+                            FROM TMateriel_Route R
+                            WHERE CHARINDEX(',' + R.route_code + ',', ',' + A.code + ',') > 0
+                            FOR XML PATH('')), 1, 1, ''),'') AS isrolepart 
+                            from TFlw_Rout A
                             left join TUser U on A.lm_user=U.usercode
+                            left join TOrganization T on A.torg_code=T.org_code 
+                            left join TOrganization as L on T.parent_id=L.id 
                             where A.is_delete<>'1' " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
@@ -1225,7 +1373,7 @@
             try
             {
                 //鑾峰彇宸ヨ壓璺嚎淇℃伅
-                sql = @"select code,name,description,enable 
+                sql = @"select code,name,description,enable,torg_code 
                         from TFlw_Rout
                         where code=@routecode and is_delete<>'1'";
                 dynamicParams.Add("@routecode", routecode);
@@ -1237,6 +1385,7 @@
                     rout.name = data.Rows[i]["NAME"].ToString();
                     rout.enable = data.Rows[i]["ENABLE"].ToString();
                     rout.description = data.Rows[i]["DESCRIPTION"].ToString();
+                    rout.wkshopcode = data.Rows[i]["torg_code"].ToString();
 
                     //鏍规嵁宸ヨ壓璺嚎缂栫爜鑾峰彇鍏宠仈鐨勫伐搴忎俊鎭�
                     sql = @"select A.seq,B.stepcode,B.stepname,B.enable from TFlw_Rtdt A
@@ -1285,8 +1434,8 @@
                         return mes;
                     }
                     //鏂板宸ヨ壓璺嚎琛�
-                    sql = @"insert into TFlw_Rout(code,name,description,enable,lm_user,lm_date) values(@code,@name,@description,@enable,@lm_user,@lm_date)";
-                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, description = json.description, enable = json.enable, lm_user = username, lm_date = DateTime.Now.ToString() } });
+                    sql = @"insert into TFlw_Rout(code,name,description,enable,lm_user,lm_date,torg_code) values(@code,@name,@description,@enable,@lm_user,@lm_date,@torg_code)";
+                    list.Add(new { str = sql, parm = new { code = json.code, name = json.name, description = json.description, enable = json.enable, lm_user = username, lm_date = DateTime.Now.ToString(), torg_code = json.wkshopcode } });
                     for (int i = 0; i < json.Data.Rows.Count; i++)
                     {
                         string is_firststep = "N"; //鏄惁棣栭亾宸ュ簭
@@ -1300,8 +1449,8 @@
                             is_laststep = "Y";
                         }
                         //鏂板宸ヨ壓璺嚎鍏宠仈宸ュ簭琛�
-                        sql = @"insert TFlw_Rtdt (rout_code,seq,step_code,first_choke,last_choke,lm_user,lm_date) values(@rout_code,@seq,@step_code,@first_choke,@last_choke,@lm_user,@lm_date)";
-                        list.Add(new { str = sql, parm = new { rout_code = json.code, seq = Convert.ToInt32(json.Data.Rows[i]["SEQ"].ToString()), step_code = json.Data.Rows[i]["STEPCODE"].ToString(), first_choke = is_firststep, last_choke = is_laststep, lm_user = username, lm_date = DateTime.Now.ToString() } });
+                        sql = @"insert TFlw_Rtdt (rout_code,seq,step_code,first_choke,last_choke,lm_user,lm_date,torg_code) values(@rout_code,@seq,@step_code,@first_choke,@last_choke,@lm_user,@lm_date,@torg_code)";
+                        list.Add(new { str = sql, parm = new { rout_code = json.code, seq = Convert.ToInt32(json.Data.Rows[i]["SEQ"].ToString()), step_code = json.Data.Rows[i]["STEPCODE"].ToString(), first_choke = is_firststep, last_choke = is_laststep, lm_user = username, lm_date = DateTime.Now.ToString(), torg_code = json.wkshopcode } });
                     }
                     bool aa = DapperHelper.DoTransaction(list);
                     if (aa)
@@ -1420,18 +1569,211 @@
         }
         #endregion
 
+        #region[宸ヨ壓璺嚎鍏宠仈浜у搧鏌ヨ]
+        public static ToMessage RputeInventorySearch(string stu_torgcode, string stu_torgtypecode, string partcode, string partname, string partspec, string stocktypecode, string materialtypecode, string storehousecode)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search0 = "";
+            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+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and A.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and A.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
+                if (stocktypecode != "" && stocktypecode != null)
+                {
+                    search0 += " where code = @stocktypecode";
+                    search += " and   CTE.iparent_id<>'' and CTE.dict_type='CHLX'";
+                    dynamicParams.Add("@stocktypecode", stocktypecode);
+                }
+                if (materialtypecode != "" && materialtypecode != null)
+                {
+                    search += "and C.code=@materialtypecode ";
+                    dynamicParams.Add("@materialtypecode", materialtypecode);
+                }
+                if (storehousecode != "" && storehousecode != null)
+                {
+                    search += "and A.stck_code=@storehousecode ";
+                    dynamicParams.Add("@storehousecode", storehousecode);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql0 = @"WITH CTE AS (
+                        SELECT  code,name,iparent_id,dict_type
+                        FROM T_Dict " + search0 + " ";
+                sql0 += @"UNION ALL
+                        SELECT t.code,t.name,t.iparent_id,t.dict_type
+                        FROM T_Dict t
+                        INNER JOIN CTE c ON c.code = t.iparent_id)
+                        SELECT COUNT(1) as total FROM (
+                        SELECT distinct A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,D.iparent_id,
+                            A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,
+                            A.lm_date,(case when isnull(M.materiel_code,'')='' then 'N' else 'Y' end) as proute_id,A.is_batchno,A.is_fifo,A.is_incheck,A.is_outcheck
+						FROM CTE
+						right join TMateriel_Info A on CTE.code=A.stocktype_code
+						left join TUom B on A.uom_code=B.code
+                        left join T_Dict D on A.stocktype_code=D.code 
+                        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
+                               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 + ") AS Result";
+                var data0 = DapperHelper.selectdata(sql0, dynamicParams);
+                if (data0.Rows.Count > 0)
+                {
+                    total = Convert.ToInt32(data0.Rows[0]["total"].ToString());
+                }
+                else
+                {
+                    total = 0;
+                }
+
+                var sql = @"WITH CTE AS (
+                        SELECT  code,name,iparent_id,dict_type
+                        FROM T_Dict " + search0 + " ";
+                sql += @"UNION ALL
+                        SELECT t.code,t.name,t.iparent_id,t.dict_type
+                        FROM T_Dict t
+                        INNER JOIN CTE c ON c.code = t.iparent_id)
+                        SELECT * FROM(SELECT *,ROW_NUMBER() OVER(ORDER BY lm_date desc) AS RowNum
+                        FROM(
+                        SELECT distinct A.id,A.partcode,A.partname,A.partspec,A.uom_code,B.name as uom_name,D.code as stocktypecode,D.name as stocktypename,D.iparent_id,
+                            A.stck_code,T.name as stck_name,A.maxqty,A.minqty,U.username as lm_user,
+                            A.lm_date,(case when isnull(M.materiel_code,'')='' then 'N' else 'Y' end) as proute_id,A.is_batchno,A.is_fifo,A.is_incheck,A.is_outcheck
+						FROM CTE
+						right join TMateriel_Info A on CTE.code=A.stocktype_code
+						left join TUom B on A.uom_code=B.code
+                        left join T_Dict D on A.stocktype_code=D.code 
+                        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
+                               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 + " ) AS Temp) AS Result";
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                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 RouteBatchPartSave(string stu_torgcode, string stu_torgtypecode, string username, string routecode, string[] rolebatchpartcode)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<object> list = new List<object>();
+            try
+            {
+                list.Clear();
+                //娓呴櫎宸ヨ壓璺嚎鍏宠仈鐨勭墿鏂欐暟鎹�
+                sql = @"delete TMateriel_Route where route_code=@route_code";
+                list.Add(new { str = sql, parm = new { route_code = routecode } });
+                //寰幆鍐欏叆宸ヨ壓璺嚎鐗╂枡鍏宠仈琛�
+                for (int i = 0; i < rolebatchpartcode.Length; i++)
+                {
+                    sql = @"insert into TMateriel_Route(materiel_code,route_code,lm_user,lm_date,torg_code) 
+                            values(@materiel_code,@route_code,@lm_user,@lm_date,@torg_code)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            materiel_code = rolebatchpartcode[i].ToString(),
+                            route_code = routecode,
+                            lm_user = username,
+                            lm_date = DateTime.Now.ToString(),
+                            torg_code = stu_torgcode
+                        }
+                    });
+                }
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鎿嶄綔鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鎿嶄綔澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
 
 
 
         #region[宸ュ簭涓嬫媺鏌ヨ鎺ュ彛]
-        public static ToMessage StepSelect()
+        public static ToMessage StepSelect(string WorkShop)
         {
             string sql = "";
+            var dynamicParams = new DynamicParameters();
             try
             {
                 //鑾峰彇宸ュ簭鏁版嵁
-                sql = @"select stepcode,stepname from TStep where is_delete<>'1' and enable='Y'";
-                var data = DapperHelper.selecttable(sql);
+                sql = @"select stepcode,stepname from TStep where is_delete<>'1' and enable='Y' and torg_code=@torg_code";
+                dynamicParams.Add("@torg_code", WorkShop);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
                 mes.count = data.Rows.Count;
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -1449,12 +1791,31 @@
         #endregion
 
         #region[宸ュ簭鏌ヨ]
-        public static ToMessage StepSearch(string stepcode, string stepname, string enable, string steptypecode, string createuser, int startNum, int endNum, string prop, string order)
+        public static ToMessage StepSearch(string stu_torgcode, string stu_torgtypecode, string WorkShop, string stepcode, string stepname, string enable, string steptypecode, string createuser, int startNum, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
             try
             {
+                if (WorkShop != "" && WorkShop != null)
+                {
+                    search += "and A.torg_code=@workShop ";
+                    dynamicParams.Add("@workShop", WorkShop);
+                }
+                else
+                {
+                    switch (stu_torgtypecode)
+                    {
+                        case "":
+                            search += "and T.description=@description ";
+                            dynamicParams.Add("@description", "W");
+                            break;
+                        case "D":
+                            search += "and  L.org_code=@stu_torgcode ";
+                            dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                            break;
+                    }
+                }
                 if (stepcode != "" && stepcode != null)
                 {
                     search += "and A.stepcode like '%'+@stepcode+'%' ";
@@ -1486,8 +1847,10 @@
                 }
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
-                var sql = @"select A.id,A.stepcode,A.stepname,A.flwtype,A.enable,A.descr,U.username as lm_user,A.lm_date,A.is_eqp,A.is_defect  from TStep A
+                var sql = @"select A.id,T.org_code,T.org_name,A.stepcode,A.stepname,A.flwtype,A.enable,A.descr,U.username as lm_user,A.lm_date,A.is_eqp,A.is_defect  from TStep A
                             left join TUser U on A.lm_user=U.usercode
+                            left join TOrganization T on A.torg_code=T.org_code 
+                            left join TOrganization as L on T.parent_id=L.id 
                             where A.is_delete<>'1' " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
@@ -1507,7 +1870,7 @@
         #endregion
 
         #region[宸ュ簭鏂板缂栬緫]
-        public static ToMessage AddUpdateStep(string stepid, string stepcode, string stepname, string steptypecode, string enable, string description, string username, string operType)
+        public static ToMessage AddUpdateStep(string stepid, string WorkShop, string stepcode, string stepname, string steptypecode, string enable, string description, string username, string operType)
         {
             var dynamicParams = new DynamicParameters();
             List<object> list = new List<object>();
@@ -1527,8 +1890,8 @@
                         mes.data = null;
                         return mes;
                     }
-                    var sql = @"insert into TStep(stepcode,stepname,flwtype,enable,descr,lm_user,lm_date) 
-                            values(@stepcode,@stepname,@steptypecode,@enable,@description,@username,@CreateDate)";
+                    var sql = @"insert into TStep(stepcode,stepname,flwtype,enable,descr,lm_user,lm_date,torg_code) 
+                            values(@stepcode,@stepname,@steptypecode,@enable,@description,@username,@CreateDate,@torg_code)";
                     dynamicParams.Add("@stepcode", stepcode);
                     dynamicParams.Add("@stepname", stepname);
                     dynamicParams.Add("@steptypecode", steptypecode);
@@ -1536,6 +1899,7 @@
                     dynamicParams.Add("@description", description);
                     dynamicParams.Add("@username", username);
                     dynamicParams.Add("@CreateDate", DateTime.Now.ToString());
+                    dynamicParams.Add("@torg_code", WorkShop);
                     int cont = DapperHelper.SQL(sql, dynamicParams);
                     if (cont > 0)
                     {
@@ -1593,9 +1957,9 @@
                             list.Add(new { str = sql_1, parm = new { stepcode = stepcode } });
                         }
                     }
-                    sql_1 = @"update TStep set stepname=@stepname,flwtype=@steptypecode,enable=@enable,descr=@description,
+                    sql_1 = @"update TStep set torg_code=@torg_code, stepname=@stepname,flwtype=@steptypecode,enable=@enable,descr=@description,
                                 lm_user=@username,lm_date=@CreateDate where id=@stepid";
-                    list.Add(new { str = sql_1, parm = new { stepid = stepid, stepname = stepname, steptypecode = steptypecode, enable = enable, description = description, username = username, CreateDate = DateTime.Now.ToString() } });
+                    list.Add(new { str = sql_1, parm = new { torg_code = WorkShop, stepid = stepid, stepname = stepname, steptypecode = steptypecode, enable = enable, description = description, username = username, CreateDate = DateTime.Now.ToString() } });
                     bool aa = DapperHelper.DoTransaction(list);
                     if (aa)
                     {
@@ -1657,7 +2021,7 @@
                 sql = @"delete TDefect_Step  where step_code=@stepcode";
                 list.Add(new { str = sql, parm = new { stepcode = stepcode } });
                 //鍒犻櫎宸ュ簭
-                sql = @"update TStep set is_delete='1' where stepcode=@stepcode";
+                sql = @"delete TStep  where stepcode=@stepcode";
                 list.Add(new { str = sql, parm = new { stepcode = stepcode } });
                 bool aa = DapperHelper.DoTransaction(list);
                 if (aa)
@@ -1687,7 +2051,7 @@
         #endregion
 
         #region[宸ュ簭瀹氫箟鍏宠仈宸ヤ綔绔欐煡璇
-        public static ToMessage StepAssociationEqp(string stepcode)
+        public static ToMessage StepAssociationEqp(string WorkShop, string stepcode)
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
@@ -1700,7 +2064,7 @@
                         select distinct A.eqp_code,B.wksp_code  from TFlw_Rteqp A 
                         inner join TEqpInfo B on A.eqp_code=B.code 
                         where A.step_code=@stepcode and A.is_delete<>'1' and B.is_delete<>'1' and B.enable='Y'
-                        ) B on T.org_code=B.wksp_code where T.description='W' and is_delete<>'1'
+                        ) B on T.org_code=B.wksp_code where T.description='W' and is_delete<>'1' and T.org_code=@WorkShop
                         UNION ALL
                         select distinct T.type as wksp_code,(case when T.type='211' then '渚涘簲鍟�' when T.type='228' then '瀹㈡埛/渚涘簲鍟�' end ) as wksp_name,'W' as type,(case when B.type is null then 'N' else 'Y' end) flag 
                         from TCustomer T
@@ -1709,6 +2073,7 @@
                         inner join TCustomer B on A.eqp_code=B.code 
                         where A.step_code=@stepcode  and A.is_delete<>'1' and B.is_delete<>'1'
                         ) B on T.type=B.type where T.type in('211','228') and T.is_delete<>'1'"; //226(瀹㈡埛)
+                dynamicParams.Add("@WorkShop", WorkShop);
                 dynamicParams.Add("@stepcode", stepcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 for (int i = 0; i < data.Rows.Count; i++)
@@ -1719,7 +2084,7 @@
                     rout.type = data.Rows[i]["TYPE"].ToString();
                     rout.flag = data.Rows[i]["FLAG"].ToString();
                     rout.children = new List<StepEqpCn>();
-                    if (rout.code == "211"|| rout.code == "228") //澶栧崗渚涙柟
+                    if (rout.code == "211" || rout.code == "228") //澶栧崗渚涙柟
                     {
                         //鏍规嵁澶栧崗渚涙柟鏍囪瘑缂栫爜鏌ユ壘澶栧崗渚涙柟淇℃伅(鍖呭惈宸插叧鑱旀爣璇�)
                         sql = @"select A.code,A.name,'W' as type,(case when B.eqp_code is null then 'N' else 'Y' end) flag
@@ -1784,7 +2149,7 @@
         #endregion
 
         #region [宸ュ簭瀹氫箟鍏宠仈宸ヤ綔绔欐彁浜
-        public static ToMessage SaveStepAssociationEqp(string stepcode, string username, List<ObjectData> json)
+        public static ToMessage SaveStepAssociationEqp(string WorkShop, string stepcode, string username, List<ObjectData> json)
         {
             var sql = "";
             List<object> list = new List<object>();
@@ -1799,16 +2164,23 @@
                     //鏍囪宸ュ簭琛ㄥ叧鑱斿伐浣滅珯鏍囪瘑
                     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++)
                     {
-                        sql = @"insert into TFlw_Rteqp(eqp_code,step_code,style,lm_user,lm_date) values(@eqp_code,@stepcode,@style,@lm_user,@lm_date)";
+                        sql = @"insert into TFlw_Rteqp(eqp_code,step_code,style,lm_user,lm_date,torg_code) values(@eqp_code,@stepcode,@style,@lm_user,@lm_date,@torg_code)";
                         list.Add(new
                         {
                             str = sql,
@@ -1818,7 +2190,8 @@
                                 stepcode = stepcode,
                                 style = json[i].name,
                                 lm_user = username,
-                                lm_date = DateTime.Now.ToString()
+                                lm_date = DateTime.Now.ToString(),
+                                torg_code = WorkShop
                             }
                         });
                     }
@@ -1854,19 +2227,24 @@
         #endregion
 
         #region[宸ュ簭鍏宠仈缂洪櫡鏌ヨ]
-        public static ToMessage StepAssociationDefect(string stepcode)
+        public static ToMessage StepAssociationDefect(string WorkShop, string stepcode)
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
             List<StepDefect> list = new List<StepDefect>();
             try
             {
+
                 //鑾峰彇宸ュ簭鍏宠仈缂洪櫡鏁版嵁(鍖呭惈鍏宠仈鏍囪瘑)
                 sql = @"select A.code,A.name,(case when B.defect_code is null then 'N' else 'Y' end) flag from TDefect A
                         left join(
-                        select distinct defect_code  from TDefect_Step where step_code=@stepcode and is_delete<>'1'
+                        select distinct defect_code  from TDefect_Step A
+                        left join TOrganization T on A.torg_code=T.org_code 
+                        left join TOrganization as L on T.parent_id=L.id 
+                        where step_code=@stepcode and A.is_delete<>'1' and T.org_code=@WorkShop
                         ) B on A.code=B.defect_code";
                 dynamicParams.Add("@stepcode", stepcode);
+                dynamicParams.Add("@WorkShop", WorkShop);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 for (int i = 0; i < data.Rows.Count; i++)
                 {
@@ -1892,7 +2270,7 @@
         #endregion
 
         #region[宸ュ簭鍏宠仈缂洪櫡鎻愪氦]
-        public static ToMessage SaveStepAssociationDefect(string stepcode, string username, List<ObjectData> json)
+        public static ToMessage SaveStepAssociationDefect(string WorkShop, string stepcode, string username, List<ObjectData> json)
         {
             var sql = "";
             List<object> list = new List<object>();
@@ -1916,7 +2294,7 @@
                     //寰幆鍐欏叆鐢ㄦ埛鍏宠仈瑙掕壊琛�
                     for (int i = 0; i < json.Count; i++)
                     {
-                        sql = @"insert into TDefect_Step(defect_code,step_code,lm_user,lm_date) values(@defect_code,@stepcode,@lm_user,@lm_date)";
+                        sql = @"insert into TDefect_Step(defect_code,step_code,lm_user,lm_date,torg_code) values(@defect_code,@stepcode,@lm_user,@lm_date,@torg_code)";
                         list.Add(new
                         {
                             str = sql,
@@ -1925,7 +2303,8 @@
                                 defect_code = json[i].code,
                                 stepcode = stepcode,
                                 lm_user = username,
-                                lm_date = DateTime.Now.ToString()
+                                lm_date = DateTime.Now.ToString(),
+                                torg_code = WorkShop
                             }
                         });
                     }
@@ -1993,17 +2372,35 @@
         #endregion
 
         #region[浜у搧缂栫爜鏌ユ壘宸ヨ壓璺嚎涓嬫媺妗哴
-        public static ToMessage PartSelectRpute(string partcode)
+        public static ToMessage PartSelectRpute(string stu_torgcode, string stu_torgtypecode, string partcode)
         {
             string sql = "";
+            string search = "";
             var dynamicParams = new DynamicParameters();
             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 T.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 //閫氳繃浜у搧缂栫爜鏌ユ壘鍏宠仈鐨勫伐鑹鸿矾绾夸俊鎭�
                 sql = @"select A.route_code,B.name as route_name   
                         from TMateriel_Route A
                         inner join TFlw_Rout B on A.route_code=B.code 
-                        where A.materiel_code=@partcode and B.is_delete<>'1' and A.is_delete<>'1'";
+                        left join TOrganization T on A.torg_code=T.org_code 
+                        left join TOrganization as L on T.parent_id=L.id
+                        where A.materiel_code=@partcode and B.is_delete<>'1' and A.is_delete<>'1' " + search;
                 dynamicParams.Add("@partcode", partcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
@@ -2079,7 +2476,7 @@
         #endregion
 
         #region[鏍规嵁宸ュ簭绾跨紪鐮佹煡鎵惧叧鑱旇澶囬泦鍚圿
-        public static ToMessage StepSelectEqpList(string partcode, string routecode, string stepcode,string steptype, int startNum, int endNum, string prop, string order)
+        public static ToMessage StepSelectEqpList(string partcode, string routecode, string stepcode, string steptype, int startNum, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "", sql = "";
@@ -2172,12 +2569,28 @@
         #endregion
 
         #region[鑺傛媿宸ヤ环鏌ヨ]
-        public static ToMessage BeatRateSearch(string partcode, string routecode, string stepcode, string eqpcode, int startNum, int endNum, string prop, string order)
+        public static ToMessage BeatRateSearch(string stu_torgcode, string stu_torgtypecode, string partcode, string routecode, string stepcode, string eqpcode, 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.materiel_code=@partcode ";
@@ -2195,7 +2608,7 @@
                 }
                 if (eqpcode != "" && eqpcode != null)
                 {
-                    search += "and A.eqp_code=@eqpcode";
+                    search += "and A.eqp_code=@eqpcode ";
                     dynamicParams.Add("@eqpcode", eqpcode);
                 }
                 if (search == "")
@@ -2212,8 +2625,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
-                            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;
+                            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' " + 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 = "鏌ヨ鎴愬姛!";
@@ -2240,7 +2667,7 @@
             try
             {
                 list.Clear();
-                //褰撳墠宸ュ簭鏄惁鍏宠仈宸ヨ壓璺嚎
+                //鏌ヨ鑺傛媿宸ヤ环琛�,褰撳墠浜у搧銆佸伐鑹鸿矾绾裤�佸伐搴忋�佽澶囨槸鍚﹁缃妭鎷嶅伐浠�
                 sql = @"select *  from TPrteEqp_Stad
                         where materiel_code=@partcode and route_code=@routecode and step_code=@stepcode and eqp_code=@eqpcode";
                 dynamicParams.Add("@partcode", partcode);
@@ -2293,6 +2720,7 @@
                         }
                     });
                 }
+
                 bool aa = DapperHelper.DoTransaction(list);
                 if (aa)
                 {

--
Gitblit v1.9.3