新增獲取 niagara history insert to import_niagara_item_history
This commit is contained in:
		
							parent
							
								
									7cc15613bb
								
							
						
					
					
						commit
						16ea38418c
					
				| @ -162,12 +162,12 @@ namespace Backend.Controllers | ||||
|                 //obixApiConfig.UrlSlot =  variableObix.Where(x => x.Name == "url_slot").Select(x => x.Value).FirstOrDefault(); | ||||
| 
 | ||||
|                 var urlSlots = backendRepository.GetAllAsync<string>("select obixSlot from building where deleted = 0").Result; | ||||
|                 foreach(var us in urlSlots) | ||||
|                 { | ||||
|                     var data = svc.obixHisQuery(obixApiConfig.ApiBase + "obix/config/Program/ObixQuery/query/", obixApiConfig.ApiBase + "obix/histories", us, | ||||
|                 //foreach(var us in urlSlots) | ||||
|                 //{ | ||||
|                     var data = svc.obixHisQuery(obixApiConfig.ApiBase + "obix/config/Program/ObixQuery/query/", obixApiConfig.ApiBase + "obix/histories", "", | ||||
|                                 obixApiConfig.UserName, obixApiConfig.Password); | ||||
|                     ds.AddRange(data); | ||||
|                 } | ||||
|                // } | ||||
|                  | ||||
|                 var buildings = backendRepository.GetAllAsync<string>("select building_tag from building where deleted = 0").Result; | ||||
|                 apiResult.Code = "0000"; | ||||
| @ -207,6 +207,25 @@ namespace Backend.Controllers | ||||
|                     await niagaraDataSynchronizeRepository.CheckItemDiffFullNameAndCover(); // update device_item.fullname | ||||
|                     await niagaraDataSynchronizeRepository.ItemCheckFullNameEmptyReplaceByDeviceName(); // 檢查device_item內FullName為空的值,以points取代 | ||||
|                     await niagaraDataSynchronizeRepository.CheckItemIsShowHistory(); | ||||
| 
 | ||||
|                     #region 歷史資料處理 | ||||
|                     ds.Clear(); | ||||
|                     var sqlObix = $@"SELECT system_value as Value, system_key as Name FROM variable WHERE deleted = 0 AND system_type = 'obixConfig'"; | ||||
|                     var variableObix = backendRepository.GetAllAsync<Backend.Models.KeyValue>(sqlObix).Result; | ||||
|                     var obixApiConfig = new Backend.Models.ObixApiConfig(); | ||||
|                     EDFunction ed = new EDFunction(); | ||||
|                     obixApiConfig.ApiBase = variableObix.Where(x => x.Name == "ApiBase").Select(x => x.Value).FirstOrDefault(); | ||||
|                     obixApiConfig.UserName = variableObix.Where(x => x.Name == "UserName").Select(x => x.Value).FirstOrDefault(); | ||||
|                     obixApiConfig.Password = variableObix.Where(x => x.Name == "Password").Select(x => x.Value).FirstOrDefault(); | ||||
|                     //obixApiConfig.UrlSlot =  variableObix.Where(x => x.Name == "url_slot").Select(x => x.Value).FirstOrDefault(); | ||||
|                     webRequestService svc = new webRequestService(); | ||||
|                     var data = svc.obixHisQuery_v2(obixApiConfig.ApiBase + "obix/config/Program/ObixQuery/query/", obixApiConfig.ApiBase + "obix/histories", "", | ||||
|                                 obixApiConfig.UserName, obixApiConfig.Password); | ||||
|                     ds.AddRange(data); | ||||
|                     // save to history  | ||||
|                     await niagaraDataSynchronizeRepository.InsertItemFromNiagara_History(ds, building); // insert 暫存table import_niagara_item_history | ||||
|                     #endregion | ||||
| 
 | ||||
|                     result = true; | ||||
| 
 | ||||
|                     apiResult.Code = "0000"; | ||||
|  | ||||
| @ -131,6 +131,149 @@ namespace Backend.Services.Implement | ||||
|             return result; | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// 獲取 niagara history 中的點位 | ||||
|         /// </summary> | ||||
|         /// <param name="bqlUrlString"></param> | ||||
|         /// <param name="urlString"></param> | ||||
|         /// <param name="slot"></param> | ||||
|         /// <returns></returns> | ||||
|         public List<ImpNiaItem> obixHisQuery_v2(string bqlUrlString, string urlString, string slot, string acc, string pass) | ||||
|         { | ||||
|             //String username = "obixUser"; | ||||
|             //String password = "Admin123456"; | ||||
|             //String username = "stanGG"; | ||||
|             //String password = "St12345678"; | ||||
|             String username = acc; | ||||
|             String password = pass; | ||||
|             String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(username + ":" + password)); | ||||
|             String oneStationName = null; | ||||
|             #region get control point data | ||||
|             List<control_point> conPoint = new List<control_point>(); | ||||
|             String cp_API_Url = bqlUrlString; | ||||
| 
 | ||||
|             HttpWebRequest cp_Postrequest = (HttpWebRequest)WebRequest.Create(cp_API_Url); | ||||
|             cp_Postrequest.Method = "POST"; | ||||
|             cp_Postrequest.Headers.Add("Authorization", "Basic " + encoded); | ||||
|             cp_Postrequest.PreAuthenticate = true; | ||||
| 
 | ||||
|             //using (var streamWriter = new StreamWriter(cp_Postrequest.GetRequestStream())) | ||||
|             //{ | ||||
|             //    string json = "<str val='" + slot + "bql: select * from control:ControlPoint'/>"; | ||||
| 
 | ||||
|             //    streamWriter.Write(json); | ||||
|             //} | ||||
|             //HttpWebResponse cp_response = (HttpWebResponse)cp_Postrequest.GetResponse(); | ||||
|             //var cp_responseString = new StreamReader(cp_response.GetResponseStream()).ReadToEnd(); | ||||
| 
 | ||||
|             //XmlDocument cp_xmlDoc = new XmlDocument(); | ||||
|             //cp_xmlDoc.LoadXml(cp_responseString); | ||||
| 
 | ||||
|             //string cp_jsonText = JsonConvert.SerializeXmlNode(cp_xmlDoc); | ||||
|             //var cp_data = Welcome.FromJson(cp_jsonText); | ||||
| 
 | ||||
|             //foreach (var item in cp_data.Obj.Str) | ||||
|             //{ | ||||
|             //    control_point row = new control_point(); | ||||
|             //    string[] s1 = item.Val.Split(','); | ||||
| 
 | ||||
|             //    string[] s2 = s1[0].Split('/'); | ||||
|             //    var displayName = s1[1].Split('=')[1]; | ||||
| 
 | ||||
|             //    row.name = s1[0].Remove(s1[0].Length - 1, 1).Remove(0, 1); | ||||
|             //    row.displayName = displayName; | ||||
|             //    row.isHistory = false; | ||||
| 
 | ||||
|             //    conPoint.Add(row); | ||||
|             //} | ||||
|             #endregion | ||||
| 
 | ||||
|             #region main program | ||||
|             List<ImpNiaItem> result = new List<ImpNiaItem>(); | ||||
|             String API_Url = urlString; | ||||
| 
 | ||||
|             HttpWebRequest Postrequest = (HttpWebRequest)WebRequest.Create(API_Url); | ||||
|             Postrequest.Method = "GET"; | ||||
|             Postrequest.Headers.Add("Authorization", "Basic " + encoded); | ||||
|             Postrequest.PreAuthenticate = true; | ||||
| 
 | ||||
|             HttpWebResponse response = (HttpWebResponse)Postrequest.GetResponse(); | ||||
|             var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); | ||||
| 
 | ||||
|             XmlDocument xmlDoc = new XmlDocument(); | ||||
|             xmlDoc.LoadXml(responseString); | ||||
| 
 | ||||
|             // 1.循環所有的 station | ||||
|             //ref https://stackoverflow.com/questions/642293/how-do-i-read-and-parse-an-xml-file-in-c | ||||
|             foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes) | ||||
|             { | ||||
|                 var stationName = node.Attributes["name"].InnerText; // WSP_Supervisor | ||||
|                 oneStationName = oneStationName ?? stationName; | ||||
|                 String API_Url2 = urlString + "/" + stationName; // http://192.168.0.136:8081/obix/histories/WSP_Supervisor | ||||
| 
 | ||||
|                 HttpWebRequest Postrequest2 = (HttpWebRequest)WebRequest.Create(API_Url2); | ||||
|                 Postrequest2.Method = "GET"; | ||||
|                 Postrequest2.Headers.Add("Authorization", "Basic " + encoded); | ||||
|                 Postrequest2.PreAuthenticate = true; | ||||
| 
 | ||||
|                 HttpWebResponse response2 = (HttpWebResponse)Postrequest2.GetResponse(); | ||||
|                 var responseString2 = new StreamReader(response2.GetResponseStream()).ReadToEnd(); | ||||
| 
 | ||||
|                 XmlDocument xmlDoc2 = new XmlDocument(); | ||||
|                 xmlDoc2.LoadXml(responseString2); | ||||
|                 // 2.獲取 station 中全部的設備+點位 | ||||
|                 foreach (XmlNode node2 in xmlDoc2.DocumentElement.ChildNodes) | ||||
|                 { | ||||
|                     string tagName = node2.Attributes["name"].InnerText; | ||||
|                     if (tagName.Split('_').Length == 9) | ||||
|                     { | ||||
|                         if (tagName.Split('_')[1].IndexOf("8F5") != -1) | ||||
|                         { | ||||
|                             string ss = tagName.Split('_')[1]; | ||||
|                         } | ||||
|                         ImpNiaItem row = new ImpNiaItem(); | ||||
|                         row.device_area_tag = tagName.Split('_')[0]; | ||||
|                         row.device_building_tag = tagName.Split('_')[1]; | ||||
|                         row.device_system_tag = tagName.Split('_')[2]; | ||||
|                         row.device_name_tag = tagName.Split('_')[3]; | ||||
|                         row.device_floor_tag= tagName.Split('_')[4]; | ||||
|                         row.device_master_tag= tagName.Split('_')[5]; | ||||
|                         row.device_last_name_tag = tagName.Split('_')[6]; | ||||
|                         row.device_serial_tag = tagName.Split('_')[7]; | ||||
|                         row.device_point_name = tagName.Split('_')[8]; | ||||
|                         row.parent_path = stationName; | ||||
| 
 | ||||
|                         result.Add(row);  | ||||
|                     } | ||||
|                     else if (tagName.Split('_').Length == 6) | ||||
|                     { //巨蛋 tag 5 段版本 | ||||
|                         ImpNiaItem row = new ImpNiaItem(); | ||||
|                         if (tagName.Split('_')[1] == "S") //for security system | ||||
|                         { | ||||
|                             row.device_building_tag = tagName.Split('_')[0]; | ||||
|                             row.device_system_tag = tagName.Split('_')[1]; | ||||
|                             row.device_floor_tag = tagName.Split('_')[2]; | ||||
|                             row.device_name_tag = tagName.Split('_')[3]; | ||||
|                             row.device_point_name = tagName.Split('_')[5]; | ||||
|                         } | ||||
|                         else //for normal | ||||
|                         { | ||||
|                             row.device_building_tag = tagName.Split('_')[0]; | ||||
|                             //row.device_system_tag = tagName.Split('_')[1]; | ||||
|                             row.device_floor_tag = tagName.Split('_')[2]; | ||||
|                             row.device_name_tag = tagName.Split('_')[1]; | ||||
|                             row.device_point_name = tagName.Split('_')[5]; | ||||
|                         } | ||||
|                         row.parent_path = stationName; | ||||
|                         result.Add(row); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             #endregion | ||||
|             return result.ToList(); | ||||
|             //return result.Where(x => x.full_name != null).ToList(); | ||||
|         } | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// 獲取 niagara history 中的點位 | ||||
|         /// </summary> | ||||
| @ -204,7 +347,7 @@ namespace Backend.Services.Implement | ||||
|             xmlDoc.LoadXml(responseString); | ||||
| 
 | ||||
|             //ref https://stackoverflow.com/questions/642293/how-do-i-read-and-parse-an-xml-file-in-c | ||||
|             foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes) | ||||
|             foreach (XmlNode node in xmlDoc.DocumentElement.ChildNodes) //循環所有的 station | ||||
|             { | ||||
|                 var stationName = node.Attributes["name"].InnerText; // WSP_Supervisor | ||||
|                 oneStationName = oneStationName ?? stationName; | ||||
| @ -328,6 +471,8 @@ namespace Backend.Services.Implement | ||||
|             return result.Where(x => x.full_name != null).ToList(); | ||||
|         } | ||||
| 
 | ||||
|         | ||||
| 
 | ||||
|         public List<Device_value_disaster> obixDevDisaster(string urlString, string bql, string tag_quantity, string acc, string pass, string dt) | ||||
|         { | ||||
|             List<Device_value_disaster> result = new List<Device_value_disaster>(); | ||||
|  | ||||
| @ -183,27 +183,39 @@ namespace Repository.BackendRepository.Implement | ||||
|                 { | ||||
|                     try | ||||
|                     { | ||||
|                         #region 刪除 import_niagara_item資料表中選取的棟別 | ||||
|                         foreach(var b in building) | ||||
|                         { | ||||
|                             string sql = @"CREATE TABLE IF NOT EXISTS `import_niagara_item` (
 | ||||
|                         string sql = @" 
 | ||||
| DROP TABLE IF EXISTS `import_niagara_item`; | ||||
| CREATE TABLE `import_niagara_item`  ( | ||||
|   `id` int(11) NOT NULL AUTO_INCREMENT, | ||||
|                                   `device_area_tag` varchar(50) DEFAULT NULL, | ||||
|                                   `device_building_tag` varchar(50) DEFAULT NULL, | ||||
|                                   `device_system_tag` varchar(50) DEFAULT NULL, | ||||
|                                   `device_name_tag` varchar(50) DEFAULT NULL, | ||||
|                                   `device_point_name` varchar(50) DEFAULT NULL, | ||||
|                                   `check_status` varchar(50) DEFAULT NULL, | ||||
|                                   `parent_path` varchar(50) DEFAULT NULL, | ||||
|                                   `full_name` varchar(50) DEFAULT NULL, | ||||
|                                   PRIMARY KEY (`id`) | ||||
|                                 ) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;";
 | ||||
|   `device_area_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_building_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_system_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_name_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_floor_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_master_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_last_name_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_serial_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_point_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `parent_path` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `is_history` bit(1) NULL DEFAULT b'0', | ||||
|   `full_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `check_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||||
|   PRIMARY KEY (`id`) USING BTREE | ||||
| ) ENGINE = InnoDB AUTO_INCREMENT = 271 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; | ||||
|  ";
 | ||||
|                         await conn.ExecuteAsync(sql); | ||||
|                             sql = "delete from import_niagara_item where device_building_tag = '" + b + "'"; | ||||
|                             await conn.ExecuteAsync(sql); | ||||
|                         } | ||||
| 
 | ||||
|                         #region 刪除 import_niagara_item資料表中選取的棟別 | ||||
|                         //foreach(var b in building) | ||||
|                         //{ | ||||
| 
 | ||||
|                         //    sql = "delete from import_niagara_item where device_building_tag = '" + b + "'"; | ||||
|                         //    await conn.ExecuteAsync(sql); | ||||
|                         //} | ||||
|                         #endregion | ||||
|                         ds = ds.GroupBy(x => new { | ||||
|                         ds = ds.GroupBy(x => new | ||||
|                         { | ||||
|                             device_area_tag = x.device_area_tag, | ||||
|                             device_building_tag = x.device_building_tag, | ||||
|                             device_system_tag = x.device_system_tag, | ||||
| @ -229,17 +241,22 @@ namespace Repository.BackendRepository.Implement | ||||
|                         #region 放入import_niagara_item資料表 | ||||
|                         foreach (var row in ds) | ||||
|                         { | ||||
|                             sb.Append($@" insert import_niagara_item(device_area_tag, device_building_tag, device_system_tag, device_name_tag, device_point_name, parent_path, full_name, is_history)
 | ||||
|                                         values('"+
 | ||||
|                             string ss = $@" insert import_niagara_item(device_area_tag, device_building_tag, device_system_tag, device_name_tag, 
 | ||||
|                                                                        device_point_name, parent_path, full_name, is_history, created_at) | ||||
|                                         values('" +
 | ||||
|                                             row.device_area_tag + "', '" + | ||||
|                                             row.device_building_tag + "', '" + | ||||
|                                             row.device_system_tag + "', '" + | ||||
|                                             row.device_name_tag + "', '" + | ||||
|                                             //row.device_floor_tag + "', '" + | ||||
|                                             //row.device_master_tag + "', '" + | ||||
|                                             //row.device_last_name_tag + "', '" +  | ||||
|                                             row.device_point_name + "', '" + | ||||
|                                             row.parent_path + "', '" + | ||||
|                                             row.full_name + "'," + | ||||
|                                             row.isHistory + | ||||
|                                             ");"); | ||||
|                                             row.isHistory + ", now() " + | ||||
|                                             ");"; | ||||
|                             sb.Append(ss); | ||||
|                         } | ||||
| 
 | ||||
|                         var isDome = await GetOneAsync<string>("select system_value from variable where deleted = 0 and system_type = 'project_name';"); | ||||
| @ -270,6 +287,96 @@ namespace Repository.BackendRepository.Implement | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public async Task InsertItemFromNiagara_History(List<ImpNiaItem> ds, List<string> building) | ||||
|         { | ||||
|             using (IDbConnection conn = GetDbConnection()) | ||||
|             { | ||||
|                 conn.Open(); | ||||
|                 using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled)) | ||||
|                 { | ||||
|                     try | ||||
|                     { | ||||
|                         //改成每次都新增  | ||||
|                         string sql = @"SET NAMES utf8mb4;
 | ||||
| SET FOREIGN_KEY_CHECKS = 0; | ||||
| 
 | ||||
| -- ---------------------------- | ||||
| -- Table structure for import_niagara_item_history | ||||
| -- ---------------------------- | ||||
| DROP TABLE IF EXISTS `import_niagara_item_history`; | ||||
| CREATE TABLE `import_niagara_item_history`  ( | ||||
|   `id` int(11) NOT NULL AUTO_INCREMENT, | ||||
|   `device_area_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_building_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_system_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_name_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_floor_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_master_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_last_name_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_serial_tag` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `device_point_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `parent_path` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `is_history` bit(1) NULL DEFAULT b'0', | ||||
|   `full_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `check_status` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL, | ||||
|   `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, | ||||
|   PRIMARY KEY (`id`) USING BTREE | ||||
| ) ENGINE = InnoDB AUTO_INCREMENT = 271 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci ROW_FORMAT = Dynamic; | ||||
| 
 | ||||
| SET FOREIGN_KEY_CHECKS = 1;";
 | ||||
|                         await conn.ExecuteAsync(sql); | ||||
| 
 | ||||
|                         #region 刪除 import_niagara_item資料表中選取的棟別 | ||||
|                         //foreach (var b in building) | ||||
|                         //{ | ||||
| 
 | ||||
|                         //    sql = "delete from import_niagara_item_history where device_building_tag = '" + b + "'"; | ||||
|                         //    await conn.ExecuteAsync(sql); | ||||
|                         //} | ||||
|                         #endregion | ||||
| 
 | ||||
| 
 | ||||
|                         StringBuilder sb = new StringBuilder(); | ||||
|                         #region 放入import_niagara_item資料表 | ||||
|                         foreach (var row in ds) | ||||
|                         { | ||||
|                             string ss = $@" insert import_niagara_item_history(device_area_tag, device_building_tag, device_system_tag, device_name_tag, 
 | ||||
| device_floor_tag,  device_master_tag, device_last_name_tag, device_serial_tag, device_point_name, parent_path, full_name, is_history, created_at) | ||||
|                                         values('" +
 | ||||
|                                             row.device_area_tag + "', '" + | ||||
|                                             row.device_building_tag + "', '" + | ||||
|                                             row.device_system_tag + "', '" + | ||||
|                                             row.device_name_tag + "', '" + | ||||
|                                             row.device_floor_tag + "', '" + | ||||
|                                             row.device_master_tag + "', '" + | ||||
|                                             row.device_last_name_tag + "', '" + | ||||
|                                             row.device_serial_tag + "', '" + | ||||
|                                             row.device_point_name + "', '" + | ||||
|                                             row.parent_path + "', '" + | ||||
|                                             row.full_name + "'," + | ||||
|                                             row.isHistory + ", now() " + | ||||
|                                             ");"; | ||||
|                             sb.Append(ss); | ||||
|                         } | ||||
|                         if (sb.Length > 0) | ||||
|                         {  | ||||
|                             await conn.ExecuteAsync(sb.ToString()); | ||||
|                             sb.Clear(); | ||||
|                         } | ||||
|                         #endregion | ||||
|                     } | ||||
|                     catch (Exception exception) | ||||
|                     { | ||||
|                         throw exception; | ||||
|                     } | ||||
|                     finally | ||||
|                     { | ||||
|                         conn.Close(); | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         /// <summary> | ||||
|         /// 比對 device | ||||
|         /// </summary> | ||||
|  | ||||
| @ -28,6 +28,14 @@ namespace Repository.BackendRepository.Interface | ||||
|         /// <param name="building"></param> | ||||
|         /// <returns></returns> | ||||
|         Task InsertItemFromNiagara(List<ImpNiaItem> ds, List<string> building); | ||||
| 
 | ||||
|         /// <summary> | ||||
|         /// 同步N4至資料表 import_niagara_item_History | ||||
|         /// </summary> | ||||
|         /// <param name="ds"></param> | ||||
|         /// <param name="building"></param> | ||||
|         /// <returns></returns> | ||||
|         Task InsertItemFromNiagara_History(List<ImpNiaItem> ds, List<string> building); | ||||
|         /// <summary> | ||||
|         /// 比對 device | ||||
|         /// </summary> | ||||
|  | ||||
| @ -117,7 +117,12 @@ namespace Repository.Models | ||||
|         public string device_system_tag { get; set; } | ||||
|         public string device_name_tag { get; set; } | ||||
|         public string device_point_name { get; set; } | ||||
|         public string device_floor_tag { get; set; } | ||||
|         public string device_floor_tag { get; set; } //add by jiahao 2023-07-23 | ||||
|         public string device_master_tag { get; set; } //add by jiahao 2023-07-23 | ||||
| 
 | ||||
|         public string device_last_name_tag { get; set; }//add by jiahao 2023-07-23 | ||||
| 
 | ||||
|         public string device_serial_tag { get; set; }//add by jiahao 2023-07-23 | ||||
| 
 | ||||
|         public string parent_path { get; set; } | ||||
|         public string check_status { get; set; } | ||||
|  | ||||
| @ -18,8 +18,8 @@ namespace tpDomeWinAPP | ||||
|             Application.SetHighDpiMode(HighDpiMode.SystemAware); | ||||
|             Application.EnableVisualStyles(); | ||||
|             Application.SetCompatibleTextRenderingDefault(false); | ||||
|            // Application.Run(new fmCheckTagName()); | ||||
|             Application.Run(new fmDecrypt()); | ||||
|             Application.Run(new fmCheckTagName()); | ||||
|             //Application.Run(new fmDecrypt()); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user