From 9c634fd767aec36ef97c3a814bf7a29c67d20ee1 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期五, 29 三月 2024 10:57:35 +0800
Subject: [PATCH] 修改单据重复显示问题,增加工单源单id关联

---
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs |  583 +++++++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 430 insertions(+), 153 deletions(-)

diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index 5b802fd..6e4e477 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -22,7 +22,7 @@
 
 
         #region[ERP璁㈠崟鏌ヨ]
-        public static ToMessage ErpOrderSearch(string stu_torgcode,string stu_torgtypecode,string erporderstus, 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 stu_torgcode, string stu_torgtypecode, string erporderstus, 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 = "";
@@ -98,7 +98,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.org_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.stck_code,D.name as stck_name,A.saleOrderCode,A.saleOrderDeliveryDate,A.planstartdate,A.planenddate,U.username as createuser,A.createdate,A.sbid 
                             from TKimp_Ewo A
                             left join TMateriel_Info B on A.materiel_code=B.partcode
                             left join TOrganization C on A.wkshp_code=C.org_code
@@ -124,7 +124,7 @@
         #endregion
 
         #region[ERP璁㈠崟涓嬭揪]
-        public static ToMessage MarkSaveErpOrder(string erporderid, string erpordercode,string saleordercode, string partcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, string username)
+        public static ToMessage MarkSaveErpOrder(string erporderid, string erpordercode, string saleordercode, string partcode, string wkshopcode, string warehousecode, string erpqty, string markqty, string ordernum, string relse_qty, string saleOrderDeliveryDate, string username)
         {
             var sql = "";
             List<object> list = new List<object>();
@@ -149,7 +149,7 @@
                     if (i == 1)  //棣栧崟鑾峰彇宸ュ崟鍙�
                     {
                         sql = @"select isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0)+1 as worknumb   
-                                from TK_Wrk_Man where m_po=@erpordercode";
+                                from TK_Wrk_Man where  m_po=@erpordercode";
                         dynamicParams.Add("@erpordercode", erpordercode);
                         var data = DapperHelper.selectdata(sql, dynamicParams);
                         num = Convert.ToInt32(data.Rows[0]["WORKNUMB"].ToString());
@@ -179,7 +179,7 @@
                                 m_po = erpordercode,
                                 username = username,
                                 CreateDate = DateTime.Now.ToString(),
-                                saleOrderCode=saleordercode,
+                                saleOrderCode = saleordercode,
                                 saleOrderDeliveryDate = Convert.ToDateTime(saleOrderDeliveryDate)
                             }
                         });
@@ -205,7 +205,7 @@
                                 m_po = erpordercode,
                                 username = username,
                                 CreateDate = DateTime.Now.ToString(),
-                                saleOrderCode=saleordercode,
+                                saleOrderCode = saleordercode,
                                 saleOrderDeliveryDate = Convert.ToDateTime(saleOrderDeliveryDate)
                             }
                         });
@@ -256,6 +256,101 @@
                     mes.Message = "涓嬭揪MES宸ュ崟鎴愬姛澶辫触!";
                     mes.data = null;
                 }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[ERP璁㈠崟鎵归噺涓嬭揪]
+        public static ToMessage MarkBatchSaveErpOrder(List<ErpOrderBatch> obj, string username)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+
+            try
+            {
+                list.Clear();
+
+                var groupedModels = obj.GroupBy(m => m.erpordercode);
+                foreach (var group in groupedModels)
+                {
+                    string erpordercode = group.Key;
+                    int count = 1;
+                    foreach (var model in group)
+                    {
+                        //鑾峰彇褰撳墠鏈�澶у伐鍗曞彿
+                        sql = @"select isnull(max(cast(substring(wo_code,charindex('_',wo_code)+1,len(wo_code)-charindex('_',wo_code)) as numeric)),0) as worknumb   
+                                from TK_Wrk_Man where  m_po=@erpordercode";
+                        dynamicParams.Add("@erpordercode", model.erpordercode);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        int num = Convert.ToInt32(data.Rows[0]["WORKNUMB"].ToString());
+                        string wo = model.erpordercode + "_" + (num + count);
+                        //鍐欏叆宸ュ崟琛�
+                        sql = @"insert into TK_Wrk_Man(wo_code,wotype,status,wkshp_code,plan_qty,stck_code,materiel_code,sourceid,m_po,lm_user,lm_date,saleOrderCode,saleOrderDeliveryDate) values(@wo_code,@wotype,@status,@wkshp_code,@plan_qty,@stck_code,@materiel_code,@sourceid,@m_po,@username,@CreateDate,@saleOrderCode,@saleOrderDeliveryDate)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                wo_code = wo,
+                                wotype = "PO",
+                                status = "NEW",
+                                wkshp_code = model.wkshopcode,
+                                plan_qty = decimal.Parse(model.erpqty),  //璁㈠崟鏁伴噺
+                                stck_code = model.warehousecode,
+                                materiel_code = model.partcode,
+                                sourceid = model.erporderid,
+                                m_po = model.erpordercode,
+                                username = username,
+                                CreateDate = DateTime.Now.ToString(),
+                                saleOrderCode = model.saleordercode,
+                                saleOrderDeliveryDate = Convert.ToDateTime(model.saleOrderDeliveryDate)
+                            }
+                        });
+
+                        //鏇存柊璁㈠崟鐘舵��
+                        sql = @"update  TKimp_Ewo set status='CREATED',saleOrderDeliveryDate=@saleOrderDeliveryDate,relse_qty=relse_qty+@sumqty where wo=@wo and id=@erporderid";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                wo = model.erpordercode,
+                                erporderid = model.erporderid,
+                                sumqty = decimal.Parse(model.markqty),
+                                saleOrderDeliveryDate = Convert.ToDateTime(model.saleOrderDeliveryDate)
+                            }
+                        });
+                        count++;
+                    }
+                }
+
+
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鎵归噺涓嬭揪MES宸ュ崟鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鎵归噺涓嬭揪MES宸ュ崟鎴愬姛澶辫触!";
+                    mes.data = null;
+                }
+
             }
             catch (Exception e)
             {
@@ -327,10 +422,83 @@
         }
         #endregion
 
+        #region[ERP璁㈠崟鍒犻櫎]
+        public static ToMessage DeleteErpOrder(string erporderid, string erpordercode, string username)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                sql = @"select *  from TK_Wrk_Man where m_po=@erpordercode and sourceid=@erporderid and status<>'NEW'";
+                dynamicParams.Add("@erpordercode", erpordercode);
+                dynamicParams.Add("@erporderid", erporderid);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "褰撳墠璁㈠崟涓嬫湁宸ュ崟宸叉淳鍙戞垨宸插紑宸ユ垨宸插畬宸�(鍏抽棴),涓嶅厑璁稿垹闄�!";
+                    mes.data = null;
+                    return mes;
+                }
+                else
+                {
+                    //鍒犻櫎宸ュ崟
+                    sql = @"delete  TK_Wrk_Man  where m_po=@wo and sourceid=@erporderid";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            wo = erpordercode,
+                            erporderid = erporderid
+                        }
+                    });
+                    //鍒犻櫎璁㈠崟
+                    sql = @"delete  TKimp_Ewo  where wo=@wo and id=@erporderid";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            wo = erpordercode,
+                            erporderid = erporderid
+                        }
+                    });
+                }
+                bool aa = DapperHelper.DoTransaction(list);
+                LogHelper.WriteLogData(aa.ToString());
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "璁㈠崟鍒犻櫎鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "璁㈠崟鍒犻櫎澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
 
 
         #region[MES宸ュ崟鏌ヨ]
-        public static ToMessage MesOrderSearch(string stu_torgcode,string stu_torgtypecode,string mesorderstus, 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 stu_torgcode, string stu_torgtypecode, string mesorderstus, 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 = "";
@@ -408,10 +576,10 @@
                 }
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 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.org_name as wkshp_name,
+                var sql = @"select A.id, A.status,A.wotype,A.printcount,A.wo_code,A.materiel_code as partcode,B.partname,B.partspec,A.plan_qty,A.wkshp_code,C.org_name as wkshp_name,
                             A.route_code,E.name as route_name,A.stck_code,F.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,W.saleOrderCode,U.username as lm_user,A.lm_date
                             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.org_code
                             left join T_Sec_Stck D on A.stck_code=D.code 
@@ -438,7 +606,7 @@
         #endregion
 
         #region[MES鎶ュ簾琛ュ崟宸ュ崟鏌ヨ]
-        public static ToMessage MesBadOrderSearch(string mesordercode, string sourceorder,string saleordercode, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
+        public static ToMessage MesBadOrderSearch(string mesordercode, string sourceorder, string saleordercode, string partcode, string partname, string partspec, int startNum, string creatuser, string createdate, int endNum, string prop, string order)
         {
             var dynamicParams = new DynamicParameters();
             string search = "";
@@ -494,7 +662,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.org_name as wkshp_name,
                             A.route_code,E.name as route_name,A.stck_code,F.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,W.saleOrderCode,U.username as lm_user,A.lm_date,S.bad_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.sourceid=W.id
                             left join (select wo_code,sum(bad_qty) as bad_qty from  TK_Wrk_Step where bad_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.org_code
@@ -521,7 +689,7 @@
         #endregion
 
         #region[浜у搧缂栫爜鏌ユ壘宸ヨ壓璺嚎涓嬫媺鎺ュ彛]
-        public static ToMessage PartSelectRoute(string partcode,string wkshopcode)
+        public static ToMessage PartSelectRoute(string partcode, string wkshopcode)
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
@@ -551,7 +719,7 @@
         #endregion
 
         #region[宸ヨ壓璺嚎鏌ユ壘杞﹂棿涓嬫媺鎺ュ彛]
-        public static ToMessage RouteSelectWkshop(string stu_torgcode,string stu_torgtypecode,string partcode)
+        public static ToMessage RouteSelectWkshop(string stu_torgcode, string stu_torgtypecode, string partcode)
         {
             string sql = "";
             string search = "";
@@ -581,7 +749,7 @@
                         inner join TEqpInfo  E on D.eqp_code=E.code
                         left join TOrganization F on E.wksp_code=F.org_code
                         left join TOrganization L on  F.parent_id=L.id
-                        where M.materiel_code=@partcode and E.enable='Y' "+search;
+                        where M.materiel_code=@partcode and E.enable='Y' " + search;
                 dynamicParams.Add("@partcode", partcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
@@ -607,7 +775,7 @@
             try
             {
                 //鑾峰彇宸ヨ壓璺嚎瀵瑰簲宸ュ簭淇℃伅
-                sql = @"select A.seq,T.stepcode,T.stepname,T.flwtype,T.descr  from TFlw_Rtdt A
+                sql = @"select A.seq,T.stepcode,T.stepname,T.flwtype,T.descr,'0' as stepprice  from TFlw_Rtdt A
                         left join  TStep T on A.step_code=T.stepcode
                         where A.rout_code=@partcode ";
                 dynamicParams.Add("@partcode", routecode);
@@ -653,7 +821,7 @@
         #endregion
 
         #region[宸ュ崟娲惧彂閫夋嫨宸ヨ壓璺嚎鎴栭�夋嫨鐢熶骇杞﹂棿鏃跺垽鏂粦瀹氭潯浠禲
-        public static ToMessage SelectRouteOrWkshop(string partcode, string routecode, string wkshopcode)
+        public static ToMessage SelectRouteOrWkshop(string partcode, string routecode, string wkshopcode, string is_steprice)
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
@@ -708,8 +876,10 @@
                         return mes;
                     }
                 }
-                //鍒ゆ柇宸ヨ壓璺嚎瀵瑰簲宸ュ簭鍏宠仈鐨勫伐浣滅珯鏄惁鏈夎缃妭鎷嶅伐浠�
-                sql = @"select AA.step_code,AA.eqp_code,AA.flwtype,S.unprice  from (
+                if (is_steprice == "Y")
+                {
+                    //鍒ゆ柇宸ヨ壓璺嚎瀵瑰簲宸ュ簭鍏宠仈鐨勫伐浣滅珯鏄惁鏈夎缃妭鎷嶅伐浠�
+                    sql = @"select AA.step_code,AA.eqp_code,AA.flwtype,S.unprice  from (
                         select A.code,B.step_code,C.eqp_code,S.flwtype 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
@@ -718,21 +888,22 @@
                         ) as AA
                         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++)
-                {
-                    if (dtc.Rows[i]["flwtype"].ToString() == "Z") //鍒ゆ柇宸ュ簭鏄惁涓鸿嚜鍒�
+                    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++)
                     {
-                        if (dtc.Rows[i].IsNull("unprice") || decimal.Parse(dtc.Rows[i]["unprice"].ToString()) == 0)
+                        if (dtc.Rows[i]["flwtype"].ToString() == "Z") //鍒ゆ柇宸ュ簭鏄惁涓鸿嚜鍒�
                         {
-                            mes.code = "300";
-                            mes.count = 0;
-                            mes.Message = "鑺傛媿宸ヤ环涓細褰撳墠浜у搧銆�" + partcode + "銆戯紝瀵瑰簲宸ヨ壓璺嚎銆�" + routecode + "銆戞湭璁剧疆(鎴栨湭璁剧疆鍏�)鎴栧伐浠峰皬浜庣瓑浜�0!";
-                            mes.data = null;
-                            return mes;
+                            if (dtc.Rows[i].IsNull("unprice") || decimal.Parse(dtc.Rows[i]["unprice"].ToString()) == 0)
+                            {
+                                mes.code = "300";
+                                mes.count = 0;
+                                mes.Message = "鑺傛媿宸ヤ环涓細褰撳墠浜у搧銆�" + partcode + "銆戯紝瀵瑰簲宸ヨ壓璺嚎銆�" + routecode + "銆戞湭璁剧疆(鎴栨湭璁剧疆鍏�)鎴栧伐浠峰皬浜庣瓑浜�0!";
+                                mes.data = null;
+                                return mes;
+                            }
                         }
                     }
                 }
@@ -881,21 +1052,28 @@
                             CreateDate = DateTime.Now.ToString()
                         }
                     });
+
                     //鍐欏叆宸ュ崟宸ヨ壓璺嚎宸ュ簭宸ヤ环澶嶅埗琛�
                     sql = @"insert into TWoPrteEqp_Stad(wo,materiel_code,eqp_code,stand_value,opc_conver,route_code,unprice,eqp_value,cavity_qty,wkspcode,lm_user,lm_date,torg_code,is_delete,step_code)
-                           select distinct @mesordercode as wo,S.materiel_code,S.eqp_code,S.stand_value,S.opc_conver,S.route_code,S.unprice,
-                           S.eqp_value,S.cavity_qty,S.wkspcode,S.lm_user,S.lm_date,S.torg_code,S.is_delete,S.step_code
+                           select distinct @mesordercode as wo,@partcode as  materiel_code,AA.eqp_code,isnull(S.stand_value,0) as stand_value,isnull(S.opc_conver,0) as opc_conver,AA.rout_code,
+                           isnull(S.unprice,0) as unprice,isnull(S.eqp_value,0) as eqp_value,isnull(S.cavity_qty,0) as cavity_qty,@wkshopcode as wkspcode,@usercode as lm_user,
+                           getdate() as lm_date,S.torg_code,isnull(S.is_delete,0) as is_delete,AA.step_code  from (
+                           select  A.rout_code,A.step_code,C.eqp_code
                            from TFlw_Rtdt A
                            inner join TFlw_Rteqp C on A.step_code=C.step_code
-                           inner join (select *   from TPrteEqp_Stad  where materiel_code=@materiel_code and route_code=@routecode) as S on C.step_code=S.step_code and C.eqp_code=S.eqp_code";
+                           where A.rout_code=@routecode
+                           ) as AA
+                           left join (select *   from TPrteEqp_Stad  where materiel_code=@partcode and route_code=@routecode) as S on AA.step_code=S.step_code and AA.eqp_code=S.eqp_code";
                     list.Add(new
                     {
                         str = sql,
                         parm = new
                         {
                             mesordercode = mesordercode,
-                            materiel_code = partcode,
-                            routecode = routecode
+                            wkshopcode = wkshopcode,
+                            partcode = partcode,
+                            routecode = routecode,
+                            usercode = username
                         }
                     });
 
@@ -1003,21 +1181,28 @@
                     });
                     //鍐欏叆宸ュ崟宸ヨ壓璺嚎宸ュ簭宸ヤ环澶嶅埗琛�
                     sql = @"insert into TWoPrteEqp_Stad(wo,materiel_code,eqp_code,stand_value,opc_conver,route_code,unprice,eqp_value,cavity_qty,wkspcode,lm_user,lm_date,torg_code,is_delete,step_code)
-                           select distinct @mesordercode as wo,S.materiel_code,S.eqp_code,S.stand_value,S.opc_conver,S.route_code,S.unprice,
-                           S.eqp_value,S.cavity_qty,S.wkspcode,S.lm_user,S.lm_date,S.torg_code,S.is_delete,S.step_code
+                           select distinct @mesordercode as wo,@partcode as  materiel_code,AA.eqp_code,isnull(S.stand_value,0) as stand_value,isnull(S.opc_conver,0) as opc_conver,AA.rout_code,
+                           isnull(S.unprice,0) as unprice,isnull(S.eqp_value,0) as eqp_value,isnull(S.cavity_qty,0) as cavity_qty,@wkshopcode as wkspcode,@usercode as lm_user,
+                           getdate() as lm_date,S.torg_code,isnull(S.is_delete,0) as is_delete,AA.step_code  from (
+                           select  A.rout_code,A.step_code,C.eqp_code
                            from TFlw_Rtdt A
                            inner join TFlw_Rteqp C on A.step_code=C.step_code
-                           inner join (select *   from TPrteEqp_Stad  where materiel_code=@materiel_code and route_code=@routecode) as S on C.step_code=S.step_code and C.eqp_code=S.eqp_code";
+                           where A.rout_code=@routecode
+                           ) as AA
+                           left join (select *   from TPrteEqp_Stad  where materiel_code=@partcode and route_code=@routecode) as S on AA.step_code=S.step_code and AA.eqp_code=S.eqp_code";
                     list.Add(new
                     {
                         str = sql,
                         parm = new
                         {
                             mesordercode = mesordercode,
-                            materiel_code = partcode,
-                            routecode = routecode
+                            wkshopcode = wkshopcode,
+                            partcode = partcode,
+                            routecode = routecode,
+                            usercode = username
                         }
                     });
+
 
                     bool aa = DapperHelper.DoTransaction(list);
                     if (aa)
@@ -1199,6 +1384,45 @@
         }
         #endregion
 
+        #region[MES宸ュ崟鎵撳嵃鏇存柊鎵撳嵃娆℃暟]
+        public static ToMessage UpdateMesOrderPrintCount(string wo_code)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //鏇存柊宸ュ崟鎵撳嵃娆℃暟
+                sql = @"update TK_Wrk_Man set printcount=printcount+1  where wo_code=@wo_code";
+                list.Add(new { str = sql, parm = new { wo_code = wo_code } });
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "鏇存柊鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鏇存柊澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇褰撳墠宸ュ簭瀵瑰簲鐨勮澶�(鑷埗)]
         public static ToMessage MesOrderStepEqpSearch(string orderstepqrcode)
@@ -1367,7 +1591,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)]
-        public static ToMessage MesOrderStepSearch(string stu_torgcode,string stu_torgtypecode, string orderstepqrcode, int startNum, int endNum, string prop, string order)
+        public static ToMessage MesOrderStepSearch(string stu_torgcode, string stu_torgtypecode, string wocode, string saleOrderCode, string partcode, string partname, string partspec, int startNum, int endNum, string prop, string order)
         {
             var sql = "";
             string search = "";
@@ -1377,17 +1601,12 @@
             var total = 0; //鎬绘潯鏁�
             try
             {
-                if (orderstepqrcode != "" && orderstepqrcode != null)
+                if (wocode != "" && wocode != null)
                 {
-                    string[] arra = orderstepqrcode.Split(';');
+                    string[] arra = wocode.Split(';');
                     if (arra.Length == 1) //宸ュ崟鍙蜂簩缁寸爜
                     {
                         ordercode = arra[0]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
-                        mes.code = "300";
-                        mes.count = 0;
-                        mes.Message = "璇锋壂鎻忓伐搴忎簩缁寸爜!";
-                        mes.data = null;
-                        return mes;
                     }
                     if (arra.Length == 2) //宸ュ崟鍙�+宸ュ簭鍙蜂簩缁寸爜
                     {
@@ -1395,9 +1614,9 @@
                         stepcode = arra[1]; //鑾峰彇鎸囧畾瀛楃涓插墠闈㈢殑瀛楃
                     }
 
-                    if (ordercode != "" && stepcode == null) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
+                    if (ordercode != "" && (stepcode == null || stepcode == "")) //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂负绌�
                     {
-                        search += "and A.wo_code=@ordercode ";
+                        search += "and A.wo_code like '%'+@ordercode+'%' ";
                         dynamicParams.Add("@ordercode", ordercode);
                     }
                     if (ordercode != "" && stepcode != "") //宸ュ崟鍙蜂笉涓虹┖,宸ュ簭鍙蜂笉涓虹┖
@@ -1408,14 +1627,6 @@
                         dynamicParams.Add("@stepcode", stepcode);
                     }
                 }
-                //else
-                //{
-                //    mes.code = "300";
-                //    mes.count = 0;
-                //    mes.Message = "浜岀淮鐮佷俊鎭负绌�!";
-                //    mes.data = null;
-                //    return mes;
-                //}
                 if (stepcode != "")
                 {
                     //鏌ユ壘褰撳墠宸ュ簭灞炴��
@@ -1449,11 +1660,33 @@
                     default:
                         break;
                 }
+                if (saleOrderCode != "" && saleOrderCode != null)
+                {
+                    search += "and W.saleOrderCode like '%'+@saleOrderCode+'%' ";
+                    dynamicParams.Add("@saleOrderCode", saleOrderCode);
+                }
+                if (partcode != "" && partcode != null)
+                {
+                    search += "and M.partcode like '%'+@partcode+'%' ";
+                    dynamicParams.Add("@partcode", partcode);
+                }
+                if (partname != "" && partname != null)
+                {
+                    search += "and M.partname like '%'+@partname+'%' ";
+                    dynamicParams.Add("@partname", partname);
+                }
+                if (partspec != "" && partspec != null)
+                {
+                    search += "and M.partspec like '%'+@partspec+'%' ";
+                    dynamicParams.Add("@partspec", partspec);
+                }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(鑷埗宸ュ簭)
                 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
+                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.start_qty,A.good_qty,A.ng_qty,A.bad_qty,A.plan_startdate,A.plan_enddate,B.lm_date,
+                        B.m_po,W.saleOrderCode
                         from TK_Wrk_Step A
                         left join TK_Wrk_Man B on A.wo_code=B.wo_code
+                        left join TKimp_Ewo W on B.m_po=W.wo and B.materiel_code=W.materiel_code and B.sourceid=W.id
                         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
@@ -1470,7 +1703,7 @@
                 }
                 else
                 {
-                    mes.code = "300";
+                    mes.code = "200";
                     mes.count = 0;
                     mes.Message = "鏃犲彲鎵ц鐨勭敓浜т换鍔�,浠诲姟宸插畬鎴愭垨宸插叧闂�!";
                     mes.data = null;
@@ -1489,7 +1722,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(澶栧崗)]
-        public static ToMessage MesOrderWxStepSearch(string stu_torgcode,string stu_torgtypecode,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 = "";
@@ -1572,9 +1805,11 @@
                 }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟(澶栧崗宸ュ簭)
                 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
+                            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,
+                            B.m_po,W.saleOrderCode
                             from TK_Wrk_Step A
                             left join TK_Wrk_Man B on A.wo_code=B.wo_code
+                            left join TKimp_Ewo W on B.m_po=W.wo and B.materiel_code=W.materiel_code and B.sourceid=W.id
                             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
@@ -1610,7 +1845,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇)]
-        public static ToMessage MesOrderNgStepSearch(string stu_torgcode,string stu_torgtypecode,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 = "";
@@ -1683,9 +1918,11 @@
                 }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭浠诲姟,涓斾笉鑹暟閲忓ぇ浜�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
+                        S.stepcode,S.stepname,S.descr,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,B.lm_date,
+                        B.m_po,W.saleOrderCode
                         from TK_Wrk_Step A
                         left join TK_Wrk_Man B on A.wo_code=B.wo_code
+                        left join TKimp_Ewo W on B.m_po=W.wo and B.materiel_code=W.materiel_code and B.sourceid=W.id
                         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
@@ -1753,10 +1990,12 @@
                     }
                 }
                 //1.鏍规嵁宸ュ崟+宸ュ簭鏌ユ壘褰撳墠宸ュ簭鏄惁棣栭亾宸ュ簭
-                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,A.isbott,A.isend  
+                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.good_qty,A.ng_qty,A.bad_qty,A.isbott,A.isend,
+                        M.m_po,W.saleOrderCode
                         from TK_Wrk_Step A
                         left join  TStep T on A.step_code=T.stepcode
                         left join  TK_Wrk_Man M on A.wo_code=M.wo_code
+                        left join TKimp_Ewo W on M.m_po=W.wo and M.materiel_code=W.materiel_code and M.sourceid=W.id
                         left join  TMateriel_Info P on M.materiel_code=P.partcode
                         where A.wo_code=@ordercode and A.step_code=@stepcode";
                 dynamicParams.Add("@ordercode", ordercode);
@@ -1765,6 +2004,8 @@
                 if (data.Rows.Count > 0)
                 {
                     rt.wo_code = data.Rows[0]["WO_CODE"].ToString(); //宸ュ崟鍙�
+                    rt.saleOrderCode = data.Rows[0]["saleOrderCode"].ToString(); //閿�鍞鍗曞彿
+                    rt.m_po = 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(); //浜у搧瑙勬牸
@@ -1805,21 +2046,10 @@
                 }
                 //鏍规嵁鏉′欢鏌ヨ宸ュ崟宸ュ簭鎶ュ伐(鏀舵枡)璁板綍,涓斾笉鑹暟閲忓ぇ浜�0
                 //瀛樺偍杩囩▼鍚�
-                //sql = @"h_p_IFCLD_MesReportDefectHandleSelect";
-                sql = @"select MM.record_id as m_id,MM.wo_code,A.materiel_code,S.seq,MM.step_code,T.stepname,A.id,
-                       S.plan_qty,A.good_qty as report_qty,MM.defect_qty as ng_qty,A.bad_qty as badqty,'Z' as style,MM.verify, 
-                       MM.defect_code,STUFF((SELECT ',' + P.name
-                                  FROM TDefect P
-                                  WHERE CHARINDEX(',' + P.code + ',', ',' + MM.defect_code + ',') > 0
-                                  FOR XML PATH('')), 1, 1, '') AS defect_name
-                       from CSR_WorkRecord_Defect  MM
-                       inner join TK_Wrk_Record A on MM.record_id=a.id
-                       inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
-                       inner join TStep T on MM.step_code=T.stepcode
-                       where MM.wo_code=@ordercode and MM.step_code=@stepcode and MM.style='B' and A.style='B' and A.ng_qty>0";
+                sql = @"h_p_IFCLD_MesReportDefectHandleSelect";
                 dynamicParams1.Add("@ordercode", ordercode);
                 dynamicParams1.Add("@stepcode", stepcode);
-                DataTable dt = DapperHelper.selectdata(sql, dynamicParams1);
+                DataTable dt = DapperHelper.selectProcedure(sql, dynamicParams1);
                 if (dt.Rows.Count > 0)
                 {
                     list.Add("data1", rt);
@@ -1849,7 +2079,7 @@
         #endregion
 
         #region [鐢熶骇寮�鎶ュ伐锛氬紑宸�(寮�濮�/鎶ュ伐)/澶栧崗鍙戞枡鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛]
-        public static ToMessage MesOrderStepStart(string OperType,string stu_torgcode, string SelectType, string orderstepqrcode)
+        public static ToMessage MesOrderStepStart(string OperType, string stu_torgcode, string SelectType, string orderstepqrcode)
         {
             var sql = "";
             string search = "";
@@ -1878,10 +2108,10 @@
                     switch (OperType)
                     {
                         case "ZZ":
-                            mes = ScanStartReport.ZZEncodingSeach(stu_torgcode, SelectType,ordercode, stepcode);
+                            mes = ScanStartReport.ZZEncodingSeach(stu_torgcode, SelectType, ordercode, stepcode);
                             break;
                         case "WX":
-                            mes = ScanStartReport.WXEncodingSeach(stu_torgcode,SelectType, ordercode, stepcode);
+                            mes = ScanStartReport.WXEncodingSeach(stu_torgcode, SelectType, ordercode, stepcode);
                             break;
                         default:
                             break;
@@ -1947,9 +2177,18 @@
                 dynamicParams.Add("@wo_code", ordercode);
                 dynamicParams.Add("@stepcode", stepcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
-                mes.code = "200";
-                mes.Message = "鏌ヨ鎴愬姛!";
-                mes.data = data;
+                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)
             {
@@ -1963,7 +2202,7 @@
         #endregion
 
         #region[鐢熶骇寮�鎶ュ伐锛氭姤宸ユ椂鑾峰彇鐢熶骇鐝粍涓嬫媺妗哴
-        public static ToMessage MesOrderStepReportSelectUserGroup(string stu_torgcode,string stu_torgtypecode,string wkshopcode)
+        public static ToMessage MesOrderStepReportSelectUserGroup(string stu_torgcode, string stu_torgtypecode, string wkshopcode)
         {
             string sql = "";
             string search = "";
@@ -1993,7 +2232,7 @@
                 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;
+                        where 1=1 " + search;
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
@@ -2018,7 +2257,7 @@
             try
             {
                 //鐝粍鑾峰彇浜哄憳鍒楄〃
-                sql = @"select U.username,U.username   
+                sql = @"select U.usercode,U.username   
                         from TGroup G
                         inner join TGroupUser T on G.group_code=T.group_code
                         left join  TUser U on T.user_code=U.usercode
@@ -2186,34 +2425,36 @@
                 string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
                 list.Clear();
                 //鍒ゆ柇鏄惁鏈夊紑宸ヨ褰�
-                sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code  and eqp_code=@eqpcode and style='S'";
+                sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code  and style='S'";
                 dynamicParams.Add("@wo_code", mesordercode);
                 dynamicParams.Add("@step_code", stepcode);
                 dynamicParams.Add("@eqpcode", eqpcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 if (data.Rows.Count > 0)
                 {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.Message = "褰撳墠宸ュ簭浠诲姟璁惧宸插紑宸�!";
-                    mes.data = null;
-                    return mes;
+                    //淇敼寮�鎶ュ伐璁板綍琛�(寮�宸ユ暟閲�)
+                    sql = @"update  TK_Wrk_Record set start_qty=start_qty+@startqty where wo_code=@mesordercode and step_seq=@stepseq and step_code=@stepcode and materiel_code=@partcode and style=@style";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, partcode = partcode, startqty = startqty, style = "S" } });
+                    //淇敼宸ュ崟宸ュ簭琛�(寮�宸ユ暟閲�)
+                    sql = @"update  TK_Wrk_Step set start_qty=start_qty+@startqty where wo_code=@mesordercode and step_code=@stepcode";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, startqty = startqty } });
+                }
+                else
+                {
+                    //鍐欏叆寮�鎶ュ伐璁板綍琛�
+                    sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,eqp_code,materiel_code,open_person,open_time,task_qty,start_qty,style,lm_user,lm_date) 
+                                values(@mesordercode,@stepseq,@stepcode,@eqpcode,@partcode,@username,@opentime,@taskqty,@startqty,@style,@lm_user,@lm_date)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, eqpcode = eqpcode, partcode = partcode, username = username, opentime = date, taskqty = taskqty, startqty = startqty, style = "S", lm_user = username, lm_date = date } });
+                    //鍥炲啓宸ュ崟宸ュ簭琛ㄧ姸鎬佷负START: 寮�宸�
+                    sql = @"update TK_Wrk_Step set status='START',start_qty=@startqty  where wo_code=@mesordercode and step_code=@stepcode";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, startqty = startqty } });
+
+                    //鍥炲啓宸ュ崟琛ㄧ姸鎬佷负锛� 寮�宸ワ細START 
+                    sql = @"update TK_Wrk_Man set status='START'  where wo_code=@mesordercode";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode } });
                 }
 
-                //鍐欏叆寮�鎶ュ伐璁板綍琛�
-                sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,eqp_code,materiel_code,open_person,open_time,task_qty,start_qty,style,lm_user,lm_date) 
-                                values(@mesordercode,@stepseq,@stepcode,@eqpcode,@partcode,@username,@opentime,@taskqty,@startqty,@style,@lm_user,@lm_date)";
-                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, eqpcode = eqpcode, partcode = partcode, username = username, opentime = date, taskqty = taskqty, startqty = startqty, style = "S", lm_user = username, lm_date = date } });
-                //鍥炲啓宸ュ崟宸ュ簭琛ㄧ姸鎬佷负START: 寮�宸�
-                sql = @"update TK_Wrk_Step set status='START'  where wo_code=@mesordercode and step_code=@stepcode";
-                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode } });
 
-                //鍥炲啓宸ュ崟宸ュ簭琛ㄧ姸鎬佷负宸插紑宸�
-                sql = @"update TK_Wrk_Step set status='START'  where wo_code=@mesordercode and step_code=@stepcode";
-                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode } });
-                //鍥炲啓宸ュ崟琛ㄧ姸鎬佷负锛� 寮�宸ワ細START 
-                sql = @"update TK_Wrk_Man set status='START'  where wo_code=@mesordercode";
-                list.Add(new { str = sql, parm = new { mesordercode = mesordercode } });
 
                 bool aa = DapperHelper.DoTransaction(list);
                 if (aa)
@@ -2257,7 +2498,7 @@
                 JArray arra = (JArray)Newtonsoft.Json.JsonConvert.DeserializeObject(reportuser);
                 //鍒ゆ柇鏄惁鏈変笉鑹暟鎹�
                 var groupedItems = defectobjs.GroupBy(item => item.defect_code) // 鎸夌紪鐮乧ode鍒嗙粍
-                        .Select(group => new { defect_code = group.Key, badqty = group.Sum(item =>Convert.ToDecimal(item.badqty)) }).ToList(); // 姹囨�绘暟閲弎ty
+                        .Select(group => new { defect_code = group.Key, badqty = group.Sum(item => Convert.ToDecimal(item.badqty)) }).ToList(); // 姹囨�绘暟閲弎ty
                 if (groupedItems.Count <= 0)
                 {
                     ngqty = 0;
@@ -2274,21 +2515,21 @@
                 dynamicParams.Add("@step_code", stepcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 //鑾峰彇寮�宸ヨ褰曠殑榛樿閫変腑鐨勮澶�(浜х嚎)涓庢姤宸ユ椂鐨勮澶囦骇绾垮仛瀵规瘮鍒ゆ柇
-                sql = @"select A.eqp_code,B.name  from TK_Wrk_Record A
-                        inner join TEqpInfo B on A.eqp_code=B.code
-                        where A.wo_code=@wo_code and A.step_code=@step_code and eqp_code=@eqpcode  and A.style='S'";
-                dynamicParams.Add("@wo_code", mesordercode);
-                dynamicParams.Add("@step_code", stepcode);
-                dynamicParams.Add("@eqpcode", eqpcode);
-                var da = DapperHelper.selectdata(sql, dynamicParams);
-                if (da.Rows[0]["EQP_CODE"].ToString() != eqpcode)
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.Message = "鎿嶄綔澶辫触,褰撳墠鎶ュ伐浜х嚎搴斾负锛�" + da.Rows[0]["NAME"].ToString() + "!";
-                    mes.data = null;
-                    return mes;
-                }
+                //sql = @"select A.eqp_code,B.name  from TK_Wrk_Record A
+                //        inner join TEqpInfo B on A.eqp_code=B.code
+                //        where A.wo_code=@wo_code and A.step_code=@step_code and eqp_code=@eqpcode  and A.style='S'";
+                //dynamicParams.Add("@wo_code", mesordercode);
+                //dynamicParams.Add("@step_code", stepcode);
+                //dynamicParams.Add("@eqpcode", eqpcode);
+                //var da = DapperHelper.selectdata(sql, dynamicParams);
+                //if (da.Rows[0]["EQP_CODE"].ToString() != eqpcode)
+                //{
+                //    mes.code = "300";
+                //    mes.count = 0;
+                //    mes.Message = "鎿嶄綔澶辫触,褰撳墠鎶ュ伐浜х嚎搴斾负锛�" + da.Rows[0]["NAME"].ToString() + "!";
+                //    mes.data = null;
+                //    return mes;
+                //}
                 if (data.Rows.Count > 0)
                 {
                     //鑾峰彇涓昏〃鏈�澶D
@@ -2326,14 +2567,14 @@
                         });
 
                     }
-                    if (groupedItems.Count>0)
+                    if (groupedItems.Count > 0)
                     {
                         //鍐欏叆缂洪櫡璁板綍琛�
                         for (int i = 0; i < groupedItems.Count; i++)
                         {
-                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date) 
-                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
-                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
+                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date) 
+                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
+                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
 
                         }
                     }
@@ -2402,9 +2643,9 @@
                         //鍐欏叆缂洪櫡璁板綍琛�
                         for (int i = 0; i < groupedItems.Count; i++)
                         {
-                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date) 
-                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
-                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
+                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date) 
+                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
+                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "B", lm_user = username, lm_date = date } });
 
                         }
                     }
@@ -2625,14 +2866,14 @@
                                 values(@m_id,@wxcode,@in_person,@in_time,@sqty,@ng_qty,@style,@lm_user,@lm_date)";
                     list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wxcode = wxcode, in_person = inuser, in_time = date, sqty = sqty, ng_qty = ngqty, style = "S", lm_user = username, lm_date = date } });
 
-                    if (groupedItems.Count>0)
+                    if (groupedItems.Count > 0)
                     {
                         //鍐欏叆缂洪櫡璁板綍琛�
                         for (int i = 0; i < groupedItems.Count; i++)
                         {
-                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date) 
-                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
-                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
+                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date) 
+                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
+                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
 
                         }
                     }
@@ -2679,9 +2920,9 @@
                         //鍐欏叆缂洪櫡璁板綍琛�
                         for (int i = 0; i < groupedItems.Count; i++)
                         {
-                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_code,remarks,style,lm_user,lm_date) 
-                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
-                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
+                            sql = @"insert into  CSR_WorkRecord_Defect(record_id,wo_code,partnumber,step_seq,step_code,defect_qty,defect_pendqty,defect_code,remarks,style,lm_user,lm_date) 
+                                values(@record_id,@wo_code,@partcode,@stepseq,@stepcode,@ngqty,@defect_pendqty,@defect_code,@remarks,@style,@lm_user,@lm_date)";
+                            list.Add(new { str = sql, parm = new { record_id = int.Parse(dt.Rows[0]["ID"].ToString()), wo_code = mesordercode, partcode = partcode, stepseq = stepseq, stepcode = stepcode, ngqty = groupedItems[i].badqty, defect_pendqty = groupedItems[i].badqty, defect_code = groupedItems[i].defect_code, remarks = remarks, style = "S", lm_user = username, lm_date = date } });
 
                         }
                     }
@@ -2754,7 +2995,7 @@
                             str = sql,
                             parm = new
                             {
-                                m_id = int.Parse(json.Data.Rows[i]["ID"].ToString()),
+                                m_id = int.Parse(json.Data.Rows[i]["M_ID"].ToString()),
                                 repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
                                 bad_qty = decimal.Parse(json.Data.Rows[i]["BAD_QTY"].ToString())
                             }
@@ -2771,18 +3012,33 @@
                                 bad_qty = decimal.Parse(json.Data.Rows[i]["BAD_QTY"].ToString()),
                                 wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
                                 step_code = json.Data.Rows[i]["STEP_CODE"].ToString(),
-                                id = int.Parse(json.Data.Rows[i]["ID"].ToString())
+                                id = int.Parse(json.Data.Rows[i]["M_ID"].ToString())
                             }
                         });
-                        //鍐欏叆鎶ュ伐缂洪櫡澶勭悊璁板綍琛�
-                        sql = @"insert into  CSR_WorkRecord_DefectHandle(record_subid,wo_code,partnumber,step_seq,step_code,repair_qty,bad_qty,defect_code,style,lm_user,lm_date) 
-                                values(@record_subid,@wo_code,@partcode,@stepseq,@stepcode,@repair_qty,@bad_qty,@defect_code,@style,@lm_user,@lm_date)";
+                        //鍥炲啓缂洪櫡璁板綍琛ㄧ殑寰呭鐞嗘暟閲�
+                        sql = @"update CSR_WorkRecord_Defect set defect_qty=defect_qty-@repair_qty-@bad_qty,defect_pendqty=defect_pendqty-@repair_qty-@bad_qty,bad_qty=bad_qty+@bad_qty
+                        where wo_code=@wo_code and step_code=@step_code and id=@id and style='B'";
                         list.Add(new
                         {
                             str = sql,
                             parm = new
                             {
-                                record_subid = int.Parse(json.Data.Rows[i]["M_ID"].ToString()),
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                bad_qty = decimal.Parse(json.Data.Rows[i]["BAD_QTY"].ToString()),
+                                wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
+                                step_code = json.Data.Rows[i]["STEP_CODE"].ToString(),
+                                id = int.Parse(json.Data.Rows[i]["ID"].ToString())
+                            }
+                        });
+                        //鍐欏叆鎶ュ伐缂洪櫡澶勭悊璁板綍琛�
+                        sql = @"insert into  CSR_WorkRecord_DefectHandle(defect_id,wo_code,partnumber,step_seq,step_code,repair_qty,bad_qty,defect_code,style,lm_user,lm_date) 
+                                values(@defect_id,@wo_code,@partcode,@stepseq,@stepcode,@repair_qty,@bad_qty,@defect_code,@style,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                defect_id = int.Parse(json.Data.Rows[i]["ID"].ToString()),
                                 wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
                                 partcode = json.Data.Rows[i]["MATERIEL_CODE"].ToString(),
                                 stepseq = json.Data.Rows[i]["SEQ"].ToString(),
@@ -2810,7 +3066,7 @@
                             str = sql,
                             parm = new
                             {
-                                m_id = int.Parse(json.Data.Rows[i]["ID"].ToString()),
+                                m_id = int.Parse(json.Data.Rows[i]["M_ID"].ToString()),
                                 repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
                                 bad_qty = decimal.Parse(json.Data.Rows[i]["BAD_QTY"].ToString())
                             }
@@ -2827,18 +3083,33 @@
                                 bad_qty = decimal.Parse(json.Data.Rows[i]["BAD_QTY"].ToString()),
                                 wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
                                 step_code = json.Data.Rows[i]["STEP_CODE"].ToString(),
-                                id = int.Parse(json.Data.Rows[i]["ID"].ToString())
+                                id = int.Parse(json.Data.Rows[i]["M_ID"].ToString())
                             }
                         });
-                        //鍐欏叆鎶ュ伐缂洪櫡澶勭悊璁板綍琛�
-                        sql = @"insert into  CSR_WorkRecord_DefectHandle(record_subid,wo_code,partnumber,step_seq,step_code,repair_qty,bad_qty,defect_code,style,lm_user,lm_date) 
-                                values(@record_subid,@wo_code,@partcode,@stepseq,@stepcode,@repair_qty,@bad_qty,@defect_code,@style,@lm_user,@lm_date)";
+                        //鍥炲啓缂洪櫡璁板綍琛ㄧ殑寰呭鐞嗘暟閲�
+                        sql = @"update CSR_WorkRecord_Defect set defect_qty=defect_qty-@repair_qty-@bad_qty,defect_pendqty=defect_pendqty-@repair_qty-@bad_qty,bad_qty=bad_qty+@bad_qty
+                        where wo_code=@wo_code and step_code=@step_code and id=@id and style='S'";
                         list.Add(new
                         {
                             str = sql,
                             parm = new
                             {
-                                record_subid = int.Parse(json.Data.Rows[i]["M_ID"].ToString()),
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                bad_qty = decimal.Parse(json.Data.Rows[i]["BAD_QTY"].ToString()),
+                                wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
+                                step_code = json.Data.Rows[i]["STEP_CODE"].ToString(),
+                                id = int.Parse(json.Data.Rows[i]["ID"].ToString())
+                            }
+                        });
+                        //鍐欏叆鎶ュ伐缂洪櫡澶勭悊璁板綍琛�
+                        sql = @"insert into  CSR_WorkRecord_DefectHandle(defect_id,wo_code,partnumber,step_seq,step_code,repair_qty,bad_qty,defect_code,style,lm_user,lm_date) 
+                                values(@defect_id,@wo_code,@partcode,@stepseq,@stepcode,@repair_qty,@bad_qty,@defect_code,@style,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                defect_id = int.Parse(json.Data.Rows[i]["ID"].ToString()),
                                 wo_code = json.Data.Rows[i]["WO_CODE"].ToString(),
                                 partcode = json.Data.Rows[i]["MATERIEL_CODE"].ToString(),
                                 stepseq = json.Data.Rows[i]["SEQ"].ToString(),
@@ -3075,7 +3346,7 @@
         #endregion
 
         #region[宸ュ簭妫�楠�,鎻愪氦]
-        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)
+        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 = "";
@@ -3182,7 +3453,7 @@
 
 
         #region[MES宸ュ崟鎵归噺鍏抽棴鏌ヨ]
-        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)
+        public static ToMessage MesOrderBitchClosedSearch(string stu_torgcode, string stu_torgtypecode, string mesorderstus, 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 = "";
@@ -3217,6 +3488,11 @@
                 {
                     search += "and A.m_po like '%'+@sourceorder+'%' ";
                     dynamicParams.Add("@sourceorder", sourceorder);
+                }
+                if (saleordercode != "" && saleordercode != null)
+                {
+                    search += "and W.saleOrderCode like '%'+@saleordercode+'%' ";
+                    dynamicParams.Add("@saleordercode", saleordercode);
                 }
                 if (ordertype != "" && ordertype != null)
                 {
@@ -3256,11 +3532,12 @@
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 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.org_name as wkshp_name,
-                            A.route_code,E.name as route_name,A.stck_code,F.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,U.username as lm_user,A.lm_date
+                            A.route_code,E.name as route_name,A.stck_code,F.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,W.saleOrderCode,U.username as lm_user,A.lm_date
                             ,(select sum(S.good_qty)  from TK_Wrk_Step S where S.wo_code=A.wo_code and S.isend='Y') as good_qty
                             ,(select sum(S.ng_qty)  from TK_Wrk_Step S where S.wo_code=A.wo_code and S.isend='Y') as ng_qty
                             ,(select sum(S.bad_qty)  from TK_Wrk_Step S where S.wo_code=A.wo_code and S.isend='Y') as bad_qty
                             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.sourceid=W.id
                             left join TMateriel_Info B on A.materiel_code=B.partcode
                             left join TOrganization C on A.wkshp_code=C.org_code
                             left join T_Sec_Stck D on A.stck_code=D.code 
@@ -4866,7 +5143,7 @@
                             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 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
                             union all

--
Gitblit v1.9.3