From c48eb7425ab857ac6e1fee2f548971e87969fa84 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期二, 06 九月 2022 18:31:51 +0800
Subject: [PATCH] 大岛车间综合看板接口调整、车间公告开发、节拍工价导入接口开发

---
 VueWebApi/obj/Release/VueWebApi.pdb                                  |    0 
 VueWebApi/Controllers/SystemSettingController.cs                     |   65 ++
 .vs/VueWebApi/v16/.suo                                               |    0 
 VueWebApi/Logs/2022-09-06.TXT                                        |  106 ++++
 VueWebApi/DLL/DAL/ProductionManagementDAL.cs                         |   44 ++
 VueWebApi/Tools/ImportExcelData.cs                                   |  570 +++++++++++++++++++++++++
 VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache       |    0 
 VueWebApi/VueWebApi.csproj                                           |    1 
 VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache |    0 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb           |    0 
 VueWebApi/Controllers/ProductionManagementController.cs              |   12 
 VueWebApi/DLL/BLL/SystemSettingBLL.cs                                |   23 +
 VueWebApi/bin/VueWebApi.pdb                                          |    0 
 VueWebApi/Tools/ExcelList.cs                                         |    1 
 VueWebApi/DLL/DAL/ExcelCheckDAL.cs                                   |   21 
 VueWebApi/obj/Release/Package/PackageTmp/Excel/节拍工价.xls              |    0 
 VueWebApi/DLL/DAL/SystemSettingDAL.cs                                |  201 +++++++++
 VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt          |    1 
 VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user       |   13 
 VueWebApi/DLL/BLL/ProductionManagementBLL.cs                         |    7 
 VueWebApi/Excel/节拍工价.xls                                             |    0 
 VueWebApi/bin/VueWebApi.xml                                          |   88 +++
 VueWebApi/DLL/DAL/KanBanManagerentDAL.cs                             |   24 
 VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml           |   88 +++
 VueWebApi/Tools/DapperHelper.cs                                      |   32 +
 25 files changed, 1,251 insertions(+), 46 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index d011b36..09123d5 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/Controllers/ProductionManagementController.cs b/VueWebApi/Controllers/ProductionManagementController.cs
index 2ad28a2..a0d5aa4 100644
--- a/VueWebApi/Controllers/ProductionManagementController.cs
+++ b/VueWebApi/Controllers/ProductionManagementController.cs
@@ -683,5 +683,17 @@
         }
         #endregion
 
+        #region[MES宸ュ崟鎵归噺鍙嶅叧闂璢
+        [Route(template: "MesOrderBitchAntiClosedSeave")]
+        [HttpPost]
+        public HttpResponseMessage MesOrderBitchAntiClosedSeave(DataTable dt)
+        {
+
+            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
+            mes = ProductionManagementBLL.MesOrderBitchAntiClosedSeave(username, dt);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
     }
 }
diff --git a/VueWebApi/Controllers/SystemSettingController.cs b/VueWebApi/Controllers/SystemSettingController.cs
index 1677820..4c266d6 100644
--- a/VueWebApi/Controllers/SystemSettingController.cs
+++ b/VueWebApi/Controllers/SystemSettingController.cs
@@ -1,6 +1,7 @@
 锘縰sing Newtonsoft.Json.Linq;
 using System;
 using System.Collections.Generic;
+using System.Data;
 using System.Linq;
 using System.Net;
 using System.Net.Http;
@@ -77,5 +78,69 @@
            return TJson.toJson(mes);
         }
         #endregion
+
+
+
+        #region[杞﹂棿鍏憡鍒楄〃]
+        /// <summary>
+        /// 杞﹂棿鍏憡鍒楄〃
+        /// </summary>
+        /// <param name="wkspcode">杞﹂棿缂栫爜</param>
+        /// <param name="ancetitle">鍏憡涓婚</param>
+        /// <param name="ancecont">鍏憡鍐呭</param>
+        /// <param name="cancel">鏄惁鎾ら攢</param>
+        /// <param name="level">鍏憡绛夌骇</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "SystemAnnouncementSearch")]
+        [HttpGet]
+        public HttpResponseMessage SystemAnnouncementSearch(string wkspcode = null, string ancetitle = null,string ancecont=null,string cancel=null,string level=null, int page = 0, int rows = 0, string prop = null, string order = null)
+        {
+            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
+            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
+            mes = SystemSettingBLL.SystemAnnouncementSearch(wkspcode, ancetitle, ancecont, cancel, level, startNum, endNum, prop, order);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[杞﹂棿鍏憡鏂板缂栬緫鎻愪氦]
+        /// <summary>
+        /// 杞﹂棿鍏憡鏂板缂栬緫鎻愪氦
+        /// </summary>
+        /// <param name="id">id</param>
+        /// <param name="dt">杞﹂棿闆嗗悎</param>
+        /// <param name="ancetitle">鍏憡涓婚</param>
+        /// <param name="ancecont">鍏憡鍐呭</param>
+        /// <param name="level">鍏憡绛夌骇</param>
+        /// <param name="cancel">鏄惁鎾ら攢</param>
+        /// <param name="opertype">鎿嶄綔绫诲瀷</param>
+        /// <returns></returns>
+        [Route(template: "SystemAnnouncementAddUpdate")]
+        [HttpPost]
+        public HttpResponseMessage SystemAnnouncementAddUpdate(DataTable dt,string ancetitle,string ancecont,string level,string cancel,string opertype, string id = null)
+        {
+            var username = HttpContext.Current.Request.Cookies["admin"].Value.ToString(); //鎿嶄綔浜哄憳
+            mes = SystemSettingBLL.SystemAnnouncementAddUpdate(id,dt, ancetitle, ancecont, cancel, level, username, opertype);
+            return TJson.toJson(mes);
+        }
+        #endregion
+
+        #region[杞﹂棿鍏憡鍒犻櫎]
+        /// <summary>
+        /// 杞﹂棿鍏憡鍒犻櫎
+        /// </summary>
+        /// <param name="id">id</param>
+        /// <returns></returns>
+        [Route(template: "SystemAnnouncementDelete")]
+        [HttpPost]
+        public HttpResponseMessage SystemAnnouncementDelete(string id)
+        {
+            mes = SystemSettingBLL.SystemAnnouncementDelete(id);
+            return TJson.toJson(mes);
+        }
+        #endregion
     }
 }
diff --git a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
index 4430393..aecb0af 100644
--- a/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
+++ b/VueWebApi/DLL/BLL/ProductionManagementBLL.cs
@@ -248,5 +248,12 @@
             return ProductionManagementDAL.MesOrderBitchClosedSeave(username,dt);
         }
         #endregion
+
+        #region[MES宸ュ崟鎵归噺鍙嶅叧闂璢
+        public static ToMessage MesOrderBitchAntiClosedSeave(string username, DataTable dt)
+        {
+            return ProductionManagementDAL.MesOrderBitchAntiClosedSeave(username, dt);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/BLL/SystemSettingBLL.cs b/VueWebApi/DLL/BLL/SystemSettingBLL.cs
index 427983a..c9a6d26 100644
--- a/VueWebApi/DLL/BLL/SystemSettingBLL.cs
+++ b/VueWebApi/DLL/BLL/SystemSettingBLL.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using System.Data;
 using System.Linq;
 using System.Web;
 using VueWebApi.DLL.DAL;
@@ -29,5 +30,27 @@
             return SystemSettingDAL.NewEncodingRules(rightcode);
         }
         #endregion
+
+
+        #region[杞﹂棿鍏憡鍒楄〃]
+        public static ToMessage SystemAnnouncementSearch(string wkspcode, string ancetitle, string ancecont, string cancel, string level, int startNum, int endNum, string prop, string order)
+        {
+            return SystemSettingDAL.SystemAnnouncementSearch(wkspcode, ancetitle, ancecont, cancel, level, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[杞﹂棿鍏憡鏂板缂栬緫鎻愪氦]
+        public static ToMessage SystemAnnouncementAddUpdate(string id,DataTable dt, string ancetitle, string ancecont, string cancel, string level,string username, string opertype)
+        {
+            return SystemSettingDAL.SystemAnnouncementAddUpdate(id,dt, ancetitle, ancecont, cancel, level, username, opertype);
+        }
+        #endregion
+
+        #region[杞﹂棿鍏憡鍒犻櫎]
+        public static ToMessage SystemAnnouncementDelete(string id)
+        {
+            return SystemSettingDAL.SystemAnnouncementDelete(id);
+        }
+        #endregion
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/ExcelCheckDAL.cs b/VueWebApi/DLL/DAL/ExcelCheckDAL.cs
index 2bca88f..0110266 100644
--- a/VueWebApi/DLL/DAL/ExcelCheckDAL.cs
+++ b/VueWebApi/DLL/DAL/ExcelCheckDAL.cs
@@ -47,13 +47,13 @@
                     Message = ImportExcelData.Ten(savePath, out StuCode);
                     break;
                 case "22"://璁惧鐐规鏍囧噯
-                    Message = ImportExcelData.Ten(savePath, out StuCode);
+                    Message = ImportExcelData.TwentyTwo(savePath, out StuCode);
                     break;
                 case "11"://璁惧淇濆吇椤圭洰
                     Message = ImportExcelData.Eleven(savePath, out StuCode);
                     break;
                 case "23"://璁惧淇濆吇鏍囧噯
-                    Message = ImportExcelData.Eleven(savePath, out StuCode);
+                    Message = ImportExcelData.TwentyThree(savePath, out StuCode);
                     break;
                 case "12"://宸ヨ娓呭崟
                     Message = ImportExcelData.Twelve(savePath, out StuCode);
@@ -69,6 +69,9 @@
                     break;
                 case "16"://宸ヨ壓璺嚎
                     Message = ImportExcelData.Sixteen(savePath, out StuCode);
+                    break;
+                case "24"://鑺傛媿宸ヤ环
+                    Message = ImportExcelData.TwentyFour(savePath, out StuCode);
                     break;
                 case "17"://璐ㄦ鏍囧噯
                     Message = ImportExcelData.Seventeen(savePath, out StuCode);
@@ -136,13 +139,13 @@
                     list = ImportExcelData.TenData(savePath, out stuCode, out message, out count);
                     break;
                 case "22"://璁惧鐐规鏍囧噯
-                    list = ImportExcelData.TenData(savePath, out stuCode, out message, out count);
+                    list = ImportExcelData.TwentyTwoData(savePath, out stuCode, out message, out count);
                     break;
                 case "11"://璁惧淇濆吇椤圭洰
                     list = ImportExcelData.ElevenData(savePath, out stuCode, out message, out count);
                     break;
                 case "23"://璁惧淇濆吇鏍囧噯
-                    list = ImportExcelData.ElevenData(savePath, out stuCode, out message, out count);
+                    list = ImportExcelData.TwentyThreeData(savePath, out stuCode, out message, out count);
                     break;
                 case "12"://宸ヨ娓呭崟
                     list = ImportExcelData.TwelveData(savePath, out stuCode, out message, out count);
@@ -158,6 +161,9 @@
                     break;
                 case "16"://宸ヨ壓璺嚎
                     list = ImportExcelData.SixteenData(savePath, out stuCode, out message, out count);
+                    break;
+                case "24"://鑺傛媿宸ヤ环
+                    list = ImportExcelData.TwentyFourData(savePath, out stuCode, out message, out count);
                     break;
                 case "17"://璐ㄦ鏍囧噯
                     list = ImportExcelData.SeventeenData(savePath, out stuCode, out message, out count);
@@ -216,13 +222,13 @@
                     Message = ImportExcelData.TenSubmit(savePath, User, out StuCode);
                     break;
                 case "22"://璁惧鐐规鏍囧噯
-                    Message = ImportExcelData.TenSubmit(savePath, User, out StuCode);
+                    Message = ImportExcelData.TwentyTwoSubmit(savePath, User, out StuCode);
                     break;
                 case "11"://璁惧淇濆吇椤圭洰
                     Message = ImportExcelData.ElevenSubmit(savePath, User, out StuCode);
                     break;
                 case "23"://璁惧淇濆吇鏍囧噯
-                    Message = ImportExcelData.ElevenSubmit(savePath, User, out StuCode);
+                    Message = ImportExcelData.TwentyThreeSubmit(savePath, User, out StuCode);
                     break;
                 case "12"://宸ヨ娓呭崟
                     Message = ImportExcelData.TwelveSubmit(savePath, User, out StuCode);
@@ -239,6 +245,9 @@
                 case "16"://宸ヨ壓璺嚎
                     Message = ImportExcelData.SixteenSubmit(savePath, User, out StuCode);
                     break;
+                case "24"://鑺傛媿宸ヤ环
+                    Message = ImportExcelData.TwentyFourSubmit(savePath, User, out StuCode);
+                    break;
                 case "17"://璐ㄦ鏍囧噯
                     Message = ImportExcelData.SeventeenSubmit(savePath, User, out StuCode);
                     break;
diff --git a/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
index aa5bc8d..aa496a9 100644
--- a/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
+++ b/VueWebApi/DLL/DAL/KanBanManagerentDAL.cs
@@ -56,15 +56,16 @@
             {
                 if (shopcode != null || shopcode != "") //浜х嚎缂栫爜涓嶄负绌�
                 {
+                    string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
                     //鏌ヨ浜х嚎涓嬪凡寮�宸ョ殑鍔犲伐鍗曚俊鎭�
                     sql = @"select distinct E.saleOrderCode,A.wo_code,P.plan_qty,M.partcode,M.partname,M.partspec,T.name as uomname   from TK_Wrk_Record A
                                     inner join TK_Wrk_Man P on A.wo_code=P.wo_code
                                     left join TMateriel_Info M on P.materiel_code=M.partcode
                                     left join TUom T on M.uom_code=T.code 
                                     left join TKimp_Ewo E on P.m_po=E.wo and P.sourceid=E.id
-                                    where P.status<>'CLOSED' and P.status<>'NEW' and P.wkshp_code in(@shopcode) and A.style='S' and A.step_seq='1'";
-                    dynamicParams.Add("@shopcode", shopcode);
-                    var data0 = DapperHelper.selectdata(sql, dynamicParams);
+                                    where P.status<>'CLOSED' and P.status<>'NEW' and P.wkshp_code in @shopcode and A.style='S' and A.step_seq='1'";
+                    var data0 = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
+                
                     if (data0.Rows.Count > 0)
                     {
                         for (int j = 0; j < data0.Rows.Count; j++)
@@ -148,6 +149,7 @@
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
+            string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
             try
             {
                 //鑾峰彇浠诲姟鍒楄〃淇℃伅
@@ -159,10 +161,9 @@
                          inner join TKimp_Ewo E on A.m_po=E.wo and A.sourceid=E.id
                          left  join TMateriel_Info M on A.materiel_code=M.partcode
                          left  join TUom U on M.uom_code=U.code
-                         where A.status<>'CLOSED' and A.wkshp_code in(@shopcode) and A.is_delete<>'1' and B.isend='Y'
+                         where A.status<>'CLOSED' and A.wkshp_code in @shopcode and A.is_delete<>'1' and B.isend='Y'
                          )as A ";
-                dynamicParams.Add("@shopcode", shopcode);
-                var data = DapperHelper.selectdata(sql,dynamicParams);
+                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
                 mes.data = data;
@@ -183,6 +184,7 @@
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
+            string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
             try
             {
                 //鑾峰彇浜у搧鎶ュ伐top5淇℃伅
@@ -192,7 +194,7 @@
                         inner join TMateriel_Info M on A.materiel_code=M.partcode
                         inner  join TEqpInfo E on A.eqp_code=E.code
                         inner  join TOrganization W on E.wksp_code=W.org_code and W.description='W'
-                        where A.style='B' and S.isend='Y' and W.org_code in(@shopcode) and datediff(day,GETDATE(),A.lm_date)=0
+                        where A.style='B' and S.isend='Y' and W.org_code in @shopcode and datediff(day,GETDATE(),A.lm_date)=0
                         union all
                         select C.name as linename,'' as wkshname,M.partname,A.sqty as good_qty  from TK_Wrk_OutRecord A
                         inner join TK_Wrk_Step S on A.wo_code=S.wo_code and A.step_code=S.step_code
@@ -200,8 +202,7 @@
                         inner  join TCustomer C on A.wx_code=C.code and C.btype='WX'
                         where A.style='S' and S.isend='Y' and datediff(day,GETDATE(),A.lm_date)=0
                         ) as A group by A.org_name,A.name,A.partname order by good_qty desc";
-                dynamicParams.Add("@shopcode", shopcode);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
+                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
                 mes.data = data;
@@ -222,6 +223,7 @@
         {
             string sql = "";
             var dynamicParams = new DynamicParameters();
+            string[] selects = Array.ConvertAll<string, string>(shopcode.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
             try
             {
                 //鑾峰彇鎶ュ伐涓嶈壇top5淇℃伅
@@ -229,10 +231,10 @@
                         from CSR_WorkRecord_Defect A
                         inner join TDefect B on A.defect_code=B.code
                         inner join TK_Wrk_Man M on A.wo_code=M.wo_code
-                        where DateDiff(dd,A.lm_date,getdate())<=7 and M.wkshp_code in(@shopcode)
+                        where DateDiff(dd,A.lm_date,getdate())<=7 and M.wkshp_code in @shopcode
                         group by B.name order by cont desc";
                 dynamicParams.Add("@shopcode", shopcode);
-                var data = DapperHelper.selectdata(sql, dynamicParams);
+                var data = DapperHelper.selectlist(sql, new { shopcode = selects.ToArray() });
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
                 mes.data = data;
diff --git a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
index d0b5955..8012c84 100644
--- a/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
+++ b/VueWebApi/DLL/DAL/ProductionManagementDAL.cs
@@ -2475,5 +2475,49 @@
             return mes;
         }
         #endregion
+
+        #region[MES宸ュ崟鎵归噺鍙嶅叧闂璢
+        public static ToMessage MesOrderBitchAntiClosedSeave(string username, DataTable dt)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                for (int i = 0; i < dt.Rows.Count; i++)
+                {
+                    //鍏抽棴宸ュ崟瀵瑰簲宸ュ簭浠诲姟
+                    sql = @"update TK_Wrk_Step set status='CLOSED'  where wo_code=@wocode";
+                    list.Add(new { str = sql, parm = new { wocode = dt.Rows[i]["WO_CODE"].ToString() } });
+                    //鍥炲啓宸ュ崟琛ㄧ姸鎬佷负(鍏抽棴)
+                    sql = @"update TK_Wrk_Man set status='CLOSED',closeuser=@username,closedate=@closedate  where wo_code=@wocode";
+                    list.Add(new { str = sql, parm = new { wocode = dt.Rows[i]["WO_CODE"].ToString(), username = username, closedate = DateTime.Now.ToString() } });
+                }
+                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
     }
 }
\ No newline at end of file
diff --git a/VueWebApi/DLL/DAL/SystemSettingDAL.cs b/VueWebApi/DLL/DAL/SystemSettingDAL.cs
index b9dfafc..fcfc9c9 100644
--- a/VueWebApi/DLL/DAL/SystemSettingDAL.cs
+++ b/VueWebApi/DLL/DAL/SystemSettingDAL.cs
@@ -153,5 +153,206 @@
             return mes;
         }
         #endregion
+
+
+        #region[杞﹂棿鍏憡鍒楄〃]
+        public static ToMessage SystemAnnouncementSearch(string wkspcode, string ancetitle, string ancecont, string cancel, string level, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (wkspcode != "" && wkspcode != null)
+                {
+                    search += "and A.wksp_code=@wkspcode ";
+                    dynamicParams.Add("@wkspcode", wkspcode);
+                }
+                if (ancetitle != "" && ancetitle != null)
+                {
+                    search += "and A.title like '%'+@ancetitle+'%' ";
+                    dynamicParams.Add("@ancetitle", ancetitle);
+                }
+                if (ancecont != "" && ancecont != null)
+                {
+                    search += "and A.contents like '%'+@ancecont+'%' ";
+                    dynamicParams.Add("@ancecont", ancecont);
+                }
+                if (cancel != "" && cancel != null)
+                {
+                    search += "and A.if_cancel=@cancel ";
+                    dynamicParams.Add("@cancel", cancel);
+                }
+                if (level != "" && level != null)
+                {
+                    search += "and A.priority=@level ";
+                    dynamicParams.Add("@level", level);
+                }
+                if (search == "")
+                {
+                    search = "and 1=1 ";
+                }
+                //search = search.Substring(3);//鎴彇绱㈠紩2鍚庨潰鐨勫瓧绗�
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.id,A.wksp_code,T.org_name as wksp_name,A.title,A.contents,U.username as lm_user,A.lm_date,A.if_cancel,A.cancel_date,A.priority
+                            from TSystemAnnouncement A
+                            left join TOrganization T on A.wksp_code=T.org_code
+                            left join TUser U on A.lm_user=U.usercode
+                            where T.description='W' and A.is_delete='0' " + search + "";
+                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                mes.code = "200";
+                mes.Message = "鏌ヨ鎴愬姛!";
+                mes.count = total;
+                mes.data = data.ToList();
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+
+        #region[杞﹂棿鍏憡鏂板缂栬緫鎻愪氦]
+        public static ToMessage SystemAnnouncementAddUpdate(string id,DataTable dt, string ancetitle, string ancecont, string cancel, string level,string username, string opertype)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<object> list = new List<object>();
+            string cancel_date = "";
+            try
+            {
+                if (cancel == "Y")
+                {
+                    cancel_date = DateTime.Now.ToString();
+                }
+                if (opertype == "Add")
+                {
+                    for (int i = 0; i < dt.Rows.Count; i++)
+                    {
+                        //鍐欏叆宸ュ崟琛�
+                        sql = @"insert into TSystemAnnouncement(wksp_code,title,contents,if_cancel,cancel_date,lm_user,lm_date,priority)
+                                values(@wksp_code,@title,@contents,@if_cancel,@cancel_date,@lm_user,@lm_date,@priority)";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                wksp_code = dt.Rows[i]["WKSP_CODE"].ToString(),
+                                title = ancetitle,
+                                contents = ancecont,
+                                if_cancel = cancel,
+                                cancel_date = cancel_date,
+                                lm_user = username,
+                                lm_date = DateTime.Now.ToString(),
+                                priority = level
+                            }
+                        });
+                    }
+
+                    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;
+                    }
+                }
+                if (opertype == "Update")
+                {
+                    sql = @"update TSystemAnnouncement set wksp_code=@wksp_code,title=@title,contents=@contents,if_cancel=@if_cancel,cancel_date=@cancel_date,lm_user=@lm_user,lm_date=@lm_date,priority=@priority where id=@id";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            id=id,
+                            wksp_code = dt.Rows[0]["WKSP_CODE"].ToString(),
+                            title = ancetitle,
+                            contents = ancecont,
+                            if_cancel = cancel,
+                            cancel_date = cancel_date,
+                            lm_user = username,
+                            lm_date = DateTime.Now.ToString(),
+                            priority = level
+                        }
+                    });
+                    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 SystemAnnouncementDelete(string id)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                list.Clear();
+                sql = @"delete TSystemAnnouncement where id=@id";
+                list.Add(new { str = sql, parm = new { id = id } });
+
+                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
     }
 }
\ No newline at end of file
diff --git "a/VueWebApi/Excel/\350\212\202\346\213\215\345\267\245\344\273\267.xls" "b/VueWebApi/Excel/\350\212\202\346\213\215\345\267\245\344\273\267.xls"
new file mode 100644
index 0000000..caedff9
--- /dev/null
+++ "b/VueWebApi/Excel/\350\212\202\346\213\215\345\267\245\344\273\267.xls"
Binary files differ
diff --git a/VueWebApi/Logs/2022-09-06.TXT b/VueWebApi/Logs/2022-09-06.TXT
new file mode 100644
index 0000000..a501bcc
--- /dev/null
+++ b/VueWebApi/Logs/2022-09-06.TXT
@@ -0,0 +1,106 @@
+ 【时间】:2022-09-06 13:35:29,791
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 8 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:“@shopcode”附近有语法错误。
+引发异常路径:/api/KanBanManagerent/LineSearchTopLeftData
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectlist(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 227
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-09-06 13:47:07,897
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 10 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:必须声明标量变量 "@shopcode"。
+引发异常路径:/api/KanBanManagerent/LineSearchTopLeftData
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.<QueryImpl>d__140`1.MoveNext()
+   在 System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
+   在 System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
+   在 Dapper.SqlMapper.Query[T](IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 Dapper.SqlMapper.Query(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Boolean buffered, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectlist(String sql, List`1 sqlList) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 228
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-09-06 13:49:00,147
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 11 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:NotSupportedException
+消息内容:MultiExec is not supported by ExecuteReader
+引发异常路径:/api/KanBanManagerent/LineSearchTopLeftData
+引发异常的方法:GetParameterReader
+引发异常源:Dapper   在 Dapper.SqlMapper.GetParameterReader(IDbConnection cnn, CommandDefinition& command)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectlist(String sql, List`1 sqlList) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 227
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
+ 【时间】:2022-09-06 13:53:21,752
+ 【级别】:ERROR
+ 【类名】:日志记录
+ 【线程ID】: 12 
+ 【文件地址】:D:\新凯迪MES\VueWebApi\VueWebApi\Tools\LogHelper.cs 第25行
+ 【日志内容】:
+消息类型:SqlException
+消息内容:“@shopcode”附近有语法错误。
+引发异常路径:/api/KanBanManagerent/LineSearchTopLeftData
+引发异常的方法:OnError
+引发异常源:.Net SqlClient Data Provider   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
+   在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
+   在 System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
+   在 System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
+   在 System.Data.SqlClient.SqlDataReader.get_MetaData()
+   在 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString, Boolean isInternal, Boolean forDescribeParameterEncryption, Boolean shouldCacheForAlwaysEncrypted)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, Boolean inRetry, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean& usedCache, Boolean asyncWrite, Boolean inRetry)
+   在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
+   在 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
+   在 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderWithFlagsFallback(IDbCommand cmd, Boolean wasClosed, CommandBehavior behavior)
+   在 Dapper.SqlMapper.ExecuteReaderImpl(IDbConnection cnn, CommandDefinition& command, CommandBehavior commandBehavior, IDbCommand& cmd)
+   在 Dapper.SqlMapper.ExecuteReader(IDbConnection cnn, String sql, Object param, IDbTransaction transaction, Nullable`1 commandTimeout, Nullable`1 commandType)
+   在 VueWebApi.Tools.DapperHelper.selectlist(String sql, Object parm) 位置 D:\新凯迪MES\VueWebApi\VueWebApi\Tools\DapperHelper.cs:行号 228
+ 【日记详细】: 
+---------------------------------------------------------------------------------------------------------------
diff --git a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
index dca6eba..b8fb7ea 100644
--- a/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
+++ b/VueWebApi/Properties/PublishProfiles/FolderProfile.pubxml.user
@@ -5,7 +5,7 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
     <_PublishTargetUrl>D:\缃戠珯鍙戝竷\XKDMesApi</_PublishTargetUrl>
-    <History>True|2022-09-05T05:34:47.0627238Z;True|2022-09-05T11:07:59.2835592+08:00;True|2022-09-02T14:01:56.1233378+08:00;True|2022-08-31T23:40:49.5468281+08:00;True|2022-08-31T22:15:50.0388123+08:00;True|2022-08-31T19:20:24.7693742+08:00;True|2022-08-31T19:00:06.8271626+08:00;True|2022-08-31T18:45:08.6483670+08:00;True|2022-08-31T16:59:34.8244511+08:00;True|2022-08-31T15:39:51.0653019+08:00;True|2022-08-31T15:25:32.5277796+08:00;True|2022-08-31T13:31:48.5734692+08:00;True|2022-08-31T12:59:02.1022191+08:00;True|2022-08-31T10:06:03.2043884+08:00;True|2022-08-30T17:36:34.5932064+08:00;True|2022-08-30T17:18:12.4582841+08:00;True|2022-08-30T12:55:16.4084322+08:00;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
+    <History>True|2022-09-06T10:29:29.2671862Z;True|2022-09-06T16:41:04.2719822+08:00;True|2022-09-06T14:17:31.6896132+08:00;True|2022-09-06T13:14:39.9657702+08:00;True|2022-09-05T13:34:47.0627238+08:00;True|2022-09-05T11:07:59.2835592+08:00;True|2022-09-02T14:01:56.1233378+08:00;True|2022-08-31T23:40:49.5468281+08:00;True|2022-08-31T22:15:50.0388123+08:00;True|2022-08-31T19:20:24.7693742+08:00;True|2022-08-31T19:00:06.8271626+08:00;True|2022-08-31T18:45:08.6483670+08:00;True|2022-08-31T16:59:34.8244511+08:00;True|2022-08-31T15:39:51.0653019+08:00;True|2022-08-31T15:25:32.5277796+08:00;True|2022-08-31T13:31:48.5734692+08:00;True|2022-08-31T12:59:02.1022191+08:00;True|2022-08-31T10:06:03.2043884+08:00;True|2022-08-30T17:36:34.5932064+08:00;True|2022-08-30T17:18:12.4582841+08:00;True|2022-08-30T12:55:16.4084322+08:00;True|2022-08-30T10:12:08.0975252+08:00;True|2022-08-30T09:12:46.2845546+08:00;True|2022-08-30T08:58:47.8389468+08:00;True|2022-08-29T17:21:17.7779579+08:00;True|2022-08-29T17:17:49.5334583+08:00;True|2022-08-29T16:53:46.6019453+08:00;True|2022-08-29T16:46:50.8158231+08:00;True|2022-08-29T12:25:19.0140888+08:00;True|2022-08-26T17:02:52.4614637+08:00;True|2022-08-26T16:52:47.8585471+08:00;True|2022-08-26T16:47:02.5766798+08:00;True|2022-08-26T16:36:15.5793109+08:00;True|2022-08-26T16:15:55.1795297+08:00;True|2022-08-26T16:00:22.2697361+08:00;False|2022-08-26T15:58:16.7347649+08:00;True|2022-08-26T15:22:29.6367466+08:00;True|2022-08-25T20:02:24.4685508+08:00;True|2022-08-25T19:50:42.8601696+08:00;True|2022-08-25T15:56:20.3615518+08:00;True|2022-08-25T15:48:16.9923580+08:00;True|2022-08-25T15:27:07.9474640+08:00;True|2022-08-25T13:11:36.9626131+08:00;True|2022-08-24T14:10:58.2790665+08:00;True|2022-08-24T11:43:10.4463552+08:00;True|2022-08-24T08:02:17.9871411+08:00;True|2022-08-23T22:50:41.0238571+08:00;True|2022-08-23T22:16:20.9249814+08:00;True|2022-08-23T21:59:21.1909300+08:00;True|2022-08-23T21:50:40.8106496+08:00;True|2022-08-23T21:06:55.6611505+08:00;True|2022-08-23T19:49:07.0507418+08:00;True|2022-08-23T19:03:15.9808046+08:00;True|2022-08-23T18:58:57.1700899+08:00;True|2022-08-23T18:54:26.8058591+08:00;True|2022-08-23T18:45:39.1928602+08:00;True|2022-08-23T17:32:10.6125039+08:00;True|2022-08-23T15:58:34.9205174+08:00;True|2022-08-23T15:49:21.3383764+08:00;True|2022-08-23T15:14:21.0775398+08:00;True|2022-08-23T15:04:07.8829410+08:00;True|2022-08-23T14:59:17.5143895+08:00;True|2022-08-23T14:55:17.0069050+08:00;True|2022-08-23T14:41:41.0884731+08:00;True|2022-08-23T14:41:06.5045325+08:00;True|2022-08-23T14:28:54.7390570+08:00;True|2022-08-23T13:56:59.3670549+08:00;True|2022-08-23T13:56:38.8588174+08:00;True|2022-08-22T20:48:56.2180227+08:00;True|2022-08-22T19:07:12.1093584+08:00;True|2022-08-22T19:04:07.7837887+08:00;True|2022-08-22T14:38:00.9342884+08:00;True|2022-08-22T10:59:23.2073567+08:00;True|2022-08-22T10:53:58.0920733+08:00;True|2022-08-22T10:53:10.2446944+08:00;True|2022-08-22T10:43:35.3791396+08:00;True|2022-08-18T09:45:46.4643950+08:00;True|2022-08-18T09:40:55.2601145+08:00;True|2022-08-16T16:17:14.3399134+08:00;True|2022-08-15T17:58:16.1460123+08:00;True|2022-08-15T17:55:55.7137518+08:00;True|2022-08-15T17:44:37.6024482+08:00;True|2022-08-15T17:44:21.9583041+08:00;True|2022-08-15T17:43:23.1305690+08:00;True|2022-08-15T17:29:31.1670490+08:00;True|2022-08-15T17:26:42.9269470+08:00;True|2022-08-15T17:23:27.0940168+08:00;True|2022-08-15T17:07:32.9192045+08:00;True|2022-08-15T16:47:03.8611076+08:00;True|2022-08-15T16:41:50.6843705+08:00;True|2022-08-15T16:38:26.7407413+08:00;True|2022-08-15T16:31:49.0805578+08:00;True|2022-08-15T16:27:33.6712012+08:00;True|2022-08-15T16:24:35.1042794+08:00;True|2022-08-15T16:21:57.2757683+08:00;True|2022-08-15T16:18:17.3545368+08:00;True|2022-08-15T16:15:04.2645412+08:00;True|2022-08-15T14:44:09.3078026+08:00;True|2022-08-15T11:20:09.2930712+08:00;True|2022-08-15T10:42:12.2991587+08:00;True|2022-08-15T10:41:38.3711025+08:00;True|2022-08-15T10:19:06.9974383+08:00;True|2022-08-12T17:15:09.2133281+08:00;True|2022-08-12T10:48:05.8776009+08:00;True|2022-08-12T10:26:16.4183447+08:00;True|2022-08-12T08:33:01.9502005+08:00;True|2022-08-11T09:06:08.8394009+08:00;True|2022-08-11T08:39:06.2534634+08:00;True|2022-08-11T08:05:13.6919725+08:00;True|2022-08-08T14:48:16.3637965+08:00;True|2022-08-05T15:44:02.3797448+08:00;True|2022-08-05T09:57:55.7744103+08:00;True|2022-08-04T15:24:38.8785046+08:00;True|2022-08-04T15:11:16.7054147+08:00;True|2022-08-04T14:53:52.7239932+08:00;True|2022-08-04T14:48:35.6115863+08:00;True|2022-08-04T14:39:16.1113507+08:00;True|2022-08-04T12:26:39.4998322+08:00;True|2022-08-04T10:34:23.9626503+08:00;True|2022-08-04T08:12:51.4305728+08:00;True|2022-08-03T15:43:09.2317512+08:00;True|2022-08-02T19:17:55.0460145+08:00;True|2022-08-02T19:08:13.5872184+08:00;True|2022-08-02T18:50:12.1280167+08:00;True|2022-08-02T18:05:53.6540810+08:00;True|2022-08-02T16:13:26.3567210+08:00;True|2022-08-02T15:27:59.9264333+08:00;True|2022-07-25T15:35:49.6958399+08:00;True|2022-07-25T15:30:40.4444876+08:00;True|2022-07-25T13:33:38.4068153+08:00;True|2022-07-22T15:00:56.7326322+08:00;True|2022-07-22T14:51:18.0169121+08:00;True|2022-07-22T14:26:08.4246205+08:00;True|2022-07-22T14:23:05.0897016+08:00;True|2022-07-22T14:18:18.7806854+08:00;True|2022-07-22T14:09:29.7924367+08:00;True|2022-07-22T14:02:26.6403133+08:00;True|2022-07-22T13:56:40.0887615+08:00;True|2022-07-22T13:50:10.7852190+08:00;True|2022-07-22T11:38:25.6671780+08:00;True|2022-07-22T10:55:36.7947659+08:00;True|2022-07-21T17:53:41.1464086+08:00;True|2022-07-21T17:43:33.5311479+08:00;True|2022-07-21T16:09:07.7687640+08:00;True|2022-07-21T16:04:47.9317019+08:00;True|2022-07-21T15:58:21.2359033+08:00;True|2022-07-21T15:56:07.7425829+08:00;True|2022-07-21T15:51:34.7108381+08:00;True|2022-07-21T15:48:57.5735708+08:00;True|2022-07-21T15:44:25.8205030+08:00;True|2022-07-21T15:25:51.4222269+08:00;True|2022-07-21T15:22:36.8818295+08:00;True|2022-07-21T15:19:28.8532774+08:00;True|2022-07-21T14:57:45.7532568+08:00;True|2022-07-21T11:16:12.0900762+08:00;True|2022-07-21T10:10:40.4714948+08:00;True|2022-07-21T10:00:19.5258058+08:00;True|2022-07-14T14:34:28.5093226+08:00;True|2022-07-14T13:59:59.7754985+08:00;True|2022-07-14T12:46:29.6685284+08:00;True|2022-07-14T09:22:25.9079652+08:00;True|2022-07-14T09:22:04.6797478+08:00;True|2022-07-14T09:10:45.0177607+08:00;True|2022-07-14T08:41:43.3026713+08:00;True|2022-07-14T08:27:32.7454972+08:00;True|2022-07-14T08:21:58.6572366+08:00;True|2022-07-14T08:17:59.2904747+08:00;True|2022-07-14T08:12:39.8483472+08:00;True|2022-06-30T15:04:41.6941982+08:00;True|2022-06-24T16:39:01.1080301+08:00;True|2022-06-17T13:23:15.1455451+08:00;True|2022-06-17T13:22:18.5517557+08:00;True|2022-06-17T13:19:27.7323818+08:00;True|2022-06-17T13:12:24.1252779+08:00;True|2022-06-17T13:09:20.4234258+08:00;True|2022-06-17T13:06:49.9869509+08:00;True|2022-06-17T12:58:54.6964621+08:00;False|2022-06-17T12:58:10.6767711+08:00;False|2022-06-17T12:57:08.9747950+08:00;False|2022-06-17T12:56:18.4650121+08:00;False|2022-06-17T12:55:57.9981927+08:00;True|2022-06-13T14:21:36.5610928+08:00;True|2022-06-13T11:41:39.4210151+08:00;True|2022-06-11T02:35:03.4727934+08:00;True|2022-06-11T02:31:13.7362660+08:00;True|2022-06-11T02:30:58.3616790+08:00;True|2022-06-11T01:57:04.4951468+08:00;True|2022-06-10T13:27:13.2097124+08:00;</History>
   </PropertyGroup>
   <ItemGroup>
     <File Include="Areas/HelpPage/HelpPage.css">
@@ -717,16 +717,16 @@
       <publishTime>12/24/2021 15:38:29</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll">
-      <publishTime>09/05/2022 13:34:42</publishTime>
+      <publishTime>09/06/2022 18:29:23</publishTime>
     </File>
     <File Include="bin/VueWebApi.dll.config">
       <publishTime>06/15/2022 15:31:43</publishTime>
     </File>
     <File Include="bin/VueWebApi.pdb">
-      <publishTime>09/05/2022 13:34:42</publishTime>
+      <publishTime>09/06/2022 18:29:23</publishTime>
     </File>
     <File Include="bin/VueWebApi.xml">
-      <publishTime>09/05/2022 13:34:42</publishTime>
+      <publishTime>09/06/2022 18:29:23</publishTime>
     </File>
     <File Include="bin/WebActivatorEx.dll">
       <publishTime>02/08/2013 16:42:28</publishTime>
@@ -820,6 +820,9 @@
     </File>
     <File Include="Excel/缂洪櫡瀹氫箟.xls">
       <publishTime>08/12/2022 10:41:48</publishTime>
+    </File>
+    <File Include="Excel/鑺傛媿宸ヤ环.xls">
+      <publishTime>09/06/2022 18:29:08</publishTime>
     </File>
     <File Include="Excel/瑙掕壊娓呭崟.xls">
       <publishTime>07/22/2022 11:26:24</publishTime>
@@ -1512,7 +1515,7 @@
       <publishTime>06/10/2022 08:20:24</publishTime>
     </File>
     <File Include="Web.config">
-      <publishTime>09/05/2022 13:34:46</publishTime>
+      <publishTime>09/06/2022 18:29:28</publishTime>
     </File>
   </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/VueWebApi/Tools/DapperHelper.cs b/VueWebApi/Tools/DapperHelper.cs
index 35385df..7439ad3 100644
--- a/VueWebApi/Tools/DapperHelper.cs
+++ b/VueWebApi/Tools/DapperHelper.cs
@@ -211,6 +211,38 @@
         }
 
         /// <summary>
+        /// Dapper鏌ヨ杩斿洖datatable鏁版嵁(甯﹀弬鏁�)
+        /// </summary>
+        /// <param name="sql"></param>
+        /// <param name="parm"></param>
+        /// <returns></returns>
+        public static DataTable selectlist(string sql, Object parm)
+        {
+            //sql璇彞
+            using (IDbConnection conn = sqlConnection())
+            {
+                try
+                {
+                    DataTable table = new DataTable();
+                    var data = conn.ExecuteReader(sql, parm);
+                    table.Load(data);
+                    return table;
+                }
+                catch (Exception ex)
+                {
+                    //鍒涘缓鏃ュ織璁板綍缁勪欢瀹炰緥
+                    LogHelper.WriteLog(ex);
+                    throw ex;
+                }
+                finally
+                {
+                    conn.Dispose();
+                    conn.Close();
+                }
+            }
+        }
+
+        /// <summary>
         /// Dapper鏌ヨ杩斿洖datatable鏁版嵁(涓嶅甫鍙傛暟)
         /// </summary>
         /// <param name="sql"></param>
diff --git a/VueWebApi/Tools/ExcelList.cs b/VueWebApi/Tools/ExcelList.cs
index 1ef7929..c64acb0 100644
--- a/VueWebApi/Tools/ExcelList.cs
+++ b/VueWebApi/Tools/ExcelList.cs
@@ -29,6 +29,7 @@
                 new ScoreReport("14","宸ヨ淇濆吇"),
                 new ScoreReport("15","宸ュ簭瀹氫箟"),
                 new ScoreReport("16","宸ヨ壓璺嚎"),
+                new ScoreReport("24","鑺傛媿宸ヤ环"),
                 new ScoreReport("17","璐ㄦ鏍囧噯"),
                 new ScoreReport("18","缂洪櫡瀹氫箟"),
                 new ScoreReport("19","鐢熶骇璁㈠崟"),
diff --git a/VueWebApi/Tools/ImportExcelData.cs b/VueWebApi/Tools/ImportExcelData.cs
index 4d64a78..b2dd859 100644
--- a/VueWebApi/Tools/ImportExcelData.cs
+++ b/VueWebApi/Tools/ImportExcelData.cs
@@ -699,8 +699,132 @@
         }
         #endregion
 
+        #region銆怑xcel妯℃澘涓婁紶楠岃瘉,璁惧鐐规鏍囧噯妯℃澘銆�
+        public static string TwentyTwo(string FileCode, out string code)
+        {
+            string Message = "";
+            code = "";
+            List<DataTable> excelTable = new List<DataTable>();
+            excelTable = ImportExcel.ExcelToTableList(FileCode);
+            if (excelTable.Count != 2)
+            {
+                code = "300";
+                Message = "瀵煎叆妯℃澘涓嶇鍚堣鑼�,璇锋鏌heet鏁�";
+                return Message;
+
+            }
+            else if (excelTable[0].Columns.Count != 6)
+            {
+                code = "300";
+                Message = "璁惧鐐规椤圭洰妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
+                return Message;
+            }
+            else if (excelTable[0].Columns[0].ColumnName != "搴忓彿")
+            {
+                code = "300";
+                Message = "璁惧鐐规椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�1鍒楀簲涓簕搴忓彿}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[1].ColumnName != "鐐规椤圭洰缂栧彿(鍞竴)")
+            {
+                code = "300";
+                Message = "璁惧鐐规椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕鐐规椤圭洰缂栧彿(鍞竴)}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[2].ColumnName != "鐐规椤圭洰鍚嶇О")
+            {
+                code = "300";
+                Message = "璁惧鐐规椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�3鍒楀簲涓簕鐐规椤圭洰鍚嶇О}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[3].ColumnName != "鐐规鍛ㄦ湡")
+            {
+                code = "300";
+                Message = "璁惧鐐规椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕鐐规鍛ㄦ湡}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[4].ColumnName != "鏄惁鎵爜")
+            {
+                code = "300";
+                Message = "璁惧鐐规椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕鏄惁鎵爜}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[5].ColumnName != "鐐规椤圭洰瑕佹眰")
+            {
+                code = "300";
+                Message = "璁惧鐐规椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕鐐规椤圭洰瑕佹眰}";
+                return Message;
+            }
+            else
+            {
+                code = "200";
+                Message = "妯℃澘妫�楠岄�氳繃";
+            }
+            return Message;
+        }
+        #endregion
+
         #region銆怑xcel妯℃澘涓婁紶楠岃瘉,璁惧淇濆吇椤圭洰妯℃澘銆�
         public static string Eleven(string FileCode, out string code)
+        {
+            string Message = "";
+            code = "";
+            List<DataTable> excelTable = new List<DataTable>();
+            excelTable = ImportExcel.ExcelToTableList(FileCode);
+            if (excelTable.Count != 2)
+            {
+                code = "300";
+                Message = "瀵煎叆妯℃澘涓嶇鍚堣鑼�,璇锋鏌heet鏁�";
+                return Message;
+
+            }
+            else if (excelTable[0].Columns.Count != 6)
+            {
+                code = "300";
+                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
+                return Message;
+            }
+            else if (excelTable[0].Columns[0].ColumnName != "搴忓彿")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�1鍒楀簲涓簕搴忓彿}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[1].ColumnName != "淇濆吇椤圭洰缂栧彿(鍞竴)")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕淇濆吇椤圭洰缂栧彿(鍞竴)}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[2].ColumnName != "淇濆吇椤圭洰鍚嶇О")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�3鍒楀簲涓簕淇濆吇椤圭洰鍚嶇О}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[3].ColumnName != "鏄惁鎵爜")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕鏄惁鎵爜}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[4].ColumnName != "淇濆吇椤圭洰瑕佹眰")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕淇濆吇椤圭洰瑕佹眰}";
+                return Message;
+            }
+            else
+            {
+                code = "200";
+                Message = "妯℃澘妫�楠岄�氳繃";
+            }
+            return Message;
+        }
+        #endregion
+
+        #region銆怑xcel妯℃澘涓婁紶楠岃瘉,璁惧淇濆吇鏍囧噯妯℃澘銆�
+        public static string TwentyThree(string FileCode, out string code)
         {
             string Message = "";
             code = "";
@@ -1123,6 +1247,89 @@
             {
                 code = "300";
                 Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+            }
+            else
+            {
+                code = "200";
+                Message = "妯℃澘妫�楠岄�氳繃";
+            }
+            return Message;
+        }
+        #endregion
+
+        #region銆怑xcel妯℃澘涓婁紶楠岃瘉,鑺傛媿宸ヤ环妯℃澘銆�
+        public static string TwentyFour(string FileCode, out string code)
+        {
+            string Message = "";
+            code = "";
+            List<DataTable> excelTable = new List<DataTable>();
+            excelTable = ImportExcel.ExcelToTableList(FileCode);
+            if (excelTable.Count != 2)
+            {
+                code = "300";
+                Message = "瀵煎叆妯℃澘涓嶇鍚堣鑼�,璇锋鏌heet鏁�";
+                return Message;
+
+            }
+            else if (excelTable[0].Columns.Count != 10)
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
+                return Message;
+            }
+            else if (excelTable[0].Columns[0].ColumnName != "搴忓彿")
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�1鍒楀簲涓簕搴忓彿}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[1].ColumnName != "浜у搧鍚嶇О")
+            {
+                code = "300";
+                Message = "浜у搧鍚嶇О妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕浜у搧鍚嶇О}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[2].ColumnName != "宸ヨ壓璺嚎鍚嶇О")
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�3鍒楀簲涓簕宸ヨ壓璺嚎鍚嶇О}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[3].ColumnName != "宸ュ簭鍚嶇О")
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕宸ュ簭鍚嶇О}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[4].ColumnName != "璁惧鍚嶇О")
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕璁惧鍚嶇О}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[5].ColumnName != "璁′欢鍗曚环")
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕璁′欢鍗曚环}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[6].ColumnName != "璁惧鑺傛媿")
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕璁惧鑺傛媿}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[7].ColumnName != "鐢熶骇鑺傛媿")
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕鐢熶骇鑺傛媿}";
+                return Message;
+            }
+            else if (excelTable[0].Columns[8].ColumnName != "鍨嬭厰鏁�")
+            {
+                code = "300";
+                Message = "鑺傛媿宸ヤ环妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕鍨嬭厰鏁皚";
+                return Message;
             }
             else
             {
@@ -1966,6 +2173,20 @@
         }
         #endregion
 
+        #region銆怑xcel涓婁紶鏁版嵁楠岃瘉,璁惧鐐规鏍囧噯銆�
+        public static List<ExcelErro> TwentyTwoData(string FileCode, out string StuCode, out string message, out int count)
+        {
+            message = "";
+            StuCode = "";
+            count = 0;
+            string sql = "";
+            DataTable dt;
+            List<ExcelErro> list = new List<ExcelErro>();
+
+            return list;
+        }
+        #endregion
+
         #region銆怑xcel涓婁紶鏁版嵁楠岃瘉,璁惧淇濆吇椤圭洰銆�
         public static List<ExcelErro> ElevenData(string FileCode, out string StuCode, out string message, out int count)
         {
@@ -2014,6 +2235,20 @@
                 message = "鏁版嵁楠岃瘉鎴愬姛";
                 count = excelTable.Rows.Count;
             }
+            return list;
+        }
+        #endregion
+
+        #region銆怑xcel涓婁紶鏁版嵁楠岃瘉,璁惧淇濆吇鏍囧噯銆�
+        public static List<ExcelErro> TwentyThreeData(string FileCode, out string StuCode, out string message, out int count)
+        {
+            message = "";
+            StuCode = "";
+            count = 0;
+            string sql = "";
+            DataTable dt;
+            List<ExcelErro> list = new List<ExcelErro>();
+
             return list;
         }
         #endregion
@@ -2084,6 +2319,143 @@
             DataTable dt;
             List<ExcelErro> list = new List<ExcelErro>();
 
+            return list;
+        }
+        #endregion
+
+        #region銆怑xcel涓婁紶鏁版嵁楠岃瘉,鑺傛媿宸ヤ环銆�
+        public static List<ExcelErro> TwentyFourData(string FileCode, out string StuCode, out string message, out int count)
+        {
+            message = "";
+            StuCode = "";
+            count = 0;
+            string sql = "";
+            DataTable dt;
+            var dynamicParams = new DynamicParameters();
+            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++)
+            {
+                //浜у搧鏄惁瀛樺湪
+                sql = @"select partname from TMateriel_Info 
+                        where partname=@partname";
+                dynamicParams.Add("@partname", excelTable.Rows[i][1].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() + "涓嶅瓨鍦�";
+                    list.Add(erro);
+                }
+                //宸ヨ壓璺嚎鏄惁瀛樺湪
+                sql = @"select name 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)
+                {
+                    ExcelErro erro = new ExcelErro();
+                    erro.RoeNumber = "/";
+                    erro.ErrorField = "{宸ヨ壓璺嚎鍚嶇О}";
+                    erro.ErrorCont = "宸ヨ壓璺嚎:{宸ヨ壓璺嚎鍚嶇О}瀛楁" + excelTable.Rows[i][2].ToString().Trim() + "涓嶅瓨鍦�";
+                    list.Add(erro);
+                }
+                //宸ュ簭鏄惁瀛樺湪
+                sql = @"select stepname 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)
+                {
+                    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() + "涓嶅瓨鍦�";
+                    list.Add(erro);
+                }
+                //鍒ゆ柇浜у搧鏄惁鍏宠仈宸ヨ壓璺嚎
+                sql = @"select M.partname,R.name  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());
+                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() + "銆戞湭鍏宠仈";
+                    list.Add(erro);
+                }
+                //鍒ゆ柇宸ヨ壓璺嚎鏄惁鍏宠仈宸ュ簭
+                sql = @"select R.name,S.stepname  from TFlw_Rtdt A
+                        inner join TFlw_Rout R on A.route_code=M.code
+                        inner join TStep S on R.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());
+                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() + "銆戞湭鍏宠仈";
+                    list.Add(erro);
+                }
+                //鍒ゆ柇宸ュ簭鏄惁鍏宠仈璁惧
+               sql = @"select R.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)
+                {
+                    ExcelErro erro = new ExcelErro();
+                    erro.RoeNumber = "/";
+                    erro.ErrorField = "{宸ュ簭鍚嶇О/璁惧鍚嶇О}";
+                    erro.ErrorCont = "宸ュ簭鍏宠仈璁惧:{宸ュ簭鍚嶇О}瀛楁:銆�" + excelTable.Rows[i][3].ToString().Trim() + "銆戝搴旇澶囧悕绉帮細銆�" + excelTable.Rows[i][4].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.Rows.Count;
+            }
             return list;
         }
         #endregion
@@ -2704,6 +3076,24 @@
         }
         #endregion
 
+        #region銆怑xcel鏁版嵁涓婁紶,璁惧鐐规鏍囧噯銆�
+        public static string TwentyTwoSubmit(string FileCode, string User, out string StuCode)
+        {
+            string message = "";
+            StuCode = "";
+            try
+            {
+
+            }
+            catch (Exception e)
+            {
+                StuCode = "300";
+                message = e.Message;
+            }
+            return message;
+        }
+        #endregion
+
         #region銆怑xcel鏁版嵁涓婁紶,璁惧淇濆吇椤圭洰銆�
         public static string ElevenSubmit(string FileCode, string User, out string StuCode)
         {
@@ -2780,6 +3170,24 @@
                     StuCode = "300";
                     message = "瀵煎叆澶辫触锛�";
                 }
+            }
+            catch (Exception e)
+            {
+                StuCode = "300";
+                message = e.Message;
+            }
+            return message;
+        }
+        #endregion
+
+        #region銆怑xcel鏁版嵁涓婁紶,璁惧淇濆吇鏍囧噯銆�
+        public static string TwentyThreeSubmit(string FileCode, string User, out string StuCode)
+        {
+            string message = "";
+            StuCode = "";
+            try
+            {
+
             }
             catch (Exception e)
             {
@@ -2880,6 +3288,168 @@
         }
         #endregion
 
+        #region銆怑xcel鏁版嵁涓婁紶,鑺傛媿宸ヤ环銆�
+        public static string TwentyFourSubmit(string FileCode, string User, out string StuCode)
+        {
+            string message = "";
+            StuCode = "";
+            string sql = "";
+            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++)
+                {
+                    string partcode = "", routecode = "",stepcode="",eqpcode="",wkspcode="";
+                    //鏌ヨ浜у搧缂栫爜
+                    sql = @"select partcode from TMateriel_Info 
+                        where partname=@partname";
+                    dynamicParams.Add("@partname", excelTable.Rows[i][1].ToString().Trim());
+                    var data = DapperHelper.selectdata(sql, dynamicParams);
+                    if (data.Rows.Count > 0)
+                    {
+                        partcode = data.Rows[0]["partname"].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 = data.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 = data.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 = data.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 = data.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 ";
+                        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,
+                                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)";
+                        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
+                            }
+                        });
+                    }
+                }
+                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 SeventeenSubmit(string FileCode, string User, out string StuCode)
         {
diff --git a/VueWebApi/VueWebApi.csproj b/VueWebApi/VueWebApi.csproj
index 8aff6d7..bd28ead 100644
--- a/VueWebApi/VueWebApi.csproj
+++ b/VueWebApi/VueWebApi.csproj
@@ -503,6 +503,7 @@
     <Content Include="Excel\缂洪櫡瀹氫箟.xls" />
     <Content Include="Excel\璁惧鐐规椤圭洰.xls" />
     <Content Include="Excel\璁惧淇濆吇椤圭洰.xls" />
+    <Content Include="Excel\鑺傛媿宸ヤ环.xls" />
     <None Include="Scripts\jquery-3.4.1.intellisense.js" />
     <Content Include="Scripts\jquery-3.4.1.js" />
     <Content Include="Scripts\jquery-3.4.1.min.js" />
diff --git a/VueWebApi/bin/VueWebApi.pdb b/VueWebApi/bin/VueWebApi.pdb
index 992020a..7f8f315 100644
--- a/VueWebApi/bin/VueWebApi.pdb
+++ b/VueWebApi/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/bin/VueWebApi.xml b/VueWebApi/bin/VueWebApi.xml
index a7a0fb4..b9784c4 100644
--- a/VueWebApi/bin/VueWebApi.xml
+++ b/VueWebApi/bin/VueWebApi.xml
@@ -1232,36 +1232,38 @@
             <param name="FileName">鏂囦欢鍚嶇О</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.ShopSearchLine(System.String)">
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.ShopSearch">
             <summary>
-            澶у矝杞﹂棿缁煎悎鐪嬫澘,鐢熶骇杞﹂棿鏌ユ壘浜х嚎鎺ュ彛
+            澶у矝杞﹂棿缁煎悎鐪嬫澘,鑾峰彇鐢熶骇杞﹂棿
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchTopLeftData(System.String)">
+            <summary>
+            澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笂浜х嚎鍔犲伐浠诲姟鎺ュ彛
             </summary>
             <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchTopLeftData(System.Collections.Generic.List{VueWebApi.Models.ObjectData})">
-            <summary>
-            澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笂浜х嚎鍔犲伐浠诲姟鎺ュ彛
-            </summary>
-            <param name="json">鎻愪氦鏁版嵁(鍙傝�冨伐搴忓畾涔夊叧鑱斿伐浣滅珯鎻愪氦)</param>
-            <returns></returns>
-        </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchBottomLeftData">
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchBottomLeftData(System.String)">
             <summary>
             澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笅鍒楄〃鎺ュ彛
             </summary>
+            <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchTopRightData">
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchTopRightData(System.String)">
             <summary>
             澶у矝杞﹂棿缁煎悎鐪嬫澘,鍙充笂top鎺掕鎺ュ彛
             </summary>
+            <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchBottomRightData">
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchBottomRightData(System.String)">
             <summary>
             澶у矝杞﹂棿缁煎悎鐪嬫澘,鍙充笅top鎺掕鎺ュ彛
             </summary>
+            <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.KanBanManagerentController.PurchaseLeftTop">
@@ -1692,6 +1694,25 @@
             鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛�
             </summary>
             <param name="obj">鎻愪氦淇℃伅</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchClosedSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
+            <summary>
+            MES宸ュ崟鏌ヨ
+            </summary>
+            <param name="mesorderstus">宸ュ崟鐘舵�佺爜</param>
+            <param name="mesordercode">宸ュ崟缂栧彿</param>
+            <param name="sourceorder">婧愬崟鍗曞彿</param>
+            <param name="ordertype">鍗曟嵁绫诲瀷</param>
+            <param name="partcode">浜у搧缂栫爜</param>
+            <param name="partname">浜у搧鍚嶇О</param>
+            <param name="partspec">浜у搧瑙勬牸</param>
+            <param name="creatuser">鍒涘缓浜哄憳</param>
+            <param name="createdate">鍒涘缓鏃堕棿</param>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductModelController.StockTypeSelect">
@@ -2145,6 +2166,41 @@
             <param name="rightcode">鍔熻兘缂栫爜</param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.SystemSettingController.SystemAnnouncementSearch(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
+            <summary>
+            杞﹂棿鍏憡鍒楄〃
+            </summary>
+            <param name="wkspcode">杞﹂棿缂栫爜</param>
+            <param name="ancetitle">鍏憡涓婚</param>
+            <param name="ancecont">鍏憡鍐呭</param>
+            <param name="cancel">鏄惁鎾ら攢</param>
+            <param name="level">鍏憡绛夌骇</param>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.SystemSettingController.SystemAnnouncementAddUpdate(System.Data.DataTable,System.String,System.String,System.String,System.String,System.String,System.String)">
+            <summary>
+            杞﹂棿鍏憡鏂板缂栬緫鎻愪氦
+            </summary>
+            <param name="id">id</param>
+            <param name="dt">杞﹂棿闆嗗悎</param>
+            <param name="ancetitle">鍏憡涓婚</param>
+            <param name="ancecont">鍏憡鍐呭</param>
+            <param name="level">鍏憡绛夌骇</param>
+            <param name="cancel">鏄惁鎾ら攢</param>
+            <param name="opertype">鎿嶄綔绫诲瀷</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.SystemSettingController.SystemAnnouncementDelete(System.String)">
+            <summary>
+            杞﹂棿鍏憡鍒犻櫎
+            </summary>
+            <param name="id">id</param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.WebApiApplication.Init">
             <summary>
             娉ㄥ唽Session
@@ -2221,6 +2277,14 @@
             <param name="parm"></param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Tools.DapperHelper.selectlist(System.String,System.Object)">
+            <summary>
+            Dapper鏌ヨ杩斿洖datatable鏁版嵁(甯﹀弬鏁�)
+            </summary>
+            <param name="sql"></param>
+            <param name="parm"></param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Tools.DapperHelper.selecttable(System.String)">
             <summary>
             Dapper鏌ヨ杩斿洖datatable鏁版嵁(涓嶅甫鍙傛暟)
diff --git a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
index 84239d3..4b44515 100644
--- a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ
diff --git "a/VueWebApi/obj/Release/Package/PackageTmp/Excel/\350\212\202\346\213\215\345\267\245\344\273\267.xls" "b/VueWebApi/obj/Release/Package/PackageTmp/Excel/\350\212\202\346\213\215\345\267\245\344\273\267.xls"
new file mode 100644
index 0000000..caedff9
--- /dev/null
+++ "b/VueWebApi/obj/Release/Package/PackageTmp/Excel/\350\212\202\346\213\215\345\267\245\344\273\267.xls"
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
index 992020a..7f8f315 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.pdb
Binary files differ
diff --git a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
index a7a0fb4..b9784c4 100644
--- a/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
+++ b/VueWebApi/obj/Release/Package/PackageTmp/bin/VueWebApi.xml
@@ -1232,36 +1232,38 @@
             <param name="FileName">鏂囦欢鍚嶇О</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.ShopSearchLine(System.String)">
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.ShopSearch">
             <summary>
-            澶у矝杞﹂棿缁煎悎鐪嬫澘,鐢熶骇杞﹂棿鏌ユ壘浜х嚎鎺ュ彛
+            澶у矝杞﹂棿缁煎悎鐪嬫澘,鑾峰彇鐢熶骇杞﹂棿
+            </summary>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchTopLeftData(System.String)">
+            <summary>
+            澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笂浜х嚎鍔犲伐浠诲姟鎺ュ彛
             </summary>
             <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchTopLeftData(System.Collections.Generic.List{VueWebApi.Models.ObjectData})">
-            <summary>
-            澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笂浜х嚎鍔犲伐浠诲姟鎺ュ彛
-            </summary>
-            <param name="json">鎻愪氦鏁版嵁(鍙傝�冨伐搴忓畾涔夊叧鑱斿伐浣滅珯鎻愪氦)</param>
-            <returns></returns>
-        </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchBottomLeftData">
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchBottomLeftData(System.String)">
             <summary>
             澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笅鍒楄〃鎺ュ彛
             </summary>
+            <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchTopRightData">
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchTopRightData(System.String)">
             <summary>
             澶у矝杞﹂棿缁煎悎鐪嬫澘,鍙充笂top鎺掕鎺ュ彛
             </summary>
+            <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
-        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchBottomRightData">
+        <member name="M:VueWebApi.Controllers.KanBanManagerentController.LineSearchBottomRightData(System.String)">
             <summary>
             澶у矝杞﹂棿缁煎悎鐪嬫澘,鍙充笅top鎺掕鎺ュ彛
             </summary>
+            <param name="shopcode">杞﹂棿缂栫爜</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.KanBanManagerentController.PurchaseLeftTop">
@@ -1692,6 +1694,25 @@
             鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛�
             </summary>
             <param name="obj">鎻愪氦淇℃伅</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.ProductionManagementController.MesOrderBitchClosedSearch(System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
+            <summary>
+            MES宸ュ崟鏌ヨ
+            </summary>
+            <param name="mesorderstus">宸ュ崟鐘舵�佺爜</param>
+            <param name="mesordercode">宸ュ崟缂栧彿</param>
+            <param name="sourceorder">婧愬崟鍗曞彿</param>
+            <param name="ordertype">鍗曟嵁绫诲瀷</param>
+            <param name="partcode">浜у搧缂栫爜</param>
+            <param name="partname">浜у搧鍚嶇О</param>
+            <param name="partspec">浜у搧瑙勬牸</param>
+            <param name="creatuser">鍒涘缓浜哄憳</param>
+            <param name="createdate">鍒涘缓鏃堕棿</param>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
             <returns></returns>
         </member>
         <member name="M:VueWebApi.Controllers.ProductModelController.StockTypeSelect">
@@ -2145,6 +2166,41 @@
             <param name="rightcode">鍔熻兘缂栫爜</param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Controllers.SystemSettingController.SystemAnnouncementSearch(System.String,System.String,System.String,System.String,System.String,System.Int32,System.Int32,System.String,System.String)">
+            <summary>
+            杞﹂棿鍏憡鍒楄〃
+            </summary>
+            <param name="wkspcode">杞﹂棿缂栫爜</param>
+            <param name="ancetitle">鍏憡涓婚</param>
+            <param name="ancecont">鍏憡鍐呭</param>
+            <param name="cancel">鏄惁鎾ら攢</param>
+            <param name="level">鍏憡绛夌骇</param>
+            <param name="page">椤电爜</param>
+            <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+            <param name="prop">鎺掑簭瀛楁</param>
+            <param name="order">鎺掑簭瑙勫垯</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.SystemSettingController.SystemAnnouncementAddUpdate(System.Data.DataTable,System.String,System.String,System.String,System.String,System.String,System.String)">
+            <summary>
+            杞﹂棿鍏憡鏂板缂栬緫鎻愪氦
+            </summary>
+            <param name="id">id</param>
+            <param name="dt">杞﹂棿闆嗗悎</param>
+            <param name="ancetitle">鍏憡涓婚</param>
+            <param name="ancecont">鍏憡鍐呭</param>
+            <param name="level">鍏憡绛夌骇</param>
+            <param name="cancel">鏄惁鎾ら攢</param>
+            <param name="opertype">鎿嶄綔绫诲瀷</param>
+            <returns></returns>
+        </member>
+        <member name="M:VueWebApi.Controllers.SystemSettingController.SystemAnnouncementDelete(System.String)">
+            <summary>
+            杞﹂棿鍏憡鍒犻櫎
+            </summary>
+            <param name="id">id</param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.WebApiApplication.Init">
             <summary>
             娉ㄥ唽Session
@@ -2221,6 +2277,14 @@
             <param name="parm"></param>
             <returns></returns>
         </member>
+        <member name="M:VueWebApi.Tools.DapperHelper.selectlist(System.String,System.Object)">
+            <summary>
+            Dapper鏌ヨ杩斿洖datatable鏁版嵁(甯﹀弬鏁�)
+            </summary>
+            <param name="sql"></param>
+            <param name="parm"></param>
+            <returns></returns>
+        </member>
         <member name="M:VueWebApi.Tools.DapperHelper.selecttable(System.String)">
             <summary>
             Dapper鏌ヨ杩斿洖datatable鏁版嵁(涓嶅甫鍙傛暟)
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache b/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
new file mode 100644
index 0000000..f5e894a
--- /dev/null
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.AssemblyReference.cache
Binary files differ
diff --git a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
index e0c895e..d7448de 100644
--- a/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
+++ b/VueWebApi/obj/Release/VueWebApi.csproj.FileListAbsolute.txt
@@ -280,6 +280,7 @@
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Deployment.resources.dll
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\bin\zh-Hans\System.Web.WebPages.Razor.resources.dll
+D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.AssemblyReference.cache
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CoreCompileInputs.cache
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.csproj.CopyComplete
 D:\鏂板嚡杩狹ES\VueWebApi\VueWebApi\obj\Release\VueWebApi.dll
diff --git a/VueWebApi/obj/Release/VueWebApi.pdb b/VueWebApi/obj/Release/VueWebApi.pdb
index 992020a..7f8f315 100644
--- a/VueWebApi/obj/Release/VueWebApi.pdb
+++ b/VueWebApi/obj/Release/VueWebApi.pdb
Binary files differ

--
Gitblit v1.9.3