From 6fedaca99e834bfe98c7efb95f8ae41dc0ea6d0f Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 25 九月 2023 19:50:35 +0800
Subject: [PATCH] 1.MES工单打印接口 2.生产开报工,报工接口 3.生产报工发料接口、收料接口、不良处理提交接口

---
 VueWebCoreApi/DLL/DAL/GridReportDAL.cs            |   63 +++
 VueWebCoreApi/DLL/BLL/GridReportBLL.cs            |   20 +
 VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs             |   28 +
 VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs             |  687 ++++++++++++++++++++++++++++++++++++++++
 VueWebCoreApi/Tools/ScanStartReport.cs            |   15 
 VueWebCoreApi/ApiGroup/OpenApiGroup.cs            |    4 
 VueWebCoreApi/Tools/ExcelList.cs                  |    2 
 VueWebCoreApi/Models/ReportDefectList.cs          |   13 
 VueWebCoreApi/Models/ScanStartReportData.cs       |    2 
 VueWebCoreApi/Controllers/GridReportController.cs |   41 ++
 VueWebCoreApi/Tools/GridMessage.cs                |   12 
 VueWebCoreApi/Models/ScanStartReportDataOut.cs    |    2 
 VueWebCoreApi/Controllers/WorkOrderController.cs  |  105 ++++++
 13 files changed, 981 insertions(+), 13 deletions(-)

diff --git a/VueWebCoreApi/ApiGroup/OpenApiGroup.cs b/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
index 0645164..7699a9e 100644
--- a/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
+++ b/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
@@ -31,7 +31,9 @@
         [Description("鐣呮嵎閫欵RP鍩虹鏁版嵁鍚屾")]
         鐣呮嵎閫欵RP鍩虹鏁版嵁鍚屾 = 12,
         [Description("Excel瀵煎叆")]
-        Excel瀵煎叆 = 13
+        Excel瀵煎叆 = 13,
+        [Description("鍗曟嵁鎵撳嵃")]
+        鍗曟嵁鎵撳嵃 = 14
 
     }
 }
diff --git a/VueWebCoreApi/Controllers/GridReportController.cs b/VueWebCoreApi/Controllers/GridReportController.cs
new file mode 100644
index 0000000..c7953ed
--- /dev/null
+++ b/VueWebCoreApi/Controllers/GridReportController.cs
@@ -0,0 +1,41 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.BLL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.Controllers
+{
+    [ApiExplorerSettings(GroupName = "鍗曟嵁鎵撳嵃")]
+    [ApiController]
+    [Route("api/[controller]")]
+    [ChannelActionFilter]
+    public class GridReportController : Controller
+    {
+        //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
+        ToMessage mes = new ToMessage();
+        RedisHelper redis = new RedisHelper();
+
+        #region[MES宸ュ崟鎵撳嵃1]
+        /// <summary>
+        /// MES宸ュ崟鎵撳嵃1
+        /// </summary>
+        /// <param name="obj">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "MesOrderPrintSearch")]
+        [HttpPost]
+        public JsonResult MesOrderPrintSearch([FromBody] JObject obj)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string mesordercode = obj["mesordercode"].ToString();    //宸ュ崟鐘舵�佺爜
+            mes = GridReportBLL.MesOrderPrintSearch(us, mesordercode);
+            return Json(mes);
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/Controllers/WorkOrderController.cs b/VueWebCoreApi/Controllers/WorkOrderController.cs
index 84c4f34..9d0523c 100644
--- a/VueWebCoreApi/Controllers/WorkOrderController.cs
+++ b/VueWebCoreApi/Controllers/WorkOrderController.cs
@@ -1,4 +1,5 @@
 锘縰sing Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using System;
 using System.Collections.Generic;
@@ -445,5 +446,109 @@
             return Json(mes);
         }
         #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦]
+        /// <summary>
+        /// 鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦
+        /// </summary>
+        /// <param name="obj">鎶ュ伐鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "SavaMesOrderStepReport")]
+        [HttpPost]
+        public JsonResult SavaMesOrderStepReport([FromBody] JObject obj)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string mesordercode = obj["mesordercode"].ToString(); //宸ュ崟缂栧彿
+            string partcode = obj["partcode"].ToString(); //浜у搧缂栫爜
+            string stepseq = obj["stepseq"].ToString(); //宸ュ簭搴忓彿
+            string stepcode = obj["stepcode"].ToString(); //宸ュ簭缂栫爜
+            string stepprice = obj["stepprice"].ToString(); //宸ュ簭宸ヤ环
+            string eqpcode = obj["eqpcode"].ToString(); //璁惧缂栫爜
+            string inbarcode = obj["inbarcode"].ToString(); //鍏ュ簱鏉$爜
+            string reckway = obj["reckway"].ToString(); //璁′欢鏂瑰紡(鐝粍:group銆佷釜浜�:person)
+            string usergroupcode = obj["usergroupcode"].ToString(); //鐝粍缂栫爜
+            string reportuser = obj["reportuser"].ToString();  //鎶ュ伐浜哄憳
+            string taskqty = obj["taskqty"].ToString(); //浠诲姟鏁伴噺
+            string startqty = obj["startqty"].ToString(); //寮�宸ユ暟閲�
+            string reportqty = obj["reportqty"].ToString(); //鎶ュ伐宸ユ暟閲�
+            string defectlist = obj["defectlist"].ToString();//涓嶈壇姹囨��
+            string remarks = obj["remarks"].ToString(); //澶囨敞
+            List<ReportDefectList> defectobjs = JsonConvert.DeserializeObject<List<ReportDefectList>>(defectlist);
+            mes = WorkOrderBLL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, stepprice, eqpcode, inbarcode, reckway, usergroupcode, reportuser, taskqty, startqty, reportqty, defectobjs, remarks, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐,鍙戞枡鎻愪氦]
+        /// <summary>
+        /// 鐢熶骇寮�鎶ュ伐,鍙戞枡鎻愪氦
+        /// </summary>
+        /// <param name="obj">鍙戞枡鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "SavaMesOrderStepOut")]
+        [HttpPost]
+        public JsonResult SavaMesOrderStepOut([FromBody] JObject obj)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string mesordercode = obj["mesordercode"].ToString(); //宸ュ崟缂栧彿
+            string partcode = obj["partcode"].ToString(); //浜у搧缂栫爜
+            string stepseq = obj["stepseq"].ToString(); //宸ュ簭搴忓彿
+            string stepcode = obj["stepcode"].ToString(); //宸ュ簭缂栫爜
+            string wxcode = obj["wxcode"].ToString(); //澶栧崗渚涘簲鍟嗙紪鐮�
+            string outuser = obj["outuser"].ToString();  //鍙戞枡浜哄憳
+            string taskqty = obj["taskqty"].ToString(); //浠诲姟鏁伴噺
+            string fqty = obj["fqty"].ToString(); //鍙戞枡鏁伴噺
+            mes = WorkOrderBLL.SavaMesOrderStepOut(mesordercode, partcode, stepseq, stepcode, wxcode, outuser, taskqty, fqty, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐,鏀舵枡鎻愪氦]
+        /// <summary>
+        /// 鐢熶骇寮�鎶ュ伐,鏀舵枡鎻愪氦
+        /// </summary>
+        /// <param name="obj">鏀舵枡鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "SavaMesOrderStepIn")]
+        [HttpPost]
+        public JsonResult SavaMesOrderStepIn([FromBody] JObject obj)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string mesordercode = obj["mesordercode"].ToString(); //宸ュ崟缂栧彿
+            string partcode = obj["partcode"].ToString(); //浜у搧缂栫爜
+            string stepseq = obj["stepseq"].ToString(); //宸ュ簭搴忓彿
+            string stepcode = obj["stepcode"].ToString(); //宸ュ簭缂栫爜
+            string wxcode = obj["wxcode"].ToString(); //澶栧崗渚涘簲鍟嗙紪鐮�
+            string inbarcode = obj["inbarcode"].ToString(); //鍏ュ簱鏉$爜
+            string inuser = obj["inuser"].ToString();  //鏀舵枡浜哄憳
+            string taskqty = obj["taskqty"].ToString(); //浠诲姟鏁伴噺
+            string sqty = obj["sqty"].ToString(); //鏀舵枡鏁伴噺
+            string defectlist = obj["defectlist"].ToString();//涓嶈壇姹囨��
+            string remarks = obj["remarks"].ToString(); //澶囨敞
+            List<ReportDefectList> defectobjs = JsonConvert.DeserializeObject<List<ReportDefectList>>(defectlist);
+            mes = WorkOrderBLL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty, defectobjs, remarks, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[涓嶈壇澶勭悊,鎻愪氦]
+        /// <summary>
+        /// 涓嶈壇澶勭悊,鎻愪氦
+        /// </summary>
+        /// <param name="json">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "EditOrderNgStepSeave")]
+        [HttpPost]
+        public JsonResult EditOrderNgStepSeave(ReportDefectHandle json)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = WorkOrderBLL.EditOrderNgStepSeave(json, us);
+            return Json(mes);
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/DLL/BLL/GridReportBLL.cs b/VueWebCoreApi/DLL/BLL/GridReportBLL.cs
new file mode 100644
index 0000000..33d22d1
--- /dev/null
+++ b/VueWebCoreApi/DLL/BLL/GridReportBLL.cs
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.DAL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.BLL
+{
+    public class GridReportBLL
+    {
+        #region[MES宸ュ崟鎵撳嵃]
+        public static ToMessage MesOrderPrintSearch(User us, string mesordercode)
+        {
+            return GridReportDAL.MesOrderPrintSearch(us, mesordercode);
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs b/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
index c9cf080..54db46e 100644
--- a/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
@@ -141,5 +141,33 @@
             return WorkOrderDAL.MesOrderStepStart(OperType, SelectType, wocode, stepcode);
         }
         #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦]
+        public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode,string stepprice, string eqpcode, string inbarcode, string reckway, string usergroupcode, string reportuser, string taskqty, string startqty, string reportqty, List<ReportDefectList> defectobjs, string remarks, User us)
+        {
+            return WorkOrderDAL.SavaMesOrderStepReport(mesordercode, partcode, stepseq, stepcode, stepprice, eqpcode, inbarcode, reckway, usergroupcode, reportuser, taskqty, startqty, reportqty, defectobjs, remarks, us);
+        }
+        #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐,鍙戞枡鎻愪氦]
+        public static ToMessage SavaMesOrderStepOut(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string outuser, string taskqty, string fqty, User us)
+        {
+            return WorkOrderDAL.SavaMesOrderStepOut(mesordercode, partcode, stepseq, stepcode, wxcode, outuser, taskqty, fqty, us);
+        }
+        #endregion
+
+        #region[鐢熶骇寮�鎶ュ伐,鏀舵枡鎻愪氦]
+        public static ToMessage SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string inbarcode, string inuser, string taskqty, string sqty, List<ReportDefectList> defectobjs, string remarks, User us)
+        {
+            return WorkOrderDAL.SavaMesOrderStepIn(mesordercode, partcode, stepseq, stepcode, wxcode, inbarcode, inuser, taskqty, sqty, defectobjs, remarks, us);
+        }
+        #endregion
+
+        #region[涓嶈壇澶勭悊,鎻愪氦]
+        public static ToMessage EditOrderNgStepSeave(ReportDefectHandle json, User us)
+        {
+            return WorkOrderDAL.EditOrderNgStepSeave(json, us);
+        }
+        #endregion
     }
 }
diff --git a/VueWebCoreApi/DLL/DAL/GridReportDAL.cs b/VueWebCoreApi/DLL/DAL/GridReportDAL.cs
new file mode 100644
index 0000000..44b1065
--- /dev/null
+++ b/VueWebCoreApi/DLL/DAL/GridReportDAL.cs
@@ -0,0 +1,63 @@
+锘縰sing Dapper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.DAL
+{
+    public class GridReportDAL
+    {
+        public static DataTable dt;    //瀹氫箟鍏ㄥ眬鍙橀噺dt
+        public static bool res;       //瀹氫箟鍏ㄥ眬鍙橀噺dt
+        public static ToMessage mes = new ToMessage(); //瀹氫箟鍏ㄥ眬杩斿洖淇℃伅瀵硅薄
+        public static GridMessage gidmes = new GridMessage(); //瀹氫箟鍏ㄥ眬杩斿洖淇℃伅瀵硅薄
+        public static string strProcName = ""; //瀹氫箟鍏ㄥ眬sql鍙橀噺
+        public static List<SqlParameter> listStr = new List<SqlParameter>(); //瀹氫箟鍏ㄥ眬鍙傛暟闆嗗悎
+
+        public static SqlParameter[] parameters; //瀹氫箟鍏ㄥ眬SqlParameter鍙傛暟鏁扮粍
+
+
+        #region[MES宸ュ崟鎵撳嵃]
+        public static ToMessage MesOrderPrintSearch(User us, string mesordercode)
+        {
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+
+            //鑾峰彇璁惧绫诲瀷鏁版嵁
+            sql = @"select A.seq,A.wo_code,M.m_po,P.partcode,P.partname,P.partspec,M.plan_qty as orderqty,@username as lm_user,@createdate as lm_date,
+                    B.stepcode,B.stepname,A.plan_qty,(case when A.good_qty=0 then '' end) as good_qty,(case when A.ng_qty=0 then '' end) as ng_qty,A.wo_code+';'+B.stepcode as stepqrcode    
+                    from TK_Wrk_Step A
+                    left join TK_Wrk_Man M on A.wo_code=M.wo_code
+                    left join TMateriel_Info P on M.materiel_code=P.partcode
+                    left join TStep B on A.step_code=B.stepcode
+                    where A.wo_code=@mesordercode ";
+            dynamicParams.Add("@username", us.username);
+            dynamicParams.Add("@createdate", DateTime.Now.ToString());
+            dynamicParams.Add("@mesordercode", mesordercode);
+            var data = DapperHelper.selectdata(sql, dynamicParams);
+            if (data.Rows.Count > 0)
+            {
+                gidmes.recordset = data;
+                mes.code = "200";
+                mes.count = 0;
+                mes.Message = "鏌ヨ鎴愬姛锛�";
+                mes.data = gidmes;
+            }
+            else
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = "鏃犵敓浜т换鍔℃暟鎹紒";
+                mes.data = null;
+            }
+
+            return mes;
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index b9b4bb3..73794b2 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -1,4 +1,5 @@
 锘縰sing Dapper;
+using Newtonsoft.Json.Linq;
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -463,7 +464,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.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.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
                             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 TMateriel_Info B on A.materiel_code=B.partcode
@@ -874,7 +875,7 @@
                     //list.Add(new { str = sql, parm = new { wocode = wocode } });
 
                     //鍒犻櫎宸ュ崟琛�
-                    sql = @"update TK_Wrk_Man set is_delete='1'  where wo_code=@wocode";
+                    sql = @"delete TK_Wrk_Man   where wo_code=@wocode";
                     list.Add(new { str = sql, parm = new { wocode = wocode } });
                 }
                 else
@@ -981,12 +982,12 @@
             string search = "";
             try
             {
-                if (mesorderstus == "宸插叧闂�")
+                if (mesorderstus == "CLOSED")
                 {
                     search += "and A.status=@mesorderstus ";
                     dynamicParams.Add("@mesorderstus", "CLOSED");
                 }
-                if (mesorderstus == "鏈叧闂�")
+                if (mesorderstus == "NOCLOSED")
                 {
                     search += "and A.status<>@mesorderstus ";
                     dynamicParams.Add("@mesorderstus", "CLOSED");
@@ -1044,7 +1045,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.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.stck_code,D.name as stck_name,A.plan_startdate,A.plan_enddate,A.piroque,A.sourceid,A.m_po,A.saleOrderDeliveryDate,W.saleOrderCode,U.username as lm_user,A.lm_date,A.data_sources
                             from TK_Wrk_Man A
                             left join TKimp_Ewo W on A.m_po=W.wo and A.materiel_code=W.materiel_code
                             left join TMateriel_Info B on A.materiel_code=B.partcode
@@ -1078,7 +1079,7 @@
             var dynamicParams = new DynamicParameters();
             try
             {
-                for (int i = 0; i < dt.Rows.Count; i++)
+                for (int i = 0; i < wocodelist.Length; i++)
                 {
                     //鍏抽棴宸ュ崟瀵瑰簲宸ュ簭浠诲姟
                     sql = @"update TK_Wrk_Step set status='CLOSED'  where wo_code in @wocode";
@@ -1561,5 +1562,679 @@
         }
         #endregion
 
+        #region[鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦]
+        public static ToMessage SavaMesOrderStepReport(string mesordercode, string partcode, string stepseq, string stepcode,string stepprice, string eqpcode, string inbarcode, string reckway, string usergroupcode, string reportuser, string taskqty, string startqty, string reportqty, List<ReportDefectList> defectobjs, string remarks, User us)
+        {
+            var sql = "";
+            decimal ngqty = 0;
+            string[] arra1 = new string[] { };
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+                //鑾峰彇鎶ュ伐浜哄憳銆佸垎閰嶆瘮渚�
+                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(); // 姹囨�讳笉鑹暟閲�
+                if (groupedItems.Count <= 0)
+                {
+                    ngqty = 0;
+                }
+                else
+                {
+                    //姹囨�讳笉鑹暟閲�
+                    ngqty = groupedItems.Sum(item => Convert.ToDecimal(item.badqty));
+                }
+                list.Clear();
+                //鍒ゆ柇鏄惁鏈夊紑宸ヨ褰�(鏃犳柊澧�)
+                sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code and style='S' and eqp_code=@eqpcode";
+                dynamicParams.Add("@wo_code", mesordercode);
+                dynamicParams.Add("@step_code", stepcode);
+                dynamicParams.Add("@eqpcode", eqpcode);
+                var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                if (data0.Rows.Count <= 0) 
+                {
+                    //鍐欏叆寮�鎶ュ伐璁板綍琛�
+                    sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,step_price,eqp_code,materiel_code,open_person,open_time,task_qty,start_qty,style,lm_user,lm_date) 
+                                values(@mesordercode,@stepseq,@stepcode,@step_price,@eqpcode,@partcode,@username,@opentime,@taskqty,@startqty,@style,@lm_user,@lm_date)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, step_price=stepprice, eqpcode = eqpcode, partcode = partcode, username = us.usercode, opentime = date, taskqty = taskqty, startqty = startqty, style = "S", lm_user = us.usercode, 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 } });
+                }
+
+                //鍒ゆ柇鏄惁鏈夋姤宸ヨ褰�(鏈夛細淇敼 鏃狅細鏂板)
+                sql = @"select *  from TK_Wrk_Record where wo_code=@wo_code and step_code=@step_code and style='B'";
+                dynamicParams.Add("@wo_code", mesordercode);
+                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;
+                //}
+                if (data.Rows.Count > 0)
+                {
+                    //鑾峰彇涓昏〃鏈�澶D
+                    sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_Record')+1,1) as id";
+                    var dt = DapperHelper.selecttable(sql);
+
+                    //鍐欏叆寮�鎶ュ伐璁板綍琛�
+                    sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,step_price,eqp_code,materiel_code,task_qty,start_qty,good_qty,ng_qty,style,lm_user,lm_date,inbarcode) 
+                                values(@mesordercode,@stepseq,@stepcode,@step_price,@eqpcode,@partcode,@taskqty,@startqty,@reportqty,@ngqty,@style,@lm_user,@lm_date,@inbarcode)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, step_price=stepprice, eqpcode = eqpcode, partcode = partcode, taskqty = taskqty, startqty = startqty, reportqty = reportqty, ngqty = ngqty, style = "B", lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+
+                    //鍐欏叆瀛愯〃
+                    for (int i = 0; i < arra.Count; i++)
+                    {
+                        sql = @"insert into  TK_Wrk_RecordSub(m_id,eqp_code,report_person,report_date,report_qty,reckway,usergroup_code,ratio,ng_qty,style,lm_user,lm_date) 
+                                values(@m_id,@eqp_code,@report_person,@report_date,@report_qty,@reckway,@usergroup_code,@ratio,@ng_qty,@style,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                m_id = int.Parse(dt.Rows[0]["ID"].ToString()),
+                                eqp_code = eqpcode,
+                                report_person = arra[i]["usercode"].ToString(),
+                                report_date = date,
+                                report_qty = reportqty,
+                                reckway = reckway,
+                                usergroup_code = usergroupcode,
+                                ratio = decimal.Parse(arra[i]["ratio"].ToString()),
+                                ng_qty = ngqty,
+                                style = "B",
+                                lm_user = us.usercode,
+                                lm_date = date
+                            }
+                        });
+
+                    }
+                    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_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 = us.usercode, lm_date = date } });
+
+                        }
+                    }
+                }
+                else
+                {
+                    //鑾峰彇涓昏〃鏈�澶D
+                    sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_Record')+1,1) as id";
+                    var dt = DapperHelper.selecttable(sql);
+                    //鍐欏叆寮�鎶ュ伐璁板綍琛�
+                    sql = @"insert into  TK_Wrk_Record(wo_code,step_seq,step_code,step_price,eqp_code,materiel_code,task_qty,start_qty,good_qty,ng_qty,style,lm_user,lm_date,inbarcode) 
+                                values(@mesordercode,@stepseq,@stepcode,@step_price,@eqpcode,@partcode,@taskqty,@startqty,@reportqty,@ngqty,@style,@lm_user,@lm_date,@inbarcode)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, step_price=stepprice, eqpcode = eqpcode, partcode = partcode, taskqty = taskqty, startqty = startqty, reportqty = reportqty, ngqty = ngqty, style = "B", lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+
+                    //鍐欏叆瀛愯〃
+                    for (int i = 0; i < arra.Count; i++)
+                    {
+                        sql = @"insert into  TK_Wrk_RecordSub(m_id,eqp_code,report_person,report_date,report_qty,reckway,usergroup_code,ratio,ng_qty,style,lm_user,lm_date) 
+                                values(@m_id,@eqp_code,@report_person,@report_date,@report_qty,@reckway,@usergroup_code,@ratio,@ng_qty,@style,@lm_user,@lm_date)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                m_id = int.Parse(dt.Rows[0]["ID"].ToString()),
+                                eqp_code = eqpcode,
+                                report_person = arra[i]["usercode"].ToString(),
+                                report_date = date,
+                                report_qty = reportqty,
+                                reckway = reckway,
+                                usergroup_code = usergroupcode,
+                                ratio = decimal.Parse(arra[i]["ratio"].ToString()),
+                                ng_qty = ngqty,
+                                style = "B",
+                                lm_user = us.usercode,
+                                lm_date = date
+                            }
+                        });
+
+                    }
+                    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_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 = us.usercode, lm_date = date } });
+
+                        }
+                    }
+                }
+
+
+                //鍥炲啓宸ュ崟宸ュ簭琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+                sql = @"update TK_Wrk_Step set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode and step_code=@stepcode";
+                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, reportqty = reportqty, ngqty = ngqty } });
+
+                //鍥炲啓宸ュ崟琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+                //sql = @"update TK_Wrk_Man set good_qty=good_qty+@reportqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode";
+                //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, reportqty = reportqty, ngqty = ngqty } });
+
+                //鍐欏叆ERP鍏ュ簱鍗�
+
+                //鍒ゆ柇鏄惁鏈亾宸ュ簭瀹屽伐鎶ュ伐(鑷姩鍏抽棴宸ュ崟鍙婂伐搴忎换鍔�)
+                //list = AutosCloseOrder.AutosColseOrderReport(list,mesordercode, partcode, stepseq,stepcode,reportqty,ngqty);
+                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 SavaMesOrderStepOut(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string outuser, string taskqty, string fqty, User us)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+                list.Clear();
+                //鍒ゆ柇鏄惁鏈夊彂鏂欒褰�(鏈�(鍚屽伐鍗�+宸ュ簭+澶栧崗渚涙柟淇敼) 鏃狅細鏂板)
+                sql = @"select *  from TK_Wrk_OutRecord where wo_code=@wo_code and step_code=@step_code and wx_code=@wx_code and style='F'";
+                dynamicParams.Add("@wo_code", mesordercode);
+                dynamicParams.Add("@step_code", stepcode);
+                dynamicParams.Add("@wx_code", wxcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count > 0)
+                {
+                    //淇敼鍙戞枡璁板綍
+                    sql = @"update TK_Wrk_OutRecord set fqty=fqty+@fqty,lm_user=@username,lm_date=@CreateDate
+                             where wo_code=@mesordercode and step_code=@stepcode and wx_code=@wx_code and style='F'";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, wx_code = wxcode, fqty = decimal.Parse(fqty), username =us.usercode, CreateDate = date } });
+                    //鍐欏叆瀛愯〃
+                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,out_person,out_time,fqty,style,lm_user,lm_date) 
+                                values(@m_id,@wx_code,@out_person,@out_time,@fqty,@style,@lm_user,@lm_date)";
+                    list.Add(new { str = sql, parm = new { m_id = int.Parse(data.Rows[0]["ID"].ToString()), wx_code = wxcode, out_person = outuser, out_time = date, fqty = fqty, style = 'F', lm_user = us.usercode, lm_date = date } });
+                }
+                else
+                {
+                    //鑾峰彇涓昏〃鏈�澶D
+                    sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
+                    var dt = DapperHelper.selecttable(sql);
+                    //鍐欏叆澶栧崗璁板綍涓昏〃
+                    sql = @"insert into  TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,fqty,lm_user,lm_date) 
+                                values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@fqty,@lm_user,@lm_date)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'F', fqty = fqty, lm_user = us.usercode, lm_date = date } });
+
+                    //鍐欏叆瀛愯〃
+                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,out_person,out_time,fqty,style,lm_user,lm_date) 
+                                values(@m_id,@wx_code,@out_person,@out_time,@fqty,@style,@lm_user,@lm_date)";
+                    list.Add(new { str = sql, parm = new { m_id = int.Parse(dt.Rows[0]["ID"].ToString()), wx_code = wxcode, out_person = outuser, out_time = date, fqty = fqty, style = 'F', lm_user = us.usercode, 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 } });
+
+
+                //鍥炲啓宸ュ崟琛ㄧ姸鎬佷负锛� 寮�宸ワ細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)
+                {
+                    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 SavaMesOrderStepIn(string mesordercode, string partcode, string stepseq, string stepcode, string wxcode, string inbarcode, string inuser, string taskqty, string sqty, List<ReportDefectList> defectobjs, string remarks, User us)
+        {
+            var sql = "";
+            string[] arra1 = new string[] { };
+            decimal ngqty = 0;
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+                //鍒ゆ柇鏄惁鏈変笉鑹暟鎹�
+                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
+                if (groupedItems.Count <= 0)
+                {
+                    ngqty = 0;
+                }
+                else
+                {
+                    //姹囨�讳笉鑹暟閲�
+                    ngqty = groupedItems.Sum(item => Convert.ToDecimal(item.badqty));
+                }
+
+                list.Clear();
+                //鍒ゆ柇鏄惁鏈夋敹鏂欒褰�(鏈夛細锛堝悓宸ュ崟+宸ュ簭+澶栧崗渚涙柟淇敼锛� 鏃狅細鏂板)
+                sql = @"select *  from TK_Wrk_OutRecord where wo_code=@wo_code and step_code=@step_code and wx_code=@wx_code and style='S'";
+                dynamicParams.Add("@wo_code", mesordercode);
+                dynamicParams.Add("@step_code", stepcode);
+                dynamicParams.Add("@wx_code", wxcode);
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                //鑾峰彇鍙戞枡璁板綍鐨勯粯璁ら�変腑鐨勫鍗忎緵搴斿晢涓庢敹鏂欐椂鐨勫鍗忎緵搴斿晢鍋氬姣斿垽鏂�
+                sql = @"select A.wx_code,B.name,A.fqty   from TK_Wrk_OutRecord A
+                        inner join TCustomer B on A.wx_code=B.code
+                        where A.wo_code=@wo_code and A.step_code=@step_code and wx_code=@wx_code and A.style='F' ";
+                dynamicParams.Add("@wo_code", mesordercode);
+                dynamicParams.Add("@step_code", stepcode);
+                dynamicParams.Add("@wx_code", wxcode);
+                var da = DapperHelper.selectdata(sql, dynamicParams);
+                if (da.Rows.Count <= 0)
+                {
+                    sql = @"select A.wx_code,B.name,A.fqty   from TK_Wrk_OutRecord A
+                        inner join TCustomer B on A.wx_code=B.code
+                        where A.wo_code=@wo_code and A.step_code=@step_code and A.style='F' ";
+                    dynamicParams.Add("@wo_code", mesordercode);
+                    dynamicParams.Add("@step_code", stepcode);
+                    var da1 = DapperHelper.selectdata(sql, dynamicParams);
+                    var dr = da1.AsEnumerable().ToList().Select(x => x.Field<string>("NAME")).ToList();
+                    string wxstring = (string.Join(",", dr.Select(x => x.ToString()).ToArray()));
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡澶栧崗渚涙柟涓庡彂鏂欏鍗忎緵搴斿晢涓嶅尮閰�,搴斾负锛氥��" + wxstring + "銆�!";
+                    mes.data = null;
+                    return mes;
+                }
+                if ((decimal.Parse(sqty) + ngqty) > decimal.Parse(da.Rows[0]["FQTY"].ToString()))  //鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鍙戞枡鏁伴噺
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺,涓嶈兘澶т簬鍙戞枡鏁伴噺:" + da.Rows[0]["FQTY"].ToString() + "!";
+                    mes.data = null;
+                    return mes;
+                }
+                //if (da.Rows[0]["WX_CODE"].ToString() != wxcode)
+                //{
+                //    mes.code = "300";
+                //    mes.count = 0;
+                //    mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡澶栧崗渚涙柟搴斾负锛�" + da.Rows[0]["NAME"].ToString() + "!";
+                //    mes.data = null;
+                //    return mes;
+                //}
+                if (data.Rows.Count > 0)
+                {
+                    decimal sum_sqty = data.AsEnumerable().Select(d => d.Field<decimal>("SQTY")).Sum();  //鑾峰彇鍚屽崟鍙�,鍚屽伐搴�,鍚屽鍗忎緵搴斿晢鏀舵枡鎬绘暟閲�
+                    decimal sum_fqty = da.AsEnumerable().Select(d => d.Field<decimal>("FQTY")).Sum();  //鑾峰彇鍚屽崟鍙�,鍚屽伐搴�,鍚屽鍗忎緵搴斿晢鍙戞枡鎬绘暟閲�
+                    if ((sum_sqty + decimal.Parse(sqty) + ngqty) > sum_fqty) //宸叉敹鏂欐�绘暟+褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺>鎬诲彂鏂欐暟閲�
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "鎿嶄綔澶辫触,褰撳墠鏀舵枡鏁伴噺+涓嶈壇鏁伴噺,涓嶈兘澶т簬寰呮敹鏁伴噺:" + (sum_fqty - sum_sqty) + "!";
+                        mes.data = null;
+                        return mes;
+                    }
+
+
+                    //鑾峰彇涓昏〃鏈�澶D
+                    sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
+                    var dt = DapperHelper.selecttable(sql);
+                    //鍐欏叆澶栧崗璁板綍涓昏〃
+                    sql = @"insert into  TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date,inbarcode) 
+                                values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date,@inbarcode)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+
+                    //鍐欏叆澶栧崗璁板綍瀛愯〃
+                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date) 
+                                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 = us.usercode, lm_date = date } });
+
+                    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_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 = us.usercode, lm_date = date } });
+
+                        }
+                    }
+                }
+                else
+                {
+                    //鑾峰彇涓昏〃鏈�澶D
+                    sql = @"select ISNULL(IDENT_CURRENT('TK_Wrk_OutRecord')+1,1) as id";
+                    var dt = DapperHelper.selecttable(sql);
+                    //鍐欏叆澶栧崗璁板綍涓昏〃
+                    sql = @"insert into  TK_Wrk_OutRecord(wo_code,step_seq,step_code,wx_code,materiel_code,style,sqty,ng_qty,lm_user,lm_date,inbarcode) 
+                                values(@mesordercode,@stepseq,@stepcode,@wx_code,@partcode,@style,@sqty,@ngqty,@lm_user,@lm_date,@inbarcode)";
+                    list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepseq = stepseq, stepcode = stepcode, wx_code = wxcode, partcode = partcode, style = 'S', sqty = sqty, ngqty = ngqty, lm_user = us.usercode, lm_date = date, inbarcode = inbarcode } });
+
+                    //鍐欏叆澶栧崗璁板綍瀛愯〃
+                    sql = @"insert into  TK_Wrk_OutRecordSub(m_id,wx_code,in_person,in_time,sqty,ng_qty,style,lm_user,lm_date) 
+                                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 = us.usercode, lm_date = date } });
+
+                    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_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 = us.usercode, lm_date = date } });
+
+                        }
+                    }
+                }
+                //鍥炲啓宸ュ崟宸ュ簭琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+                sql = @"update TK_Wrk_Step set good_qty=good_qty+@sqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode and step_code=@stepcode";
+                list.Add(new { str = sql, parm = new { mesordercode = mesordercode, stepcode = stepcode, sqty = sqty, ngqty = ngqty } });
+
+                //鍥炲啓宸ュ崟琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+                //sql = @"update TK_Wrk_Man set good_qty=good_qty+@sqty,ng_qty=ng_qty+@ngqty  where wo_code=@mesordercode";
+                //list.Add(new { str = sql, parm = new { mesordercode = mesordercode, sqty = sqty, ngqty = ngqty } });
+
+                ////鍐欏叆ERP鍏ュ簱鍗�
+
+                //鍒ゆ柇鏄惁鏈亾宸ュ簭瀹屽伐鎶ュ伐(鑷姩鍏抽棴宸ュ崟鍙婂伐搴忎换鍔�)
+                //list = AutosCloseOrder.AutosColseOrderReport(list, mesordercode, partcode, stepseq, stepcode, sqty, ngqty);
+
+                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 EditOrderNgStepSeave(ReportDefectHandle json, User us)
+        {
+            var sql = "";
+            string[] arra1 = new string[] { };
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            decimal sumrepair_qty = 0, sumlaborbad_qty = 0,summaterielbad_qty=0;  //绱缁翠慨鏁伴噺銆佺疮璁″伐搴熸暟閲忋�佺疮璁℃枡搴熸暟閲�
+            try
+            {
+                string date = DateTime.Now.ToString(); //鑾峰彇绯荤粺鏃堕棿
+                list.Clear();
+
+
+                //寰幆json鏁版嵁
+                for (int i = 0; i < json.Data.Rows.Count; i++)
+                {
+                    //鑷埗宸ュ簭
+                    if (json.Data.Rows[i]["STYLE"].ToString() == "Z")
+                    {
+                        //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曞瓙琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佸伐搴熸暟閲忋�佹枡搴熸暟閲�
+                        sql = @"update TK_Wrk_RecordSub set report_qty=report_qty+@repair_qty,ng_qty=ng_qty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+                                where  m_id=@m_id and style='B'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                m_id = int.Parse(json.Data.Rows[i]["M_ID"].ToString()),
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+                                materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString())
+                            }
+                        });
+                        //鍥炲啓瀵瑰簲鐨勬姤宸ヨ褰曚富琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+                        sql = @"update TK_Wrk_Record set good_qty=good_qty+@repair_qty,ng_qty=ng_qty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+                        where wo_code=@wo_code and step_code=@step_code and id=@id and style='B'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+                                materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_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]["M_ID"].ToString())
+                            }
+                        });
+                        //鍥炲啓缂洪櫡璁板綍琛ㄧ殑寰呭鐞嗘暟閲�
+                        sql = @"update CSR_WorkRecord_Defect set defect_pendqty=defect_pendqty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+                        where wo_code=@wo_code and step_code=@step_code and id=@id and style='B'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+                                materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_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,laborbad_qty,materielbad_qty,defect_code,style,lm_user,lm_date) 
+                                values(@defect_id,@wo_code,@partcode,@stepseq,@stepcode,@repair_qty,@laborbad_qty,@materielbad_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(),
+                                stepcode = json.Data.Rows[i]["STEP_CODE"].ToString(),
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+                                materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString()),
+                                defect_code = json.Data.Rows[i]["DEFECT_CODE"].ToString(),
+                                style = "B",
+                                lm_user = us.usercode,
+                                lm_date = date
+                            }
+                        });
+
+                        sumrepair_qty = sumrepair_qty + decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString());
+                        sumlaborbad_qty = sumlaborbad_qty + decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString());
+                        summaterielbad_qty = summaterielbad_qty + decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString());
+                    }
+                    //澶栧崗宸ュ簭
+                    if (json.Data.Rows[i]["STYLE"].ToString() == "S")
+                    {
+                        //鍥炲啓瀵瑰簲鐨勬敹鏂欒褰曞瓙琛ㄦ敹鏂欐暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+                        sql = @"update TK_Wrk_OutRecordSub set sqty=sqty+@repair_qty,ng_qty=ng_qty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+                                where  m_id=@m_id and style='S'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                m_id = int.Parse(json.Data.Rows[i]["M_ID"].ToString()),
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+                                materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString())
+                            }
+                        });
+                        //鍥炲啓瀵瑰簲鐨勬敹鏂欒褰曚富琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲忋�佹姤搴熸暟閲�
+                        sql = @"update TK_Wrk_OutRecord set sqty=sqty+@repair_qty,ng_qty=ng_qty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+                        where wo_code=@wo_code and step_code=@step_code and id=@id and style='S'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+                                materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_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]["M_ID"].ToString())
+                            }
+                        });
+                        //鍥炲啓缂洪櫡璁板綍琛ㄧ殑寰呭鐞嗘暟閲�
+                        sql = @"update CSR_WorkRecord_Defect set defect_pendqty=defect_pendqty-@repair_qty-@laborbad_qty-@materielbad_qty,laborbad_qty=laborbad_qty+@laborbad_qty,materielbad_qty=materielbad_qty+@materielbad_qty
+                        where wo_code=@wo_code and step_code=@step_code and id=@id and style='S'";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+                                materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_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,laborbad_qty,materielbad_qty,defect_code,style,lm_user,lm_date) 
+                                values(@defect_id,@wo_code,@partcode,@stepseq,@stepcode,@repair_qty,@laborbad_qty,@materielbad_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(),
+                                stepcode = json.Data.Rows[i]["STEP_CODE"].ToString(),
+                                repair_qty = decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString()),
+                                laborbad_qty = decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString()),
+                                materielbad_qty = decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString()),
+                                defect_code = json.Data.Rows[i]["DEFECT_CODE"].ToString(),
+                                style = "S",
+                                lm_user = us.usercode,
+                                lm_date = date
+                            }
+                        });
+                        sumrepair_qty = sumrepair_qty + decimal.Parse(json.Data.Rows[i]["REPAIR_QTY"].ToString());
+                        sumlaborbad_qty = sumlaborbad_qty + decimal.Parse(json.Data.Rows[i]["LABORBAD_QTY"].ToString());
+                        summaterielbad_qty = summaterielbad_qty + decimal.Parse(json.Data.Rows[i]["MATERIELBAD_QTY"].ToString());
+                    }
+                }
+
+                //鍥炲啓宸ュ崟宸ュ簭琛ㄥ悎鏍兼暟閲忋�佷笉鑹暟閲�
+                sql = @"update TK_Wrk_Step set good_qty=good_qty+@sumrepair_qty,ng_qty=ng_qty-@sumrepair_qty-@sumlaborbad_qty-@summaterielbad_qty,laborbad_qty=laborbad_qty+@sumlaborbad_qty,materielbad_qty=materielbad_qty+@summaterielbad_qty  
+                        where wo_code=@wo_code and step_code=@stepcode";
+                list.Add(new
+                {
+                    str = sql,
+                    parm = new
+                    {
+                        wo_code = json.Data.Rows[0]["WO_CODE"].ToString(),
+                        stepcode = json.Data.Rows[0]["STEP_CODE"].ToString(),
+                        sumrepair_qty = sumrepair_qty,
+                        sumlaborbad_qty = sumlaborbad_qty,
+                        summaterielbad_qty= summaterielbad_qty
+                    }
+                });
+                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
     }
 }
diff --git a/VueWebCoreApi/Models/ReportDefectList.cs b/VueWebCoreApi/Models/ReportDefectList.cs
new file mode 100644
index 0000000..f313779
--- /dev/null
+++ b/VueWebCoreApi/Models/ReportDefectList.cs
@@ -0,0 +1,13 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace VueWebCoreApi.Models
+{
+    public class ReportDefectList
+    {
+        public string badqty { get; set; }
+        public string defect_code { get; set; }
+    }
+}
diff --git a/VueWebCoreApi/Models/ScanStartReportData.cs b/VueWebCoreApi/Models/ScanStartReportData.cs
index f38fd6c..04c1cb2 100644
--- a/VueWebCoreApi/Models/ScanStartReportData.cs
+++ b/VueWebCoreApi/Models/ScanStartReportData.cs
@@ -15,8 +15,10 @@
         public string seq { get; set; } //褰撳墠宸ュ簭搴忓彿
         public string stepcode { get; set; } //褰撳墠宸ュ簭缂栫爜
         public string stepname { get; set; } //褰撳墠宸ュ簭
+        public string stepprice { get; set; } //褰撳墠宸ュ簭宸ヤ环
         public string nextstepcode { get; set; } //涓嬮亾宸ュ簭缂栫爜
         public string nextstepname { get; set; } //涓嬮亾宸ュ簭
+        public string nextstepprice { get; set; } //涓嬮亾宸ュ簭宸ヤ环
         public string stepdesc { get; set; } //宸ュ簭鎻忚堪
         public decimal planqty { get; set; } //浠诲姟鏁伴噺
         public decimal startqty { get; set; } //寮�宸ユ暟閲�
diff --git a/VueWebCoreApi/Models/ScanStartReportDataOut.cs b/VueWebCoreApi/Models/ScanStartReportDataOut.cs
index db4df81..49fd80f 100644
--- a/VueWebCoreApi/Models/ScanStartReportDataOut.cs
+++ b/VueWebCoreApi/Models/ScanStartReportDataOut.cs
@@ -14,8 +14,10 @@
         public string seq { get; set; } //褰撳墠宸ュ簭搴忓彿
         public string stepcode { get; set; } //褰撳墠宸ュ簭缂栫爜
         public string stepname { get; set; } //褰撳墠宸ュ簭
+        public string stepprice { get; set; } //褰撳墠宸ュ簭宸ヤ环
         public string nextstepcode { get; set; } //涓嬮亾宸ュ簭缂栫爜
         public string nextstepname { get; set; } //涓嬮亾宸ュ簭
+        public string nextstepprice { get; set; } //涓嬮亾宸ュ簭宸ヤ环
         public string stepdesc { get; set; } //宸ュ簭鎻忚堪
         public string wkshopcode { get; set; } //杞﹂棿缂栫爜
         public string wkshopname { get; set; } //杞﹂棿鍚嶇О
diff --git a/VueWebCoreApi/Tools/ExcelList.cs b/VueWebCoreApi/Tools/ExcelList.cs
index b93c662..a4e754c 100644
--- a/VueWebCoreApi/Tools/ExcelList.cs
+++ b/VueWebCoreApi/Tools/ExcelList.cs
@@ -29,7 +29,7 @@
                 //new ScoreReport("12","宸ヨ娓呭崟"),
                 //new ScoreReport("13","宸ヨ鐐规"),
                 //new ScoreReport("14","宸ヨ淇濆吇"),
-                new ScoreReport("15","宸ュ簭瀹氫箟"),
+                new ScoreReport("15","宸ュ簭璁剧疆"),
                 //new ScoreReport("16","宸ヨ壓璺嚎"),
                 //new ScoreReport("24","鑺傛媿宸ヤ环"),
                 new ScoreReport("17","璐ㄦ鏍囧噯"),
diff --git a/VueWebCoreApi/Tools/GridMessage.cs b/VueWebCoreApi/Tools/GridMessage.cs
new file mode 100644
index 0000000..1928ee0
--- /dev/null
+++ b/VueWebCoreApi/Tools/GridMessage.cs
@@ -0,0 +1,12 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace VueWebCoreApi.Tools
+{
+    public class GridMessage
+    {
+        public object recordset { get; set; }
+    }
+}
diff --git a/VueWebCoreApi/Tools/ScanStartReport.cs b/VueWebCoreApi/Tools/ScanStartReport.cs
index 05f841d..2c1f0a1 100644
--- a/VueWebCoreApi/Tools/ScanStartReport.cs
+++ b/VueWebCoreApi/Tools/ScanStartReport.cs
@@ -46,7 +46,7 @@
                 }
 
                 //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.isbott,A.isend,L.org_code,L.org_name  
+                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.stepprice,A.seq,T.flwtype,T.descr,A.status,A.plan_qty,A.isbott,A.isend,L.org_code,L.org_name  
                         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
@@ -67,6 +67,7 @@
                     rt.stepcode = data.Rows[0]["STEPCODE"].ToString(); //宸ュ簭缂栫爜
                     rt.stepname = data.Rows[0]["STEPNAME"].ToString(); //宸ュ簭鍚嶇О
                     rt.stepdesc = data.Rows[0]["DESCR"].ToString(); //宸ュ簭鎻忚堪
+                    rt.stepprice= data.Rows[0]["STEPPRICE"].ToString(); //宸ュ簭宸ヤ环
                     rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
 
                     flwtype = data.Rows[0]["FLWTYPE"].ToString();//鑾峰彇宸ュ簭灞炴��
@@ -75,7 +76,7 @@
                     rt.seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
 
                     //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭
-                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
+                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname,A.stepprice from TK_Wrk_Step A
                             left join  TStep T on A.step_code=T.stepcode
                             where A.wo_code=@ordercode and A.seq=@seq+1 ";
                     dynamicParams.Add("@ordercode", ordercode);
@@ -85,11 +86,13 @@
                     {
                         rt.nextstepcode = dt.Rows[0]["STEPCODE"].ToString();//涓嬮亾宸ュ簭缂栫爜
                         rt.nextstepname = dt.Rows[0]["STEPNAME"].ToString();//涓嬮亾宸ュ簭鍚嶇О
+                        rt.nextstepprice = data.Rows[0]["NEXTSTEPPRICE"].ToString(); //涓嬮亾宸ュ簭宸ヤ环
                     }
                     if (isend == "Y")  //褰撳墠宸ュ簭鏄湯閬撳伐搴�
                     {
                         rt.nextstepcode = "";//data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
                         rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+                        rt.nextstepprice = "";// data.Rows[0]["STEPPRICE"].ToString();//褰撳墠宸ュ簭宸ヤ环
                     }
                 }
                 else
@@ -416,7 +419,7 @@
                 }
 
                 //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.isbott,A.isend,L.org_code,L.org_name   
+                sql = @"select A.wo_code,P.partcode,P.partname,P.partspec, T.stepcode,T.stepname,A.seq,T.flwtype,T.descr,A.stepprice,A.status,A.plan_qty,A.isbott,A.isend,L.org_code,L.org_name   
                         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
@@ -438,14 +441,14 @@
                     rt.stepname = data.Rows[0]["STEPNAME"].ToString(); //宸ュ簭鍚嶇О
                     rt.stepdesc = data.Rows[0]["DESCR"].ToString(); //宸ュ簭鎻忚堪
                     rt.planqty = decimal.Parse(data.Rows[0]["PLAN_QTY"].ToString()); //浠诲姟鏁伴噺
-
+                    rt.stepprice = data.Rows[0]["STEPPRICE"].ToString(); //宸ュ簭宸ヤ环
                     flwtype = data.Rows[0]["FLWTYPE"].ToString();//鑾峰彇宸ュ簭灞炴��
                     isbott = data.Rows[0]["ISBOTT"].ToString();//棣栭亾宸ュ簭
                     isend = data.Rows[0]["ISEND"].ToString();//鏈亾宸ュ簭
                     rt.seq = data.Rows[0]["SEQ"].ToString();//宸ュ簭搴忓彿
 
                     //鑾峰彇褰撳墠宸ュ簭涓嬮亾宸ュ簭
-                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname from TK_Wrk_Step A
+                    sql = @"select A.isbott,A.isend,T.stepcode,T.stepname,A.stepprice from TK_Wrk_Step A
                             left join  TStep T on A.step_code=T.stepcode
                             where A.wo_code=@ordercode and A.seq=@seq+1 ";
                     dynamicParams.Add("@ordercode", ordercode);
@@ -455,11 +458,13 @@
                     {
                         rt.nextstepcode = dt.Rows[0]["STEPCODE"].ToString();//涓嬮亾宸ュ簭缂栫爜
                         rt.nextstepname = dt.Rows[0]["STEPNAME"].ToString();//涓嬮亾宸ュ簭鍚嶇О
+                        rt.nextstepprice = data.Rows[0]["NEXTSTEPPRICE"].ToString(); //涓嬮亾宸ュ簭宸ヤ环
                     }
                     if (isend == "Y")  //褰撳墠宸ュ簭鏄湯閬撳伐搴�
                     {
                         rt.nextstepcode = "";// data.Rows[0]["STEPCODE"].ToString();//褰撳墠宸ュ簭缂栫爜
                         rt.nextstepname = "";// data.Rows[0]["STEPNAME"].ToString();//褰撳墠宸ュ簭鍚嶇О
+                        rt.nextstepprice = ""; //data.Rows[0]["NEXTSTEPPRICE"].ToString();//涓嬮亾宸ュ簭宸ヤ环
                     }
                 }
                 else

--
Gitblit v1.9.3