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

---
 VueWebCoreApi/Controllers/ImportExcelController.cs |    8 
 VueWebCoreApi/Tools/ExcelList.cs                   |   26 +
 VueWebCoreApi/wwwroot/Excel/节拍工价(工序版).xls          |    0 
 VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs             |   21 +
 VueWebCoreApi/DLL/DAL/GridReportDAL.cs             |    2 
 VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs              |    7 
 VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs              |   76 ++++++
 VueWebCoreApi/wwwroot/Excel/节拍工价(工艺路线版).xls        |    0 
 VueWebCoreApi/Models/BatchProcess.cs               |   23 ++
 VueWebCoreApi/Tools/ImportExcelData.cs             |  473 +++++++++++++++++++++++++-----------------
 VueWebCoreApi/Controllers/WorkOrderController.cs   |   17 +
 VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs           |    4 
 12 files changed, 445 insertions(+), 212 deletions(-)

diff --git a/VueWebCoreApi/Controllers/ImportExcelController.cs b/VueWebCoreApi/Controllers/ImportExcelController.cs
index 1617421..7f4c7cc 100644
--- a/VueWebCoreApi/Controllers/ImportExcelController.cs
+++ b/VueWebCoreApi/Controllers/ImportExcelController.cs
@@ -35,8 +35,10 @@
         [HttpGet]
         public JsonResult ExcelModelData()
         {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
             ToMessage mes = new ToMessage();
-            List<ScoreReport> list = ExcelList.ExcelData();
+            List<ScoreReport> list = ExcelList.ExcelData(us);
             mes.code = "200";
             mes.data = list;
             return Json(mes);
@@ -53,8 +55,10 @@
         [HttpGet]
         public JsonResult DownLoadExcel(string FileCode = null)
         {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
             ToMessage mes = new ToMessage();
-            List<ScoreReport> list = ExcelList.ExcelData();
+            List<ScoreReport> list = ExcelList.ExcelData(us);
             list = list.Where(s => s.FileCode == FileCode).ToList();
             var filename = list[0].FileName + ".xls";
             string fileip = AppSetting.GetAppSetting("FileIP");
diff --git a/VueWebCoreApi/Controllers/WorkOrderController.cs b/VueWebCoreApi/Controllers/WorkOrderController.cs
index d994ef5..a341cde 100644
--- a/VueWebCoreApi/Controllers/WorkOrderController.cs
+++ b/VueWebCoreApi/Controllers/WorkOrderController.cs
@@ -377,6 +377,23 @@
         }
         #endregion
 
+        #region[MES宸ュ崟鎵归噺鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭痌
+        /// <summary>
+        /// MES宸ュ崟鎵归噺鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
+        /// </summary>
+        /// <param name="list">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "MesOrderNewStepListContent")]
+        [HttpPost]
+        public JsonResult MesOrderNewStepListContent(List<BatchProcess> list)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            mes = WorkOrderBLL.MesOrderNewStepListContent(list, us);
+            return Json(mes);
+        }
+        #endregion
+
         #region[MES宸ュ崟鏌ョ湅宸ュ崟SOP]
         /// <summary>
         /// MES宸ュ崟鏌ョ湅宸ュ崟SOP
diff --git a/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs b/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
index ec68a64..e3ce808 100644
--- a/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/WorkOrderBLL.cs
@@ -132,6 +132,13 @@
         }
         #endregion
 
+        #region[MES宸ュ崟鎵归噺鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭痌
+        public static ToMessage MesOrderNewStepListContent(List<BatchProcess> list, User us)
+        {
+            return WorkOrderDAL.MesOrderNewStepListContent(list, us);
+        }
+        #endregion
+
         #region[MES宸ュ崟鏌ョ湅宸ュ崟SOP]
         public static ToMessage MesOrderSopSearch(string wocode, string materielcode)
         {
diff --git a/VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs b/VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs
index 7b4a21f..7f0d9b9 100644
--- a/VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs
@@ -83,8 +83,11 @@
                 case "16"://宸ヨ壓璺嚎
                     Message = ImportExcelData.Sixteen(dataTable, out StuCode);
                     break;
-                case "24"://鑺傛媿宸ヤ环
-                    Message = ImportExcelData.TwentyFour(savePath, out StuCode);
+                case "24"://鑺傛媿宸ヤ环(宸ヨ壓璺嚎鐗�)
+                    Message = ImportExcelData.TwentyFour(dataTable, out StuCode);
+                    break;
+                case "25"://鑺傛媿宸ヤ环(宸ュ簭鐗�)
+                    Message = ImportExcelData.TwentyFive(dataTable, out StuCode);
                     break;
                 case "17"://璐ㄦ鏍囧噯
                     Message = ImportExcelData.Seventeen(savePath, out StuCode);
@@ -187,8 +190,11 @@
                 case "16"://宸ヨ壓璺嚎
                     list = ImportExcelData.SixteenData(dataTable, out stuCode, out message, out count);
                     break;
-                case "24"://鑺傛媿宸ヤ环
-                    list = ImportExcelData.TwentyFourData(savePath, out stuCode, out message, out count);
+                case "24"://鑺傛媿宸ヤ环(宸ヨ壓璺嚎鐗�)
+                    list = ImportExcelData.TwentyFourData(dataTable, out stuCode, out message, out count);
+                    break;
+                case "25"://鑺傛媿宸ヤ环(宸ュ簭鐗�)
+                    list = ImportExcelData.TwentyFiveData(dataTable, out stuCode, out message, out count);
                     break;
                 case "17"://璐ㄦ鏍囧噯
                     list = ImportExcelData.SeventeenData(savePath, out stuCode, out message, out count);
@@ -283,8 +289,11 @@
                 case "16"://宸ヨ壓璺嚎
                     Message = ImportExcelData.SixteenSubmit(dataTable, us, out StuCode);
                     break;
-                case "24"://鑺傛媿宸ヤ环
-                    Message = ImportExcelData.TwentyFourSubmit(savePath, User, out StuCode);
+                case "24"://鑺傛媿宸ヤ环(宸ヨ壓璺嚎鐗�) 
+                    Message = ImportExcelData.TwentyFourSubmit(dataTable, us, out StuCode);
+                    break;
+                case "25"://鑺傛媿宸ヤ环(宸ュ簭鐗�) 
+                    Message = ImportExcelData.TwentyFiveSubmit(dataTable, us, out StuCode);
                     break;
                 case "17"://璐ㄦ鏍囧噯
                     Message = ImportExcelData.SeventeenSubmit(savePath, User, out StuCode);
diff --git a/VueWebCoreApi/DLL/DAL/GridReportDAL.cs b/VueWebCoreApi/DLL/DAL/GridReportDAL.cs
index a123fdc..5e48432 100644
--- a/VueWebCoreApi/DLL/DAL/GridReportDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/GridReportDAL.cs
@@ -35,7 +35,7 @@
                     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 ";
+                    where A.wo_code=@mesordercode order by A.seq";
             dynamicParams.Add("@username", us.username);
             dynamicParams.Add("@createdate", DateTime.Now.ToString());
             dynamicParams.Add("@mesordercode", mesordercode);
diff --git a/VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs b/VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs
index 769a0b6..025ca74 100644
--- a/VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/MouldManagerDAL.cs
@@ -1222,7 +1222,7 @@
                 }
                 //鏍规嵁妯″叿淇濆吇鏍囧噯缂栫爜鑾峰彇鍏宠仈鐨勬楠岄」鐩俊鎭�
                 sql = @"select B.code,B.name,A.chkdesc from TMouldmai_Deta A
-                        left join TMouldchk_Item  B on A.code=B.code
+                        left join TMouldmai_Item  B on A.code=B.code
                         where  A.mouldmai_main_code=@repairstand_code order by A.seq asc";
                 dynamicParams.Add("@repairstand_code", rout.code);
                 var data0 = DapperHelper.selectdata(sql, dynamicParams);
@@ -1787,7 +1787,7 @@
             {
                 //鑾峰彇瀵瑰簲妯″叿淇濆吇鏍囧噯
                 sql = @"select M.code,M.name   from TMouldmai_Mould E
-                        inner join TMouldchk_Main M on E.mouldmaimain_code=M.code
+                        inner join TMouldmai_Main M on E.mouldmaimain_code=M.code
                         where E.mould_code=@mouldcode order by M.lm_date desc";
                 dynamicParams.Add("@mouldcode", mouldcode);
                 var data = DapperHelper.selectdata(sql, dynamicParams);
diff --git a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
index 406fcf0..83002ae 100644
--- a/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/WorkOrderDAL.cs
@@ -1856,6 +1856,82 @@
         }
         #endregion
 
+        #region[MES宸ュ崟鎵归噺鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭痌
+        public static ToMessage MesOrderNewStepListContent(List<BatchProcess> list, User us)
+        {
+            var sql = "";
+            List<Dictionary<object, object>> dir = new List<Dictionary<object, object>>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                dynamic dynObj = JObject.Parse(us.mesSetting);
+                bool route = dynObj.route;
+                for (int i = 0; i < list.Count; i++)
+                {
+                    if (route) //宸ヨ壓璺嚎鐗�
+                    {
+                        Dictionary<object, object> dict = new Dictionary<object, object>();
+                        //MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
+                        sql = @"select S.wo_code,S.seq,S.step_code as stepcode,T.stepname as stepname,S.stepprice,S.isbott,S.isend,S.ratio
+                        from TK_Wrk_Step S
+                        inner join (
+                        select top 1 A.wo_code,A.route_code   from TK_Wrk_Man A
+                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.route_code=S.route_code
+                        where A.materiel_code=@partcode and A.wkshp_code=@wkshopcode and A.route_code=@routecode
+                        order by A.lm_date desc
+                        ) as W on S.wo_code=W.wo_code and S.route_code=W.route_code
+                        left join TStep  T on S.step_code=T.stepcode
+                        order by S.seq";
+                        dynamicParams.Add("@wkshopcode", list[i].wkshopcode);
+                        dynamicParams.Add("@partcode", list[i].partcode);
+                        dynamicParams.Add("@routecode", list[i].routecode);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        // 鍚戝瓧鍏镐腑娣诲姞鏁版嵁
+                        dict.Add("partcode", list[i].partcode);
+                        dict.Add("stepdata", data);
+                        // 灏嗗瓧鍏告坊鍔犲埌鍒楄〃涓�
+                        dir.Add(dict);
+                    }
+                    else
+                    {
+                        Dictionary<object, object> dict = new Dictionary<object, object>();
+                        //MES宸ュ崟鏌ユ壘鍘嗗彶寮曠敤鏈�鏂板伐搴忎俊鎭�
+                        sql = @"select S.wo_code,S.seq,S.step_code as stepcode,T.stepname as stepname,S.stepprice,S.isbott,S.isend,S.ratio
+                        from TK_Wrk_Step S
+                        inner join (
+                        select top 1 A.wo_code   from TK_Wrk_Man A
+                        inner join TK_Wrk_Step S on A.wo_code=S.wo_code
+                        where A.materiel_code=@partcode and A.wkshp_code=@wkshopcode
+                        order by A.lm_date desc
+                        ) as W on S.wo_code=W.wo_code
+                        left join TStep  T on S.step_code=T.stepcode
+                        order by S.seq";
+                        dynamicParams.Add("@wkshopcode", list[i].wkshopcode);
+                        dynamicParams.Add("@partcode", list[i].partcode);
+                        var data = DapperHelper.selectdata(sql, dynamicParams);
+                        // 鍚戝瓧鍏镐腑娣诲姞鏁版嵁
+                        dict.Add("partcode", list[i].partcode);
+                        dict.Add("stepdata", data);
+                        // 灏嗗瓧鍏告坊鍔犲埌鍒楄〃涓�
+                        dir.Add(dict);
+                    }
+                }
+                mes.code = "200";
+                mes.count = dir.Count;
+                mes.data = dir;
+                mes.message = "鏌ヨ鎴愬姛!";
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
         #region[MES宸ュ崟鏌ョ湅宸ュ崟SOP]
         public static ToMessage MesOrderSopSearch(string wocode, string materielcode)
         {
diff --git a/VueWebCoreApi/Models/BatchProcess.cs b/VueWebCoreApi/Models/BatchProcess.cs
new file mode 100644
index 0000000..fb8bdb4
--- /dev/null
+++ b/VueWebCoreApi/Models/BatchProcess.cs
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace VueWebCoreApi.Models
+{
+    public class BatchProcess
+    {
+        /// <summary>
+        /// 杞﹂棿缂栫爜
+        /// </summary>
+        public string wkshopcode { get; set; }
+        // <summary>
+        /// 宸ヨ壓缂栫爜
+        /// </summary>
+        public string routecode { get; set; }
+        /// <summary>
+        /// 浜у搧缂栫爜
+        /// </summary>
+        public string partcode { get; set; }
+    }
+}
diff --git a/VueWebCoreApi/Tools/ExcelList.cs b/VueWebCoreApi/Tools/ExcelList.cs
index 86a9452..53b438d 100644
--- a/VueWebCoreApi/Tools/ExcelList.cs
+++ b/VueWebCoreApi/Tools/ExcelList.cs
@@ -1,15 +1,19 @@
-锘縰sing System;
+锘縰sing Microsoft.AspNetCore.Http;
+using Newtonsoft.Json.Linq;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Threading.Tasks;
+using VueWebCoreApi.Models;
 
 namespace VueWebCoreApi.Tools
 {
     public class ExcelList
     {
-        public static List<ScoreReport> ExcelData()
+        public static List<ScoreReport> ExcelData(User us)
         {
-
+            dynamic dynObj = JObject.Parse(us.mesSetting);
+            bool route = dynObj.route;
             List<ScoreReport> list = new List<ScoreReport>
             {
                  //new ScoreReport("0","缁勭粐鏋舵瀯"),
@@ -36,10 +40,20 @@
                 //new ScoreReport("24","鑺傛媿宸ヤ环"),
                 new ScoreReport("17","璐ㄦ鏍囧噯"),
                 new ScoreReport("18","缂洪櫡瀹氫箟"),
-                new ScoreReport("19","鐢熶骇璁㈠崟"),
-                new ScoreReport("20","搴撳瓨鏌ヨ"),
-                new ScoreReport("21","鐗╂枡娓呭崟"),
+                //new ScoreReport("19","鐢熶骇璁㈠崟"),
+                //new ScoreReport("20","搴撳瓨鏌ヨ"),
+                //new ScoreReport("21","鐗╂枡娓呭崟"),
             };
+            //宸ヨ壓璺嚎鐗�
+            if (route)
+            {
+                list.Add(new ScoreReport("16", "宸ヨ壓璺嚎"));
+                list.Add(new ScoreReport("24", "鑺傛媿宸ヤ环(宸ヨ壓璺嚎鐗�)"));
+            }
+            else //宸ュ簭鐗�
+            {
+                list.Add(new ScoreReport("25", "鑺傛媿宸ヤ环(宸ュ簭鐗�)"));
+            }
             return list;
         }
     }
diff --git a/VueWebCoreApi/Tools/ImportExcelData.cs b/VueWebCoreApi/Tools/ImportExcelData.cs
index dfd3291..0d50220 100644
--- a/VueWebCoreApi/Tools/ImportExcelData.cs
+++ b/VueWebCoreApi/Tools/ImportExcelData.cs
@@ -1465,78 +1465,91 @@
         }
         #endregion
 
-        #region銆怑xcel妯℃澘涓婁紶楠岃瘉,鑺傛媿宸ヤ环妯℃澘銆�
-        public static string TwentyFour(string FileCode, out string code)
+        #region銆怑xcel妯℃澘涓婁紶楠岃瘉,鑺傛媿宸ヤ环(宸ヨ壓璺嚎鐗�)妯℃澘銆�
+        public static string TwentyFour(List<DataTable> excelTable, out string code)
         {
             string Message = "";
             code = "";
-            List<DataTable> excelTable = new List<DataTable>();
-            excelTable = ImportExcel.ExcelToTableList(FileCode);
-            if (excelTable.Count != 2)
+            if (excelTable.Count != 1)
             {
                 code = "300";
                 Message = "瀵煎叆妯℃澘涓嶇鍚堣鑼�,璇锋鏌heet鏁�";
                 return Message;
 
             }
-            else if (excelTable[0].Columns.Count != 9)
+            else if (excelTable[0].Columns.Count != 4)
             {
                 code = "300";
                 Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
                 return Message;
             }
-            else if (excelTable[0].Columns[0].ColumnName != "搴忓彿")
+            else if (excelTable[0].Columns[0].ColumnName != "*浜у搧缂栫爜")
             {
                 code = "300";
-                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�1鍒楀簲涓簕搴忓彿}";
+                Message = "浜у搧鍚嶇О妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�1鍒楀簲涓簕*浜у搧缂栫爜}";
                 return Message;
             }
-            else if (excelTable[0].Columns[1].ColumnName != "浜у搧鍚嶇О")
+            else if (excelTable[0].Columns[1].ColumnName != "*宸ヨ壓璺嚎缂栫爜")
             {
                 code = "300";
-                Message = "浜у搧鍚嶇О妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕浜у搧鍚嶇О}";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕*宸ヨ壓璺嚎缂栫爜}";
                 return Message;
             }
-            else if (excelTable[0].Columns[2].ColumnName != "宸ヨ壓璺嚎鍚嶇О")
+            else if (excelTable[0].Columns[2].ColumnName != "*宸ュ簭缂栫爜")
             {
                 code = "300";
-                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�3鍒楀簲涓簕宸ヨ壓璺嚎鍚嶇О}";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�3鍒楀簲涓簕*宸ュ簭缂栫爜}";
                 return Message;
             }
-            else if (excelTable[0].Columns[3].ColumnName != "宸ュ簭鍚嶇О")
+            else if (excelTable[0].Columns[3].ColumnName != "*璁′欢鍗曚环")
             {
                 code = "300";
-                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕宸ュ簭鍚嶇О}";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕*璁′欢鍗曚环}";
                 return Message;
             }
-            else if (excelTable[0].Columns[4].ColumnName != "璁惧鍚嶇О")
+            else
+            {
+                code = "200";
+                Message = "妯℃澘妫�楠岄�氳繃";
+            }
+            return Message;
+        }
+        #endregion
+
+        #region銆怑xcel妯℃澘涓婁紶楠岃瘉,鑺傛媿宸ヤ环(宸ュ簭鐗�)妯℃澘銆�
+        public static string TwentyFive(List<DataTable> excelTable, out string code)
+        {
+            string Message = "";
+            code = "";
+            if (excelTable.Count != 1)
             {
                 code = "300";
-                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕璁惧鍚嶇О}";
+                Message = "瀵煎叆妯℃澘涓嶇鍚堣鑼�,璇锋鏌heet鏁�";
+                return Message;
+
+            }
+            else if (excelTable[0].Columns.Count != 3)
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
                 return Message;
             }
-            else if (excelTable[0].Columns[5].ColumnName != "璁′欢鍗曚环")
+            else if (excelTable[0].Columns[0].ColumnName != "*浜у搧缂栫爜")
             {
                 code = "300";
-                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕璁′欢鍗曚环}";
+                Message = "浜у搧鍚嶇О妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�1鍒楀簲涓簕*浜у搧缂栫爜}";
                 return Message;
             }
-            else if (excelTable[0].Columns[6].ColumnName != "璁惧鑺傛媿")
+            else if (excelTable[0].Columns[1].ColumnName != "*宸ュ簭缂栫爜")
             {
                 code = "300";
-                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕璁惧鑺傛媿}";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕*宸ュ簭缂栫爜}";
                 return Message;
             }
-            else if (excelTable[0].Columns[7].ColumnName != "鐢熶骇鑺傛媿")
+            else if (excelTable[0].Columns[2].ColumnName != "*璁′欢鍗曚环")
             {
                 code = "300";
-                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕鐢熶骇鑺傛媿}";
-                return Message;
-            }
-            else if (excelTable[0].Columns[8].ColumnName != "鍨嬭厰鏁�")
-            {
-                code = "300";
-                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕鍨嬭厰鏁皚";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�3鍒楀簲涓簕*璁′欢鍗曚环}";
                 return Message;
             }
             else
@@ -4018,119 +4031,104 @@
         }
         #endregion
 
-        #region銆怑xcel涓婁紶鏁版嵁楠岃瘉,鑺傛媿宸ヤ环銆�
-        public static List<ExcelErro> TwentyFourData(string FileCode, out string StuCode, out string message, out int count)
+        #region銆怑xcel涓婁紶鏁版嵁楠岃瘉,鑺傛媿宸ヤ环(宸ヨ壓璺嚎鐗�)銆�
+        public static List<ExcelErro> TwentyFourData(List<DataTable> excelTable, out string StuCode, out string message, out int count)
         {
             message = "";
             StuCode = "";
             count = 0;
             string sql = "";
-            DataTable dt;
             var dynamicParams = new DynamicParameters();
+            DataTable dt;
             List<ExcelErro> list = new List<ExcelErro>();
-            DataTable excelTable = new DataTable();
-            list = ImportExcel.ExcelToTableErro(FileCode);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
-            excelTable = ImportExcel.ExcelToTable(FileCode);  //鑾峰彇Excel鏁版嵁
-            for (int i = 0; i < excelTable.Rows.Count; i++)
+            list = ImportExcel.InportExcelToTableListErro(excelTable);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
+            for (int i = 0; i < excelTable[0].Rows.Count; i++)
             {
                 //浜у搧鏄惁瀛樺湪
-                sql = @"select partname from TMateriel_Info 
-                        where partname=@partname";
-                dynamicParams.Add("@partname", excelTable.Rows[i][1].ToString().Trim());
+                sql = @"select partcode,partname from TMateriel_Info 
+                        where partcode=partcode";
+                dynamicParams.Add("@partcode", excelTable[0].Rows[i][0].ToString().Trim());
                 var data = DapperHelper.selectdata(sql, dynamicParams);
                 if (data.Rows.Count <= 0)
                 {
                     ExcelErro erro = new ExcelErro();
                     erro.RoeNumber = "/";
-                    erro.ErrorField = "{浜у搧鍚嶇О}";
-                    erro.ErrorCont = "瀛樿揣妗f:{浜у搧鍚嶇О}瀛楁" + excelTable.Rows[i][1].ToString().Trim() + "涓嶅瓨鍦�";
+                    erro.ErrorField = "{*浜у搧缂栫爜}";
+                    erro.ErrorCont = "瀛樿揣妗f:{*浜у搧缂栫爜}瀛楁" + excelTable[0].Rows[i][0].ToString().Trim() + "涓嶅瓨鍦�";
                     list.Add(erro);
                 }
                 //宸ヨ壓璺嚎鏄惁瀛樺湪
-                sql = @"select name from TFlw_Rout 
-                        where name=@routename";
-                dynamicParams.Add("@routename", excelTable.Rows[i][2].ToString().Trim());
+                sql = @"select code,name from TFlw_Rout 
+                        where code=@routecode";
+                dynamicParams.Add("@routecode", excelTable[0].Rows[i][1].ToString().Trim());
                 var data0 = DapperHelper.selectdata(sql, dynamicParams);
                 if (data0.Rows.Count <= 0)
                 {
                     ExcelErro erro = new ExcelErro();
                     erro.RoeNumber = "/";
-                    erro.ErrorField = "{宸ヨ壓璺嚎鍚嶇О}";
-                    erro.ErrorCont = "宸ヨ壓璺嚎:{宸ヨ壓璺嚎鍚嶇О}瀛楁" + excelTable.Rows[i][2].ToString().Trim() + "涓嶅瓨鍦�";
+                    erro.ErrorField = "{*宸ヨ壓璺嚎缂栫爜}";
+                    erro.ErrorCont = "宸ヨ壓璺嚎:{*宸ヨ壓璺嚎缂栫爜}瀛楁" + excelTable[0].Rows[i][1].ToString().Trim() + "涓嶅瓨鍦�";
                     list.Add(erro);
                 }
                 //宸ュ簭鏄惁瀛樺湪
-                sql = @"select stepname from TStep 
-                        where stepname=@stepname";
-                dynamicParams.Add("@stepname", excelTable.Rows[i][3].ToString().Trim());
+                sql = @"select stepcode,stepname from TStep 
+                        where stepcode=@stepcode";
+                dynamicParams.Add("@stepcode", excelTable[0].Rows[i][2].ToString().Trim());
                 var data1 = DapperHelper.selectdata(sql, dynamicParams);
                 if (data1.Rows.Count <= 0)
                 {
                     ExcelErro erro = new ExcelErro();
                     erro.RoeNumber = "/";
-                    erro.ErrorField = "{宸ュ簭鍚嶇О}";
-                    erro.ErrorCont = "宸ュ簭瀹氫箟:{宸ュ簭鍚嶇О}瀛楁" + excelTable.Rows[i][3].ToString().Trim() + "涓嶅瓨鍦�";
-                    list.Add(erro);
-                }
-                //璁惧鏄惁瀛樺湪
-                sql = @"select name from TEqpInfo 
-                        where name=@eqpname";
-                dynamicParams.Add("@eqpname", excelTable.Rows[i][4].ToString().Trim());
-                var data2 = DapperHelper.selectdata(sql, dynamicParams);
-                if (data2.Rows.Count <= 0)
-                {
-                    ExcelErro erro = new ExcelErro();
-                    erro.RoeNumber = "/";
-                    erro.ErrorField = "{璁惧鍚嶇О}";
-                    erro.ErrorCont = "璁惧娓呭崟:{璁惧鍚嶇О}瀛楁" + excelTable.Rows[i][4].ToString().Trim() + "涓嶅瓨鍦�";
+                    erro.ErrorField = "{*宸ュ簭缂栫爜}";
+                    erro.ErrorCont = "宸ュ簭瀹氫箟:{*宸ュ簭缂栫爜}瀛楁" + excelTable[0].Rows[i][2].ToString().Trim() + "涓嶅瓨鍦�";
                     list.Add(erro);
                 }
                 //鍒ゆ柇浜у搧鏄惁鍏宠仈宸ヨ壓璺嚎
-                sql = @"select M.partname,R.name  from TMateriel_Route A
+                sql = @"select M.partcode,R.code  from TMateriel_Route A
                         inner join TMateriel_Info M on A.materiel_code=M.partcode
                         inner join TFlw_Rout R on A.route_code=R.code
-                        where M.partname=@partname and R.name=@routename";
-                dynamicParams.Add("@partname", excelTable.Rows[i][1].ToString().Trim());
-                dynamicParams.Add("@routename", excelTable.Rows[i][2].ToString().Trim());
+                        where M.partcode=@partcode and R.code=@routecode";
+                dynamicParams.Add("@partcode", excelTable[0].Rows[i][0].ToString().Trim());
+                dynamicParams.Add("@routecode", excelTable[0].Rows[i][1].ToString().Trim());
                 var data3 = DapperHelper.selectdata(sql, dynamicParams);
                 if (data3.Rows.Count <= 0)
                 {
                     ExcelErro erro = new ExcelErro();
                     erro.RoeNumber = "/";
-                    erro.ErrorField = "{浜у搧鍚嶇О/宸ヨ壓璺嚎鍚嶇О}";
-                    erro.ErrorCont = "浜у搧鍏宠仈宸ヨ壓璺嚎:{浜у搧鍚嶇О}瀛楁:銆�" + excelTable.Rows[i][1].ToString().Trim() + "銆戝搴斿伐鑹鸿矾绾垮悕绉帮細銆�" + excelTable.Rows[i][2].ToString().Trim() + "銆戞湭鍏宠仈";
+                    erro.ErrorField = "{*浜у搧缂栫爜/*宸ヨ壓璺嚎缂栫爜}";
+                    erro.ErrorCont = "浜у搧鍏宠仈宸ヨ壓璺嚎:{*浜у搧缂栫爜}瀛楁:銆�" + excelTable[0].Rows[i][0].ToString().Trim() + "銆戝搴�*宸ヨ壓璺嚎缂栫爜锛氥��" + excelTable[0].Rows[i][1].ToString().Trim() + "銆戞湭鍏宠仈";
                     list.Add(erro);
                 }
                 //鍒ゆ柇宸ヨ壓璺嚎鏄惁鍏宠仈宸ュ簭
-                sql = @"select R.name,S.stepname  from TFlw_Rtdt A
+                sql = @"select R.code,S.stepcode  from TFlw_Rtdt A
                         inner join TFlw_Rout R on A.rout_code=R.code
                         inner join TStep S on A.step_code=S.stepcode
-                        where R.name=@routename and S.stepname=@stepname";
-                dynamicParams.Add("@routename", excelTable.Rows[i][2].ToString().Trim());
-                dynamicParams.Add("@stepname", excelTable.Rows[i][3].ToString().Trim());
+                        where R.code=@routecode and S.stepcode=@stepcode";
+                dynamicParams.Add("@routecode", excelTable[0].Rows[i][1].ToString().Trim());
+                dynamicParams.Add("@stepcode", excelTable[0].Rows[i][2].ToString().Trim());
                 var data4 = DapperHelper.selectdata(sql, dynamicParams);
                 if (data4.Rows.Count <= 0)
                 {
                     ExcelErro erro = new ExcelErro();
                     erro.RoeNumber = "/";
-                    erro.ErrorField = "{宸ヨ壓璺嚎鍚嶇О/宸ュ簭鍚嶇О}";
-                    erro.ErrorCont = "宸ヨ壓璺嚎鍏宠仈宸ュ簭:{宸ヨ壓璺嚎鍚嶇О}瀛楁:銆�" + excelTable.Rows[i][2].ToString().Trim() + "銆戝搴斿伐搴忓悕绉帮細銆�" + excelTable.Rows[i][3].ToString().Trim() + "銆戞湭鍏宠仈";
+                    erro.ErrorField = "{*宸ヨ壓璺嚎缂栫爜/*宸ュ簭缂栫爜}";
+                    erro.ErrorCont = "宸ヨ壓璺嚎鍏宠仈宸ュ簭:{*宸ヨ壓璺嚎缂栫爜}瀛楁:銆�" + excelTable[0].Rows[i][1].ToString().Trim() + "銆戝搴�*宸ュ簭缂栫爜锛氥��" + excelTable[0].Rows[i][2].ToString().Trim() + "銆戞湭鍏宠仈";
                     list.Add(erro);
                 }
-                //鍒ゆ柇宸ュ簭鏄惁鍏宠仈璁惧
-                sql = @"select E.name,S.stepname  from TFlw_Rteqp A
-                        inner join TStep S on A.step_code=S.stepcode
-                        inner join TEqpInfo E on A.eqp_code=E.code
-                        where S.stepname=@stepname and E.name=@eqpname";
-                dynamicParams.Add("@stepname", excelTable.Rows[i][3].ToString().Trim());
-                dynamicParams.Add("@eqpname", excelTable.Rows[i][4].ToString().Trim());
-                var data5 = DapperHelper.selectdata(sql, dynamicParams);
-                if (data5.Rows.Count <= 0)
+                //鍒ゆ柇浜у搧銆佸伐鑹鸿矾绾裤�佸伐搴忔槸鍚﹂噸澶�  
+                var isDuplicate = excelTable[0].AsEnumerable()
+                .GroupBy(row => new
+                {
+                    PartCode = row["*浜у搧缂栫爜"].ToString().Trim(),
+                    RoutCode = row["*宸ヨ壓璺嚎缂栫爜"].ToString().Trim(),
+                    StepCode = row["*宸ュ簭缂栫爜"].ToString().Trim()
+                }).Any(g => g.Count() > 1);
+                if (isDuplicate)
                 {
                     ExcelErro erro = new ExcelErro();
                     erro.RoeNumber = "/";
-                    erro.ErrorField = "{宸ュ簭鍚嶇О/璁惧鍚嶇О}";
-                    erro.ErrorCont = "宸ュ簭鍏宠仈璁惧:{宸ュ簭鍚嶇О}瀛楁:銆�" + excelTable.Rows[i][3].ToString().Trim() + "銆戝搴旇澶囧悕绉帮細銆�" + excelTable.Rows[i][4].ToString().Trim() + "銆戞湭鍏宠仈";
+                    erro.ErrorField = "{*浜у搧缂栫爜/*宸ヨ壓璺嚎缂栫爜/*宸ュ簭缂栫爜}";
+                    erro.ErrorCont = "妯℃澘鏁版嵁涓�:{*浜у搧缂栫爜}瀛楁锛氥��" + excelTable[0].Rows[i][0].ToString().Trim() + "銆戝搴攞*宸ヨ壓璺嚎缂栫爜}瀛楁:銆�" + excelTable[0].Rows[i][1].ToString().Trim() + "銆戝搴攞*宸ュ簭缂栫爜}锛氥��" + excelTable[0].Rows[i][2].ToString().Trim() + "銆戞湁閲嶅锛�";
                     list.Add(erro);
                 }
             }
@@ -4149,7 +4147,99 @@
             {
                 StuCode = "200";
                 message = "鏁版嵁楠岃瘉鎴愬姛";
-                count = excelTable.Rows.Count;
+                count = excelTable[0].Rows.Count;
+            }
+            return list;
+        }
+        #endregion
+
+        #region銆怑xcel涓婁紶鏁版嵁楠岃瘉,鑺傛媿宸ヤ环(宸ヨ壓璺嚎鐗�)銆�
+        public static List<ExcelErro> TwentyFiveData(List<DataTable> excelTable, out string StuCode, out string message, out int count)
+        {
+            message = "";
+            StuCode = "";
+            count = 0;
+            string sql = "";
+            var dynamicParams = new DynamicParameters();
+            DataTable dt;
+            List<ExcelErro> list = new List<ExcelErro>();
+            list = ImportExcel.InportExcelToTableListErro(excelTable);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
+            for (int i = 0; i < excelTable[0].Rows.Count; i++)
+            {
+                //浜у搧鏄惁瀛樺湪
+                sql = @"select partcode,partname from TMateriel_Info 
+                        where partcode=partcode";
+                dynamicParams.Add("@partcode", excelTable[0].Rows[i][0].ToString().Trim());
+                var data = DapperHelper.selectdata(sql, dynamicParams);
+                if (data.Rows.Count <= 0)
+                {
+                    ExcelErro erro = new ExcelErro();
+                    erro.RoeNumber = "/";
+                    erro.ErrorField = "{*浜у搧缂栫爜}";
+                    erro.ErrorCont = "瀛樿揣妗f:{*浜у搧缂栫爜}瀛楁" + excelTable[0].Rows[i][0].ToString().Trim() + "涓嶅瓨鍦�";
+                    list.Add(erro);
+                }
+                //宸ュ簭鏄惁瀛樺湪
+                sql = @"select stepcode,stepname from TStep 
+                        where stepcode=@stepcode";
+                dynamicParams.Add("@stepcode", excelTable[0].Rows[i][1].ToString().Trim());
+                var data1 = DapperHelper.selectdata(sql, dynamicParams);
+                if (data1.Rows.Count <= 0)
+                {
+                    ExcelErro erro = new ExcelErro();
+                    erro.RoeNumber = "/";
+                    erro.ErrorField = "{*宸ュ簭缂栫爜}";
+                    erro.ErrorCont = "宸ュ簭瀹氫箟:{*宸ュ簭缂栫爜}瀛楁" + excelTable[0].Rows[i][1].ToString().Trim() + "涓嶅瓨鍦�";
+                    list.Add(erro);
+                }
+                //鍒ゆ柇浜у搧鏄惁鍏宠仈宸ュ簭
+                sql = @"select M.partcode,R.stepcode  from TMateriel_Step A
+                        inner join TMateriel_Info M on A.materiel_code=M.partcode
+                        inner join TStep R on A.step_code=R.stepcode
+                        where M.partcode=@partcode and R.stepcode=@stepcode";
+                dynamicParams.Add("@partcode", excelTable[0].Rows[i][0].ToString().Trim());
+                dynamicParams.Add("@stepcode", excelTable[0].Rows[i][1].ToString().Trim());
+                var data3 = DapperHelper.selectdata(sql, dynamicParams);
+                if (data3.Rows.Count <= 0)
+                {
+                    ExcelErro erro = new ExcelErro();
+                    erro.RoeNumber = "/";
+                    erro.ErrorField = "{*浜у搧缂栫爜/*宸ュ簭缂栫爜}";
+                    erro.ErrorCont = "浜у搧鍏宠仈宸ュ簭:{*浜у搧缂栫爜}瀛楁:銆�" + excelTable[0].Rows[i][0].ToString().Trim() + "銆戝搴�*宸ュ簭缂栫爜锛氥��" + excelTable[0].Rows[i][1].ToString().Trim() + "銆戞湭鍏宠仈";
+                    list.Add(erro);
+                }
+                //鍒ゆ柇浜у搧銆佸伐搴忔槸鍚﹂噸澶�  
+                var isDuplicate = excelTable[0].AsEnumerable()
+                .GroupBy(row => new
+                {
+                    PartCode = row["*浜у搧缂栫爜"].ToString().Trim(),
+                    StepCode = row["*宸ュ簭缂栫爜"].ToString().Trim()
+                }).Any(g => g.Count() > 1);
+                if (isDuplicate)
+                {
+                    ExcelErro erro = new ExcelErro();
+                    erro.RoeNumber = "/";
+                    erro.ErrorField = "{浜у搧缂栫爜/宸ュ簭缂栫爜}";
+                    erro.ErrorCont = "妯℃澘鏁版嵁涓�:{*浜у搧缂栫爜}瀛楁锛氥��" + excelTable[0].Rows[i][0].ToString().Trim() + "銆戝搴�*宸ュ簭缂栫爜锛氥��" + excelTable[0].Rows[i][1].ToString().Trim() + "銆戞湁閲嶅锛�";
+                    list.Add(erro);
+                }
+            }
+            if (list.Count > 0)
+            {
+                int index = 0;
+                foreach (ExcelErro item in list)
+                {
+                    index++;
+                    item.Seq = index.ToString();
+                }
+                StuCode = "301";
+                message = "鏁版嵁楠岃瘉澶辫触";
+            }
+            else
+            {
+                StuCode = "200";
+                message = "鏁版嵁楠岃瘉鎴愬姛";
+                count = excelTable[0].Rows.Count;
             }
             return list;
         }
@@ -5912,143 +6002,136 @@
         }
         #endregion
 
-        #region銆怑xcel鏁版嵁涓婁紶,鑺傛媿宸ヤ环銆�
-        public static string TwentyFourSubmit(string FileCode, string User, out string StuCode)
+        #region銆怑xcel鏁版嵁涓婁紶,鑺傛媿宸ヤ环(宸ヨ壓璺嚎鐗�)銆�
+        public static string TwentyFourSubmit(List<DataTable> excelTable, User us, out string StuCode)
         {
             string message = "";
             StuCode = "";
             string sql = "";
+            DataTable dt;
             List<object> list = new List<object>();
             var dynamicParams = new DynamicParameters();
             try
             {
                 list.Clear();
-                DataTable excelTable = new DataTable();
-                excelTable = ImportExcel.ExcelToTable(FileCode);
-                //瀵煎叆璁惧鐐规椤圭洰琛�
-                for (int i = 0; i < excelTable.Rows.Count; i++)
+                //瀵煎叆鑺傛媿宸ヤ环琛�
+                for (int i = 0; i < excelTable[0].Rows.Count; i++)
                 {
-                    string partcode = "", routecode = "", stepcode = "", eqpcode = "", wkspcode = "";
-                    //鏌ヨ浜у搧缂栫爜
-                    sql = @"select partcode from TMateriel_Info 
-                        where partname=@partname";
-                    dynamicParams.Add("@partname", excelTable.Rows[i][1].ToString().Trim());
+                    //鏌ヨ宸ュ簭鑺傛媿琛ㄤ腑锛氫骇鍝�+宸ヨ壓璺嚎+宸ュ簭鏄惁瀛樺湪
+                    sql = @"select *  from TPrteEqp_Stad where materiel_code=@partcode and route_code=@routecode and step_code=@stepcode";
+                    dynamicParams.Add("@partcode", excelTable[0].Rows[i][0].ToString().Trim());
+                    dynamicParams.Add("@routecode", excelTable[0].Rows[i][1].ToString().Trim());
+                    dynamicParams.Add("@stepcode", excelTable[0].Rows[i][2].ToString().Trim());
                     var data = DapperHelper.selectdata(sql, dynamicParams);
                     if (data.Rows.Count > 0)
                     {
-                        partcode = data.Rows[0]["partcode"].ToString();
-                    }
-                    else
-                    {
-                        StuCode = "浜у搧鍚嶇О锛氥��" + excelTable.Rows[i][1].ToString().Trim() + "銆戝搴旂紪鐮佷笉瀛樺湪锛�";
-                        message = "瀵煎叆澶辫触锛�";
-                    }
-                    //鏌ヨ宸ヨ壓璺嚎缂栫爜
-                    sql = @"select code from TFlw_Rout 
-                        where name=@routename";
-                    dynamicParams.Add("@routename", excelTable.Rows[i][2].ToString().Trim());
-                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
-                    if (data0.Rows.Count > 0)
-                    {
-                        routecode = data0.Rows[0]["code"].ToString();
-                    }
-                    else
-                    {
-                        StuCode = "宸ヨ壓璺嚎鍚嶇О锛氥��" + excelTable.Rows[i][2].ToString().Trim() + "銆戝搴旂紪鐮佷笉瀛樺湪锛�";
-                        message = "瀵煎叆澶辫触锛�";
-                    }
-                    //鏌ヨ宸ュ簭缂栫爜
-                    sql = @"select stepcode from TStep 
-                        where stepname=@stepname";
-                    dynamicParams.Add("@stepname", excelTable.Rows[i][3].ToString().Trim());
-                    var data1 = DapperHelper.selectdata(sql, dynamicParams);
-                    if (data1.Rows.Count > 0)
-                    {
-                        stepcode = data1.Rows[0]["stepcode"].ToString();
-                    }
-                    else
-                    {
-                        StuCode = "宸ュ簭鍚嶇О锛氥��" + excelTable.Rows[i][3].ToString().Trim() + "銆戝搴旂紪鐮佷笉瀛樺湪锛�";
-                        message = "瀵煎叆澶辫触锛�";
-                    }
-                    //鏌ヨ璁惧缂栫爜
-                    sql = @"select code from TEqpInfo 
-                        where name=@eqpname";
-                    dynamicParams.Add("@eqpname", excelTable.Rows[i][4].ToString().Trim());
-                    var data4 = DapperHelper.selectdata(sql, dynamicParams);
-                    if (data4.Rows.Count > 0)
-                    {
-                        eqpcode = data4.Rows[0]["code"].ToString();
-                    }
-                    else
-                    {
-                        StuCode = "璁惧鍚嶇О锛氥��" + excelTable.Rows[i][4].ToString().Trim() + "銆戝搴旂紪鐮佷笉瀛樺湪锛�";
-                        message = "瀵煎叆澶辫触锛�";
-                    }
-                    //鏌ヨ杞﹂棿缂栫爜
-                    sql = @"select wksp_code from TEqpInfo 
-                        where name=@eqpname";
-                    dynamicParams.Add("@eqpname", excelTable.Rows[i][4].ToString().Trim());
-                    var data5 = DapperHelper.selectdata(sql, dynamicParams);
-                    if (data5.Rows.Count > 0)
-                    {
-                        wkspcode = data5.Rows[0]["wksp_code"].ToString();
-                    }
-                    else
-                    {
-                        StuCode = "璁惧鍚嶇О锛氥��" + excelTable.Rows[i][4].ToString().Trim() + "銆戝搴旇溅闂寸紪鐮佷笉瀛樺湪锛�";
-                        message = "瀵煎叆澶辫触锛�";
-                    }
-                    //鏌ヨ宸ュ簭鑺傛媿琛ㄤ腑锛氫骇鍝�+宸ヨ壓璺嚎+宸ュ簭+璁惧鏄惁瀛樺湪
-                    sql = @"select *  from TPrteEqp_Stad
-                        where materiel_code=@partcode and route_code=@routecode and step_code=@stepcode and eqp_code=@eqpcode";
-                    dynamicParams.Add("@partcode", partcode);
-                    dynamicParams.Add("@routecode", routecode);
-                    dynamicParams.Add("@stepcode", stepcode);
-                    dynamicParams.Add("@eqpcode", eqpcode);
-                    var data6 = DapperHelper.selectdata(sql, dynamicParams);
-                    if (data6.Rows.Count > 0)
-                    {
-                        sql = @"update TPrteEqp_Stad set stand_value=@stand_value,eqp_value=@eqp_value,cavity_qty=@cavity_qty,unprice=@unprice,lm_user=@username,lm_date=@userdate
-                            where materiel_code=@partcode and route_code=@routecode and step_code=@stepcode and eqp_code=@eqpcode ";
+                        sql = @"update TPrteEqp_Stad set unprice=@unprice,lm_user=@username,lm_date=@userdate
+                            where materiel_code=@partcode and route_code=@routecode and step_code=@stepcode";
                         list.Add(new
                         {
                             str = sql,
                             parm = new
                             {
-                                partcode = partcode,
-                                routecode = routecode,
-                                stepcode = stepcode,
-                                eqpcode = eqpcode,
-                                stand_value = excelTable.Rows[i][7].ToString().Trim(),
-                                eqp_value = excelTable.Rows[i][6].ToString().Trim(),
-                                cavity_qty = excelTable.Rows[i][8].ToString().Trim(),
-                                unprice = excelTable.Rows[i][5].ToString().Trim(),
-                                username = User,
+                                partcode = excelTable[0].Rows[i][0].ToString().Trim(),
+                                routecode = excelTable[0].Rows[i][1].ToString().Trim(),
+                                stepcode = excelTable[0].Rows[i][2].ToString().Trim(),
+                                unprice = excelTable[0].Rows[i][3].ToString().Trim(),
+                                username = us.usercode,
                                 userdate = DateTime.Now.ToString()
                             }
                         });
                     }
                     else
                     {
-                        sql = @"insert into TPrteEqp_Stad(materiel_code,eqp_code,stand_value,route_code,unprice,eqp_value,cavity_qty,wkspcode,lm_user,lm_date,step_code) 
-                              values(@partcode,@eqpcode,@stand_value,@routecode,@unprice,@eqp_value,@cavity_qty,@wkspcode,@username,@userdate,@stepcode)";
+                        sql = @"insert into TPrteEqp_Stad(materiel_code,route_code,step_code,unprice,lm_user,lm_date) 
+                              values(@partcode,@routecode,@stepcode,@unprice,@username,@userdate)";
                         list.Add(new
                         {
                             str = sql,
                             parm = new
                             {
-                                partcode = partcode,
-                                eqpcode = eqpcode,
-                                stand_value = excelTable.Rows[i][7].ToString().Trim(),
-                                routecode = routecode,
-                                unprice = excelTable.Rows[i][5].ToString().Trim(),
-                                eqp_value = excelTable.Rows[i][6].ToString().Trim(),
-                                cavity_qty = excelTable.Rows[i][8].ToString().Trim(),
-                                wkspcode = wkspcode,
-                                username = User,
-                                userdate = DateTime.Now.ToString(),
-                                stepcode = stepcode
+                                partcode = excelTable[0].Rows[i][0].ToString().Trim(),
+                                routecode = excelTable[0].Rows[i][1].ToString().Trim(),
+                                stepcode = excelTable[0].Rows[i][2].ToString().Trim(),
+                                unprice = excelTable[0].Rows[i][3].ToString().Trim(),
+                                username = us.usercode,
+                                userdate = DateTime.Now.ToString()
+                            }
+                        });
+                    }
+                }
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    StuCode = "200";
+                    message = "瀵煎叆鎴愬姛锛�";
+                }
+                else
+                {
+                    StuCode = "300";
+                    message = "瀵煎叆澶辫触锛�";
+                }
+            }
+            catch (Exception e)
+            {
+                StuCode = "300";
+                message = e.Message;
+            }
+            return message;
+        }
+        #endregion
+
+        #region銆怑xcel鏁版嵁涓婁紶,鑺傛媿宸ヤ环(宸ュ簭鐗�)銆�
+        public static string TwentyFiveSubmit(List<DataTable> excelTable, User us, out string StuCode)
+        {
+            string message = "";
+            StuCode = "";
+            string sql = "";
+            DataTable dt;
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                list.Clear();
+                //瀵煎叆鑺傛媿宸ヤ环琛�
+                for (int i = 0; i < excelTable[0].Rows.Count; i++)
+                {
+                    //鏌ヨ宸ュ簭鑺傛媿琛ㄤ腑锛氫骇鍝�+宸ュ簭鏄惁瀛樺湪
+                    sql = @"select *  from TPrteEqp_Stad where materiel_code=@partcode  and step_code=@stepcode";
+                    dynamicParams.Add("@partcode", excelTable[0].Rows[i][0].ToString().Trim());
+                    dynamicParams.Add("@stepcode", excelTable[0].Rows[i][1].ToString().Trim());
+                    var data = DapperHelper.selectdata(sql, dynamicParams);
+                    if (data.Rows.Count > 0)
+                    {
+                        sql = @"update TPrteEqp_Stad set unprice=@unprice,lm_user=@username,lm_date=@userdate
+                            where materiel_code=@partcode  and step_code=@stepcode";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                partcode = excelTable[0].Rows[i][0].ToString().Trim(),
+                                stepcode = excelTable[0].Rows[i][1].ToString().Trim(),
+                                unprice = excelTable[0].Rows[i][2].ToString().Trim(),
+                                username = us.usercode,
+                                userdate = DateTime.Now.ToString()
+                            }
+                        });
+                    }
+                    else
+                    {
+                        sql = @"insert into TPrteEqp_Stad(materiel_code,step_code,unprice,lm_user,lm_date) 
+                              values(@partcode,@stepcode,@unprice,@username,@userdate)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                partcode = excelTable[0].Rows[i][0].ToString().Trim(),
+                                stepcode = excelTable[0].Rows[i][1].ToString().Trim(),
+                                unprice = excelTable[0].Rows[i][2].ToString().Trim(),
+                                username = us.usercode,
+                                userdate = DateTime.Now.ToString()
                             }
                         });
                     }
diff --git "a/VueWebCoreApi/wwwroot/Excel/\350\212\202\346\213\215\345\267\245\344\273\267\050\345\267\245\345\272\217\347\211\210\051.xls" "b/VueWebCoreApi/wwwroot/Excel/\350\212\202\346\213\215\345\267\245\344\273\267\050\345\267\245\345\272\217\347\211\210\051.xls"
new file mode 100644
index 0000000..574f322
--- /dev/null
+++ "b/VueWebCoreApi/wwwroot/Excel/\350\212\202\346\213\215\345\267\245\344\273\267\050\345\267\245\345\272\217\347\211\210\051.xls"
Binary files differ
diff --git "a/VueWebCoreApi/wwwroot/Excel/\350\212\202\346\213\215\345\267\245\344\273\267\050\345\267\245\350\211\272\350\267\257\347\272\277\347\211\210\051.xls" "b/VueWebCoreApi/wwwroot/Excel/\350\212\202\346\213\215\345\267\245\344\273\267\050\345\267\245\350\211\272\350\267\257\347\272\277\347\211\210\051.xls"
new file mode 100644
index 0000000..4f96212
--- /dev/null
+++ "b/VueWebCoreApi/wwwroot/Excel/\350\212\202\346\213\215\345\267\245\344\273\267\050\345\267\245\350\211\272\350\267\257\347\272\277\347\211\210\051.xls"
Binary files differ

--
Gitblit v1.9.3