From 61eedf1c07cc2c338e84f48712f210b35e716cfb Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 31 七月 2023 11:18:48 +0800
Subject: [PATCH] ERP单据同步增加车间过滤

---
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs |  434 ++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 368 insertions(+), 66 deletions(-)

diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index 8348835..54b1225 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -22,12 +22,27 @@
 
 
         #region[ERP璁㈠崟鏌ヨ]
-        public static ToMessage ErpOrderSearch(string erporderstus, string erpordercode, string partcode, string partname, string partspec, int startNum, string paydatestartdate, string paydateenddate, string paydatestartdate1, string paydateenddate2, string creatuser, int endNum, string prop, string order)
+        public static ToMessage ErpOrderSearch(string stu_torgcode,string stu_torgtypecode,string erporderstus, string erpordercode, string partcode, string partname, string partspec, int startNum, string paydatestartdate, string paydateenddate, string paydatestartdate1, string paydateenddate2, string creatuser, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
             try
             {
+                switch (stu_torgtypecode)
+                {
+                    case "":
+                        break;
+                    case "D":
+                        search += "and L.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    case "W":
+                        search += "and C.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 if (erporderstus != "" && erporderstus != null)
                 {
                     search += "and A.status=@erporderstus ";
@@ -84,6 +99,7 @@
                             left join TOrganization C on A.wkshp_code=C.org_code
                             left join T_Sec_Stck D on A.stck_code=D.code 
                             left join TUser U on A.createuser=U.usercode 
+                            left join TOrganization L on  C.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";
@@ -307,12 +323,27 @@
 
 
         #region[MES宸ュ崟鏌ヨ]
-        public static ToMessage MesOrderSearch(string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
+        public static ToMessage MesOrderSearch(string stu_torgcode,string stu_torgtypecode,string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
             try
             {
+                switch (stu_torgtypecode)
+                {
+                    case "":
+                        break;
+                    case "D":
+                        search += "and L.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    case "W":
+                        search += "and C.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 if (mesorderstus != "" && mesorderstus != null)
                 {
                     search += "and A.status=@mesorderstus ";
@@ -374,6 +405,7 @@
                             left join TFlw_Rout E on A.route_code=E.code
                             left join T_Sec_Stck F on A.stck_code=F.code 
                             left join TUser U on A.lm_user=U.usercode 
+                            left join TOrganization L on  C.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";
@@ -470,7 +502,7 @@
         #endregion
 
         #region[浜у搧缂栫爜鏌ユ壘宸ヨ壓璺嚎涓嬫媺鎺ュ彛]
-        public static ToMessage PartSelectRoute(string partcode)
+        public static ToMessage PartSelectRoute(string partcode,string wkshopcode)
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
@@ -480,8 +512,9 @@
                 sql = @"select R.code,R.name,A.default_route  from TMateriel_Info A
                         inner join  TMateriel_Route M on A.partcode=M.materiel_code
                         inner join  TFlw_Rout R on M.route_code=R.code
-                        where A.partcode=@partcode ";
+                        where A.partcode=@partcode and M.torg_code=@torg_code";
                 dynamicParams.Add("@partcode", partcode);
+                dynamicParams.Add("@torg_code", wkshopcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -499,23 +532,38 @@
         #endregion
 
         #region[宸ヨ壓璺嚎鏌ユ壘杞﹂棿涓嬫媺鎺ュ彛]
-        public static ToMessage RouteSelectWkshop(string partcode, string routecode)
+        public static ToMessage RouteSelectWkshop(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 F.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 //鑾峰彇杞﹂棿涓嬫媺妗嗘暟鎹�
-                sql = @"select distinct F.org_code,F.org_name  from TFlw_Rout A
-                        inner join  TMateriel_Route M on A.code=M.route_code
-                        inner join   TFlw_Rtdt B on A.code=B.rout_code
+                sql = @"select distinct F.org_code,F.org_name   from TMateriel_Route M
+                        inner join   TFlw_Rtdt B on M.route_code=B.rout_code
                         inner join TStep C on B.step_code=C.stepcode
                         inner join TFlw_Rteqp D on C.stepcode=D.step_code
                         inner join TEqpInfo  E on D.eqp_code=E.code
                         left join TOrganization F on E.wksp_code=F.org_code
-                        where A.code=@routecode and M.materiel_code=@partcode and E.enable='Y'";
+                        left join TOrganization L on  F.parent_id=L.id
+                        where M.materiel_code=@partcode and E.enable='Y' "+search;
                 dynamicParams.Add("@partcode", partcode);
-                dynamicParams.Add("@routecode", routecode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -599,7 +647,8 @@
                 sql = @"select B.step_code,C.eqp_code from TFlw_Rout A
                         inner join TFlw_Rtdt B on A.code=B.rout_code
                         left join TFlw_Rteqp C on B.step_code=C.step_code
-                        where A.code=@routecode";
+                        where A.code=@routecode and A.torg_code=@wkshopcode";
+                dynamicParams.Add("@wkshopcode", wkshopcode);
                 dynamicParams.Add("@routecode", routecode);
                 var dtck = DapperHelper.selectdata(sql, dynamicParams);
                 for (int i = 0; i < dtck.Rows.Count; i++)
@@ -616,7 +665,8 @@
                 //鍒ゆ柇宸ヤ綔绔�(璁惧)鏄惁鍙敤
                 sql = @"select B.step_code  from TFlw_Rout  A
 						inner join TFlw_Rtdt B on A.code=B.rout_code
-						where A.code=@routecode";
+						where A.code=@routecode and A.torg_code=@wkshopcode";
+                dynamicParams.Add("@wkshopcode", wkshopcode);
                 dynamicParams.Add("@routecode", routecode);
                 var dtck1 = DapperHelper.selectdata(sql, dynamicParams);
                 for (int i = 0; i < dtck1.Rows.Count; i++)
@@ -625,7 +675,8 @@
                     sql = @"select E.code,E.name,E.enable  
 						from  TFlw_Rteqp C
 						left join TEqpInfo E on C.eqp_code=E.code 
-						where C.step_code=@step_code";
+						where C.step_code=@step_code and C.torg_code=@wkshopcode";
+                    dynamicParams.Add("@wkshopcode", wkshopcode);
                     dynamicParams.Add("@step_code", dtck1.Rows[i]["step_code"].ToString());
                     var dtck2 = DapperHelper.selectdata(sql, dynamicParams);
                     int query = dtck2.AsEnumerable().Where<DataRow>(a => a["enable"].ToString() == "N").Count();
@@ -644,12 +695,13 @@
                         inner join TFlw_Rtdt B on A.code=B.rout_code
                         left join TFlw_Rteqp C on B.step_code=C.step_code
                         left join TStep S on B.step_code=S.stepcode
-                        where A.code=@route_code
+                        where A.code=@route_code and A.torg_code=@wkshopcode
                         ) as AA
-                        left join (select * from TPrteEqp_Stad   where materiel_code=@partcode and route_code=@route_code) as S on
+                        left join (select * from TPrteEqp_Stad   where materiel_code=@partcode and route_code=@route_code and wkspcode=@wkshopcode) as S on
                         AA.code=S.route_code and AA.step_code=S.step_code and AA.eqp_code=S.eqp_code";
                 dynamicParams.Add("@partcode", partcode);
                 dynamicParams.Add("@route_code", routecode);
+                dynamicParams.Add("@wkshopcode", wkshopcode);
                 var dtc = DapperHelper.selectdata(sql, dynamicParams);
                 for (int i = 0; i < dtc.Rows.Count; i++)
                 {
@@ -1296,7 +1348,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)]
-        public static ToMessage MesOrderStepSearch(string orderstepqrcode, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderStepSearch(string stu_torgcode,string stu_torgtypecode, string orderstepqrcode, int startNum, int endNum, string prop, string order)
         {
             var sql = "";
             string search = "";
@@ -1324,7 +1376,7 @@
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
 
-                    if (ordercode != "" && ordercode != null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+                    if (ordercode != "" && stepcode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
                     {
                         search += "and A.wo_code=@ordercode ";
                         dynamicParams.Add("@ordercode", ordercode);
@@ -1363,14 +1415,31 @@
                         }
                     }
                 }
+                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 F.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
                 sql = @"select A.status,A.wo_code,B.route_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
-                            S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,A.plan_startdate,A.plan_enddate,B.lm_date
-                            from TK_Wrk_Step A
-                            left join TK_Wrk_Man B on A.wo_code=B.wo_code
-                            left join TMateriel_Info M on B.materiel_code=M.partcode
-                            left join TStep S on A.step_code=S.stepcode
-                            where A.status in('ALLO','START') and S.flwtype='Z'  " + search;
+                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,A.plan_startdate,A.plan_enddate,B.lm_date
+                        from TK_Wrk_Step A
+                        left join TK_Wrk_Man B on A.wo_code=B.wo_code
+                        left join TMateriel_Info M on B.materiel_code=M.partcode
+                        left join TStep S on A.step_code=S.stepcode
+                        left join TOrganization F on B.wkshp_code=F.org_code
+                        left join TOrganization L on  F.parent_id=L.id
+                        where A.status in('ALLO','START') and S.flwtype='Z'  " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 if (data.ToList().Count > 0)
                 {
@@ -1401,7 +1470,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(澶栧崗)]
-        public static ToMessage MesOrderWxStepSearch(string orderstepqrcode, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderWxStepSearch(string stu_torgcode,string stu_torgtypecode,string orderstepqrcode, int startNum, int endNum, string prop, string order)
         {
             var sql = "";
             string search = "";
@@ -1428,7 +1497,7 @@
                         ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
-                    if (ordercode != "" && ordercode != null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+                    if (ordercode != "" && stepcode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
                     {
                         search += "and A.wo_code=@ordercode ";
                         dynamicParams.Add("@ordercode", ordercode);
@@ -1467,13 +1536,30 @@
                         }
                     }
                 }
-                //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
+                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 F.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
+                //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(澶栧崗宸ュ簭)
                 sql = @"select A.status,A.wo_code,B.route_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
                             S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,A.plan_startdate,A.plan_enddate,B.lm_date
                             from TK_Wrk_Step A
                             left join TK_Wrk_Man B on A.wo_code=B.wo_code
                             left join TMateriel_Info M on B.materiel_code=M.partcode
                             left join TStep S on A.step_code=S.stepcode
+                            left join TOrganization F on B.wkshp_code=F.org_code
+                            left join TOrganization L on  F.parent_id=L.id
                             where A.status in('ALLO','START') and S.flwtype='W'  " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 if (data.ToList().Count > 0)
@@ -1505,7 +1591,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇)]
-        public static ToMessage MesOrderNgStepSearch(string orderstepqrcode, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderNgStepSearch(string stu_torgcode,string stu_torgtypecode,string orderstepqrcode, int startNum, int endNum, string prop, string order)
         {
             var sql = "";
             string search = "";
@@ -1532,7 +1618,7 @@
                         ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
-                    if (ordercode != "" && ordercode != null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+                    if (ordercode != "" && stepcode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
                     {
                         search += "and A.wo_code=@ordercode ";
                         dynamicParams.Add("@ordercode", ordercode);
@@ -1561,14 +1647,31 @@
                         return mes;
                     }
                 }
+                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 F.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟,涓斾笉鑹暟閲忓ぇ浜�0
                 sql = @"select A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isend,
-                            S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,B.lm_date
-                            from TK_Wrk_Step A
-                            left join TK_Wrk_Man B on A.wo_code=B.wo_code
-                            left join TMateriel_Info M on B.materiel_code=M.partcode
-                            left join TStep S on A.step_code=S.stepcode
-                            where A.status in('ALLO','START') and A.ng_qty>0 " + search;
+                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,B.lm_date
+                        from TK_Wrk_Step A
+                        left join TK_Wrk_Man B on A.wo_code=B.wo_code
+                        left join TMateriel_Info M on B.materiel_code=M.partcode
+                        left join TStep S on A.step_code=S.stepcode
+                        left join TOrganization F on B.wkshp_code=F.org_code
+                        left join TOrganization L on  F.parent_id=L.id
+                        where A.status in('ALLO','START') and A.ng_qty>0 " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 if (data.ToList().Count > 0)
                 {
@@ -1716,7 +1819,7 @@
         #endregion
 
         #region [鐢熶骇寮�鎶ュ伐锛氬紑宸�(寮�濮�/鎶ュ伐)/澶栧崗鍙戞枡鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛]
-        public static ToMessage MesOrderStepStart(string OperType, string SelectType, string orderstepqrcode)
+        public static ToMessage MesOrderStepStart(string OperType,string stu_torgcode, string SelectType, string orderstepqrcode)
         {
             var sql = "";
             string search = "";
@@ -1745,10 +1848,10 @@
                     switch (OperType)
                     {
                         case "ZZ":
-                            mes = ScanStartReport.ZZEncodingSeach(ordercode, stepcode);
+                            mes = ScanStartReport.ZZEncodingSeach(stu_torgcode,ordercode, stepcode);
                             break;
                         case "WX":
-                            mes = ScanStartReport.WXEncodingSeach(SelectType, ordercode, stepcode);
+                            mes = ScanStartReport.WXEncodingSeach(stu_torgcode,SelectType, ordercode, stepcode);
                             break;
                         default:
                             break;
@@ -1806,9 +1909,11 @@
                     return mes;
                 }
                 //鑾峰彇宸ュ簭鍏宠仈鐨勮澶�
-                sql = @"select B.code,B.name from TFlw_Rteqp A
+                sql = @"select B.code,B.name  from TK_Wrk_Man M
+                        inner join TFlw_Rtdt R on M.route_code=R.rout_code
+                        inner join TFlw_Rteqp A on R.step_code=A.step_code
                         left join TEqpInfo B on A.eqp_code=B.code
-                        where A.style='E' and A.step_code=@stepcode and B.enable='Y'";
+                        where A.style='E' and M.wo_code=@wo_code and A.step_code=@stepcode and B.enable='Y'";
                 dynamicParams.Add("@wo_code", ordercode);
                 dynamicParams.Add("@stepcode", stepcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
@@ -1828,14 +1933,38 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐锛氭姤宸ユ椂鑾峰彇鐢熶骇鐝粍涓嬫媺妗哴
-        public static ToMessage MesOrderStepReportSelectUserGroup()
+        public static ToMessage MesOrderStepReportSelectUserGroup(string stu_torgcode,string stu_torgtypecode,string wkshopcode)
         {
             string sql = "";
+            string search = "";
+            var dynamicParams = new DynamicParameters();
             try
             {
+                if (wkshopcode != "" && wkshopcode != null)
+                {
+                    search += "and A.torg_code=@workShop ";
+                    dynamicParams.Add("@workShop", wkshopcode);
+                }
+                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;
+                    }
+                }
                 //鑾峰彇鐢ㄦ埛缁�
-                sql = @"select group_code,group_name from TGroup";
-                var data = DapperHelper.selecttable(sql);
+                sql = @"select group_code,group_name from TGroup  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 "+search;
+                var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
                 mes.data = data;
@@ -1852,14 +1981,15 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐锛氭牴鎹敓浜х彮缁勬煡鎵句汉鍛樺垪琛╙
-        public static ToMessage MesOrderGroupSelectUser(string usergroupcode)
+        public static ToMessage MesOrderGroupSelectUser(string stu_torgcode, string usergroupcode)
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
             try
             {
                 //鐝粍鑾峰彇浜哄憳鍒楄〃
-                sql = @"select usercode,username  from TUser where usergroup_code=@usergroupcode and is_delete<>'1'";
+                sql = @"select usercode,username  from TUser where stu_torgcode=@stu_torgcode and usergroup_code=@usergroupcode and is_delete<>'1'";
+                dynamicParams.Add("@stu_torgcode", stu_torgcode);
                 dynamicParams.Add("@usergroupcode", usergroupcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
@@ -2719,7 +2849,7 @@
 
 
         #region[宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭痌
-        public static ToMessage MesOrderStepCheckSearch(string orderstepqrcode, string checktype)
+        public static ToMessage MesOrderStepCheckSearch(string stu_torgcode, string orderstepqrcode, string checktype)
         {
             var sql = "";
             string ordercode = "";
@@ -2744,6 +2874,34 @@
                         ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
+                    //鍒ゆ柇褰撳墠宸ュ崟鏄惁鍏抽棴
+                    sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode and status='CLOSED'";
+                    dynamicParams.Add("@ordercode", ordercode);
+                    dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                    var da0 = DapperHelper.selectdata(sql, dynamicParams);
+                    if (da0.Rows.Count > 0)
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "褰撳墠宸ュ崟宸插叧闂�,涓嶅厑璁告楠屾搷浣�!";
+                        mes.data = null;
+                        return mes;
+                    }
+
+                    //0.鍒ゆ柇褰撳墠宸ュ崟鎵�灞炶溅闂存槸鍚︿负褰撳墠鐧诲綍浜哄憳杞﹂棿
+                    sql = @"select *   from TK_Wrk_Man where wo_code=@ordercode and wkshp_code=@stu_torgcode";
+                    dynamicParams.Add("@ordercode", ordercode);
+                    dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                    var da1 = DapperHelper.selectdata(sql, dynamicParams);
+                    if (da1.Rows.Count <= 0)
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "涓嶆槸鏈溅闂寸敓浜т换鍔�,涓嶅厑璁告楠屾搷浣�!";
+                        mes.data = null;
+                        return mes;
+                    }
+
                     //閫氳繃鎵弿浜岀淮鐮佷俊鎭煡鎵句换鍔′俊鎭�
                     sql = @"select A.wo_code,A.good_qty,M.partcode,M.partname,M.partspec,M.stocktype_code,S.stepcode,S.stepname  
                             from TK_Wrk_Step A
@@ -2867,7 +3025,7 @@
         #endregion
 
         #region[宸ュ簭妫�楠�,鎻愪氦]
-        public static ToMessage SaveMesOrderStepCheckItem(string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
+        public static ToMessage SaveMesOrderStepCheckItem(string stu_torgcode,string wocode, string partcode, string stepcode, string checkstandcode, string check_type, string sampmethod, string qualitystatus, string labqty, string sampleqty, string goodqty, string ngqty, string checkitemcont, string username)
         {
             var sql = "";
             string checktypename = "";
@@ -2881,8 +3039,8 @@
                 list.Clear();
 
                 //鍐欏叆妫�楠岃褰曚富琛�
-                sql = @"insert into  TStepCheckRecord(wo_code,partcode,step_code,checkstaned_code,check_user,check_type,check_typename,sampmethod,check_result,check_qty,good_qty,ng_qty,lm_user,lm_date) 
-                                values(@wo_code,@partcode,@step_code,@checkstaned_code,@check_user,@check_type,@check_typename,@sampmethod,@check_result,@check_qty,@good_qty,@ng_qty,@lm_user,@lm_date)";
+                sql = @"insert into  TStepCheckRecord(wo_code,partcode,step_code,checkstaned_code,check_user,check_type,check_typename,sampmethod,check_result,check_qty,good_qty,ng_qty,lm_user,lm_date,torg_code) 
+                                values(@wo_code,@partcode,@step_code,@checkstaned_code,@check_user,@check_type,@check_typename,@sampmethod,@check_result,@check_qty,@good_qty,@ng_qty,@lm_user,@lm_date,@torg_code)";
                 switch (check_type)
                 {
                     case "FirstCheck":
@@ -2915,14 +3073,15 @@
                         good_qty = decimal.Parse(goodqty),
                         ng_qty = decimal.Parse(ngqty),
                         lm_user = username,
-                        lm_date = datetime
+                        lm_date = datetime,
+                        torg_code = stu_torgcode
                     }
                 });
                 //鍐欏叆妫�楠岃褰曞瓙琛�
                 for (int j = 0; j < arra.Count; j++)
                 {
-                    sql = @"insert into  TStepCheckRecordSub(m_id,checknum,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_value,check_result,lm_user,lm_date) 
-                                values(CONVERT(INT,IDENT_CURRENT('TStepCheckRecord')),@checknum,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_value,@check_result,@lm_user,@lm_date)";
+                    sql = @"insert into  TStepCheckRecordSub(m_id,checknum,checkitem_seq,checkitem_code,checkitem_name,checkitem_descr,check_value,check_result,lm_user,lm_date,torg_code) 
+                                values(CONVERT(INT,IDENT_CURRENT('TStepCheckRecord')),@checknum,@checkiem_seq,@checkitem_code,@checkitem_name,@checkitem_descr,@check_value,@check_result,@lm_user,@lm_date,@torg_code)";
                     list.Add(new
                     {
                         str = sql,
@@ -2936,7 +3095,8 @@
                             check_value = arra[j]["check_value"].ToString(),
                             check_result = arra[j]["check_result"].ToString(),
                             lm_user = username,
-                            lm_date = datetime
+                            lm_date = datetime,
+                            torg_code = stu_torgcode
                         }
                     });
                 }
@@ -2972,12 +3132,27 @@
 
 
         #region[MES宸ュ崟鎵归噺鍏抽棴鏌ヨ]
-        public static ToMessage MesOrderBitchClosedSearch(string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
+        public static ToMessage MesOrderBitchClosedSearch(string stu_torgcode,string stu_torgtypecode,string mesorderstus, string mesordercode, string sourceorder, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
             try
             {
+                switch (stu_torgtypecode)
+                {
+                    case "":
+                        break;
+                    case "D":
+                        search += "and L.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    case "W":
+                        search += "and C.org_code=@stu_torgcode ";
+                        dynamicParams.Add("@stu_torgcode", stu_torgcode);
+                        break;
+                    default:
+                        break;
+                }
                 if (mesorderstus != "" && mesorderstus != null)
                 {
                     search += "and A.status=@mesorderstus ";
@@ -3042,6 +3217,7 @@
                             left join TFlw_Rout E on A.route_code=E.code
                             left join T_Sec_Stck F on A.stck_code=F.code 
                             left join TUser U on A.lm_user=U.usercode 
+                            left join TOrganization L on  C.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";
@@ -4633,7 +4809,7 @@
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
                 var sql = @"select *   from(
-                            select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
+                            select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
                             A.step_code,E.wkshp_id,M.wkshp_code,stck_id,K.code as stockcode,k.name as stockname,
                             E.saleOrderqty,E.qty,M.plan_qty,A.good_qty,isnull(A.inhouseqty,0) as inhouseqty,A.good_qty-isnull(A.inhouseqty,0) as stinhouseqty,M.lm_date,A.style   
                             from  TK_Wrk_Record A
@@ -4644,7 +4820,7 @@
                             left join T_Sec_Stck K on E.stck_code=K.code
                             where A.style='B' and S.isend='Y' and A.good_qty>0
                             union all
-                            select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
+                            select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
                             A.step_code,E.wkshp_id,M.wkshp_code,stck_id,K.code as stockcode,k.name as stockname,
                             E.saleOrderqty,E.qty,M.plan_qty,A.sqty as sqty,isnull(A.inhouseqty,0) as inhouseqty,A.sqty-isnull(A.inhouseqty,0) as stinhouseqty,M.lm_date,A.style   
                             from  TK_Wrk_OutRecord A
@@ -4654,7 +4830,7 @@
                             left join TKimp_Ewo E on M.sourceid=E.id
                             left join T_Sec_Stck K on E.stck_code=K.code
                             where A.style='S' and S.isend='Y' and A.sqty>0
-                            ) as AA  where 1=1 " + search;
+                            ) as AA  where AA.good_qty>AA.inhouseqty " + search;
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -4752,17 +4928,18 @@
                         }
                     });
                     //鍐欏叆MES搴撳瓨琛�
-                    sql = @"insert into TK_WMS_Stock(labcode,materiel_code,storehouse_code,qty,lm_user,lm_date)
-                        values(@labcode,@materiel_code,@storehouse_code,@qty,@lm_user,@lm_date)";
+                    sql = @"insert into TK_WMS_Stock(hbillno,labcode,materiel_code,storehouse_code,qty,lm_user,lm_date)
+                        values(@hbillno,@labcode,@materiel_code,@storehouse_code,@qty,@lm_user,@lm_date)";
                     list.Add(new
                     {
                         str = sql,
                         parm = new
                         {
-                            labcode=sub_arra[i]["inbarcode"].ToString(),
+                            hbillno = obj["head"]["hbillno"].ToString(),
+                            labcode = sub_arra[i]["inbarcode"].ToString(),
                             materiel_code = sub_arra[i]["partcode"].ToString(),
                             storehouse_code = sub_arra[i]["stockcode"].ToString(),
-                            qty =decimal.Parse(sub_arra[i]["stinhouseqty"].ToString()),
+                            qty = decimal.Parse(sub_arra[i]["stinhouseqty"].ToString()),
                             lm_user = username,
                             lm_date = DateTime.Now.ToString()
                         }
@@ -4776,16 +4953,16 @@
                     str = sql,
                     parm = new
                     {
-                        docu_typecode="1202",
-                        hbillno= obj["head"]["hbillno"].ToString(),
-                        hsoucenillnoid= obj["head"]["sourceVoucherId"].ToString(),
+                        docu_typecode = "1202",
+                        hbillno = obj["head"]["hbillno"].ToString(),
+                        hsoucenillnoid = obj["head"]["sourceVoucherId"].ToString(),
                         hsoucenillno = obj["head"]["sourceVoucherCode"].ToString(),
                         saleorderid = obj["head"]["saleOrderId"].ToString(),
                         saleordercode = obj["head"]["saleOrderCode"].ToString(),
                         status = "NEW",
                         wkshpcode = obj["head"]["wkshpcode"].ToString(),
                         lm_user = username,
-                        lm_date= DateTime.Now.ToString()
+                        lm_date = DateTime.Now.ToString()
                     }
                 });
 
@@ -4820,6 +4997,7 @@
                 //        madedate = obj["head"]["madedate"].ToString(),
                 //        createdtime = obj["head"]["createdtime"].ToString(),
                 //        DataSource = obj["head"]["DataSource"].ToString(),
+                //        idsourcevouchertype= obj["head"]["idsourcevouchertype"].ToString()
 
                 //    }
                 //});
@@ -4833,7 +5011,7 @@
                     //    str = sql,
                     //    parm = new
                     //    {
-                    //        code= subsum_arra[j]["code"].ToString(),
+                    //        code = subsum_arra[j]["code"].ToString(),
                     //        arrivalQuantity = subsum_arra[j]["arrivalQuantity"].ToString(),
                     //        quantity = subsum_arra[j]["quantity"].ToString(),
                     //        compositionQuantity = subsum_arra[j]["compositionQuantity"].ToString(),
@@ -4851,7 +5029,7 @@
                     //        idbusiTypeByMergedFlow = subsum_arra[j]["idbusiTypeByMergedFlow"].ToString(),
                     //        idinventory = subsum_arra[j]["idinventory"].ToString(),
                     //        idbaseunit = subsum_arra[j]["idbaseunit"].ToString(),
-                    //        idunit= subsum_arra[j]["idunit"].ToString(),
+                    //        idunit = subsum_arra[j]["idunit"].ToString(),
                     //        idwarehouse = subsum_arra[j]["idwarehouse"].ToString(),
                     //        SourceVoucherIdByMergedFlow = subsum_arra[j]["SourceVoucherIdByMergedFlow"].ToString(),
                     //        SourceVoucherCodeByMergedFlow = subsum_arra[j]["SourceVoucherCodeByMergedFlow"].ToString(),
@@ -4861,6 +5039,27 @@
                     //        DataSource = subsum_arra[j]["DataSource"].ToString()
                     //    }
                     //});
+                    //鍐欏叆ERP鐜板瓨閲忔煡璇㈣〃
+                    //sql = @"" + dt.Rows[2]["cname"].ToString() + "";
+                    //list.Add(new
+                    //{
+                    //    str = sql,
+                    //    parm = new
+                    //    {
+                    //        idinventory = subsum_arra[j]["idinventory"].ToString(),
+                    //        idwarehouse = subsum_arra[j]["idwarehouse"].ToString(),
+                    //        propertyName = "ProductForReceive",
+                    //        baseQuantity= subsum_arra[j]["quantity"].ToString(),
+                    //        IdMarketingOrgan="1",
+                    //        idbaseunit= subsum_arra[j]["idbaseunit"].ToString(),
+                    //        updated= DateTime.Now.ToString(),
+                    //        isCarriedForwardOut ="0",
+                    //        isCarriedForwardIn = "0"
+                    //    }
+                    //}); 
+
+
+
                     //鍐欏叆MES鍏ュ簱璁板綍瀛愯〃
                     sql = @"insert into TK_WMS_Inwh_Sub(hbillno,rownumber,materiel_code,storehouse_code,qty)
                         values(@hbillno,@rownumber,@materiel_code,@storehouse_code,@qty)";
@@ -4907,5 +5106,108 @@
             return mes;
         }
         #endregion
+
+
+        #region[鐢熶骇鍏ュ簱鎵弿鏉$爜]
+        public static ToMessage MesAppProductInHouseOrderBarCodeSearch(string labcode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //鍒ゆ柇鏉$爜鏄惁瀛樺湪
+                sql = @"select distinct AA.inbarcode  from (
+                         select A.inbarcode
+                         from  TK_Wrk_Record A
+                         inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
+                         where A.style='B' and S.isend='Y' and A.good_qty>0 and A.inbarcode=@labcode
+                         union all
+                         select A.inbarcode
+                         from  TK_Wrk_OutRecord A
+                         inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
+                         where A.style='S' and S.isend='Y' and A.sqty>0 and A.inbarcode=@labcode
+                         ) as AA";
+                dynamicParams.Add("@labcode", labcode);
+                var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                if (data0.Rows.Count <= 0)
+                {
+                    mes.code = "300";
+                    mes.Message = "鏃犳晥鏉$爜!";
+                    mes.data = null;
+                    return mes;
+                }
+                //鍒ゆ柇鏉$爜鏄惁瀛樺彲鐢�
+                sql = @"select distinct AA.inbarcode,AA.good_qty,AA.inhouseqty  from (
+                        select A.inbarcode,sum(A.good_qty) as good_qty,sum(isnull(A.inhouseqty,0)) as inhouseqty
+                        from  TK_Wrk_Record A
+                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
+                        where A.style='B' and S.isend='Y' and A.good_qty>0 and A.inbarcode=@labcode
+                        group by A.inbarcode
+                        union all
+                        select A.inbarcode,sum(A.sqty) as good_qty,sum(isnull(A.inhouseqty,0)) as inhouseqty
+                        from  TK_Wrk_OutRecord A
+                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
+                        where A.style='S' and S.isend='Y' and A.sqty>0 and A.inbarcode=@labcode
+                        group by A.inbarcode
+                        ) as AA  where AA.good_qty>AA.inhouseqty ";
+                dynamicParams.Add("@labcode", labcode);
+                var data1 = DapperHelper.selectdata(sql, dynamicParams);
+                if (data1.Rows.Count <= 0)
+                {
+                    mes.code = "300";
+                    mes.Message = "褰撳墠鏉$爜宸插叆搴�!";
+                    mes.data = null;
+                    return mes;
+                }
+
+                //鏍规嵁閲囪喘璁㈠崟鍙锋煡璇㈢墿鏂欎俊鎭紝渚涘簲鍟嗕俊鎭�
+                sql = @"select *   from(
+                        select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
+                        A.step_code,E.wkshp_id,M.wkshp_code,stck_id,K.code as stockcode,k.name as stockname,
+                        E.saleOrderqty,E.qty,M.plan_qty,A.good_qty,isnull(A.inhouseqty,0) as inhouseqty,A.good_qty-isnull(A.inhouseqty,0) as stinhouseqty,A.lm_date,A.style   
+                        from  TK_Wrk_Record A
+                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
+                        inner join TK_Wrk_Man M on S.wo_code=M.wo_code
+                        inner join TMateriel_Info P on M.materiel_code=P.partcode
+                        left join TKimp_Ewo E on M.sourceid=E.id
+                        left join T_Sec_Stck K on E.stck_code=K.code
+                        where A.style='B' and S.isend='Y' and A.good_qty>0 and A.inbarcode=@labcode
+                        union all
+                        select A.inbarcode,E.saleOrderid,isnull(E.saleOrderCode,'') as saleOrderCode,E.saleOrderDetailId,E.woid as mpoid,M.m_po,E.sbid,M.id as wo_id,A.wo_code,E.materiel_id,P.partcode,P.partname,P.partspec,E.unitid,E.unitcode,E.unitname,
+                        A.step_code,E.wkshp_id,M.wkshp_code,stck_id,K.code as stockcode,k.name as stockname,
+                        E.saleOrderqty,E.qty,M.plan_qty,A.sqty as sqty,isnull(A.inhouseqty,0) as inhouseqty,A.sqty-isnull(A.inhouseqty,0) as stinhouseqty,A.lm_date,A.style   
+                        from  TK_Wrk_OutRecord A
+                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
+                        inner join TK_Wrk_Man M on S.wo_code=M.wo_code
+                        inner join TMateriel_Info P on M.materiel_code=P.partcode
+                        left join TKimp_Ewo E on M.sourceid=E.id
+                        left join T_Sec_Stck K on E.stck_code=K.code
+                        where A.style='S' and S.isend='Y' and A.sqty>0 and A.inbarcode=@labcode
+                        ) as AA  where AA.good_qty>AA.inhouseqty";
+                dynamicParams.Add("@labcode", labcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "200";
+                    mes.Message = "鏌ヨ鎴愬姛!";
+                    mes.data = data;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.Message = "鏆傛棤鐗╂枡鏁版嵁!";
+                    mes.data = null;
+                }
+            }
+            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