From 7ff74f599084561338eef1230db5aa45f74565f8 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 15 四月 2024 18:03:33 +0800
Subject: [PATCH] 1.ERP订单关闭增加单据id 2.MES工单关闭增加源单id关联

---
 VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs |   93 +++++++++++++++++++++++++++++++++++-----------
 1 files changed, 71 insertions(+), 22 deletions(-)

diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index 13bc56c..3337a00 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -27,7 +27,7 @@
 
 
         #region[ERP璁㈠崟鏌ヨ]
-        public static ToMessage ErpOrderSearch(string erporderstus,string wkshopcode, string erpordercode, string saleordercode, 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 erporderstus, string wkshopcode, string erpordercode, string saleordercode, 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 = "";
@@ -93,7 +93,7 @@
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
                 var sql = @"select A.id, A.status,A.wo,A.materiel_code as partcode,B.partname,B.partspec,A.qty,A.relse_qty,A.wkshp_code,C.torg_name as wkshp_name,
-                            A.stck_code,D.name as stck_name,A.saleOrderCode,A.saleOrderDeliveryDate,A.planstartdate,A.planenddate,U.username as createuser,A.createdate,A.sbid 
+                            A.stck_code,D.name as stck_name,A.saleOrderCode,A.saleOrderDeliveryDate,A.planstartdate,A.planenddate,U.username as createuser,A.createdate,A.sbid,A.clerkuser
                             from TKimp_Ewo A
                             left join TMateriel_Info B on A.materiel_code=B.partcode
                             left join TOrganization C on A.wkshp_code=C.torg_code
@@ -118,7 +118,7 @@
         #endregion
 
         #region[ERP璁㈠崟涓嬭揪]
-        public static ToMessage MarkSaveErpOrder(string erporderid, string sbid, string erpordercode, string saleordercode, string partcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, User us)
+        public static ToMessage MarkSaveErpOrder(string erporderid, string sbid, string erpordercode, string saleordercode, string partcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate,string clerkuser, User us)
         {
             var sql = "";
             List<object> list = new List<object>();
@@ -156,7 +156,7 @@
                     }
                     if (i == Convert.ToInt32(ordernum))  //鏈�鍚庝竴鍗曟椂
                     {
-                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,sbid,materiel_code,sourceid,m_po,lm_user,lm_date,saleOrderCode,saleOrderDeliveryDate,data_sources,isstep) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@sbid,@materiel_code,@sourceid,@m_po,@username,@CreateDate,@saleOrderCode,@saleOrderDeliveryDate,@data_sources,@isstep)";
+                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,sbid,materiel_code,sourceid,m_po,lm_user,lm_date,saleOrderCode,saleOrderDeliveryDate,data_sources,isstep,clerkuser) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@sbid,@materiel_code,@sourceid,@m_po,@username,@CreateDate,@saleOrderCode,@saleOrderDeliveryDate,@data_sources,@isstep,@clerkuser)";
                         list.Add(new
                         {
                             str = sql,
@@ -177,7 +177,8 @@
                                 saleOrderCode = saleordercode,
                                 saleOrderDeliveryDate = Convert.ToDateTime(saleOrderDeliveryDate),
                                 data_sources = "ERP",
-                                isstep = "N"  //鏄惁鍏宠仈宸ュ簭
+                                isstep = "N",  //鏄惁鍏宠仈宸ュ簭
+                                clerkuser= clerkuser //閿�鍞鍗曚笟鍔″憳
                             }
                         });
                         sumqty = sumqty + (decimal.Parse(markqty) - sumqty);
@@ -185,7 +186,7 @@
                     else
                     {
 
-                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,sbid,materiel_code,sourceid,m_po,lm_user,lm_date,saleOrderCode,saleOrderDeliveryDate,data_sources,isstep) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@sbid,@materiel_code,@sourceid,@m_po,@username,@CreateDate,@saleOrderCode,@saleOrderDeliveryDate,@data_sources,@isstep)";
+                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,sbid,materiel_code,sourceid,m_po,lm_user,lm_date,saleOrderCode,saleOrderDeliveryDate,data_sources,isstep,clerkuser) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@sbid,@materiel_code,@sourceid,@m_po,@username,@CreateDate,@saleOrderCode,@saleOrderDeliveryDate,@data_sources,@isstep,@clerkuser)";
                         list.Add(new
                         {
                             str = sql,
@@ -206,7 +207,8 @@
                                 saleOrderCode = saleordercode,
                                 saleOrderDeliveryDate = Convert.ToDateTime(saleOrderDeliveryDate),
                                 data_sources = "ERP",
-                                isstep = "N"//鏄惁鍏宠仈宸ュ簭
+                                isstep = "N",//鏄惁鍏宠仈宸ュ簭
+                                clerkuser= clerkuser
                             }
                         });
                     }
@@ -281,12 +283,13 @@
             {
                 list.Clear();
                 string result = "";
-                var groupedModels = obj.GroupBy(m => m.erpordercode);
+                //var groupedModels = obj.GroupBy(m => m.erpordercode);
+                var groupedModels = obj.GroupBy(s => s.erpordercode).Select(g => new { erpordercode = g.Key }).ToList();
                 foreach (var group in groupedModels)
                 {
-                    string erpordercode = group.Key;
+                    string erpordercode = group.erpordercode;
                     int count = 1;
-                    foreach (var model in group)
+                    foreach (var model in obj.Where(s => s.erpordercode==erpordercode).ToList())
                     {
                         //鑾峰彇褰撳墠鏈�澶у伐鍗曞彿
                         sql = @"select isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0) as worknumb   
@@ -297,7 +300,7 @@
                         string wo = model.erpordercode + "_" + (num + count);
                         result += wo.ToString() + ",";
                         //鍐欏叆宸ュ崟琛�
-                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,sbid,materiel_code,sourceid,m_po,lm_user,lm_date,saleOrderCode,saleOrderDeliveryDate,data_sources,isstep) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@sbid,@materiel_code,@sourceid,@m_po,@username,@CreateDate,@saleOrderCode,@saleOrderDeliveryDate,@data_sources,@isstep)";
+                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,sbid,materiel_code,sourceid,m_po,lm_user,lm_date,saleOrderCode,saleOrderDeliveryDate,data_sources,isstep,clerkuser) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@sbid,@materiel_code,@sourceid,@m_po,@username,@CreateDate,@saleOrderCode,@saleOrderDeliveryDate,@data_sources,@isstep,@clerkuser)";
                         list.Add(new
                         {
                             str = sql,
@@ -318,7 +321,8 @@
                                 saleOrderCode = model.saleordercode,
                                 saleOrderDeliveryDate = Convert.ToDateTime(model.saleOrderDeliveryDate),
                                 data_sources = "ERP",
-                                isstep = "N"  //鏄惁鍏宠仈宸ュ簭
+                                isstep = "N",  //鏄惁鍏宠仈宸ュ簭
+                                clerkuser= model.clerkuser //閿�鍞鍗曚笟鍔″憳
                             }
                         });
 
@@ -379,15 +383,17 @@
             var dynamicParams = new DynamicParameters();
             try
             {
-                sql = @"select *  from TK_Wrk_Man where m_po=@erpordercode and status<> 'CLOSED'";
+                sql = @"select *  from TK_Wrk_Man where m_po=@erpordercode and sourceid=@sourceid and status<> 'CLOSED'";
                 dynamicParams.Add("@erpordercode", erpordercode);
+                dynamicParams.Add("@sourceid", erporderid);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 if (data.Rows.Count > 0)
                 {
                     mes.code = "300";
                     mes.count = 0;
-                    mes.message = "褰撳墠璁㈠崟鏈変笅杈炬湭鍏抽棴鐨凪ES宸ュ崟,璁㈠崟涓嶅厑璁稿叧闂�,璇峰厛鍒犻櫎鎴栧叧闂浉鍏冲伐鍗�!";
+                    mes.message = "褰撳墠璁㈠崟浜у搧鏈変笅杈炬湭鍏抽棴鐨凪ES宸ュ崟,璁㈠崟涓嶅厑璁稿叧闂�,璇峰厛鍒犻櫎鎴栧叧闂浉鍏冲伐鍗�!";
                     mes.data = null;
+                    return mes;
                 }
                 else
                 {
@@ -510,7 +516,7 @@
 
 
         #region[MES宸ュ崟鏌ヨ]
-        public static ToMessage MesOrderSearch(string mesorderstus,string wkshopcode, string mesordercode, string sourceorder, string saleordercode, 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 mesorderstus, string wkshopcode, string mesordercode, string sourceorder, string saleordercode, 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 = "";
@@ -579,9 +585,9 @@
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
                 var sql = @"select A.id, A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.plan_qty,A.wkshp_code,C.torg_name as wkshp_name,
-                            A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date,A.data_sources,A.isstep
+                            A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date,A.data_sources,A.isstep,A.clerkuser
                             from TK_Wrk_Man A
-                            left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code
+                            left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code and A.sbid=W.sbid
                             left join TMateriel_Info B on A.materiel_code=B.partcode
                             left join TOrganization C on A.wkshp_code=C.torg_code
                             left join TSecStck D on A.stck_code=D.code 
@@ -667,7 +673,7 @@
                 var sql = @"select A.id, A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.plan_qty,A.wkshp_code,C.torg_name as wkshp_name,
                             A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date,S.laborbad_qty,S.materielbad_qty
                             from TK_Wrk_Man A
-                            left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code
+                            left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code and A.sbid=W.sbid
                             left join (select wo_code,isnull(sum(laborbad_qty),0) as laborbad_qty,isnull(sum(materielbad_qty),0) as materielbad_qty from  TK_Wrk_Step where (laborbad_qty+materielbad_qty)>0 group by wo_code) S on A.wo_code=S.wo_code
                             left join TMateriel_Info B on A.materiel_code=B.partcode
                             left join TOrganization C on A.wkshp_code=C.torg_code
@@ -1034,6 +1040,44 @@
         }
         #endregion
 
+        #region[MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭痌
+        public static ToMessage MesOrderNewStepContent(string wkshopcode, string partcode, User us)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
+                sql = @"select S.wo_code,S.seq,S.step_code,S.stepprice,isbott,isend
+                        from TK_Wrk_Step S
+                        inner join (
+                        select top 1 A.wo_code   from TK_Wrk_Man A
+                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code
+                        where A.materiel_code=@partcode and A.wkshp_code=@wkshopcode
+                        order by A.lm_date desc
+                        ) as W on S.wo_code=W.wo_code
+                        left join TStep  T on S.step_code=T.stepcode
+                        order by S.seq";
+                dynamicParams.Add("@wkshopcode", wkshopcode);
+                dynamicParams.Add("@partcode", partcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                mes.code = "200";
+                mes.count = data.Rows.Count;
+                mes.data = data;
+                mes.message = "鏌ヨ鎴愬姛!";
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
 
         #region[MES宸ュ崟娲惧彂鎻愪氦]
         public static ToMessage MesOrderDistribution(string[] wocodelist, User us)
@@ -1096,7 +1140,7 @@
 
 
         #region[宸ュ崟鍏抽棴鍒楄〃鏌ヨ]
-        public static ToMessage MesOrderClosedSearch(string mesorderstus,string wkshopcode, string mesordercode, string sourceorder, string saleordercode, string ordertype, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
+        public static ToMessage MesOrderClosedSearch(string mesorderstus, string wkshopcode, string mesordercode, string sourceorder, string saleordercode, 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 = "";
@@ -1172,7 +1216,7 @@
                 var sql = @"select A.id, A.status,A.wotype,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.plan_qty,A.wkshp_code,C.torg_name as wkshp_name,
                             A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date,A.data_sources
                             from TK_Wrk_Man A
-                            left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code
+                            left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code and A.sourceid=W.id
                             left join TMateriel_Info B on A.materiel_code=B.partcode
                             left join TOrganization C on A.wkshp_code=C.torg_code
                             left join TSecStck D on A.stck_code=D.code 
@@ -3355,12 +3399,17 @@
 
 
         #region[鐢熶骇鎵ц,鎶ュ伐瀹℃牳鍒楄〃鏁版嵁鏌ヨ鎺ュ彛]
-        public static ToMessage MesOrderStepReportVerifySearch(string wkshopcode, string wo_code, string partnumber, string partname, string partspec, string stepname, string reportuser, string reportdateopendate, string reportdateclosedate, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderStepReportVerifySearch(string reviewstatus, string wkshopcode, string wo_code, string partnumber, string partname, string partspec, string stepname, string reportuser, string reportdateopendate, string reportdateclosedate, int startNum, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
             try
             {
+                if (reviewstatus != "" && reviewstatus != null)
+                {
+                    search += "and AA.verify=@reviewstatus ";
+                    dynamicParams.Add("@reviewstatus", reviewstatus);
+                }
                 if (wkshopcode != "" && wkshopcode != null)
                 {
                     search += "and AA.wkshp_code=@wkshopcode ";
@@ -3449,7 +3498,7 @@
                             left join TCustomer E on A.wx_code = E.code 
                             left join TCustomer C on A.wx_code=C.code
                             where A.style = 'S' and B.style = 'S' and M.status<>'CLOSED'
-                            ) as AA where" + search;
+                            ) as AA where " + search;
                 var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
                 mes.code = "200";
                 mes.message = "鏌ヨ鎴愬姛!";

--
Gitblit v1.9.3