From fbba6d6e8ccf4b052735bd51fd04ff7cb5c16b78 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期二, 19 九月 2023 17:32:30 +0800
Subject: [PATCH] 设备类型接口修改、导入问题修改、缺陷定义接口开发

---
 VueWebCoreApi/Controllers/ImportExcelController.cs       |    2 
 VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs                   |    6 
 VueWebCoreApi/Controllers/QualityManagementController.cs |   82 +++++
 VueWebCoreApi/wwwroot/Excel/往来单位.xls                     |    0 
 VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs            |  204 ++++++++++++
 VueWebCoreApi/Tools/ImportExcelData.cs                   |  395 +++++++++++------------
 VueWebCoreApi/wwwroot/Excel/缺陷定义.xls                     |    0 
 VueWebCoreApi/Controllers/DeviceManagerController.cs     |   19 
 VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs                |  150 +++++++--
 VueWebCoreApi/wwwroot/Excel/角色管理.xls                     |    0 
 VueWebCoreApi/wwwroot/Excel/库位设置.xls                     |    0 
 VueWebCoreApi/ApiGroup/OpenApiGroup.cs                   |    3 
 VueWebCoreApi/Tools/ExcelList.cs                         |   18 
 VueWebCoreApi/DLL/DAL/ProductModelDAL.cs                 |   33 +
 VueWebCoreApi/DLL/BLL/QualityManagementBLL.cs            |   34 ++
 VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs                |    8 
 VueWebCoreApi/wwwroot/Excel/存货档案.xls                     |    0 
 17 files changed, 673 insertions(+), 281 deletions(-)

diff --git a/VueWebCoreApi/ApiGroup/OpenApiGroup.cs b/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
index e2c3fe5..23ceb9c 100644
--- a/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
+++ b/VueWebCoreApi/ApiGroup/OpenApiGroup.cs
@@ -18,6 +18,8 @@
         鐗╂枡绠$悊 = 4,
         [Description("璁惧绠$悊")]
         璁惧绠$悊 = 5,
+        [Description("璐ㄩ噺绠$悊")]
+        璐ㄩ噺绠$悊 = 8,
         [Description("鍛ㄦ湡浠诲姟")]
         鍛ㄦ湡浠诲姟 = 9,
         [Description("绯荤粺璁剧疆")]
@@ -28,7 +30,6 @@
         鐣呮嵎閫欵RP鍩虹鏁版嵁鍚屾 = 12,
         [Description("Excel瀵煎叆")]
         Excel瀵煎叆 = 13
-            
 
     }
 }
diff --git a/VueWebCoreApi/Controllers/DeviceManagerController.cs b/VueWebCoreApi/Controllers/DeviceManagerController.cs
index 6084e0a..979de29 100644
--- a/VueWebCoreApi/Controllers/DeviceManagerController.cs
+++ b/VueWebCoreApi/Controllers/DeviceManagerController.cs
@@ -24,37 +24,32 @@
         /// <summary>
         /// 璁惧绫诲瀷鏌ヨ
         /// </summary>
-        /// <param name="page">椤电爜</param>
-        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
-        /// <param name="prop">鎺掑簭瀛楁</param>
-        /// <param name="order">鎺掑簭瑙勫垯</param>
         /// <returns></returns>
         [Route(template: "DeviceTypeSearch")]
         [HttpGet]
-        public JsonResult DeviceTypeSearch(int page = 0, int rows = 0, string prop = null, string order = null)
+        public JsonResult DeviceTypeSearch()
         {
             var token = HttpContext.Request.Headers["Token"].ToString();
             User us = JwtTools.Denocode(token.ToString());
-            int startNum = rows * (page - 1) + 1;  //璧峰璁板綍rowNum
-            int endNum = rows * page;   //缁撴潫璁板綍 rowNum
-            mes = DeviceManagerBLL.DeviceTypeSearch(startNum, endNum, prop, order);
+            mes = DeviceManagerBLL.DeviceTypeSearch();
             return Json(mes);
         }
         #endregion
 
-        #region[璁惧绫诲瀷鏂板]
+        #region[璁惧绫诲瀷鏂板/缂栬緫]
         /// <summary>
-        /// 璁惧绫诲瀷鏂板
+        /// 璁惧绫诲瀷鏂板/缂栬緫
         /// </summary>
+        /// <param name="OperType">鎿嶄綔绫诲瀷(Add/Update)</param>
         /// <param name="json">鎻愪氦鏁版嵁瀵硅薄</param>
         /// <returns></returns>
         [Route(template: "AddUpdateDeviceType")]
         [HttpPost]
-        public JsonResult AddUpdateDeviceType(List<ObjectDataCont> json)
+        public JsonResult AddUpdateDeviceType(string OperType,List<ObjectDataCont> json)
         {
             var token = HttpContext.Request.Headers["Token"].ToString();
             User us = JwtTools.Denocode(token.ToString());
-            mes = DeviceManagerBLL.AddUpdateDeviceType(json, us);
+            mes = DeviceManagerBLL.AddUpdateDeviceType(OperType,json, us);
             return Json(mes);
         }
         #endregion
diff --git a/VueWebCoreApi/Controllers/ImportExcelController.cs b/VueWebCoreApi/Controllers/ImportExcelController.cs
index b069aa8..dd36c4c 100644
--- a/VueWebCoreApi/Controllers/ImportExcelController.cs
+++ b/VueWebCoreApi/Controllers/ImportExcelController.cs
@@ -15,7 +15,7 @@
     [ApiExplorerSettings(GroupName = "Excel瀵煎叆")]
     [ApiController]
     [Route("api/[controller]")]
-    //[ChannelActionFilter]
+    [ChannelActionFilter]
     public class ImportExcelController : Controller
     {
 
diff --git a/VueWebCoreApi/Controllers/QualityManagementController.cs b/VueWebCoreApi/Controllers/QualityManagementController.cs
new file mode 100644
index 0000000..d977b65
--- /dev/null
+++ b/VueWebCoreApi/Controllers/QualityManagementController.cs
@@ -0,0 +1,82 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Newtonsoft.Json.Linq;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.BLL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.Controllers
+{
+    [ApiExplorerSettings(GroupName = "璐ㄩ噺绠$悊")]
+    [ApiController]
+    [Route("api/[controller]")]
+    [ChannelActionFilter]
+    public class QualityManagementController : Controller
+    {
+        //瀹氫箟鍏ㄥ眬淇℃伅杩斿洖鍙橀噺
+        ToMessage mes = new ToMessage();
+        RedisHelper redis = new RedisHelper();
+
+        #region[璐ㄩ噺绠$悊,缂洪櫡瀹氫箟鏌ヨ鍒楄〃]
+        /// <summary>
+        /// 璐ㄩ噺绠$悊,缂洪櫡瀹氫箟鏌ヨ鍒楄〃
+        /// </summary>
+        /// <param name="defectcode">缂洪櫡浠g爜</param>
+        /// <param name="defectname">缂洪櫡鍚嶇О</param>
+        /// <param name="defectdescr">缂洪櫡鎻忚堪</param>
+        /// <param name="page">椤电爜</param>
+        /// <param name="rows">姣忛〉鏄剧ず鏉℃暟</param>
+        /// <param name="prop">鎺掑簭瀛楁</param>
+        /// <param name="order">鎺掑簭瑙勫垯</param>
+        /// <returns></returns>
+        [Route(template: "DedectSearch")]
+        [HttpGet]
+        public JsonResult DedectSearch(string defectcode = null, string defectname = null, string defectdescr = 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 = QualityManagementBLL.DedectSearch(defectcode, defectname, defectdescr, startNum, endNum, prop, order);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璐ㄩ噺绠$悊锛岀己闄峰畾涔夋柊澧炪�佺紪杈戞彁浜
+        /// <summary>
+        /// 璐ㄩ噺绠$悊锛岀己闄峰畾涔夋柊澧炪�佺紪杈戞彁浜�
+        /// </summary>
+        /// <param name="obj">鎻愪氦鏁版嵁</param>
+        /// <returns></returns>
+        [Route(template: "AddUpdateDedect")]
+        [HttpPost]
+        public JsonResult AddUpdateDedect([FromBody] JObject obj)
+        {
+            var token = HttpContext.Request.Headers["Token"].ToString();
+            User us = JwtTools.Denocode(token.ToString());
+            string defectcode = obj["defectcode"].ToString();    //缂洪櫡浠g爜
+            string defectname = obj["defectname"].ToString(); //缂洪櫡鍚嶇О
+            string defectdescr = obj["defectdescr"].ToString(); //缂洪櫡鎻忚堪
+            string opertype = obj["OperType"].ToString();  //鎿嶄綔绫诲瀷
+            mes = QualityManagementBLL.AddUpdateDedect(defectcode, defectname, defectdescr, opertype, us);
+            return Json(mes);
+        }
+        #endregion
+
+        #region[璐ㄩ噺绠$悊锛岀己闄峰畾涔夊垹闄
+        /// <summary>
+        /// 璐ㄩ噺绠$悊锛岀己闄峰畾涔夊垹闄�
+        /// </summary>
+        /// <param name="defectcode">缂洪櫡浠g爜</param>
+        /// <returns></returns>
+        [Route(template: "DeleteDedect")]
+        [HttpPost]
+        public JsonResult DeleteDedect(string defectcode)
+        {
+            mes = QualityManagementBLL.DeleteDedect(defectcode);
+            return Json(mes);
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs b/VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs
index 499400f..1817de9 100644
--- a/VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs
+++ b/VueWebCoreApi/DLL/BLL/DeviceManagerBLL.cs
@@ -280,16 +280,16 @@
 
 
         #region[璁惧绫诲瀷鏌ヨ]
-        public static ToMessage DeviceTypeSearch(int startNum, int endNum, string prop, string order)
+        public static ToMessage DeviceTypeSearch()
         {
-            return DeviceManagerDAL.DeviceTypeSearch(startNum, endNum, prop, order);
+            return DeviceManagerDAL.DeviceTypeSearch();
         }
         #endregion
 
         #region[璁惧绫诲瀷鏂板]
-        public static ToMessage AddUpdateDeviceType(List<ObjectDataCont> json, User us)
+        public static ToMessage AddUpdateDeviceType(string OperType, List<ObjectDataCont> json, User us)
         {
-            return DeviceManagerDAL.AddUpdateDeviceType(json, us);
+            return DeviceManagerDAL.AddUpdateDeviceType(OperType,json, us);
         }
         #endregion
 
diff --git a/VueWebCoreApi/DLL/BLL/QualityManagementBLL.cs b/VueWebCoreApi/DLL/BLL/QualityManagementBLL.cs
new file mode 100644
index 0000000..03c3cb6
--- /dev/null
+++ b/VueWebCoreApi/DLL/BLL/QualityManagementBLL.cs
@@ -0,0 +1,34 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.DLL.DAL;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.BLL
+{
+    public class QualityManagementBLL
+    {
+        #region[璐ㄩ噺绠$悊,缂洪櫡瀹氫箟鏌ヨ鍒楄〃]
+        public static ToMessage DedectSearch(string defectcode, string defectname, string defectdescr, int startNum, int endNum, string prop, string order)
+        {
+            return QualityManagementDAL.DedectSearch(defectcode, defectname, defectdescr, startNum, endNum, prop, order);
+        }
+        #endregion
+
+        #region[璐ㄩ噺绠$悊锛岀己闄峰畾涔夋柊澧炪�佺紪杈戞彁浜
+        public static ToMessage AddUpdateDedect(string defectcode, string defectname, string defectdescr, string opertype, User us)
+        {
+            return QualityManagementDAL.AddUpdateDedect(defectcode, defectname, defectdescr, opertype, us);
+        }
+        #endregion
+
+        #region[璐ㄩ噺绠$悊锛岀己闄峰畾涔夊垹闄
+        public static ToMessage DeleteDedect(string defectcode)
+        {
+            return QualityManagementDAL.DeleteDedect(defectcode);
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs b/VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs
index 6e80d4d..fba962b 100644
--- a/VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/DeviceManagerDAL.cs
@@ -2375,20 +2375,18 @@
 
 
         #region[璁惧绫诲瀷鏌ヨ]
-        public static ToMessage DeviceTypeSearch(int startNum, int endNum, string prop, string order)
+        public static ToMessage DeviceTypeSearch()
         {
-            var dynamicParams = new DynamicParameters();
             try
             {
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
-                var total = 0; //鎬绘潯鏁�
-                var sql = @"select id, code,name,remark 
+                var sql = @"select id, code,name 
                             from TEqpType";
-                var data = DapperHelper.GetPageList<object>(sql, dynamicParams, prop, order, startNum, endNum, out total);
+                var data = DapperHelper.selecttable(sql);
                 mes.code = "200";
                 mes.Message = "鏌ヨ鎴愬姛!";
-                mes.count = total;
-                mes.data = data.ToList();
+                mes.count = data.Rows.Count;
+                mes.data = data;
             }
             catch (Exception e)
             {
@@ -2402,7 +2400,7 @@
         #endregion
 
         #region[璁惧绫诲瀷鏂板]
-        public static ToMessage AddUpdateDeviceType(List<ObjectDataCont> json, User us)
+        public static ToMessage AddUpdateDeviceType(string OperType, List<ObjectDataCont> json, User us)
         {
             var sql = "";
             List<object> list = new List<object>();
@@ -2410,39 +2408,117 @@
             try
             {
                 list.Clear();
-                //寰幆鍐欏叆璁惧绫诲瀷琛�
-                for (int i = 0; i < json.Count; i++)
+                if (OperType == "Add")
                 {
-                    sql = @"insert into TEqpType(code,name,lm_user,lm_date,remark) values(@code,@name,@username,@createdate,@description)";
-                    list.Add(new
+                    //鍒ゆ柇璁惧绫诲瀷鏄惁閲嶅
+                    sql = @"select *  from TEqpType where code=@devtypecode";
+                    dynamicParams.Add("@devtypecode", json[0].code);
+                    var data = DapperHelper.selectdata(sql, dynamicParams);
+                    if (data.Rows.Count > 0)
                     {
-                        str = sql,
-                        parm = new
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "璁惧绫诲瀷缂栫爜宸插瓨鍦�,璇烽噸鏂拌緭鍏�!";
+                        mes.data = null;
+                        return mes;
+                    }
+                    //鍒ゆ柇璁惧绫诲瀷鍚嶇О鏄惁閲嶅
+                    sql = @"select *  from TEqpType where name=@devtypename";
+                    dynamicParams.Add("@devtypename", json[0].name);
+                    var data1 = DapperHelper.selectdata(sql, dynamicParams);
+                    if (data1.Rows.Count > 0)
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "璁惧绫诲瀷鍚嶇О宸插瓨鍦�,璇烽噸鏂拌緭鍏�!";
+                        mes.data = null;
+                        return mes;
+                    }
+                    //寰幆鍐欏叆璁惧绫诲瀷琛�
+                    for (int i = 0; i < json.Count; i++)
+                    {
+                        sql = @"insert into TEqpType(code,name,lm_user,lm_date,remark) values(@code,@name,@username,@createdate,@description)";
+                        list.Add(new
                         {
-                            code = json[i].code,
-                            name = json[i].name,
-                            username = us.usercode,
-                            createdate = DateTime.Now.ToString(),
-                            description = json[i].description
-                        }
-                    });
+                            str = sql,
+                            parm = new
+                            {
+                                code = json[i].code,
+                                name = json[i].name,
+                                username = us.usercode,
+                                createdate = DateTime.Now.ToString(),
+                                description = json[i].description
+                            }
+                        });
+                    }
+
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        //鍐欏叆鎿嶄綔璁板綍琛�
+                        LogHelper.DbOperateLog(us.usercode, "鏂板", "鏂板浜嗚澶囩被鍨�:" + string.Join(",", json.Select(m => m.code)), us.usertype);
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.Message = "鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
                 }
-                bool aa = DapperHelper.DoTransaction(list);
-                if (aa)
+                if (OperType == "Update")
                 {
-                    //鍐欏叆鎿嶄綔璁板綍琛�
-                    LogHelper.DbOperateLog(us.usercode, "鏂板", "鏂板浜嗚澶囩被鍨�:" + string.Join(",", json.Select(m => m.code)), us.usertype);
-                    mes.code = "200";
-                    mes.count = 0;
-                    mes.Message = "鎿嶄綔鎴愬姛!";
-                    mes.data = null;
-                }
-                else
-                {
-                    mes.code = "300";
-                    mes.count = 0;
-                    mes.Message = "鎿嶄綔澶辫触!";
-                    mes.data = null;
+                    //鍒ゆ柇璁惧鍚嶇О鏄惁閲嶅
+                    sql = @"select *  from TEqpType where  code<>@devtypecode and name=@devtypename";
+                    dynamicParams.Add("@devtypecode", json[0].code);
+                    dynamicParams.Add("@devtypename", json[0].name);
+                    var data1 = DapperHelper.selectdata(sql, dynamicParams);
+                    if (data1.Rows.Count > 0)
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "璁惧绫诲瀷鍚嶇О宸插瓨鍦�,璇烽噸鏂拌緭鍏�!";
+                        mes.data = null;
+                        return mes;
+                    }
+                    for (int i = 0; i < json.Count; i++)
+                    {
+                        sql = @"update TEqpType set name=@devtypename,remark=@remark,lm_user=@lm_user,lm_date=@lm_date
+                                where code=@devtypecode";
+                        list.Add(new
+                        {
+                            str = sql,
+                            parm = new
+                            {
+                                devtypecode = json[i].code,
+                                devtypename = json[i].name,
+                                remark = json[i].description,
+                                lm_user= us.usercode,
+                                lm_date = DateTime.Now.ToString()
+                            }
+                        });
+                    }
+                    bool aa = DapperHelper.DoTransaction(list);
+                    if (aa)
+                    {
+                        //鍐欏叆鎿嶄綔璁板綍琛�
+                        LogHelper.DbOperateLog(us.usercode, "淇敼", "淇敼浜嗚澶囩被鍨�:" + string.Join(",", json.Select(m => m.code)), us.usertype);
+                        mes.code = "200";
+                        mes.count = 0;
+                        mes.Message = "鎿嶄綔鎴愬姛!";
+                        mes.data = null;
+                    }
+                    else
+                    {
+                        mes.code = "300";
+                        mes.count = 0;
+                        mes.Message = "鎿嶄綔澶辫触!";
+                        mes.data = null;
+                    }
                 }
             }
             catch (Exception e)
@@ -2686,7 +2762,7 @@
         #endregion
 
         #region[璁惧淇℃伅鍒犻櫎]
-        public static ToMessage DeleteDeviceManger(string devicecode,User us)
+        public static ToMessage DeleteDeviceManger(string devicecode, User us)
         {
             var sql = "";
             List<object> list = new List<object>();
diff --git a/VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs b/VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs
index 604cc76..030839b 100644
--- a/VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/ExcelCheckDAL.cs
@@ -84,7 +84,7 @@
                     Message = ImportExcelData.Seventeen(savePath, out StuCode);
                     break;
                 case "18"://缂洪櫡瀹氫箟
-                    Message = ImportExcelData.Eighteen(savePath, out StuCode);
+                    Message = ImportExcelData.Eighteen(dataTable, out StuCode);
                     break;
                 case "19"://鐢熶骇璁㈠崟
                     Message = ImportExcelData.Nineteen(savePath, out StuCode);
@@ -182,7 +182,7 @@
                     list = ImportExcelData.SeventeenData(savePath, out stuCode, out message, out count);
                     break;
                 case "18"://缂洪櫡瀹氫箟
-                    list = ImportExcelData.EighteenData(savePath, out stuCode, out message, out count);
+                    list = ImportExcelData.EighteenData(dataTable, out stuCode, out message, out count);
                     break;
                 case "19"://鐢熶骇璁㈠崟
                     list = ImportExcelData.NineteenData(savePath, out stuCode, out message, out count);
@@ -272,7 +272,7 @@
                     Message = ImportExcelData.SeventeenSubmit(savePath, User, out StuCode);
                     break;
                 case "18"://缂洪櫡瀹氫箟
-                    Message = ImportExcelData.EighteenSubmit(savePath, User, out StuCode);
+                    Message = ImportExcelData.EighteenSubmit(dataTable, us, out StuCode);
                     break;
                 case "19"://鐢熶骇璁㈠崟
                     Message = ImportExcelData.NineteenSubmit(savePath, User, out StuCode);
diff --git a/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs b/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
index 5583839..dc618e5 100644
--- a/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
+++ b/VueWebCoreApi/DLL/DAL/ProductModelDAL.cs
@@ -57,24 +57,36 @@
             {
                 if (tunittype == "" || tunittype == null)
                 {
-                    sql = @"select code,name,lm_user,lm_date,isGroup,idunitgroup,data_sources   
-                             from TUnit  T where T.isGroup='0'
-                             union all
-                             select code,name,lm_user,lm_date,'1' as isGroup,code as idunitgroup,data_sources         
-                             from TUnitGroup ";
+                    sql = @"select AA.code,AA.name,U.username as lm_user,AA.lm_date,AA.isGroup,AA.idunitgroup,AA.data_sources  
+                            from(
+                            select code,name,lm_user,lm_date,isGroup,idunitgroup,data_sources   
+                            from TUnit  T 
+                            where T.isGroup='0'
+                            union all
+                            select code,name,lm_user,lm_date,'1' as isGroup,code as idunitgroup,data_sources         
+                            from TUnitGroup 
+                            ) as AA
+                            left join TUser U on AA.lm_user=U.usercode ";
                 }
                 if (tunittype == "S") //鍗曡閲�
                 {
-                    sql = @"select code,name,lm_user,lm_date,isGroup,idunitgroup,data_sources  from TUnit where isSingleUnit='1' and isGroup='0'";
+                    sql = @"select T.code,T.name,U.username as lm_user,T.lm_date,T.isGroup,T.idunitgroup,T.data_sources  
+                            from TUnit T
+                            left join TUser U on T.lm_user=U.usercode
+                            where T.isSingleUnit='1' and T.isGroup='0'";
                 }
                 if (tunittype == "M" && (tunitgroupcode == "" || tunitgroupcode == null)) //澶氳閲�,涓斿璁¢噺缁勭紪鐮佷负绌�
                 {
-                    sql = @"select code,name,lm_user,lm_date,'1' as isGroup,code as idunitgroup,data_sources   from TUnitGroup";
+                    sql = @"select T.code,T.name,U.usercode as lm_user,T.lm_date,'1' as isGroup,T.code as idunitgroup,T.data_sources   
+                            from TUnitGroup T
+                            left join TUser U on T.lm_user=U.usercode";
                 }
                 if (tunittype == "M" && (tunitgroupcode != "" && tunitgroupcode != null)) //澶氳閲�,涓斿璁¢噺缁勭紪鐮佷笉涓虹┖
                 {
-                    sql = @"select code,name,isMainUnit,changeRate,rateDescription,lm_user,lm_date,isGroup,idunitgroup,data_sources  
-                            from TUnit where isSingleUnit='0' and isGroup='1' and idunitgroup=@tunitgroupcode";
+                    sql = @"select T.code,T.name,T.isMainUnit,T.changeRate,T.rateDescription,U.username as lm_user,T.lm_date,T.isGroup,T.idunitgroup,T.data_sources  
+                            from TUnit T
+                            left join TUser U on T.lm_user=U.usercode
+                            where T.isSingleUnit='0' and T.isGroup='1' and T.idunitgroup=@tunitgroupcode";
                     dynamicParams.Add("@tunitgroupcode", tunitgroupcode);
                 }
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
@@ -750,7 +762,7 @@
                             M.idUnitByPurchase as idUnitByPurchasecode,P.name as idUnitByPurchasename,M.idUnitBySale as idUnitBySalecode,S.name as idUnitBySalename,
                             M.idunitbymanufacture as idunitbymanufacturecode,F.name as idunitbymanufacturename,M.idinventoryclass as idinventoryclasscode,C.name as idinventoryclassname,
                             M.isPurchase,M.isSale,M.isMadeSelf,M.isMaterial,M.isMadeRequest,M.idwarehouse as idwarehousecode,H.name as idwarehousename,M.lowQuantity,M.topQuantity,M.safeQuantity,
-                            M.status,M.lm_user,M.lm_date,M.data_sources
+                            M.status,U.username as lm_user,M.lm_date,M.data_sources
                             from TMateriel_Info M
                             left join TUnit T on M.idunit=T.code
                             left join TUnit R on M.idSubUnitByReport=R.code
@@ -761,6 +773,7 @@
                             left join TMateriel_Class C on M.idinventoryclass=C.code
                             left join TUnitGroup G on M.idunitgroup=G.code
                             left join TSecStck H on M.idwarehouse=H.code
+                            left join TUser U on M.lm_user=U.usercode
                             where 1=1 " + search;
                 // --------------鏌ヨ鎸囧畾鏁版嵁--------------
                 var total = 0; //鎬绘潯鏁�
diff --git a/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs b/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs
new file mode 100644
index 0000000..7c79485
--- /dev/null
+++ b/VueWebCoreApi/DLL/DAL/QualityManagementDAL.cs
@@ -0,0 +1,204 @@
+锘縰sing Dapper;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Data.SqlClient;
+using System.Linq;
+using System.Threading.Tasks;
+using VueWebCoreApi.Models;
+using VueWebCoreApi.Tools;
+
+namespace VueWebCoreApi.DLL.DAL
+{
+    public class QualityManagementDAL
+    {
+        public static DataTable dt;    //瀹氫箟鍏ㄥ眬鍙橀噺dt
+        public static bool res;       //瀹氫箟鍏ㄥ眬鍙橀噺dt
+        public static ToMessage mes = new ToMessage(); //瀹氫箟鍏ㄥ眬杩斿洖淇℃伅瀵硅薄
+        public static string strProcName = ""; //瀹氫箟鍏ㄥ眬sql鍙橀噺
+        public static List<SqlParameter> listStr = new List<SqlParameter>(); //瀹氫箟鍏ㄥ眬鍙傛暟闆嗗悎
+        public static SqlParameter[] parameters; //瀹氫箟鍏ㄥ眬SqlParameter鍙傛暟鏁扮粍
+
+
+        #region[璐ㄩ噺绠$悊,缂洪櫡瀹氫箟鏌ヨ鍒楄〃]
+        public static ToMessage DedectSearch(string defectcode, string defectname, string defectdescr, int startNum, int endNum, string prop, string order)
+        {
+            var dynamicParams = new DynamicParameters();
+            string search = "";
+            try
+            {
+                if (defectcode != "" && defectcode != null)
+                {
+                    search += "and A.code like '%'+@defectcode+'%' ";
+                    dynamicParams.Add("@defectcode", defectcode);
+                }
+                if (defectname != "" && defectname != null)
+                {
+                    search += "and A.name like '%'+@defectname+'%' ";
+                    dynamicParams.Add("@defectname", defectname);
+                }
+                if (defectdescr != "" && defectdescr != null)
+                {
+                    search += "and A.description like '%'+@defectdescr+'%' ";
+                    dynamicParams.Add("@defectdescr", defectdescr);
+                }
+
+                // --------------鏌ヨ鎸囧畾鏁版嵁--------------
+                var total = 0; //鎬绘潯鏁�
+                var sql = @"select A.code,A.name,A.description,U.username as lm_user,A.lm_date  from TDefect A
+                            left join TUser U on A.lm_user=U.usercode
+                            where 1=1 " + 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 AddUpdateDedect(string defectcode, string defectname, string defectdescr, string opertype, User us)
+        {
+            var sql = "";
+            var dynamicParams = new DynamicParameters();
+            List<object> list = new List<object>();
+            try
+            {
+                if (opertype == "Add")
+                {
+                    //鍐欏叆缂洪櫡瀹氫箟瀹氫箟琛�
+                    sql = @"insert into TDefect(code,name,description,is_step,lm_user,lm_date)
+                                values(@defectcode,@defectname,@description,@is_step,@username,@CreateDate)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            defectcode = defectcode,
+                            defectname = defectname,
+                            description = defectdescr,
+                            is_step="N",
+                            username = us.usercode,
+                            CreateDate = 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;
+                    }
+                }
+                if (opertype == "Update")
+                {
+                    sql = @"update TDefect set name=@defectname,description=@description,lm_user=@username,lm_date=@CreateDate where code=@defectcode";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            defectcode = defectcode,
+                            defectname = defectname,
+                            description = defectdescr,
+                            username = us.usercode,
+                            CreateDate = 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
+
+        #region[璐ㄩ噺绠$悊锛岀己闄峰畾涔夊垹闄
+        public static ToMessage DeleteDedect(string defectcode)
+        {
+            var sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
+            try
+            {
+                //sql = @"select * from  CSR_WorkRecord_Defect  where defect_code=@defectcode";
+                //dynamicParams.Add("@defectcode", defectcode);
+                //var data = DapperHelper.selectdata(sql, dynamicParams);
+                //if (data.Rows.Count > 0)
+                //{
+                //    mes.code = "300";
+                //    mes.count = 0;
+                //    mes.Message = "褰撳墠缂洪櫡椤瑰凡鐢熸垚鎶ュ伐缂洪櫡璁板綍,涓嶅厑璁稿垹闄�!";
+                //    mes.data = null;
+                //    return mes;
+                //}
+
+                sql = @"delete TDefect  where code=@defectcode";
+                list.Add(new { str = sql, parm = new { defectcode = defectcode } });
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    mes.code = "200";
+                    mes.count = 0;
+                    mes.Message = "缂洪櫡鍒犻櫎鎴愬姛!";
+                    mes.data = null;
+                }
+                else
+                {
+                    mes.code = "300";
+                    mes.count = 0;
+                    mes.Message = "缂洪櫡鍒犻櫎澶辫触!";
+                    mes.data = null;
+                }
+            }
+            catch (Exception e)
+            {
+                mes.code = "300";
+                mes.count = 0;
+                mes.Message = e.Message;
+                mes.data = null;
+            }
+            return mes;
+        }
+        #endregion
+    }
+}
diff --git a/VueWebCoreApi/Tools/ExcelList.cs b/VueWebCoreApi/Tools/ExcelList.cs
index 492dbc1..b93c662 100644
--- a/VueWebCoreApi/Tools/ExcelList.cs
+++ b/VueWebCoreApi/Tools/ExcelList.cs
@@ -22,16 +22,16 @@
                 new ScoreReport("7","搴撲綅璁剧疆"),
                 new ScoreReport("8","瀛樿揣妗f"),
                 new ScoreReport("9","璁惧娓呭崟"),
-                new ScoreReport("10","璁惧鐐规椤圭洰"),
-                new ScoreReport("22","璁惧鐐规鏍囧噯"),
-                new ScoreReport("11","璁惧淇濆吇椤圭洰"),
-                new ScoreReport("23","璁惧淇濆吇鏍囧噯"),
-                new ScoreReport("12","宸ヨ娓呭崟"),
-                new ScoreReport("13","宸ヨ鐐规"),
-                new ScoreReport("14","宸ヨ淇濆吇"),
+                //new ScoreReport("10","璁惧鐐规椤圭洰"),
+                //new ScoreReport("22","璁惧鐐规鏍囧噯"),
+                //new ScoreReport("11","璁惧淇濆吇椤圭洰"),
+                //new ScoreReport("23","璁惧淇濆吇鏍囧噯"),
+                //new ScoreReport("12","宸ヨ娓呭崟"),
+                //new ScoreReport("13","宸ヨ鐐规"),
+                //new ScoreReport("14","宸ヨ淇濆吇"),
                 new ScoreReport("15","宸ュ簭瀹氫箟"),
-                new ScoreReport("16","宸ヨ壓璺嚎"),
-                new ScoreReport("24","鑺傛媿宸ヤ环"),
+                //new ScoreReport("16","宸ヨ壓璺嚎"),
+                //new ScoreReport("24","鑺傛媿宸ヤ环"),
                 new ScoreReport("17","璐ㄦ鏍囧噯"),
                 new ScoreReport("18","缂洪櫡瀹氫箟"),
                 new ScoreReport("19","鐢熶骇璁㈠崟"),
diff --git a/VueWebCoreApi/Tools/ImportExcelData.cs b/VueWebCoreApi/Tools/ImportExcelData.cs
index 688d743..8642f8b 100644
--- a/VueWebCoreApi/Tools/ImportExcelData.cs
+++ b/VueWebCoreApi/Tools/ImportExcelData.cs
@@ -227,7 +227,7 @@
                 return Message;
 
             }
-            else if (excelTable[0].Columns.Count != 6)
+            else if (excelTable[0].Columns.Count != 4)
             {
                 code = "301";
                 Message = "瑙掕壊娓呭崟妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
@@ -251,22 +251,10 @@
                 Message = "瑙掕壊娓呭崟妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�3鍒楀簲涓簕*鐘舵�亇";
                 return Message;
             }
-            else if (excelTable[0].Columns[3].ColumnName != "鏁版嵁鑼冨洿")
+            else if (excelTable[0].Columns[3].ColumnName != "鎻忚堪")
             {
                 code = "301";
-                Message = "瑙掕壊娓呭崟妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�4鍒楀簲涓簕鏁版嵁鑼冨洿}";
-                return Message;
-            }
-            else if (excelTable[0].Columns[4].ColumnName != "鏁版嵁鏉冮檺")
-            {
-                code = "301";
-                Message = "瑙掕壊娓呭崟妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�5鍒楀簲涓簕鏁版嵁鏉冮檺}";
-                return Message;
-            }
-            else if (excelTable[0].Columns[5].ColumnName != "鎻忚堪")
-            {
-                code = "301";
-                Message = "瑙掕壊娓呭崟妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�6鍒楀簲涓簕鎻忚堪}";
+                Message = "瑙掕壊娓呭崟妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�4鍒楀簲涓簕鎻忚堪}";
                 return Message;
             }
             else
@@ -464,10 +452,10 @@
                 Message = "搴撲綅璁剧疆妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�3鍒楀簲涓簕*鎵�灞炰粨搴撶紪鐮亇";
                 return Message;
             }
-            else if (excelTable[0].Columns[3].ColumnName != "*涓婄骇搴撲綅缂栫爜")
+            else if (excelTable[0].Columns[3].ColumnName != "涓婄骇搴撲綅缂栫爜")
             {
                 code = "301";
-                Message = "搴撲綅璁剧疆妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�4鍒楀簲涓簕*涓婄骇搴撲綅缂栫爜}";
+                Message = "搴撲綅璁剧疆妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�4鍒楀簲涓簕涓婄骇搴撲綅缂栫爜}";
                 return Message;
             }
             else if (excelTable[0].Columns[4].ColumnName != "*鐘舵��")
@@ -509,7 +497,7 @@
                 Message = "瀛樿揣鍒嗙被妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
                 return Message;
             }
-            else if (excelTable[1].Columns.Count != 12)
+            else if (excelTable[1].Columns.Count != 13)
             {
                 code = "301";
                 Message = "瀛樿揣妗f妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
@@ -521,10 +509,10 @@
                 Message = "瀛樿揣鍒嗙被鍨嬫ā鏉匡細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�1鍒楀簲涓簕*瀛樿揣鍒嗙被缂栧彿(鍞竴)}";
                 return Message;
             }
-            else if (excelTable[0].Columns[1].ColumnName != "*瀛樿揣鍒嗙被鍨嬪悕绉�")
+            else if (excelTable[0].Columns[1].ColumnName != "*瀛樿揣鍒嗙被鍚嶇О")
             {
                 code = "301";
-                Message = "瀛樿揣鍒嗙被鍨嬫ā鏉匡細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕*瀛樿揣鍒嗙被鍨嬪悕绉皚";
+                Message = "瀛樿揣鍒嗙被鍨嬫ā鏉匡細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕*瀛樿揣鍒嗙被鍚嶇О}";
                 return Message;
             }
             else if (excelTable[0].Columns[2].ColumnName != "涓婄骇缂栫爜")
@@ -569,10 +557,10 @@
                 Message = "瀛樿揣妗f妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�6鍒楀簲涓簕*璁¢噺鏂瑰紡}";
                 return Message;
             }
-            else if (excelTable[1].Columns[6].ColumnName != "*璁¢噺鍗曚綅/缁勭紪鐮�")
+            else if (excelTable[1].Columns[6].ColumnName != "*璁¢噺鍗曚綅/缁勫悕绉�")
             {
                 code = "301";
-                Message = "瀛樿揣妗f妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�7鍒楀簲涓簕*璁¢噺鍗曚綅/缁勭紪鐮亇";
+                Message = "瀛樿揣妗f妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�7鍒楀簲涓簕*璁¢噺鍗曚綅/缁勫悕绉皚";
                 return Message;
             }
             else if (excelTable[1].Columns[7].ColumnName != "鎵�灞炰粨搴撶紪鐮�")
@@ -1626,47 +1614,39 @@
         #endregion
 
         #region銆怑xcel妯℃澘涓婁紶楠岃瘉,缂洪櫡瀹氫箟妯℃澘銆�
-        public static string Eighteen(string FileCode, out string code)
+        public static string Eighteen(List<DataTable> excelTable, out string code)
         {
             string Message = "";
             code = "";
-            List<DataTable> excelTable = new List<DataTable>();
-            excelTable = ImportExcel.ExcelToTableList(FileCode);
-            if (excelTable.Count != 2)
+            if (excelTable.Count != 1)
             {
-                code = "300";
+                code = "301";
                 Message = "瀵煎叆妯℃澘涓嶇鍚堣鑼�,璇锋鏌heet鏁�";
                 return Message;
 
             }
-            else if (excelTable[0].Columns.Count != 4)
+            else if (excelTable[0].Columns.Count != 3)
             {
-                code = "300";
+                code = "301";
                 Message = "缂洪櫡瀹氫箟妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
                 return Message;
             }
-            else if (excelTable[0].Columns[0].ColumnName != "搴忓彿")
+            else if (excelTable[0].Columns[0].ColumnName != "*缂洪櫡缂栧彿(鍞竴)")
             {
-                code = "300";
-                Message = "缂洪櫡瀹氫箟妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�1鍒楀簲涓簕搴忓彿}";
+                code = "301";
+                Message = "缂洪櫡瀹氫箟妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕*缂洪櫡缂栧彿(鍞竴)}";
                 return Message;
             }
-            else if (excelTable[0].Columns[1].ColumnName != "缂洪櫡缂栧彿(鍞竴)")
+            else if (excelTable[0].Columns[1].ColumnName != "*缂洪櫡鍚嶇О")
             {
-                code = "300";
-                Message = "缂洪櫡瀹氫箟妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕缂洪櫡缂栧彿(鍞竴)}";
+                code = "301";
+                Message = "缂洪櫡瀹氫箟妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�2鍒楀簲涓簕*缂洪櫡鍚嶇О}";
                 return Message;
             }
-            else if (excelTable[0].Columns[2].ColumnName != "缂洪櫡鍚嶇О")
+            else if (excelTable[0].Columns[2].ColumnName != "缂洪櫡鎻忚堪")
             {
-                code = "300";
-                Message = "缂洪櫡瀹氫箟妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�3鍒楀簲涓簕缂洪櫡鍚嶇О}";
-                return Message;
-            }
-            else if (excelTable[0].Columns[3].ColumnName != "缂洪櫡鎻忚堪")
-            {
-                code = "300";
-                Message = "缂洪櫡鎻忚堪妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕缂洪櫡鎻忚堪}";
+                code = "301";
+                Message = "缂洪櫡瀹氫箟妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�3鍒楀簲涓簕缂洪櫡鎻忚堪}";
                 return Message;
             }
             else
@@ -1988,7 +1968,7 @@
                         ExcelErro erro = new ExcelErro();
                         erro.RoeNumber = "/";
                         erro.ErrorField = "{*宀椾綅鍚嶇О}";
-                        erro.ErrorCont = "宀椾綅琛�:{*宀椾綅鍚嶇О}瀛楁" + excelTable[1].Rows[k][1].ToString().Trim() + "宸插瓨鍦�";
+                        erro.ErrorCont = "宀椾綅琛�:{*宀椾綅鍚嶇О}瀛楁" + excelTable[0].Rows[k][1].ToString().Trim() + "宸插瓨鍦�";
                         list.Add(erro);
                     }
                 }
@@ -2052,7 +2032,7 @@
                         ExcelErro erro = new ExcelErro();
                         erro.RoeNumber = "/";
                         erro.ErrorField = "{*鐝粍鍚嶇О}";
-                        erro.ErrorCont = "鐝粍琛�:{*鐝粍鍚嶇О}瀛楁" + excelTable[1].Rows[k][1].ToString().Trim() + "宸插瓨鍦�";
+                        erro.ErrorCont = "鐝粍琛�:{*鐝粍鍚嶇О}瀛楁" + excelTable[0].Rows[k][1].ToString().Trim() + "宸插瓨鍦�";
                         list.Add(erro);
                     }
                 }
@@ -2251,7 +2231,7 @@
             DataTable dt;
             List<ExcelErro> list = new List<ExcelErro>();
             list = ImportExcel.InportExcelToTableListErro(excelTable);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
-            //鐝粍琛�
+            //瑙掕壊琛�
             for (int k = 0; k < excelTable[0].Rows.Count; k++)
             {
                 if (excelTable[0].Rows[k][0].ToString().Trim() != null && excelTable[0].Rows[k][0].ToString().Trim() != "")
@@ -2278,56 +2258,56 @@
                         ExcelErro erro = new ExcelErro();
                         erro.RoeNumber = "/";
                         erro.ErrorField = "{*瑙掕壊鍚嶇О}";
-                        erro.ErrorCont = "瑙掕壊琛�:{*瑙掕壊鍚嶇О}瀛楁" + excelTable[1].Rows[k][1].ToString().Trim() + "宸插瓨鍦�";
+                        erro.ErrorCont = "瑙掕壊琛�:{*瑙掕壊鍚嶇О}瀛楁" + excelTable[0].Rows[k][1].ToString().Trim() + "宸插瓨鍦�";
                         list.Add(erro);
                     }
                 }
-                if (excelTable[0].Rows[k][3].ToString().Trim() != null && excelTable[0].Rows[k][3].ToString().Trim() != "")
-                {
-                    if (excelTable[0].Rows[k][3].ToString().Trim() == "鑷畾涔�")
-                    {
-                        if (excelTable[0].Rows[k][4].ToString().Trim() == null && excelTable[0].Rows[k][4].ToString().Trim() == "")
-                        {
-                            ExcelErro erro = new ExcelErro();
-                            erro.RoeNumber = "/";
-                            erro.ErrorField = "{鏁版嵁鏉冮檺}";
-                            erro.ErrorCont = "瑙掕壊琛�:{鏁版嵁鑼冨洿}瀛楁涓猴細" + excelTable[1].Rows[k][3].ToString().Trim() + "鏃�,{鏁版嵁鏉冮檺}瀛楁涓嶈兘涓虹┖";
-                            list.Add(erro);
-                        }
-                        else
-                        {
-                            //鍒ゆ柇鏁版嵁鏉冮檺缂栫爜鏄惁鍚堢悊
-                            if (excelTable[0].Rows[k][4].ToString().Trim() != null && excelTable[0].Rows[k][4].ToString().Trim() != "")
-                            {
-                                string[] torgcode = Array.ConvertAll<string, string>(excelTable[0].Rows[k][4].ToString().Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
-                                sql = @"select postcode  from TOrganization  where torg_code in @torgcode";
-                                dynamicParams.Add("@torgcode", torgcode);
-                                dt = DapperHelper.selectdata(sql, dynamicParams);
-                                if (dt != null && dt.Rows.Count > 0)
-                                {
-                                    string[] values = excelTable[0].Rows[k][4].ToString().Trim().Split(',');
-                                    var unmatchedValues = values.Except(dt.AsEnumerable().Select(row => row.Field<string>("torg_code")));
-                                    foreach (var value in unmatchedValues)
-                                    {
-                                        ExcelErro erro = new ExcelErro();
-                                        erro.RoeNumber = (k + 1).ToString();
-                                        erro.ErrorField = "{鏁版嵁鏉冮檺}";
-                                        erro.ErrorCont = "瑙掕壊琛�:{鏁版嵁鏉冮檺}瀛楁" + value + " 涓嶆槸鏈夋晥鐨勭粍缁囩紪鐮�";
-                                        list.Add(erro);
-                                    }
-                                }
-                                else
-                                {
-                                    ExcelErro erro = new ExcelErro();
-                                    erro.RoeNumber = (k + 1).ToString();
-                                    erro.ErrorField = "{鏁版嵁鏉冮檺}";
-                                    erro.ErrorCont = "瑙掕壊琛�:{鏁版嵁鏉冮檺}瀛楁" + excelTable[0].Rows[k][4].ToString().Trim() + " 涓嶆槸鏈夋晥鐨勭粍缁囩紪鐮�";
-                                    list.Add(erro);
-                                }
-                            }
-                        }
-                    }
-                }
+                //if (excelTable[0].Rows[k][3].ToString().Trim() != null && excelTable[0].Rows[k][3].ToString().Trim() != "")
+                //{
+                //    if (excelTable[0].Rows[k][3].ToString().Trim() == "鑷畾涔�")
+                //    {
+                //        if (excelTable[0].Rows[k][4].ToString().Trim() == null && excelTable[0].Rows[k][4].ToString().Trim() == "")
+                //        {
+                //            ExcelErro erro = new ExcelErro();
+                //            erro.RoeNumber = "/";
+                //            erro.ErrorField = "{鏁版嵁鏉冮檺}";
+                //            erro.ErrorCont = "瑙掕壊琛�:{鏁版嵁鑼冨洿}瀛楁涓猴細" + excelTable[1].Rows[k][3].ToString().Trim() + "鏃�,{鏁版嵁鏉冮檺}瀛楁涓嶈兘涓虹┖";
+                //            list.Add(erro);
+                //        }
+                //        else
+                //        {
+                //            //鍒ゆ柇鏁版嵁鏉冮檺缂栫爜鏄惁鍚堢悊
+                //            if (excelTable[0].Rows[k][4].ToString().Trim() != null && excelTable[0].Rows[k][4].ToString().Trim() != "")
+                //            {
+                //                string[] torgcode = Array.ConvertAll<string, string>(excelTable[0].Rows[k][4].ToString().Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries), s => s.ToString()); //string鍒嗗壊杞瑂tring[] 
+                //                sql = @"select postcode  from TOrganization  where torg_code in @torgcode";
+                //                dynamicParams.Add("@torgcode", torgcode);
+                //                dt = DapperHelper.selectdata(sql, dynamicParams);
+                //                if (dt != null && dt.Rows.Count > 0)
+                //                {
+                //                    string[] values = excelTable[0].Rows[k][4].ToString().Trim().Split(',');
+                //                    var unmatchedValues = values.Except(dt.AsEnumerable().Select(row => row.Field<string>("torg_code")));
+                //                    foreach (var value in unmatchedValues)
+                //                    {
+                //                        ExcelErro erro = new ExcelErro();
+                //                        erro.RoeNumber = (k + 1).ToString();
+                //                        erro.ErrorField = "{鏁版嵁鏉冮檺}";
+                //                        erro.ErrorCont = "瑙掕壊琛�:{鏁版嵁鏉冮檺}瀛楁" + value + " 涓嶆槸鏈夋晥鐨勭粍缁囩紪鐮�";
+                //                        list.Add(erro);
+                //                    }
+                //                }
+                //                else
+                //                {
+                //                    ExcelErro erro = new ExcelErro();
+                //                    erro.RoeNumber = (k + 1).ToString();
+                //                    erro.ErrorField = "{鏁版嵁鏉冮檺}";
+                //                    erro.ErrorCont = "瑙掕壊琛�:{鏁版嵁鏉冮檺}瀛楁" + excelTable[0].Rows[k][4].ToString().Trim() + " 涓嶆槸鏈夋晥鐨勭粍缁囩紪鐮�";
+                //                    list.Add(erro);
+                //                }
+                //            }
+                //        }
+                //    }
+                //}
             }
             if (list.Count > 0)
             {
@@ -2392,24 +2372,21 @@
                         list.Add(erro);
                     }
                 }
-                if (excelTable[0].Rows[j][2].ToString().Trim() != null && excelTable[0].Rows[j][2].ToString().Trim() != "")
-                {
-                    // 浣跨敤Lambda琛ㄨ揪寮忓垽鏂埗绾D鏄惁鍚堢悊
-                    bool isParentIdValid = excelTable[0].AsEnumerable()
-                        .Any(r => Convert.ToString(r["*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)"]) == excelTable[0].Rows[j][2].ToString().Trim()); // 鍋囪ID鍒楀悕涓篒d
-
-                    // 濡傛灉鐖剁骇ID涓嶅悎鐞嗭紝鍒欒緭鍑�
-                    if (!isParentIdValid)
-                    {
-                        ExcelErro erro = new ExcelErro();
-                        erro.RoeNumber = "/";
-                        erro.ErrorField = "{涓婄骇缂栫爜}";
-                        erro.ErrorCont = "寰�鏉ュ崟浣嶇被鍨嬭〃:{涓婄骇缂栫爜}瀛楁锛�" + excelTable[0].Rows[j][2].ToString().Trim() + " 涓嶅悎鐞�";
-                        list.Add(erro);
-                    }
-                }
             }
+            var invalidRows = excelTable[0].AsEnumerable().Where(row =>
+                       row.Field<string>("涓婄骇缂栫爜") == row.Field<string>("*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)") ||
+                       (row.Field<string>("涓婄骇缂栫爜") != null && !excelTable[0].AsEnumerable().Any(r => r.Field<string>("*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)") == row.Field<string>("涓婄骇缂栫爜")))
+                   );
 
+            // 杈撳嚭涓嶅悎鐞嗙殑琛�
+            foreach (var row in invalidRows)
+            {
+                ExcelErro erro = new ExcelErro();
+                erro.RoeNumber = "/";
+                erro.ErrorField = "{涓婄骇缂栫爜}";
+                erro.ErrorCont = $"寰�鏉ュ崟浣嶇被鍨嬭〃:*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)锛� {row.Field<string>("*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)")} 鐨勪笂绾х紪鐮侊細{row.Field<string>("涓婄骇缂栫爜")}涓嶅悎鐞�";
+                list.Add(erro);
+            }
 
             //寰�鏉ュ崟浣嶈〃
             for (int k = 0; k < excelTable[1].Rows.Count; k++)
@@ -2600,23 +2577,22 @@
                         list.Add(erro);
                     }
                 }
-                if (excelTable[0].Rows[k][3].ToString().Trim() != null && excelTable[0].Rows[k][3].ToString().Trim() != "")
-                {
-                    // 浣跨敤Lambda琛ㄨ揪寮忓垽鏂埗绾D鏄惁鍚堢悊
-                    bool isParentIdValid = excelTable[0].AsEnumerable()
-                        .Any(r => Convert.ToString(r["*搴撲綅缂栧彿(鍞竴)"]) == excelTable[0].Rows[k][3].ToString().Trim()); // 鍋囪ID鍒楀悕涓篒d
-
-                    // 濡傛灉鐖剁骇ID涓嶅悎鐞嗭紝鍒欒緭鍑�
-                    if (!isParentIdValid)
-                    {
-                        ExcelErro erro = new ExcelErro();
-                        erro.RoeNumber = "/";
-                        erro.ErrorField = "{涓婄骇搴撲綅缂栫爜}";
-                        erro.ErrorCont = "搴撲綅琛�:{涓婄骇搴撲綅缂栫爜}瀛楁锛�" + excelTable[0].Rows[k][3].ToString().Trim() + " 涓嶅悎鐞�";
-                        list.Add(erro);
-                    }
-                }
             }
+            var invalidRows = excelTable[0].AsEnumerable().Where(row =>
+                     row.Field<string>("涓婄骇搴撲綅缂栫爜") == row.Field<string>("*搴撲綅缂栧彿(鍞竴)") ||
+                     (row.Field<string>("涓婄骇搴撲綅缂栫爜") != null && !excelTable[0].AsEnumerable().Any(r => r.Field<string>("*搴撲綅缂栧彿(鍞竴)") == row.Field<string>("涓婄骇搴撲綅缂栫爜")))
+                 );
+
+            // 杈撳嚭涓嶅悎鐞嗙殑琛�
+            foreach (var row in invalidRows)
+            {
+                ExcelErro erro = new ExcelErro();
+                erro.RoeNumber = "/";
+                erro.ErrorField = "{涓婄骇搴撲綅缂栫爜}";
+                erro.ErrorCont = $"搴撲綅琛�:*搴撲綅缂栧彿(鍞竴)锛� {row.Field<string>("*搴撲綅缂栧彿(鍞竴)")} 鐨勪笂绾у簱浣嶇紪鐮侊細{row.Field<string>("涓婄骇搴撲綅缂栫爜")}涓嶅悎鐞�";
+                list.Add(erro);
+            }
+
             if (list.Count > 0)
             {
                 int index = 0;
@@ -2680,24 +2656,21 @@
                         list.Add(erro);
                     }
                 }
-                if (excelTable[0].Rows[j][2].ToString().Trim() != null && excelTable[0].Rows[j][2].ToString().Trim() != "")
-                {
-                    // 浣跨敤Lambda琛ㄨ揪寮忓垽鏂埗绾D鏄惁鍚堢悊
-                    bool isParentIdValid = excelTable[0].AsEnumerable()
-                        .Any(r => Convert.ToString(r["*瀛樿揣鍒嗙被缂栧彿(鍞竴)"]) == excelTable[0].Rows[j][2].ToString().Trim()); // 鍋囪ID鍒楀悕涓篒d
-
-                    // 濡傛灉鐖剁骇ID涓嶅悎鐞嗭紝鍒欒緭鍑�
-                    if (!isParentIdValid)
-                    {
-                        ExcelErro erro = new ExcelErro();
-                        erro.RoeNumber = "/";
-                        erro.ErrorField = "{涓婄骇缂栫爜}";
-                        erro.ErrorCont = "瀛樿揣鍒嗙被琛�:{涓婄骇缂栫爜}瀛楁锛�" + excelTable[0].Rows[j][2].ToString().Trim() + " 涓嶅悎鐞�";
-                        list.Add(erro);
-                    }
-                }
             }
+            var invalidRows = excelTable[0].AsEnumerable().Where(row =>
+                      row.Field<string>("涓婄骇缂栫爜") == row.Field<string>("*瀛樿揣鍒嗙被缂栧彿(鍞竴)") ||
+                      (row.Field<string>("涓婄骇缂栫爜") != null && !excelTable[0].AsEnumerable().Any(r => r.Field<string>("*瀛樿揣鍒嗙被缂栧彿(鍞竴)") == row.Field<string>("涓婄骇缂栫爜")))
+                  );
 
+            // 杈撳嚭涓嶅悎鐞嗙殑琛�
+            foreach (var row in invalidRows)
+            {
+                ExcelErro erro = new ExcelErro();
+                erro.RoeNumber = "/";
+                erro.ErrorField = "{涓婄骇缂栫爜}";
+                erro.ErrorCont = $"瀛樿揣绫诲瀷琛�:*瀛樿揣鍒嗙被缂栧彿(鍞竴)锛� {row.Field<string>("**瀛樿揣鍒嗙被缂栧彿(鍞竴)")} 鐨勪笂绾х紪鐮侊細{row.Field<string>("涓婄骇缂栫爜")}涓嶅悎鐞�";
+                list.Add(erro);
+            }
 
             //瀛樿揣琛�
             for (int k = 0; k < excelTable[1].Rows.Count; k++)
@@ -2730,7 +2703,7 @@
                         list.Add(erro);
                     }
                 }
-                if (excelTable[1].Rows[k][5].ToString().Trim() != null && excelTable[5].Rows[k][1].ToString().Trim() != "")
+                if (excelTable[1].Rows[k][5].ToString().Trim() != null && excelTable[1].Rows[k][5].ToString().Trim() != "")
                 {
                     switch (excelTable[1].Rows[k][5].ToString().Trim())
                     {
@@ -2738,15 +2711,15 @@
                             //鍒ゆ柇璁¢噺鍗曚綅鏄惁涓哄崟璁¢噺
                             if (excelTable[1].Rows[k][6].ToString().Trim() != null && excelTable[1].Rows[k][6].ToString().Trim() != "")
                             {
-                                sql = @"select *  from TUnit where code=@code and isSingleUnit='1'";
-                                dynamicParams.Add("@code", excelTable[1].Rows[k][6].ToString().Trim());
+                                sql = @"select *  from TUnit where name=@name and isSingleUnit='1'";
+                                dynamicParams.Add("@name", excelTable[1].Rows[k][6].ToString().Trim());
                                 dt = DapperHelper.selectdata(sql, dynamicParams);
                                 if (dt.Rows.Count <= 0)
                                 {
                                     ExcelErro erro = new ExcelErro();
                                     erro.RoeNumber = "/";
-                                    erro.ErrorField = "{*璁¢噺鍗曚綅/缁勭紪鐮亇";
-                                    erro.ErrorCont = "瀛樿揣妗f琛�:{*璁¢噺鍗曚綅/缁勭紪鐮亇瀛楁" + excelTable[1].Rows[k][6].ToString().Trim() + "涓嶆槸鏈夋晥鐨勫崟璁¢噺鍗曚綅";
+                                    erro.ErrorField = "{*璁¢噺鍗曚綅/缁勫悕瀛梷";
+                                    erro.ErrorCont = "瀛樿揣妗f琛�:{*璁¢噺鍗曚綅/缁勫悕瀛梷瀛楁" + excelTable[1].Rows[k][6].ToString().Trim() + "涓嶆槸鏈夋晥鐨勫崟璁¢噺鍗曚綅";
                                     list.Add(erro);
                                 }
                             }
@@ -2755,15 +2728,15 @@
                             //鍒ゆ柇璁¢噺鍗曚綅鏄惁涓哄璁¢噺
                             if (excelTable[1].Rows[k][6].ToString().Trim() != null && excelTable[1].Rows[k][6].ToString().Trim() != "")
                             {
-                                sql = @"select *  from TUnitGroup where code=@code";
+                                sql = @"select *  from TUnitGroup where name=@name";
                                 dynamicParams.Add("@code", excelTable[1].Rows[k][6].ToString().Trim());
                                 dt = DapperHelper.selectdata(sql, dynamicParams);
                                 if (dt.Rows.Count <= 0)
                                 {
                                     ExcelErro erro = new ExcelErro();
                                     erro.RoeNumber = "/";
-                                    erro.ErrorField = "{*璁¢噺鍗曚綅/缁勭紪鐮亇";
-                                    erro.ErrorCont = "瀛樿揣妗f琛�:{*璁¢噺鍗曚綅/缁勭紪鐮亇瀛楁" + excelTable[1].Rows[k][6].ToString().Trim() + "涓嶆槸鏈夋晥鐨勫璁¢噺鍗曚綅缁�";
+                                    erro.ErrorField = "{*璁¢噺鍗曚綅/缁勫悕绉皚";
+                                    erro.ErrorCont = "瀛樿揣妗f琛�:{*璁¢噺鍗曚綅/缁勫悕绉皚瀛楁" + excelTable[1].Rows[k][6].ToString().Trim() + "涓嶆槸鏈夋晥鐨勫璁¢噺鍗曚綅缁�";
                                     list.Add(erro);
                                 }
                             }
@@ -3538,32 +3511,44 @@
         #endregion
 
         #region銆怑xcel涓婁紶鏁版嵁楠岃瘉,缂洪櫡瀹氫箟銆�
-        public static List<ExcelErro> EighteenData(string FileCode, out string StuCode, out string message, out int count)
+        public static List<ExcelErro> EighteenData(List<DataTable> excelTable, out string StuCode, out string message, out int count)
         {
             message = "";
             StuCode = "";
             count = 0;
             string sql = "";
-            DataTable dt;
             var dynamicParams = new DynamicParameters();
+            DataTable dt;
             List<ExcelErro> list = new List<ExcelErro>();
-            DataTable excelTable = new DataTable();
-            list = ImportExcel.ExcelToTableErro(FileCode);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
-            excelTable = ImportExcel.ExcelToTable(FileCode);  //鑾峰彇Excel鏁版嵁
-            for (int i = 0; i < excelTable.Rows.Count; i++)
+            list = ImportExcel.InportExcelToTableListErro(excelTable);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
+            //缂洪櫡琛�
+            for (int k = 0; k < excelTable[0].Rows.Count; k++)
             {
-                if (excelTable.Rows[i][1].ToString().Trim() != null && excelTable.Rows[i][1].ToString().Trim() != "")
+                if (excelTable[0].Rows[k][0].ToString().Trim() != null && excelTable[0].Rows[k][0].ToString().Trim() != "")
                 {
-                    sql = @"select code  from TDefect where code=@code";
-
-                    dynamicParams.Add("@code", excelTable.Rows[i][1].ToString().Trim());
+                    sql = @"select *  from TDefect where code=@code";
+                    dynamicParams.Add("@code", excelTable[0].Rows[k][0].ToString().Trim());
                     dt = DapperHelper.selectdata(sql, dynamicParams);
                     if (dt.Rows.Count > 0)
                     {
                         ExcelErro erro = new ExcelErro();
                         erro.RoeNumber = "/";
-                        erro.ErrorField = "{缂洪櫡瀹氫箟缂栧彿(鍞竴)}";
-                        erro.ErrorCont = "缂洪櫡瀹氫箟琛�:{缂洪櫡瀹氫箟缂栧彿(鍞竴)}瀛楁" + excelTable.Rows[i][1].ToString().Trim() + "宸插瓨鍦�";
+                        erro.ErrorField = "{*缂洪櫡缂栧彿(鍞竴)}";
+                        erro.ErrorCont = "缂洪櫡:{*缂洪櫡缂栧彿(鍞竴)}瀛楁" + excelTable[0].Rows[k][0].ToString().Trim() + "宸插瓨鍦�";
+                        list.Add(erro);
+                    }
+                }
+                if (excelTable[0].Rows[k][1].ToString().Trim() != null && excelTable[0].Rows[k][1].ToString().Trim() != "")
+                {
+                    sql = @"select *  from TDefect where name=@name";
+                    dynamicParams.Add("@name", excelTable[0].Rows[k][1].ToString().Trim());
+                    dt = DapperHelper.selectdata(sql, dynamicParams);
+                    if (dt.Rows.Count > 0)
+                    {
+                        ExcelErro erro = new ExcelErro();
+                        erro.RoeNumber = "/";
+                        erro.ErrorField = "{*缂洪櫡鍚嶇О}";
+                        erro.ErrorCont = "缂洪櫡琛�:{*缂洪櫡鍚嶇О}瀛楁" + excelTable[1].Rows[k][1].ToString().Trim() + "宸插瓨鍦�";
                         list.Add(erro);
                     }
                 }
@@ -3583,7 +3568,7 @@
             {
                 StuCode = "200";
                 message = "鏁版嵁楠岃瘉鎴愬姛";
-                count = excelTable.Rows.Count;
+                count = excelTable[0].Rows.Count;
             }
             return list;
         }
@@ -4042,28 +4027,28 @@
                 //瀵煎叆瑙掕壊
                 for (int i = 0; i < excelTable[0].Rows.Count; i++)
                 {
-                    if (excelTable[0].Rows[i][3].ToString().Trim() != null && excelTable[0].Rows[i][3].ToString().Trim() != "")
-                    {
-                        //鏁版嵁鑼冨洿
-                        switch (excelTable[0].Rows[i][3].ToString().Trim())
-                        {
-                            case "鍏ㄩ儴":
-                                datarange = "ALL";
-                                break;
-                            case "鏈骇":
-                                datarange = "LEVEL";
-                                break;
-                            case "鏈汉":
-                                datarange = "PERSON";
-                                break;
-                            case "鑷畾涔�":
-                                datarange = "CUSTOM";
-                                datapermissions = excelTable[0].Rows[i][4].ToString().Trim();
-                                break;
-                            default:
-                                break;
-                        }
-                    }
+                    //if (excelTable[0].Rows[i][3].ToString().Trim() != null && excelTable[0].Rows[i][3].ToString().Trim() != "")
+                    //{
+                    //    //鏁版嵁鑼冨洿
+                    //    switch (excelTable[0].Rows[i][3].ToString().Trim())
+                    //    {
+                    //        case "鍏ㄩ儴":
+                    //            datarange = "ALL";
+                    //            break;
+                    //        case "鏈骇":
+                    //            datarange = "LEVEL";
+                    //            break;
+                    //        case "鏈汉":
+                    //            datarange = "PERSON";
+                    //            break;
+                    //        case "鑷畾涔�":
+                    //            datarange = "CUSTOM";
+                    //            datapermissions = excelTable[0].Rows[i][4].ToString().Trim();
+                    //            break;
+                    //        default:
+                    //            break;
+                    //    }
+                    //}
 
                     sql = @"insert into TRole(rolecode,rolename,status,datarange,datapermissions,identifying,description,lm_user,lm_date) 
                             values(@rolecode,@rolename,@status,@datarange,@datapermissions,@identifying,@description,@lm_user,@lm_date)";
@@ -4075,9 +4060,10 @@
                             rolecode = excelTable[0].Rows[i][0].ToString().Trim(),
                             rolename = excelTable[0].Rows[i][1].ToString().Trim(),
                             status = excelTable[0].Rows[i][2].ToString().Trim(),
-                            datarange = datarange,
+                            datarange = "ALL",
                             datapermissions = datapermissions,
-                            description = excelTable[0].Rows[i][5].ToString().Trim(),
+                            identifying="2",
+                            description = excelTable[0].Rows[i][3].ToString().Trim(),
                             lm_user = us.usercode,
                             lm_date = DateTime.Now.ToString()
                         }
@@ -4323,16 +4309,19 @@
                     if (excelTable[1].Rows[i][5].ToString().Trim() == "S")
                     {
                         isSingleUnit = 1;
-                        idunit = excelTable[1].Rows[i][6].ToString().Trim();
+                        sql = @"select * from TUnit  where name=@name and isSingleUnit='1'";
+                        dynamicParams.Add("@name", excelTable[1].Rows[i][6].ToString().Trim());
+                        var dt = DapperHelper.selectdata(sql, dynamicParams);
+                        idunit = dt.Rows[0]["code"].ToString();
                     }
                     if (excelTable[1].Rows[i][5].ToString().Trim() == "M")
                     {
                         sql = @"select T.code,T.name,T.isMainUnit   from TUnitGroup G
                                 inner join TUnit T on G.code=T.idunitgroup
-                                where G.code=@code";
-                        dynamicParams.Add("@code", excelTable[1].Rows[i][6].ToString().Trim());
+                                where G.name=@name";
+                        dynamicParams.Add("@name", excelTable[1].Rows[i][6].ToString().Trim());
                         var dt = DapperHelper.selectdata(sql, dynamicParams);
-                        idunitgroup = excelTable[1].Rows[i][6].ToString().Trim();
+                        idunitgroup = dt.Rows[0]["groupcode"].ToString();
                         idunit = dt.AsEnumerable().Where(row => row.Field<string>("isMainUnit") =="1").Select(row => row.Field<string>("code")).FirstOrDefault();
                         idnounit = dt.AsEnumerable().Where(row => row.Field<string>("isMainUnit") == "0").Select(row => row.Field<string>("code")).FirstOrDefault();
                     }
@@ -5086,34 +5075,32 @@
         #endregion
 
         #region銆怑xcel鏁版嵁涓婁紶,缂洪櫡瀹氫箟銆�
-        public static string EighteenSubmit(string FileCode, string User, out string StuCode)
+        public static string EighteenSubmit(List<DataTable> excelTable, User us, out string StuCode)
         {
             string message = "";
             StuCode = "";
             string sql = "";
-            DataTable dt;
             List<object> list = new List<object>();
             var dynamicParams = new DynamicParameters();
             try
             {
                 list.Clear();
-                DataTable excelTable = new DataTable();
-                excelTable = ImportExcel.ExcelToTable(FileCode);
-                //瀵煎叆寰�鏉ュ崟浣嶈〃
-                for (int i = 0; i < excelTable.Rows.Count; i++)
+                //瀵煎叆缂洪櫡
+                for (int i = 0; i < excelTable[0].Rows.Count; i++)
                 {
-                    sql = @"insert into TDefect(code,name,descr,lm_user,lm_date) 
-                            values(@code,@name,@descr,@Operator,@CreateDate)";
+                    sql = @"insert into TDefect(code,name,description,is_step,lm_user,lm_date) 
+                            values(@code,@name,@description,@is_step,@lm_user,@lm_date)";
                     list.Add(new
                     {
                         str = sql,
                         parm = new
                         {
-                            code = excelTable.Rows[i][1].ToString().Trim(),
-                            name = excelTable.Rows[i][2].ToString().Trim(),
-                            descr = excelTable.Rows[i][3].ToString().Trim(),
-                            Operator = User,
-                            CreateDate = DateTime.Now.ToString()
+                            code = excelTable[0].Rows[i][0].ToString().Trim(),
+                            name = excelTable[0].Rows[i][1].ToString().Trim(),
+                            description = excelTable[0].Rows[i][2].ToString().Trim(),
+                            is_step="N",
+                            lm_user = us.usercode,
+                            lm_date = DateTime.Now.ToString()
                         }
                     });
                 }
diff --git "a/VueWebCoreApi/wwwroot/Excel/\345\255\230\350\264\247\346\241\243\346\241\210.xls" "b/VueWebCoreApi/wwwroot/Excel/\345\255\230\350\264\247\346\241\243\346\241\210.xls"
index 7f6292f..8cebcd0 100644
--- "a/VueWebCoreApi/wwwroot/Excel/\345\255\230\350\264\247\346\241\243\346\241\210.xls"
+++ "b/VueWebCoreApi/wwwroot/Excel/\345\255\230\350\264\247\346\241\243\346\241\210.xls"
Binary files differ
diff --git "a/VueWebCoreApi/wwwroot/Excel/\345\272\223\344\275\215\350\256\276\347\275\256.xls" "b/VueWebCoreApi/wwwroot/Excel/\345\272\223\344\275\215\350\256\276\347\275\256.xls"
index 9cde12a..2986c37 100644
--- "a/VueWebCoreApi/wwwroot/Excel/\345\272\223\344\275\215\350\256\276\347\275\256.xls"
+++ "b/VueWebCoreApi/wwwroot/Excel/\345\272\223\344\275\215\350\256\276\347\275\256.xls"
Binary files differ
diff --git "a/VueWebCoreApi/wwwroot/Excel/\345\276\200\346\235\245\345\215\225\344\275\215.xls" "b/VueWebCoreApi/wwwroot/Excel/\345\276\200\346\235\245\345\215\225\344\275\215.xls"
index e2cca9e..239f153 100644
--- "a/VueWebCoreApi/wwwroot/Excel/\345\276\200\346\235\245\345\215\225\344\275\215.xls"
+++ "b/VueWebCoreApi/wwwroot/Excel/\345\276\200\346\235\245\345\215\225\344\275\215.xls"
Binary files differ
diff --git "a/VueWebCoreApi/wwwroot/Excel/\347\274\272\351\231\267\345\256\232\344\271\211.xls" "b/VueWebCoreApi/wwwroot/Excel/\347\274\272\351\231\267\345\256\232\344\271\211.xls"
index bec990a..cbf0ed8 100644
--- "a/VueWebCoreApi/wwwroot/Excel/\347\274\272\351\231\267\345\256\232\344\271\211.xls"
+++ "b/VueWebCoreApi/wwwroot/Excel/\347\274\272\351\231\267\345\256\232\344\271\211.xls"
Binary files differ
diff --git "a/VueWebCoreApi/wwwroot/Excel/\350\247\222\350\211\262\347\256\241\347\220\206.xls" "b/VueWebCoreApi/wwwroot/Excel/\350\247\222\350\211\262\347\256\241\347\220\206.xls"
index 99ab7a4..42ef02b 100644
--- "a/VueWebCoreApi/wwwroot/Excel/\350\247\222\350\211\262\347\256\241\347\220\206.xls"
+++ "b/VueWebCoreApi/wwwroot/Excel/\350\247\222\350\211\262\347\256\241\347\220\206.xls"
Binary files differ

--
Gitblit v1.9.3