From 0c0a49144242879f97d1880caf0f8fe6c9afe950 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 27 三月 2026 17:07:46 +0800
Subject: [PATCH] 1.增加节拍工价导入(工艺路线版本、工序版本) 2.增加MES工单批量查找历史引用最新工艺信息接口MesOrderNewStepListContent

---
 VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs |  311 ++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 281 insertions(+), 30 deletions(-)

diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index f20820a..83002ae 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -42,8 +42,9 @@
                 }
                 if (wkshopcode != "" && wkshopcode != null)
                 {
-                    search += "and A.wkshp_code=@wkshopcode ";
-                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                    string[] wkshoplist = Array.ConvertAll<string, string>(wkshopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                    search += "and A.wkshp_code in @wkshoplist ";
+                    dynamicParams.Add("@wkshoplist", wkshoplist);
                 }
                 if (erpordercode != "" && erpordercode != null)
                 {
@@ -338,8 +339,8 @@
                                         step_code = data0.Rows[j]["step_code"].ToString(),
                                         route_code = data0.Rows[j]["default_route"].ToString(),
                                         stepprice = decimal.Parse(data0.Rows[j]["unprice"].ToString() == "" || data0.Rows[j]["unprice"].ToString() == null ? "0" : data0.Rows[j]["unprice"].ToString()),
-                                        plan_quantity = cdqty + (decimal.Parse(markqty) - sumqty),  //鏈崟涓嬪崟鏁伴噺=鍒囧垎鏁伴噺+(涓嬪崟鏁伴噺-绱鍒囧垎涓嬪崟鏁伴噺),
-                                        plan_qty = cdqty + (decimal.Parse(markqty) - sumqty),  //鏈崟涓嬪崟鏁伴噺=鍒囧垎鏁伴噺+(涓嬪崟鏁伴噺-绱鍒囧垎涓嬪崟鏁伴噺),
+                                        plan_quantity = cdqty,
+                                        plan_qty = cdqty,
                                         ratio = 0,
                                         status = orderstatus,
                                         isbott = data0.Rows[j]["first_choke"].ToString(),
@@ -850,8 +851,9 @@
                 }
                 if (wkshopcode != "" && wkshopcode != null)
                 {
-                    search += "and A.wkshp_code=@wkshopcode ";
-                    dynamicParams.Add("@wkshopcode", wkshopcode);
+                    string[] wkshoplist = Array.ConvertAll<string, string>(wkshopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                    search += "and A.wkshp_code in @wkshoplist ";
+                    dynamicParams.Add("@wkshoplist", wkshoplist);
                 }
                 if (mesordercode != "" && mesordercode != null)
                 {
@@ -865,7 +867,7 @@
                 }
                 if (saleordercode != "" && saleordercode != null)
                 {
-                    search += "and W.saleOrderCode like '%'+@saleordercode+'%' ";
+                    search += "and A.saleOrderCode like '%'+@saleordercode+'%' ";
                     dynamicParams.Add("@saleordercode", saleordercode);
                 }
                 if (ordertype != "" && ordertype != null)
@@ -928,7 +930,7 @@
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 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.idTopInventory,A.TopInventoryCode,A.TopInventoryName,A.route_code,B.default_route,R.name as route_name,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.clerkuser,
+                            A.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,A.saleOrderCode,U.username as lm_user,A.lm_date,A.data_sources,A.isstep,A.clerkuser,
                             B.priuserdefnvc1,B.priuserdefnvc2,B.priuserdefnvc3,B.priuserdefnvc4,B.priuserdefnvc5,B.priuserdefnvc6,A.printcount
                             from TK_Wrk_Man A
                             left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code and A.sbid=W.sbid
@@ -1159,8 +1161,8 @@
                 if (operType == "Add")
                 {
                     //鍐欏叆宸ュ崟琛�
-                    sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
-                                values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
+                    sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,saleOrderCode,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
+                                values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@saleOrderCode,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
                     list.Add(new
                     {
                         str = sql,
@@ -1176,6 +1178,7 @@
                             materiel_code = json.partcode,
                             route_code = route_code,
                             sourceid = json.sourceid == "" ? null : json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
+                            saleOrderCode=json.saleordercode,
                             m_po = json.sourcewo,
                             saleOrderDeliveryDate = json.deliverydate,
                             plan_startdate = json.paystartdate,
@@ -1234,7 +1237,7 @@
                 {
                     //淇敼宸ュ崟琛�
                     sql = @"update TK_Wrk_Man set wotype=@wotype,wkshp_code=@wkshp_code,plan_qty=@plan_qty,lm_user=@lm_user,lm_date=@lm_date,
-                            materiel_code=@materiel_code,route_code=@route_code,sourceid=@sourceid,m_po=@m_po,saleOrderDeliveryDate=@saleOrderDeliveryDate,plan_startdate=@plan_startdate,plan_enddate=@plan_enddate,isstep=@isstep
+                            materiel_code=@materiel_code,route_code=@route_code,sourceid=@sourceid,saleOrderCode=@saleOrderCode,m_po=@m_po,saleOrderDeliveryDate=@saleOrderDeliveryDate,plan_startdate=@plan_startdate,plan_enddate=@plan_enddate,isstep=@isstep
                             where wo_code=@wo_code";
                     list.Add(new
                     {
@@ -1248,6 +1251,7 @@
                             materiel_code = json.partcode,
                             route_code = route_code,
                             sourceid = json.sourceid == "" ? null : json.sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
+                            saleOrderCode = json.saleordercode,
                             m_po = json.sourcewo,
                             saleOrderDeliveryDate = json.deliverydate,
                             plan_startdate = json.paystartdate,
@@ -1457,8 +1461,8 @@
                     {
                         route_code = json[i].routecode;
                         //鍐欏叆宸ュ崟琛�
-                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
-                                values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
+                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,lm_user,lm_date,materiel_code,route_code,sourceid,saleOrderCode,m_po,saleOrderDeliveryDate,plan_startdate,plan_enddate,piroque,isaps,data_sources,isstep)
+                                values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@lm_user,@lm_date,@materiel_code,@route_code,@sourceid,@saleOrderCode,@m_po,@saleOrderDeliveryDate,@plan_startdate,@plan_enddate,@orderlev,@isaps,@data_sources,@isstep)";
                         list.Add(new
                         {
                             str = sql,
@@ -1474,6 +1478,7 @@
                                 materiel_code = json[i].partcode,
                                 route_code = route_code,
                                 sourceid = json[i].sourceid == "" ? null : json[i].sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
+                                saleOrderCode=json[i].saleordercode,
                                 m_po = json[i].sourcewo,
                                 saleOrderDeliveryDate = json[i].deliverydate,
                                 plan_startdate = json[i].paystartdate,
@@ -1536,7 +1541,7 @@
                         route_code = json[i].routecode;
                         //淇敼宸ュ崟琛�
                         sql = @"update TK_Wrk_Man set wotype=@wotype,wkshp_code=@wkshp_code,plan_qty=@plan_qty,lm_user=@lm_user,lm_date=@lm_date,
-                            materiel_code=@materiel_code,route_code=@route_code,sourceid=@sourceid,m_po=@m_po,saleOrderDeliveryDate=@saleOrderDeliveryDate,plan_startdate=@plan_startdate,plan_enddate=@plan_enddate,isstep=@isstep
+                            materiel_code=@materiel_code,route_code=@route_code,sourceid=@sourceid,saleOrderCode=@saleOrderCode,m_po=@m_po,saleOrderDeliveryDate=@saleOrderDeliveryDate,plan_startdate=@plan_startdate,plan_enddate=@plan_enddate,isstep=@isstep
                             where wo_code=@wo_code";
                         list.Add(new
                         {
@@ -1550,6 +1555,7 @@
                                 materiel_code = json[i].partcode,
                                 route_code = route_code,
                                 sourceid = json[i].sourceid == "" ? null : json[i].sourceid, //鏃犳簮鍗曟椂璧嬪�糔ULL
+                                saleOrderCode=json[i].saleordercode,
                                 m_po = json[i].sourcewo,
                                 saleOrderDeliveryDate = json[i].deliverydate,
                                 plan_startdate = json[i].paystartdate,
@@ -1837,6 +1843,82 @@
                 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 MesOrderNewStepListContent(List<BatchProcess> list, User us)
+        {
+            var sql = "";
+            List<Dictionary<object, object>> dir = new List<Dictionary<object, object>>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                dynamic dynObj = JObject.Parse(us.mesSetting);
+                bool route = dynObj.route;
+                for (int i = 0; i < list.Count; i++)
+                {
+                    if (route) //宸ヨ壓璺嚎鐗�
+                    {
+                        Dictionary<object, object> dict = new Dictionary<object, object>();
+                        //MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
+                        sql = @"select S.wo_code,S.seq,S.step_code as stepcode,T.stepname as stepname,S.stepprice,S.isbott,S.isend,S.ratio
+                        from TK_Wrk_Step S
+                        inner join (
+                        select top 1 A.wo_code,A.route_code   from TK_Wrk_Man A
+                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.route_code=S.route_code
+                        where A.materiel_code=@partcode and A.wkshp_code=@wkshopcode and A.route_code=@routecode
+                        order by A.lm_date desc
+                        ) as W on S.wo_code=W.wo_code and S.route_code=W.route_code
+                        left join TStep  T on S.step_code=T.stepcode
+                        order by S.seq";
+                        dynamicParams.Add("@wkshopcode", list[i].wkshopcode);
+                        dynamicParams.Add("@partcode", list[i].partcode);
+                        dynamicParams.Add("@routecode", list[i].routecode);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        // 鍚戝瓧鍏镐腑娣诲姞鏁版嵁
+                        dict.Add("partcode", list[i].partcode);
+                        dict.Add("stepdata", data);
+                        // 灏嗗瓧鍏告坊鍔犲埌鍒楄〃涓�
+                        dir.Add(dict);
+                    }
+                    else
+                    {
+                        Dictionary<object, object> dict = new Dictionary<object, object>();
+                        //MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
+                        sql = @"select S.wo_code,S.seq,S.step_code as stepcode,T.stepname as stepname,S.stepprice,S.isbott,S.isend,S.ratio
+                        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", list[i].wkshopcode);
+                        dynamicParams.Add("@partcode", list[i].partcode);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        // 鍚戝瓧鍏镐腑娣诲姞鏁版嵁
+                        dict.Add("partcode", list[i].partcode);
+                        dict.Add("stepdata", data);
+                        // 灏嗗瓧鍏告坊鍔犲埌鍒楄〃涓�
+                        dir.Add(dict);
+                    }
+                }
+                mes.code = "200";
+                mes.count = dir.Count;
+                mes.data = dir;
                 mes.message = "鏌ヨ鎴愬姛!";
             }
             catch (Exception e)
@@ -2194,7 +2276,7 @@
 
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)]
-        public static ToMessage MesOrderStepSearch(string wkshopcode, string wocode, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderStepSearch(string wkshopcode, string wocode,string orderno,string saorderno, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
         {
             var sql = "";
             string search = "";
@@ -2227,7 +2309,7 @@
                         search += "and A.wo_code=@ordercode ";
                         dynamicParams.Add("@ordercode", ordercode);
                     }
-                    if (ordercode != "" && stepcode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
+                    if (saorderno != "" && saorderno != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
                     {
                         search += "and A.wo_code=@ordercode ";
                         dynamicParams.Add("@ordercode", ordercode);
@@ -2253,6 +2335,16 @@
                         }
                     }
                 }
+                if (orderno != "" && orderno != null)
+                {
+                    search += "and B.m_po like '%'+@orderno+'%' ";
+                    dynamicParams.Add("@orderno", orderno);
+                }
+                if (saorderno != "" && saorderno != null)
+                {
+                    search += "and B.saleOrderCode like '%'+@saorderno+'%' ";
+                    dynamicParams.Add("@saorderno", saorderno);
+                }
                 if (partcode != "" && partcode != null)
                 {
                     search += "and M.partcode like '%'+@partcode+'%' ";
@@ -2269,7 +2361,7 @@
                     dynamicParams.Add("@partspec", partspec);
                 }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
-                sql = @"select A.id,A.status,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
+                sql = @"select A.id,A.status,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,B.m_po,B.saleOrderCode,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
                         S.stepcode,S.stepname,S.descr,A.plan_quantity,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,B.lm_date,
                         M.priuserdefnvc1,M.priuserdefnvc2,M.priuserdefnvc3,M.priuserdefnvc4,M.priuserdefnvc5,M.priuserdefnvc6
                         from TK_Wrk_Step A
@@ -2297,7 +2389,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(澶栧崗)]
-        public static ToMessage MesOrderWxStepSearch(string wkshopcode, string wocode, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderWxStepSearch(string wkshopcode, string wocode, string orderno,string saorderno, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
         {
             var sql = "";
             string search = "";
@@ -2356,6 +2448,16 @@
                         }
                     }
                 }
+                if (orderno != "" && orderno != null)
+                {
+                    search += "and B.m_po like '%'+@orderno+'%' ";
+                    dynamicParams.Add("@orderno", orderno);
+                }
+                if (saorderno != "" && saorderno != null)
+                {
+                    search += "and B.saleOrderCode like '%'+@saorderno+'%' ";
+                    dynamicParams.Add("@saorderno", saorderno);
+                }
                 if (partcode != "" && partcode != null)
                 {
                     search += "and M.partcode like '%'+@partcode+'%' ";
@@ -2372,7 +2474,7 @@
                     dynamicParams.Add("@partspec", partspec);
                 }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
-                sql = @"select A.id,A.status,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
+                sql = @"select A.id,A.status,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,B.m_po,B.saleOrderCode,M.partcode,M.partname,M.partspec,A.seq,A.isbott,A.isend,
                         S.stepcode,S.stepname,S.descr,A.plan_quantity,A.plan_qty,A.good_qty,A.ng_qty,
                         (select isnull(sum(fqty),0) as fqty   from TK_Wrk_OutRecord where wo_code=A.wo_code and step_code=A.step_code and style='F') as fqty,
                         A.laborbad_qty,A.materielbad_qty,A.plan_startdate,A.plan_enddate,B.lm_date,
@@ -2403,7 +2505,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇)]
-        public static ToMessage MesOrderNgStepSearch(string wkshopcode, string wocode, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderNgStepSearch(string wkshopcode, string wocode, string orderno,string saorderno, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
         {
             var sql = "";
             string search = "";
@@ -2460,6 +2562,16 @@
                         return mes;
                     }
                 }
+                if (orderno != "" && orderno != null)
+                {
+                    search += "and B.m_po like '%'+@orderno+'%' ";
+                    dynamicParams.Add("@orderno", orderno);
+                }
+                if (saorderno != "" && saorderno != null)
+                {
+                    search += "and B.saleOrderCode like '%'+@saorderno+'%' ";
+                    dynamicParams.Add("@saorderno", saorderno);
+                }
                 if (partcode != "" && partcode != null)
                 {
                     search += "and M.partcode like '%'+@partcode+'%' ";
@@ -2476,7 +2588,7 @@
                     dynamicParams.Add("@partspec", partspec);
                 }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
-                sql = @"select A.id,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,M.partcode,M.partname,M.partspec,A.seq,A.isend,
+                sql = @"select A.id,B.wkshp_code,T.torg_name as wkshp_name,A.wo_code,B.saleOrderCode,B.m_po,M.partcode,M.partname,M.partspec,A.seq,A.isend,
                         S.stepcode,S.stepname,S.descr,A.plan_quantity,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,B.lm_date,
                         M.priuserdefnvc1,M.priuserdefnvc2,M.priuserdefnvc3,M.priuserdefnvc4,M.priuserdefnvc5,M.priuserdefnvc6
                         from TK_Wrk_Step A
@@ -2514,7 +2626,7 @@
             try
             {
                 //1.鏍规嵁宸ュ崟+宸ュ簭鏌ユ壘褰撳墠宸ュ簭鏄惁棣栭亾宸ュ簭
-                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,
+                sql = @"select A.wo_code,M.m_po,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,
                         A.plan_quantity,A.plan_qty,A.good_qty,A.ng_qty,A.laborbad_qty,A.materielbad_qty,A.isbott,A.isend
                         from TK_Wrk_Step A
                         left join  TStep T on A.step_code=T.stepcode
@@ -2527,6 +2639,7 @@
                 if (data.Rows.Count > 0)
                 {
                     rt.wo_code = data.Rows[0]["wo_code"].ToString(); //宸ュ崟鍙�
+                    rt.orderno = data.Rows[0]["m_po"].ToString(); //璁㈠崟鍙�
                     rt.partnumber = data.Rows[0]["partcode"].ToString(); //浜у搧缂栫爜
                     rt.partname = data.Rows[0]["partname"].ToString(); //浜у搧鍚嶇О
                     rt.partspec = data.Rows[0]["partspec"].ToString(); //浜у搧瑙勬牸
@@ -3396,7 +3509,7 @@
 
 
         #region[鐢熶骇鎵ц,鎶ュ伐璋冩暣鏁版嵁鏌ヨ鎺ュ彛]
-        public static ToMessage MesOrderStepVerifySearch(string wkshopcode, string wo_code, string partnumber, string partname, string partspec, string reportuser, string reportdateopendate, string reportdateclosedate, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderStepVerifySearch(string wkshopcode, string wo_code,string orderno,string saorderno, string partnumber, string partname, string partspec,string stepcode, string reportuser, string reportdateopendate, string reportdateclosedate, int startNum, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
@@ -3412,6 +3525,16 @@
                     search += "and AA.wo_code like '%'+@wo_code+'%' ";
                     dynamicParams.Add("@wo_code", wo_code);
                 }
+                if (orderno != "" && orderno != null)
+                {
+                    search += "and AA.m_po like '%'+@orderno+'%' ";
+                    dynamicParams.Add("@orderno", orderno);
+                }
+                if (saorderno != "" && saorderno != null)
+                {
+                    search += "and AA.saleOrderCode like '%'+@saorderno+'%' ";
+                    dynamicParams.Add("@saorderno", saorderno);
+                }
                 if (partnumber != "" && partnumber != null)
                 {
                     search += "and AA.partnumber like '%'+@partnumber+'%' ";
@@ -3426,6 +3549,11 @@
                 {
                     search += "and AA.partspec like '%'+@partspec+'%' ";
                     dynamicParams.Add("@partspec", partspec);
+                }
+                if (stepcode != "" && stepcode != null)
+                {
+                    search += "and AA.step_code=@stepcode ";
+                    dynamicParams.Add("@stepcode", stepcode);
                 }
                 if (reportuser != "" && reportuser != null)
                 {
@@ -3448,8 +3576,8 @@
                 // --------------鏌ヨ鎸囧畾鑷埗鎶ュ伐澶栧崗鏀舵枡鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
                 var sql = @"select *  from(
-                            select A.id,B.id as sbid,A.wo_code,A.materiel_code as partnumber,P.partname,P.partspec,K.plan_quantity,K.plan_qty as task_qty,M.wkshp_code,T.torg_name as wkshp_name,A.eqp_code,E.name as eqp_name,
-                            A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,k.isbott as first_choke,k.isend as last_choke,A.step_price,B.reckway,B.usergroup_code,G.usergroupname as usergroup_name,
+                            select A.id,B.id as sbid,A.wo_code,M.m_po,M.saleOrderCode,A.materiel_code as partnumber,P.partname,P.partspec,K.plan_quantity,K.plan_qty as task_qty,M.wkshp_code,T.torg_name as wkshp_name,A.eqp_code,E.name as eqp_name,
+                            A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,A.style,k.isbott as first_choke,k.isend as last_choke,A.step_price,B.reckway,B.usergroup_code,G.usergroupname as usergroup_name,
                             B.report_person as usercode,
                              STUFF((SELECT ',' + U.username
                                     FROM TUser U
@@ -3467,8 +3595,8 @@
                             left join TGroup G on G.usergroupcode=B.usergroup_code
                             where A.style='B' and B.style='B' and M.status<>'CLOSED' and A.verify='N'
                             union all
-                            select A.id,B.id as sbid,A.wo_code,A.materiel_code as partnumber,P.partname,P.partspec,K.plan_quantity,K.plan_qty as task_qty,M.wkshp_code,T.torg_name as wkshp_name,A.wx_code as eqp_code,E.name as eqp_name,
-                            A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,k.isbott as first_choke,k.isend as last_choke,A.step_price,'person' as reckway,'' as usergroup_code,'' as usergroup_name,
+                            select A.id,B.id as sbid,A.wo_code,M.m_po,M.saleOrderCode,A.materiel_code as partnumber,P.partname,P.partspec,K.plan_quantity,K.plan_qty as task_qty,M.wkshp_code,T.torg_name as wkshp_name,A.wx_code as eqp_code,E.name as eqp_name,
+                            A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,A.style,k.isbott as first_choke,k.isend as last_choke,A.step_price,'person' as reckway,'' as usergroup_code,'' as usergroup_name,
                             B.in_person as usercode,
                             STUFF((SELECT ',' + U.username
                                     FROM TUser U
@@ -4398,10 +4526,122 @@
         }
         #endregion
 
+        #region[鐢熶骇鎵ц,鎶ュ伐璋冩暣鎵归噺鏀逛环鏁版嵁鎻愪氦]
+        public static ToMessage MesOrderStepPriceBatchUpdateSeave(User us, List<BatchPrice> json)
+        {
+            string sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                if (json.Count > 0)
+                {
+                    // 浣跨敤Lambda琛ㄨ揪寮忓垽鏂被鍨嬪垎甯�:鍏ㄩ儴鎶ュ伐鎴栬�呭叏閮ㄦ敹鏂�
+                    bool allB = json.All(p => p.type == "B");
+                    bool allS = json.All(p => p.type == "S");
+                    if (allB)//鍏ㄩ儴鎶ュ伐
+                    {
+                        //灏哃ist<BatchPrice>涓殑id瀛楁杞崲涓哄瓧绗︿覆鏁扮粍
+                        string[] idArray = json.Select(bp => bp.id).ToArray();
+                        //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曚富琛ㄥ伐浠�
+                        sql = @"update TK_Wrk_Record set step_price=@step_price where id in @idArray and style='B'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                step_price = decimal.Parse(json[0].price),
+                                idArray = idArray
+                            }
+                        });
+                    }
+                    else if (allS)//鍏ㄩ儴鏀舵枡
+                    {
+                        //灏哃ist<BatchPrice>涓殑id瀛楁杞崲涓哄瓧绗︿覆鏁扮粍
+                        string[] idArray = json.Select(bp => bp.id).ToArray();
+                        //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曚富琛ㄥ伐浠�
+                        sql = @"update TK_Wrk_OutRecord set step_price=@step_price where id in @idArray and style='S'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                step_price = decimal.Parse(json[0].price),
+                                idArray = idArray
+                            }
+                        });
+                    }
+                    else // 娣峰悎鎯呭喌
+                    {
+                        //灏哃ist<BatchPrice>涓负鎶ュ伐鐨刬d瀛楁杞崲涓哄瓧绗︿覆鏁扮粍
+                        var bList = json.Where(p => p.type == "B").ToList();
+                        string[] idBArray = bList.Select(bp => bp.id).ToArray();
+                        //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曚富琛ㄥ伐浠�
+                        sql = @"update TK_Wrk_Record set step_price=@step_price where id in @idBArray and style='B'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                step_price = decimal.Parse(json[0].price),
+                                idBArray = idBArray
+                            }
+                        });
+                        //灏哃ist<BatchPrice>涓负鏀舵枡鐨刬d瀛楁杞崲涓哄瓧绗︿覆鏁扮粍
+                        var sList = json.Where(p => p.type == "S").ToList();
+                        string[] idSArray = sList.Select(bp => bp.id).ToArray();
+                        //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曚富琛ㄥ伐浠�
+                        sql = @"update TK_Wrk_OutRecord set step_price=@step_price where id in @idSArray and style='S'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                step_price = decimal.Parse(json[0].price),
+                                idSArray = idSArray
+                            }
+                        });
+                    }
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        //鍐欏叆鎿嶄綔璁板綍琛�
+                        LogHelper.DbOperateLog(us.usercode, "鎵归噺淇敼宸ヤ环", "鎶ュ伐ID:" + string.Join(",",json.Select(bp => bp.id).ToArray())+",鎿嶄綔绫诲瀷:"+ string.Join(",", json.Select(bp => bp.type).ToArray()), us.usertype);
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.message = "鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
+                }
+                else 
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.message = "璇烽�夋嫨闇�瑕佹壒閲忚皟鏁村伐浠风殑鎶ュ伐璁板綍!";
+                    mes.data = null;
+                    return mes;
+                }
+                return mes;
+            }
+            catch (Exception)
+            {
+
+                throw;
+            }
+        }
+        #endregion
+
 
 
         #region[鐢熶骇鎵ц,鎶ュ伐瀹℃牳鍒楄〃鏁版嵁鏌ヨ鎺ュ彛]
-        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)
+        public static ToMessage MesOrderStepReportVerifySearch(string reviewstatus, string wkshopcode, string wo_code, string orderno,string saorderno, 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 = "";
@@ -4421,6 +4661,16 @@
                 {
                     search += "and AA.wo_code like '%'+@wo_code+'%' ";
                     dynamicParams.Add("@wo_code", wo_code);
+                }
+                if (orderno != "" && orderno != null)
+                {
+                    search += "and AA.m_po like '%'+@orderno+'%' ";
+                    dynamicParams.Add("@orderno", orderno);
+                }
+                if (saorderno != "" && saorderno != null)
+                {
+                    search += "and AA.saleOrderCode like '%'+@saorderno+'%' ";
+                    dynamicParams.Add("@saorderno", saorderno);
                 }
                 if (partnumber != "" && partnumber != null)
                 {
@@ -4463,7 +4713,7 @@
                 // --------------鏌ヨ鎸囧畾鑷埗鎶ュ伐澶栧崗鏀舵枡鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
                 var sql = @"select *  from(
-                            select A.id,B.id as sbid,A.wo_code,A.materiel_code as partnumber,P.partname,P.partspec,K.plan_quantity,K.plan_qty as task_qty,M.wkshp_code,T.torg_name as wkshp_name,A.eqp_code,E.name as eqp_name,
+                            select A.id,B.id as sbid,A.wo_code,M.m_po,M.saleOrderCode,A.materiel_code as partnumber,P.partname,P.partspec,K.plan_quantity,K.plan_qty as task_qty,M.wkshp_code,T.torg_name as wkshp_name,A.eqp_code,E.name as eqp_name,
                             A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,k.isbott as first_choke,k.isend as last_choke,A.step_price,B.reckway,B.usergroup_code,G.usergroupname as usergroup_name,
                             B.report_person as usercode,
                              STUFF((SELECT ',' + U.username
@@ -4482,7 +4732,7 @@
                             left join TGroup G on G.usergroupcode=B.usergroup_code
                             where A.style='B' and B.style='B' and M.status<>'CLOSED' 
                             union all
-                            select A.id,B.id as sbid,A.wo_code,A.materiel_code as partnumber,P.partname,P.partspec,K.plan_quantity,K.plan_qty as task_qty,M.wkshp_code,T.torg_name as wkshp_name,A.wx_code as eqp_code,E.name as eqp_name,
+                            select A.id,B.id as sbid,A.wo_code,M.m_po,M.saleOrderCode,A.materiel_code as partnumber,P.partname,P.partspec,K.plan_quantity,K.plan_qty as task_qty,M.wkshp_code,T.torg_name as wkshp_name,A.wx_code as eqp_code,E.name as eqp_name,
                             A.step_seq,A.step_code,S.stepname,S.flwtype as steptype,k.isbott as first_choke,k.isend as last_choke,A.step_price,'person' as reckway,'' as usergroup_code,'' as usergroup_name,
                             B.in_person as usercode,
                             STUFF((SELECT ',' + U.username
@@ -4637,6 +4887,7 @@
         #endregion
 
 
+
         #region[鐢熶骇鍏ュ簱鏉$爜琛ユ墦]
         public static ToMessage ProductInHouseLabCode(string ordercode)
         {

--
Gitblit v1.9.3