From c4ebb18dbe5440cca49be542982f356d2dfbb044 Mon Sep 17 00:00:00 2001
From: yl <ykxkd@outlook.com>
Date: 星期一, 14 十一月 2022 11:33:10 +0800
Subject: [PATCH] 设备保养项,设备保养标准导入接口开发

---
 VueWebApi/Tools/ImportExcelData.cs |  273 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 256 insertions(+), 17 deletions(-)

diff --git a/VueWebApi/Tools/ImportExcelData.cs b/VueWebApi/Tools/ImportExcelData.cs
index 05c393f..55d49c6 100644
--- a/VueWebApi/Tools/ImportExcelData.cs
+++ b/VueWebApi/Tools/ImportExcelData.cs
@@ -822,10 +822,10 @@
                 Message = "璁惧鐐规閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�2鍒楀簲涓簕鐐规椤瑰簭鍙穧";
                 return Message;
             }
-            else if (excelTable[1].Columns[2].ColumnName != "璁惧鐐规鏍囧噯缂栧彿(鍞竴)")
+            else if (excelTable[1].Columns[2].ColumnName != "璁惧鐐规鏍囧噯缂栧彿")
             {
                 code = "300";
-                Message = "璁惧鐐规閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�3鍒楀簲涓簕璁惧鐐规鏍囧噯缂栧彿(鍞竴)}";
+                Message = "璁惧鐐规閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�3鍒楀簲涓簕璁惧鐐规鏍囧噯缂栧彿}";
                 return Message;
             }
             else if (excelTable[1].Columns[3].ColumnName != "璁惧鐐规閮ㄤ綅缂栧彿(鍞竴)")
@@ -881,7 +881,7 @@
                 return Message;
 
             }
-            else if (excelTable[0].Columns.Count != 6)
+            else if (excelTable[0].Columns.Count != 5)
             {
                 code = "300";
                 Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
@@ -933,47 +933,95 @@
             code = "";
             List<DataTable> excelTable = new List<DataTable>();
             excelTable = ImportExcel.ExcelToTableList(FileCode);
-            if (excelTable.Count != 2)
+            if (excelTable.Count != 4)
             {
                 code = "300";
                 Message = "瀵煎叆妯℃澘涓嶇鍚堣鑼�,璇锋鏌heet鏁�";
                 return Message;
 
             }
-            else if (excelTable[0].Columns.Count != 6)
+            else if (excelTable[0].Columns.Count != 5)
             {
                 code = "300";
-                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
+                Message = "璁惧淇濆吇鏍囧噯椤电妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
+                return Message;
+            }
+            else if (excelTable[1].Columns.Count != 7)
+            {
+                code = "300";
+                Message = "璁惧淇濆吇閮ㄤ綅椤电妯℃澘涓嶇鍚堣鑼�,璇锋鏌ュ垪鍚嶅瓧娈垫暟";
                 return Message;
             }
             else if (excelTable[0].Columns[0].ColumnName != "搴忓彿")
             {
                 code = "300";
-                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�1鍒楀簲涓簕搴忓彿}";
+                Message = "璁惧鐐规鏍囧噯椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕搴忓彿}";
                 return Message;
             }
-            else if (excelTable[0].Columns[1].ColumnName != "淇濆吇椤圭洰缂栧彿(鍞竴)")
+            else if (excelTable[0].Columns[1].ColumnName != "璁惧淇濆吇鏍囧噯缂栧彿(鍞竴)")
             {
                 code = "300";
-                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�2鍒楀簲涓簕淇濆吇椤圭洰缂栧彿(鍞竴)}";
+                Message = "璁惧淇濆吇鏍囧噯椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�2鍒楀簲涓簕璁惧淇濆吇鏍囧噯缂栧彿(鍞竴)}";
                 return Message;
             }
-            else if (excelTable[0].Columns[2].ColumnName != "淇濆吇椤圭洰鍚嶇О")
+            else if (excelTable[0].Columns[2].ColumnName != "璁惧淇濆吇鏍囧噯鍚嶇О")
             {
                 code = "300";
-                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�3鍒楀簲涓簕淇濆吇椤圭洰鍚嶇О}";
+                Message = "璁惧淇濆吇鏍囧噯椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�3鍒楀簲涓簕璁惧淇濆吇鏍囧噯鍚嶇О}";
                 return Message;
             }
-            else if (excelTable[0].Columns[3].ColumnName != "鏄惁鎵爜")
+            else if (excelTable[0].Columns[3].ColumnName != "淇濆吇鍛ㄦ湡")
             {
                 code = "300";
-                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕鏄惁鎵爜}";
+                Message = "璁惧淇濆吇鏍囧噯椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�4鍒楀簲涓簕淇濆吇鍛ㄦ湡}";
                 return Message;
             }
-            else if (excelTable[0].Columns[4].ColumnName != "淇濆吇椤圭洰瑕佹眰")
+            else if (excelTable[0].Columns[4].ColumnName != "鏍囧噯鎻忚堪")
             {
                 code = "300";
-                Message = "璁惧淇濆吇椤圭洰妯℃澘涓嶇鍚堣鑼冿細琛ㄥご淇℃伅涓嶇鍚堣鑼�,绗�4鍒楀簲涓簕淇濆吇椤圭洰瑕佹眰}";
+                Message = "璁惧淇濆吇鏍囧噯椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�5鍒楀簲涓簕鏍囧噯鎻忚堪}";
+                return Message;
+            }
+            else if (excelTable[1].Columns[0].ColumnName != "搴忓彿")
+            {
+                code = "300";
+                Message = "璁惧鐐规閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�1鍒楀簲涓簕搴忓彿}";
+                return Message;
+            }
+            else if (excelTable[1].Columns[1].ColumnName != "淇濆吇椤瑰簭鍙�")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�2鍒楀簲涓簕淇濆吇椤瑰簭鍙穧";
+                return Message;
+            }
+            else if (excelTable[1].Columns[2].ColumnName != "璁惧淇濆吇鏍囧噯缂栧彿")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�3鍒楀簲涓簕璁惧淇濆吇鏍囧噯缂栧彿}";
+                return Message;
+            }
+            else if (excelTable[1].Columns[3].ColumnName != "璁惧淇濆吇閮ㄤ綅缂栧彿(鍞竴)")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�4鍒楀簲涓簕璁惧淇濆吇閮ㄤ綅缂栧彿(鍞竴)}";
+                return Message;
+            }
+            else if (excelTable[1].Columns[4].ColumnName != "璁惧淇濆吇閮ㄤ綅鍚嶇О")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�5鍒楀簲涓簕璁惧淇濆吇閮ㄤ綅鍚嶇О}";
+                return Message;
+            }
+            else if (excelTable[1].Columns[5].ColumnName != "淇濆吇閮ㄤ綅瑕佹眰")
+            {
+                code = "300";
+                Message = "璁惧淇濆吇閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�6鍒楀簲涓簕淇濆吇閮ㄤ綅瑕佹眰}";
+                return Message;
+            }
+            else if (excelTable[1].Columns[6].ColumnName != "閫夋嫨鎵爜")
+            {
+                code = "300";
+                Message = "璁惧鐐规閮ㄤ綅椤电妯℃澘锛氳〃澶翠俊鎭笉绗﹀悎瑙勮寖,绗�7鍒楀簲涓簕閫夋嫨鎵爜}";
                 return Message;
             }
             else
@@ -2365,6 +2413,16 @@
             DataTable excelTable = new DataTable();
             list = ImportExcel.ExcelToTableErro(FileCode);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
             excelTable = ImportExcel.ExcelToTable(FileCode);  //鑾峰彇Excel鏁版嵁
+            //褰撳墠Excel鏁版嵁涓偣妫�鏍囧噯椤电涓�,璁惧鐐规鏍囧噯缂栧彿(鍞竴鏄惁鏈夐噸澶�)
+            DataTable distinct = excelTable.DefaultView.ToTable(true, "鐐规椤圭洰缂栧彿(鍞竴)");
+            if (distinct.Rows.Count != excelTable.Rows.Count)
+            {
+                ExcelErro erro = new ExcelErro();
+                erro.RoeNumber = "/";
+                erro.ErrorField = "{鐐规椤圭洰缂栧彿(鍞竴)}";
+                erro.ErrorCont = "璁惧鐐规椤圭洰椤电妯℃澘:{鐐规椤圭洰缂栧彿(鍞竴)}鏈夐噸澶�";
+                list.Add(erro);
+            }
             for (int i = 0; i < excelTable.Rows.Count; i++)
             {
                 if (excelTable.Rows[i][1].ToString().Trim() != null && excelTable.Rows[i][1].ToString().Trim() != "")
@@ -2528,6 +2586,16 @@
             DataTable excelTable = new DataTable();
             list = ImportExcel.ExcelToTableErro(FileCode);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
             excelTable = ImportExcel.ExcelToTable(FileCode);  //鑾峰彇Excel鏁版嵁
+            //褰撳墠Excel鏁版嵁涓偣妫�鏍囧噯椤电涓�,璁惧鐐规鏍囧噯缂栧彿(鍞竴鏄惁鏈夐噸澶�)
+            DataTable distinct = excelTable.DefaultView.ToTable(true, "淇濆吇椤圭洰缂栧彿(鍞竴)");
+            if (distinct.Rows.Count != excelTable.Rows.Count)
+            {
+                ExcelErro erro = new ExcelErro();
+                erro.RoeNumber = "/";
+                erro.ErrorField = "{淇濆吇椤圭洰缂栧彿(鍞竴)}";
+                erro.ErrorCont = "璁惧淇濆吇椤圭洰椤电妯℃澘:{淇濆吇椤圭洰缂栧彿(鍞竴)}鏈夐噸澶�";
+                list.Add(erro);
+            }
             for (int i = 0; i < excelTable.Rows.Count; i++)
             {
                 if (excelTable.Rows[i][1].ToString().Trim() != null && excelTable.Rows[i][1].ToString().Trim() != "")
@@ -2574,9 +2642,106 @@
             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.ExcelToTableListErro(FileCode);    //楠岃瘉Excel鏁版嵁蹇呭~瀛楁鏄惁涓虹┖銆佸敮涓�瀛楁鏄惁閲嶅
+            excelTable = ImportExcel.ExcelToTableList(FileCode);  //鑾峰彇Excel鏁版嵁
+            //褰撳墠Excel鏁版嵁涓繚鍏绘爣鍑嗛〉绛句腑,璁惧淇濆吇鏍囧噯缂栧彿(鍞竴鏄惁鏈夐噸澶�)
+            DataTable distinct = excelTable[0].DefaultView.ToTable(true, "璁惧淇濆吇鏍囧噯缂栧彿(鍞竴)");
+            if (distinct.Rows.Count != excelTable[0].Rows.Count)
+            {
+                ExcelErro erro = new ExcelErro();
+                erro.RoeNumber = "/";
+                erro.ErrorField = "{璁惧淇濆吇鏍囧噯缂栧彿(鍞竴)}";
+                erro.ErrorCont = "璁惧淇濆吇鏍囧噯椤电妯℃澘:{璁惧淇濆吇鏍囧噯缂栧彿(鍞竴)}鏈夐噸澶�";
+                list.Add(erro);
+            }
+            //璁惧淇濆吇鏍囧噯琛ㄦ槸鍚﹀凡瀛樺湪淇濆吇鏍囧噯
+            for (int j = 0; j < excelTable[0].Rows.Count; j++)
+            {
+                if (excelTable[0].Rows[j][1].ToString().Trim() != null && excelTable[0].Rows[j][1].ToString().Trim() != "")
+                {
+                    sql = @"select *  from TEqpmai_Main where code=@code";
+                    dynamicParams.Add("@code", excelTable[0].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[0].Rows[j][1].ToString().Trim() + "鍦ㄦ暟鎹〃涓凡瀛樺湪";
+                        list.Add(erro);
+                    }
+                    //閫氳繃璁惧淇濆吇鏍囧噯椤电妯℃澘涓殑鏍囧噯缂栫爜鏌ヨ璁惧淇濆吇閮ㄤ綅椤电妯℃澘涓搴旂殑鏁版嵁淇℃伅
+                    DataTable ds = excelTable[1].AsEnumerable().Where<DataRow>(C => C["璁惧淇濆吇鏍囧噯缂栧彿"].ToString() == excelTable[0].Rows[j][1].ToString().Trim()).CopyToDataTable();
+                    if (ds.Rows.Count > 0)
+                    {
+                        //鍒ゆ柇淇濆吇鏍囧噯鏌ヨ淇濆吇閮ㄤ綅鏁版嵁鏄惁鏈夐噸澶�
+                        DataTable distinct1 = ds.DefaultView.ToTable(true, "璁惧淇濆吇閮ㄤ綅缂栧彿(鍞竴)");
+                        if (distinct1.Rows.Count != ds.Rows.Count)
+                        {
+                            ExcelErro erro = new ExcelErro();
+                            erro.RoeNumber = "/";
+                            erro.ErrorField = "{璁惧淇濆吇閮ㄤ綅缂栧彿(鍞竴)}";
+                            erro.ErrorCont = "璁惧淇濆吇閮ㄤ綅椤电妯℃澘:{璁惧淇濆吇鏍囧噯缂栧彿}:" + excelTable[0].Rows[j][1].ToString().Trim() + " 瀵瑰簲{璁惧淇濆吇閮ㄤ綅缂栧彿(鍞竴)}鏈夐噸澶�";
+                            list.Add(erro);
+                        }
+                    }
+                }
+            }
+            //褰撳墠Excel鏁版嵁涓偣妫�閮ㄤ綅椤电涓�,璁惧淇濆吇閮ㄤ綅缂栧彿(鍞竴)鍦ㄨ澶囦繚鍏婚儴浣嶈〃涓槸鍚﹀瓨鍦�
+            for (int k = 0; k < excelTable[1].Rows.Count; k++)
+            {
+                if (excelTable[1].Rows[k][3].ToString().Trim() != null && excelTable[1].Rows[k][3].ToString().Trim() != "")
+                {
+                    sql = @"select *  from TEqpmai_Item where code=@code";
+                    dynamicParams.Add("@code", excelTable[1].Rows[k][3].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][2].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);
+            }
+            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
@@ -3782,9 +3947,83 @@
         {
             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.ExcelToTableList(FileCode);
+                //瀵煎叆璁惧淇濆吇鏍囧噯涓昏〃
+                for (int k = 0; k < excelTable[0].Rows.Count; k++)
+                {
+                    string Type = "";
+                    switch (excelTable[0].Rows[k][3].ToString().Trim())
+                    {
+                        case "骞�":
+                            Type = "Y";
+                            break;
+                        case "瀛�":
+                            Type = "S";
+                            break;
+                        case "鏈�":
+                            Type = "M";
+                            break;
+                        case "鍛�":
+                            Type = "W";
+                            break;
+                        default:
+                            break;
+                    }
+                    sql = @"insert into TEqpmai_Main(code,name,description,main_cycle,lm_user,lm_date) 
+                            values(@code,@name,@description,@main_cycle,@Operator,@CreateDate)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            code = excelTable[0].Rows[k][1].ToString().Trim(),
+                            name = excelTable[0].Rows[k][2].ToString().Trim(),
+                            main_cycle = Type,
+                            description = excelTable[0].Rows[k][4].ToString().Trim(),
+                            CreateDate = DateTime.Now.ToString(),
+                            Operator = User
+                        }
+                    });
+                }
+                //瀵煎叆璁惧淇濆吇鏍囧噯閮ㄤ綅瀛愯〃
+                for (int i = 0; i < excelTable[1].Rows.Count; i++)
+                {
+                    sql = @"insert into TEqpmai_Deta(seq,code,name,eapmai_code,chk_desc,isscan,lm_user,lm_date) 
+                            values(@seq,@code,@name,@eapmai_code,@description,@isscan,@Operator,@CreateDate)";
+                    list.Add(new
+                    {
+                        str = sql,
+                        parm = new
+                        {
+                            seq = excelTable[1].Rows[i][1].ToString().Trim(),
+                            code = excelTable[1].Rows[i][3].ToString().Trim(),
+                            name = excelTable[1].Rows[i][4].ToString().Trim(),
+                            eapmai_code = excelTable[1].Rows[i][2].ToString().Trim(),
+                            description = excelTable[1].Rows[i][5].ToString().Trim(),
+                            isscan = excelTable[1].Rows[i][6].ToString().Trim(),
+                            Operator = User,
+                            CreateDate = DateTime.Now.ToString()
+                        }
+                    });
+                }
+                bool aa = DapperHelper.DoTransaction(list);
+                if (aa)
+                {
+                    StuCode = "200";
+                    message = "瀵煎叆鎴愬姛锛�";
+                }
+                else
+                {
+                    StuCode = "300";
+                    message = "瀵煎叆澶辫触锛�";
+                }
             }
             catch (Exception e)
             {

--
Gitblit v1.9.3