From cb776a0d9f1257047ae39c740b06e6ab487b1bfc Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期二, 01 十一月 2022 18:15:42 +0800
Subject: [PATCH] 设备清单导入接口开发,安灯响应接口修改

---
 VueWebApi/Tools/ImportExcelData.cs                                   |  311 +++++++++++++++++++++++--
 VueWebApi/Excel/设备清单.xls                                             |    0 
 VueWebApi/VueWebApi.csproj                                           |    1 
 VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache |    0 
 VueWebApi/Controllers/AppDeviceManageController.cs                   |    8 
 VueWebApi/DLL/DAL/AppDeviceManageDAL.cs                              |    2 
 .vs/VueWebApi/v16/.suo                                               |    0 
 VueWebApi/Tools/ImportExcel.cs                                       |  352 +++++++++++++++++++++++++++++
 8 files changed, 642 insertions(+), 32 deletions(-)

diff --git a/.vs/VueWebApi/v16/.suo b/.vs/VueWebApi/v16/.suo
index 0f292b4..9150b03 100644
--- a/.vs/VueWebApi/v16/.suo
+++ b/.vs/VueWebApi/v16/.suo
Binary files differ
diff --git a/VueWebApi/Controllers/AppDeviceManageController.cs b/VueWebApi/Controllers/AppDeviceManageController.cs
index 90413b7..935337c 100644
--- a/VueWebApi/Controllers/AppDeviceManageController.cs
+++ b/VueWebApi/Controllers/AppDeviceManageController.cs
@@ -174,7 +174,7 @@
         [HttpPost]
         public HttpResponseMessage RepairScanDeviceSave()
         {
-            string docu_code= HttpContext.Current.Request["docu_code"].ToString();//缁翠慨鐢宠鍗曞彿
+            string docu_code = HttpContext.Current.Request["docu_code"].ToString();//缁翠慨鐢宠鍗曞彿
             string username = HttpContext.Current.Request["username"].ToString();//鎿嶄綔浜哄憳
             string eqpcode = HttpContext.Current.Request["eqpcode"].ToString();//璁惧缂栫爜
             string wkshpcode = HttpContext.Current.Request["wkshpcode"].ToString(); //杞﹂棿缂栫爜
@@ -183,7 +183,7 @@
             string repaircontent = HttpContext.Current.Request["repaircontent"].ToString(); //缁翠慨鍐呭
             string replaceparts = HttpContext.Current.Request["replaceparts"].ToString(); //鏇存崲澶囦欢
             HttpFileCollection files = HttpContext.Current.Request.Files;
-            mes = AppDeviceManageBLL.RepairScanDeviceSave(docu_code,username, eqpcode, wkshpcode, faultdescr, is_stoprepair, repaircontent, replaceparts, files);
+            mes = AppDeviceManageBLL.RepairScanDeviceSave(docu_code, username, eqpcode, wkshpcode, faultdescr, is_stoprepair, repaircontent, replaceparts, files);
             return TJson.toJson(mes);
         }
         #endregion
@@ -213,9 +213,9 @@
         /// <returns></returns>
         [Route(template: "RepairVerificationScanDeviceDataSub")]
         [HttpGet]
-        public HttpResponseMessage RepairVerificationScanDeviceDataSub(string repair_code, string eqpcode,string wkshpcode)
+        public HttpResponseMessage RepairVerificationScanDeviceDataSub(string repair_code, string eqpcode, string wkshpcode)
         {
-            mes = AppDeviceManageBLL.RepairVerificationScanDeviceDataSub(repair_code,eqpcode, wkshpcode);
+            mes = AppDeviceManageBLL.RepairVerificationScanDeviceDataSub(repair_code, eqpcode, wkshpcode);
             return TJson.toJson(mes);
         }
         #endregion
diff --git a/VueWebApi/DLL/DAL/AppDeviceManageDAL.cs b/VueWebApi/DLL/DAL/AppDeviceManageDAL.cs
index e0a4cc3..186a9cb 100644
--- a/VueWebApi/DLL/DAL/AppDeviceManageDAL.cs
+++ b/VueWebApi/DLL/DAL/AppDeviceManageDAL.cs
@@ -1120,7 +1120,7 @@
             try
             {
                 list.Clear();
-                for (int i = 1; i <= json.Count; i++)
+                for (int i = 0; i <json.Count; i++)
                 {
                     string code = json[i].code.ToString();
                     string name = json[i].name.ToString();
diff --git "a/VueWebApi/Excel/\350\256\276\345\244\207\346\270\205\345\215\225.xls" "b/VueWebApi/Excel/\350\256\276\345\244\207\346\270\205\345\215\225.xls"
new file mode 100644
index 0000000..04ea0ce
--- /dev/null
+++ "b/VueWebApi/Excel/\350\256\276\345\244\207\346\270\205\345\215\225.xls"
Binary files differ
diff --git a/VueWebApi/Tools/ImportExcel.cs b/VueWebApi/Tools/ImportExcel.cs
index f7470ad..e8dc1c2 100644
--- a/VueWebApi/Tools/ImportExcel.cs
+++ b/VueWebApi/Tools/ImportExcel.cs
@@ -271,6 +271,170 @@
             return list;
         }
 
+
+        /// <summary>
+        /// Excel 3涓猄heet瀵煎叆鎴怐atable
+        /// </summary>
+        /// <param name="file">瀵煎叆璺緞(鍖呭惈鏂囦欢鍚嶄笌鎵╁睍鍚�)</param>
+        /// <returns></returns>
+        public static List<DataTable> ExcelToThreeTableList(string file)
+        {
+            List<DataTable> list = new List<DataTable>();
+            IWorkbook Workbook;
+            try
+            {
+                using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
+                {
+                    //XSSFWorkbook 閫傜敤XLSX鏍煎紡锛孒SSFWorkbook 閫傜敤XLS鏍煎紡
+                    string fileExt = Path.GetExtension(file).ToLower();
+                    if (fileExt == ".xls")
+                    {
+                        Workbook = new HSSFWorkbook(fileStream);
+                    }
+                    else if (fileExt == ".xlsx")
+                    {
+                        Workbook = new XSSFWorkbook(fileStream);
+                    }
+                    else
+                    {
+                        Workbook = null;
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+            int count = Workbook.NumberOfSheets; //鑾峰彇鎵�鏈塖heetName
+            if (count < 3)
+            {
+                DataTable table = new DataTable();
+                //瀹氫綅鍦ㄧ涓�涓猻heet
+                ISheet sheet = Workbook.GetSheetAt(0);
+                //绗竴琛屼负鏍囬琛�
+                IRow headerRow = sheet.GetRow(0);
+                if (headerRow == null)
+                {
+                    return list;
+                }
+                int cellCount = headerRow.LastCellNum;
+                int rowCount = sheet.LastRowNum;
+
+                //寰幆娣诲姞鏍囬鍒�
+                for (int i = headerRow.FirstCellNum; i < cellCount; i++)
+                {
+                    DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
+                    table.Columns.Add(column);
+                }
+
+                //鏁版嵁
+                for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
+                {
+                    IRow row = sheet.GetRow(i);
+                    DataRow dataRow = table.NewRow();
+                    if (row != null && row.Cells.Count > 0)
+                    {
+                        for (int j = row.FirstCellNum; j < cellCount; j++)
+                        {
+                            if (row.GetCell(j) != null)
+                            {
+                                dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
+                            }
+                        }
+                    }
+                    table.Rows.Add(dataRow);
+                }
+                //娓呴櫎鏈�鍚庣殑绌鸿
+                for (int i = 0; i < table.Rows.Count; i++)
+                {
+                    bool isnull = true;
+                    for (int j = 0; j < table.Columns.Count; j++)
+                    {
+                        if (table.Rows[i][j].ToString() != null && table.Rows[i][j].ToString() != "")
+                        {
+                            if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
+                            {
+                                isnull = false;
+                                break;
+                            }
+                        }
+                    }
+                    if (isnull)
+                    {
+                        table.Rows[i].Delete();
+                        i = 0;
+                    }
+                }
+                list.Add(table);
+            }
+            else
+            {
+                for (int m = 0; m < count; m++)
+                {
+                    DataTable table = new DataTable();
+                    //瀹氫綅鍦ㄧ涓�涓猻heet
+                    ISheet sheet = Workbook.GetSheetAt(m);
+                    //绗竴琛屼负鏍囬琛�
+                    IRow headerRow = sheet.GetRow(0);
+                    if (headerRow == null)
+                    {
+                        return list;
+                    }
+                    int cellCount = headerRow.LastCellNum;
+                    int rowCount = sheet.LastRowNum;
+
+                    //寰幆娣诲姞鏍囬鍒�
+                    for (int i = headerRow.FirstCellNum; i < cellCount; i++)
+                    {
+                        DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
+                        table.Columns.Add(column);
+                    }
+
+                    //鏁版嵁
+                    for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
+                    {
+                        IRow row = sheet.GetRow(i);
+                        DataRow dataRow = table.NewRow();
+                        if (row != null && row.Cells.Count > 0)
+                        {
+                            for (int j = row.FirstCellNum; j < cellCount; j++)
+                            {
+                                if (row.GetCell(j) != null)
+                                {
+                                    dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
+                                }
+                            }
+                        }
+                        table.Rows.Add(dataRow);
+                    }
+                    //娓呴櫎鏈�鍚庣殑绌鸿
+                    for (int i = 0; i < table.Rows.Count; i++)
+                    {
+                        bool isnull = true;
+                        for (int j = 0; j < table.Columns.Count; j++)
+                        {
+                            if (table.Rows[i][j].ToString() != null && table.Rows[i][j].ToString() != "")
+                            {
+                                if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
+                                {
+                                    isnull = false;
+                                    break;
+                                }
+                            }
+                        }
+                        if (isnull)
+                        {
+                            table.Rows[i].Delete();
+                            i = 0;
+                        }
+                    }
+                    list.Add(table);
+                }
+            }
+            return list;
+        }
+
+
         /// <summary>
         /// 鑾峰彇鍗曞厓鏍肩被鍨�
         /// </summary>
@@ -700,7 +864,195 @@
             return list;
         }
 
+        /// <summary>
+        /// Excel 3涓猄heet 鏁版嵁楠岃瘉
+        /// </summary>
+        /// <param name="file">瀵煎叆璺緞(鍖呭惈鏂囦欢鍚嶄笌鎵╁睍鍚�)</param>
+        /// <returns></returns>
+        public static List<ExcelErro> ExcelToThreeTableListErro(string file)
+        {
+            List<ExcelErro> list = new List<ExcelErro>();
+            IWorkbook Workbook;
+            bool iscell = false;
+            int iscellCount = 0;
+            try
+            {
+                using (FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
+                {
+                    //XSSFWorkbook 閫傜敤XLSX鏍煎紡锛孒SSFWorkbook 閫傜敤XLS鏍煎紡
+                    string fileExt = Path.GetExtension(file).ToLower();
+                    if (fileExt == ".xls")
+                    {
+                        Workbook = new HSSFWorkbook(fileStream);
+                    }
+                    else if (fileExt == ".xlsx")
+                    {
+                        Workbook = new XSSFWorkbook(fileStream);
+                    }
+                    else
+                    {
+                        Workbook = null;
+                    }
+                }
+            }
+            catch (Exception ex)
+            {
+                throw ex;
+            }
+            for (int mm = 0; mm < 3; mm++)
+            {
+                DataTable table = new DataTable();
+                //瀹氫綅鍦ㄧ涓�涓猻heet
+                ISheet sheet = Workbook.GetSheetAt(mm);
+                //sheet.ShiftRows(sheet.FirstRowNum-1, sheet.LastRowNum,1);  
+                //绗竴琛屼负鏍囬琛�
+                IRow headerRow = sheet.GetRow(0);
+                int cellCount = headerRow.LastCellNum;
+                int rowCount0 = sheet.FirstRowNum;
+                //int rowCount = sheet.LastRowNum;
+                int rowCount = Rownum(headerRow, cellCount, sheet, sheet.LastRowNum); //鑾峰彇鍒犻櫎绌鸿涔嬪悗鐨勬暟鎹 (鍙拡瀵逛簬鏈�鍚庢暟鎹」鏈夌┖琛岀殑)
+                if (rowCount - rowCount0 >= 1)
+                {
+                    //-------------鍒ゆ柇蹇呭~椤规槸鍚︿负绌�----------------//
+                    //寰幆鏁版嵁琛�
+                    for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
+                    {
+                        iscell = false;
+                        iscellCount = 0;
+                        IRow row = sheet.GetRow(i);
+                        //鍒ゆ柇鏄惁鏈夌┖琛�
+                        if (row == null)
+                        {
+                            ExcelErro erro = new ExcelErro();
+                            erro.RoeNumber = (i + 1).ToString();
+                            erro.ErrorField = "绌鸿";
+                            erro.ErrorCont = "绌鸿";
+                            list.Add(erro);
+                            continue;
+                        }
+                        //鍒ゆ柇鏄惁瀛樺湪绌烘暟鎹
+                        for (int c = 0; c < cellCount; c++)
+                        {
+                            if (GetCellValue(row.GetCell(c)).Trim() != null && GetCellValue(row.GetCell(c)).Trim() != "")
+                            {
+                                iscell = false;
+                            }
+                            else
+                            {
+                                iscell = true;
+                                iscellCount++;
+                            }
+                        }
+                        if (iscell == true && iscellCount == cellCount)  //绌鸿
+                        {
+                            continue;
+                        }
+                        else
+                        {
+                            //寰幆鏍囬鍒�
+                            for (int j = headerRow.FirstCellNum; j < cellCount; j++)
+                            {
+                                //鑾峰彇鍗曞厓鏍肩殑濉厖鑹�
+                                string rgb = headerRow.Cells[j].CellStyle.FillForegroundColor.ToString();
+                                if (rgb == "51")  //蹇呭~椤瑰瓧娈靛垪澶村~鍏呰壊
+                                {
+                                    if (sheet.GetRow(i) == null || sheet.GetRow(i).ToString() == "")  //瀛樺湪绌鸿
+                                    {
+                                        ExcelErro erro = new ExcelErro();
+                                        erro.RoeNumber = i.ToString();
+                                        erro.ErrorField = "{绗�" + i.ToString() + "琛寎";
+                                        erro.ErrorCont = "{绗�" + i.ToString() + "}琛屼负绌�";
+                                        list.Add(erro);
+                                        break;
+                                    }
+                                    else
+                                    {
+                                        string cellValue = GetCellValue(sheet.GetRow(i).GetCell(j)).Trim();   //GetCell:杩斿洖鍖呮嫭绌哄垪鍊�  Cells:鍙繑鍥炴湁鍊肩殑鍒�
+                                        if (cellValue == "" || cellValue == null)
+                                        {
+                                            ExcelErro erro = new ExcelErro();
+                                            erro.RoeNumber = (sheet.GetRow(i).RowNum + 1).ToString();
+                                            erro.ErrorField = "{" + headerRow.Cells[j].StringCellValue + "}";
+                                            erro.ErrorCont = mm == 0 ? "涓昏〃涓細" + "{" + headerRow.Cells[j].StringCellValue + "}瀛楁涓嶈兘涓虹┖" : "瀛愯〃涓細" + "{" + headerRow.Cells[j].StringCellValue + "}瀛楁涓嶈兘涓虹┖";
+                                            list.Add(erro);
+                                        }
+                                    }
+                                }
 
+                            }
+                        }
+                    }
+                    //-------------鍒ゆ柇鍞竴椤规槸鍚﹂噸澶�----------------//
+                    //寰幆娣诲姞鏍囬鍒�
+                    for (int i = headerRow.FirstCellNum; i < cellCount; i++)
+                    {
+                        DataColumn column = new DataColumn(headerRow.GetCell(i).StringCellValue);
+                        table.Columns.Add(column);
+                    }
+
+                    //鏁版嵁
+                    for (int i = (sheet.FirstRowNum + 1); i <= rowCount; i++)
+                    {
+                        IRow row = sheet.GetRow(i);
+                        DataRow dataRow = table.NewRow();
+                        if (row != null)
+                        {
+                            for (int j = row.FirstCellNum; j < cellCount; j++)
+                            {
+                                if (row.GetCell(j) != null)
+                                {
+                                    dataRow[j] = GetCellValue(row.GetCell(j)).Trim();
+                                }
+                            }
+                        }
+                        table.Rows.Add(dataRow);
+                    }
+                    //娓呴櫎鏈�鍚庣殑绌鸿
+                    for (int i = 0; i < table.Rows.Count; i++)
+                    {
+                        bool isnull = true;
+                        for (int j = 0; j < table.Columns.Count; j++)
+                        {
+                            if (table.Rows[i][j].ToString() != null && table.Rows[i][j].ToString() != "")
+                            {
+                                if (table.Rows[i][j].ToString().Trim() != "" && table.Rows[i][j].ToString().Trim() != null)
+                                {
+                                    isnull = false;
+                                    break;
+                                }
+                            }
+                        }
+                        if (isnull)
+                        {
+                            table.Rows[i].Delete();
+                            i = 0;
+                        }
+                    }
+                    DataView view = new DataView(table);
+                    //鑾峰彇鎵�鏈夊敮涓�鍒�
+                    List<string> list0 = new List<string>();
+                    //寰幆鏍囬鍒�
+                    for (int j = headerRow.FirstCellNum; j < cellCount; j++)
+                    {
+                        bool isContain = headerRow.Cells[j].StringCellValue.Contains("鍞竴");  //鏍囬鍒椾腑鐨勫繀濉垪
+                        if (isContain == true)
+                        {
+                            //
+                            if (view.ToTable(true, new string[] { "" + headerRow.Cells[j].StringCellValue + "" }).Rows.Count < table.Rows.Count)
+                            {
+                                ExcelErro erro = new ExcelErro();
+                                erro.RoeNumber = "/";
+                                erro.ErrorField = "{" + headerRow.Cells[j].StringCellValue + "}";
+                                erro.ErrorCont = mm == 0 ? "涓昏〃涓細" + "{" + headerRow.Cells[j].StringCellValue + "}瀛楁鏈夐噸澶嶆暟鎹�" : "瀛愯〃涓細" + "{" + headerRow.Cells[j].StringCellValue + "}瀛楁鏈夐噸澶嶆暟鎹�";
+                                list.Add(erro);
+                            }
+                        }
+                    }
+                }
+            }
+            List<ExcelErro> stuList = list.OrderBy(s => s.RoeNumber).ToList<ExcelErro>();
+            return list;
+        }
 
 
 
diff --git a/VueWebApi/Tools/ImportExcelData.cs b/VueWebApi/Tools/ImportExcelData.cs
index 026d75d..3b7ffe1 100644
--- a/VueWebApi/Tools/ImportExcelData.cs
+++ b/VueWebApi/Tools/ImportExcelData.cs
@@ -568,62 +568,117 @@
         {
             string Message = "";
             code = "";
-            DataTable excelTable = new DataTable();
-            excelTable = ImportExcel.ExcelToTable(FileCode);
-            if (excelTable.Columns.Count != 10)
+            List<DataTable> excelTable = new List<DataTable>();
+            excelTable = ImportExcel.ExcelToThreeTableList(FileCode);
+            if (excelTable.Count != 6)
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "瀵煎叆妯℃澘涓嶇鍚堣鑼�,璇锋鏌heet鏁�";
             }
-            else if (excelTable.Columns[0].ColumnName != "搴忓彿")
+            else if (excelTable[0].Columns.Count != 4)
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧绫诲瀷)涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
             }
-            else if (excelTable.Columns[1].ColumnName != "璁惧缂栧彿(鍞竴)")
+            else if (excelTable[1].Columns.Count != 5)
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧缁�)涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
             }
-            else if (excelTable.Columns[2].ColumnName != "璁惧鍚嶇О")
+            else if (excelTable[2].Columns.Count != 9)
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
             }
-            else if (excelTable.Columns[3].ColumnName != "璁惧绫诲瀷")
+            else if (excelTable[0].Columns[0].ColumnName != "搴忓彿")
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧绫诲瀷)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕搴忓彿}";
             }
-            else if (excelTable.Columns[4].ColumnName != "鐢熶骇杞﹂棿")
+            else if (excelTable[0].Columns[1].ColumnName != "璁惧绫诲瀷缂栧彿(鍞竴)")
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧绫诲瀷)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�2鍒楀簲涓簕璁惧绫诲瀷缂栧彿(鍞竴)}";
             }
-            else if (excelTable.Columns[5].ColumnName != "鎵�灞炰骇绾�")
+            else if (excelTable[0].Columns[2].ColumnName != "璁惧绫诲瀷鍚嶇О")
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧绫诲瀷)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�3鍒楀簲涓簕璁惧绫诲瀷鍚嶇О}";
             }
-            else if (excelTable.Columns[6].ColumnName != "鎶曞叆鏃ユ湡")
+            else if (excelTable[0].Columns[3].ColumnName != "璁惧绫诲瀷鎻忚堪")
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧绫诲瀷)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�4鍒楀簲涓簕璁惧绫诲瀷鎻忚堪}";
             }
-            else if (excelTable.Columns[7].ColumnName != "绋煎姩鐜囷紙%锛�")
+            else if (excelTable[1].Columns[0].ColumnName != "搴忓彿")
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧缁�)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕搴忓彿}";
             }
-            else if (excelTable.Columns[8].ColumnName != "浣跨敤鐘舵��")
+            else if (excelTable[1].Columns[1].ColumnName != "璁惧缁勭紪鍙�(鍞竴)")
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧缁�)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�2鍒楀簲涓簕璁惧缁勭紪鍙�(鍞竴)}";
             }
-            else if (excelTable.Columns[9].ColumnName != "鏁伴噰鏍囪瘑1")
+            else if (excelTable[1].Columns[2].ColumnName != "璁惧缁勫悕绉�")
             {
                 code = "300";
-                Message = "妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚�";
+                Message = "璁惧娓呭崟妯℃澘(璁惧缁�)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�3鍒楀簲涓簕璁惧缁勫悕绉皚";
+            }
+            else if (excelTable[1].Columns[3].ColumnName != "璁惧绫诲瀷缂栧彿(鍞竴)")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧缁�)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�4鍒楀簲涓簕璁惧绫诲瀷缂栧彿(鍞竴)}";
+            }
+            else if (excelTable[1].Columns[4].ColumnName != "璁惧缁勬弿杩�")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧缁�)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�5鍒楀簲涓簕璁惧缁勬弿杩皚";
+            }
+            else if (excelTable[2].Columns[0].ColumnName != "搴忓彿")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕搴忓彿}";
+            }
+            else if (excelTable[2].Columns[1].ColumnName != "璁惧缂栧彿(鍞竴)")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕璁惧缂栧彿(鍞竴)}";
+            }
+            else if (excelTable[2].Columns[2].ColumnName != "璁惧鍚嶇О")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕璁惧鍚嶇О}";
+            }
+            else if (excelTable[2].Columns[3].ColumnName != "璁惧绫诲瀷缂栧彿(鍞竴)")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕璁惧绫诲瀷缂栧彿(鍞竴)}";
+            }
+            else if (excelTable[2].Columns[4].ColumnName != "璁惧缁勭紪鍙�(鍞竴)")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕璁惧缁勭紪鍙�(鍞竴)}";
+            }
+            else if (excelTable[2].Columns[5].ColumnName != "鎶曞叆鏃ユ湡")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕鎶曞叆鏃ユ湡}";
+            }
+            else if (excelTable[2].Columns[6].ColumnName != "鐢熶骇杞﹂棿")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕鐢熶骇杞﹂棿}";
+            }
+            else if (excelTable[2].Columns[7].ColumnName != "浣跨敤鐘舵��")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕浣跨敤鐘舵�亇";
+            }
+            else if (excelTable[2].Columns[8].ColumnName != "绋煎姩鐜囷紙%锛�")
+            {
+                code = "300";
+                Message = "璁惧娓呭崟妯℃澘(璁惧娓呭崟)锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕绋煎姩鐜囷紙%锛墋";
             }
             else
             {
@@ -2113,9 +2168,127 @@
             StuCode = "";
             count = 0;
             string sql = "";
+            var dynamicParams = new DynamicParameters();
             DataTable dt;
             List<ExcelErro> list = new List<ExcelErro>();
-
+            List<DataTable> excelTable = new List<DataTable>();
+            list = ImportExcel.ExcelToThreeTableListErro(FileCode);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
+            excelTable = ImportExcel.ExcelToThreeTableList(FileCode);  //鑾峰彇Excel鏁版嵁
+            //璁惧绫诲瀷琛�,鍒ゆ柇璁惧绫诲瀷鏄惁瀛樺湪
+            for (int i = 0; i < excelTable[0].Rows.Count; i++)
+            {
+                if (excelTable[0].Rows[i][1].ToString().Trim() != null && excelTable[0].Rows[i][1].ToString().Trim() != "")
+                {
+                    sql = @"select *  from TEqpType where code=@code";
+                    dynamicParams.Add("@code", excelTable[0].Rows[i][1].ToString().Trim());
+                    dt = DapperHelper.selectdata(sql, dynamicParams);
+                    if (dt.Rows.Count > 0)
+                    {
+                        ExcelErro erro = new ExcelErro();
+                        erro.RoeNumber = "/";
+                        erro.ErrorField = "{璁惧绫诲瀷缂栧彿(鍞竴)}";
+                        erro.ErrorCont = "璁惧绫诲瀷琛�:{璁惧绫诲瀷缂栧彿(鍞竴)}瀛楁" + excelTable[0].Rows[i][1].ToString().Trim() + "宸插瓨鍦�";
+                        list.Add(erro);
+                    }
+                }
+            }
+            //璁惧缁勮〃,鍒ゆ柇璁惧缁勬槸鍚﹀瓨鍦�
+            for (int j = 0; j < excelTable[1].Rows.Count; j++)
+            {
+                if (excelTable[1].Rows[j][1].ToString().Trim() != null && excelTable[1].Rows[j][1].ToString().Trim() != "")
+                {
+                    sql = @"select *  from TEqpGroup where code=@code";
+                    dynamicParams.Add("@code", excelTable[1].Rows[j][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[j][1].ToString().Trim() + "宸插瓨鍦�";
+                        list.Add(erro);
+                    }
+                }
+            }
+            //鍒ゆ柇瀛愯〃澶栭敭涓嶅瓨鍦ㄤ簬涓昏〃涓婚敭涓殑鏁版嵁
+            var dt3 = from r in excelTable[1].AsEnumerable()
+                      where !(
+                          from rr in excelTable[0].AsEnumerable()
+                          select rr.Field<string>("璁惧绫诲瀷缂栧彿(鍞竴)")
+                      ).Contains(r.Field<string>("璁惧绫诲瀷缂栧彿(鍞竴)"))
+                      select r;
+            List<DataRow> listRow = dt3.ToList();
+            if (listRow.Count > 0)
+            {
+                ExcelErro erro = new ExcelErro();
+                erro.RoeNumber = "/";
+                erro.ErrorField = "{璁惧绫诲瀷缂栧彿(鍞竴)}";
+                erro.ErrorCont = "璁惧缁勪俊鎭�:{璁惧绫诲瀷缂栧彿(鍞竴)}瀛楁涓湁鍊煎湪璁惧绫诲瀷淇℃伅:{璁惧绫诲瀷缂栧彿(鍞竴)}涓笉瀛樺湪";
+                list.Add(erro);
+            }
+            //璁惧娓呭崟琛�
+            for (int k = 0; k < excelTable[2].Rows.Count; k++)
+            {
+                if (excelTable[2].Rows[k][1].ToString().Trim() != null && excelTable[2].Rows[k][1].ToString().Trim() != "")
+                {
+                    sql = @"select *  from TEqpInfo where code=@code";
+                    dynamicParams.Add("@code", excelTable[2].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[2].Rows[k][1].ToString().Trim() + "宸插瓨鍦�";
+                        list.Add(erro);
+                    }
+                    //鍒ゆ柇璁惧缁勬槸鍚﹀搴旀纭殑璁惧绫诲瀷
+                    var yourGetData = excelTable[1].AsEnumerable().Where(x => (x.Field<string>("璁惧绫诲瀷缂栧彿(鍞竴)") == excelTable[2].Rows[k][3].ToString().Trim()) && x.Field<string>("璁惧缁勭紪鍙�(鍞竴)") == excelTable[2].Rows[k][4].ToString().Trim()).CopyToDataTable();
+                    if (yourGetData.Rows.Count <= 0)
+                    {
+                        ExcelErro erro = new ExcelErro();
+                        erro.RoeNumber = "/";
+                        erro.ErrorField = "{璁惧绫诲瀷缂栧彿(鍞竴)}/{璁惧缁勭紪鍙�(鍞竴)}";
+                        erro.ErrorCont = "璁惧琛�:{璁惧缂栧彿(鍞竴)}瀛楁" + excelTable[2].Rows[k][1].ToString().Trim() + "瀵瑰簲{璁惧绫诲瀷缂栧彿(鍞竴)}:" + excelTable[2].Rows[k][3].ToString().Trim() + "/{璁惧缁勭紪鍙�(鍞竴)}:" + excelTable[2].Rows[k][4].ToString().Trim() + "涓庤澶囩粍娓呭崟涓缃涓嶄笂";
+                        list.Add(erro);
+                    }
+                }
+            }
+            //杞﹂棿鍒ゆ柇
+            for (int m = 0; m < excelTable[1].Rows.Count; m++)
+            {
+                if (excelTable[1].Rows[m][6].ToString().Trim() != null && excelTable[1].Rows[m][6].ToString().Trim() != "")
+                {
+                    sql = @"select *  from TOrganization where org_name=@code and description='W'";
+                    dynamicParams.Add("@code", excelTable[1].Rows[m][6].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[m][6].ToString().Trim() + "涓嶅瓨鍦�";
+                        list.Add(erro);
+                    }
+                }
+            }
+            if (list.Count > 0)
+            {
+                int index = 0;
+                foreach (ExcelErro item in list)
+                {
+                    index++;
+                    item.Seq = index.ToString();
+                }
+                StuCode = "301";
+                message = "鏁版嵁楠岃瘉澶辫触";
+            }
+            else
+            {
+                StuCode = "200";
+                message = "鏁版嵁楠岃瘉鎴愬姛";
+                count = excelTable[0].Rows.Count + excelTable[1].Rows.Count;
+            }
             return list;
         }
         #endregion
@@ -2975,11 +3148,95 @@
         #region銆怑xcel鏁版嵁涓婁紶,璁惧娓呭崟銆�
         public static string NineSubmit(string FileCode, string User, out string StuCode)
         {
-            string message = "";
-            StuCode = "";
+            string message = ""; StuCode = "";
+            string sql = "";
+            List<object> list = new List<object>();
+            var dynamicParams = new DynamicParameters();
             try
             {
+                list.Clear();
+                List<DataTable> excelTable = new List<DataTable>();
+                excelTable = ImportExcel.ExcelToThreeTableList(FileCode);
+                //鍐欏叆璁惧绫诲瀷
+                for (int i = 0; i < excelTable[0].Rows.Count; i++)
+                {
+                    sql = @"insert into TEqpType(code,name,lm_user,lm_date,remark) 
+                            values(@code,@name,@lm_user,@lm_date,@remark)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            code = excelTable[0].Rows[i][1].ToString().Trim(),
+                            name = excelTable[0].Rows[i][2].ToString().Trim(),
+                            lm_user = User,
+                            lm_date = DateTime.Now.ToString(),
+                            remark = excelTable[0].Rows[i][3].ToString().Trim()
 
+                        }
+                    });
+                }
+                //鍐欏叆璁惧缁�
+                for (int j = 0; j < excelTable[1].Rows.Count; j++)
+                {
+                    sql = @"insert into TEqpGroup(code,name,lm_user,lm_date,remark,eqptype_code) 
+                            values(@code,@name,@lm_user,@lm_date,@remark,@eqptype_code)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            code = excelTable[1].Rows[j][1].ToString().Trim(),
+                            name = excelTable[1].Rows[j][2].ToString().Trim(),
+                            lm_user = User,
+                            lm_date = DateTime.Now.ToString(),
+                            remark = excelTable[1].Rows[j][4].ToString().Trim(),
+                            eqptype_code = excelTable[1].Rows[j][3].ToString().Trim()
+
+                        }
+                    });
+                }
+                //瀵煎叆璁惧娓呭崟
+                for (int k = 0; k < excelTable[2].Rows.Count; k++)
+                {
+                    //鑾峰彇杞﹂棿缂栫爜
+                    string sql0 = @"select code,name from TOrganization where org_name=@wkshp and description='W' and is_delete<>'1'";
+                    dynamicParams.Add("@wkshp", excelTable[2].Rows[k][6].ToString());
+                    var data = DapperHelper.selectdata(sql0, dynamicParams);
+
+                    sql = @"insert into TEqpInfo(code,name,eqptype_code,eqpgroup_code,wksp_code,input_date,operation_ration,enable,opc_uom,lm_user,lm_date) 
+                            values(@devicecode,@devicename,@devicetype,@devicegroup,@workshop,@importdate,@ratio,@status,@uom,@lm_user,@lm_date)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            devicecode = excelTable[2].Rows[k][1].ToString().Trim(),
+                            devicename = excelTable[0].Rows[k][2].ToString().Trim(),
+                            devicetype = excelTable[0].Rows[k][3].ToString().Trim(),
+                            devicegroup = excelTable[0].Rows[k][4].ToString().Trim(),
+                            workshop = excelTable[0].Rows[k][6].ToString().Trim(),
+                            importdate = excelTable[0].Rows[k][5].ToString().Trim(),
+                            ratio = excelTable[0].Rows[k][8].ToString().Trim(),
+                            status = excelTable[0].Rows[k][7].ToString().Trim(),
+                            uom = "鍙�",
+                            lm_user = User,
+                            lm_date = DateTime.Now.ToString()
+                        }
+                    });
+                }
+
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    StuCode = "200";
+                    message = "瀵煎叆鎴愬姛锛�";
+                }
+                else
+                {
+                    StuCode = "300";
+                    message = "瀵煎叆澶辫触锛�";
+                }
             }
             catch (Exception e)
             {
diff --git a/VueWebApi/VueWebApi.csproj b/VueWebApi/VueWebApi.csproj
index bdec53d..5b5547c 100644
--- a/VueWebApi/VueWebApi.csproj
+++ b/VueWebApi/VueWebApi.csproj
@@ -523,6 +523,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/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
index 1fc12bc..34d1d9f 100644
--- a/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
+++ b/VueWebApi/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary files differ

--
Gitblit v1.9.3