| 
									
										
										
										
											2025-06-04 09:11:41 +08:00
										 |  |  |  | using BLL; | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Data; | 
					
						
							|  |  |  |  | using System.Data.SqlClient; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | using Newtonsoft.Json.Linq; | 
					
						
							|  |  |  |  | using System.IO; | 
					
						
							|  |  |  |  | using NPOI.XSSF.UserModel; | 
					
						
							|  |  |  |  | using NPOI.SS.UserModel; | 
					
						
							|  |  |  |  | using System.Runtime.Serialization; | 
					
						
							|  |  |  |  | using FineUIPro.Web.ProjectData; | 
					
						
							|  |  |  |  | using System.Configuration; | 
					
						
							| 
									
										
										
										
											2025-06-13 21:17:50 +08:00
										 |  |  |  | using System.Web.Services; | 
					
						
							|  |  |  |  | using Newtonsoft.Json; | 
					
						
							|  |  |  |  | using FineUIPro.Web.DataShow; | 
					
						
							| 
									
										
										
										
											2025-06-04 09:11:41 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace FineUIPro.Web.HSSE.TowerCrane | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public partial class TowerCraneState : PageBase | 
					
						
							|  |  |  |  |     { | 
					
						
							|  |  |  |  |         #region 加载 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 加载页面 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void Page_Load(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             if (!IsPostBack) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                  this.InitTreeMenu();//加载树 | 
					
						
							|  |  |  |  |                 //显示列 | 
					
						
							|  |  |  |  |                  | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 加载树装置-单位-工作区 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 加载树 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         private void InitTreeMenu() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             this.tvControlItem.Nodes.Clear(); | 
					
						
							|  |  |  |  |            | 
					
						
							|  |  |  |  |             ////塔吊 | 
					
						
							|  |  |  |  |             var towerCranes = (from x in Funs.DB.HSSE_TowerCrane where x.ProjectId == this.CurrUser.LoginProjectId  | 
					
						
							|  |  |  |  |                                && ( string.IsNullOrEmpty(txtIsono.Text) || x.TowerCraneName.Contains(txtIsono.Text)) | 
					
						
							|  |  |  |  |                                orderby x.CreateDate select x ).ToList(); | 
					
						
							|  |  |  |  |           | 
					
						
							|  |  |  |  |             foreach(var item in towerCranes ) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 TreeNode rootNode = new TreeNode(); | 
					
						
							|  |  |  |  |                 rootNode.Text = item.TowerCraneName; | 
					
						
							| 
									
										
										
										
											2025-06-13 21:17:50 +08:00
										 |  |  |  |                 rootNode.NodeID = item.TowerCraneId; | 
					
						
							|  |  |  |  |                 rootNode.EnableClickEvent= true; | 
					
						
							| 
									
										
										
										
											2025-06-04 09:11:41 +08:00
										 |  |  |  |                 this.tvControlItem.Nodes.Add(rootNode); | 
					
						
							|  |  |  |  |             }  | 
					
						
							|  |  |  |  |               | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 绑定树节点 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 查询 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void Tree_TextChanged(object sender, EventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             this.InitTreeMenu(); | 
					
						
							|  |  |  |  |              | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 树展开事件 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 树展开事件 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="sender"></param> | 
					
						
							|  |  |  |  |         /// <param name="e"></param> | 
					
						
							|  |  |  |  |         protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2025-06-13 21:17:50 +08:00
										 |  |  |  |             string TowerCraneId = this.tvControlItem.SelectedNodeID; | 
					
						
							|  |  |  |  |             this.hfTowerCraneId.Text = TowerCraneId; | 
					
						
							|  |  |  |  |             var towerCrane = Funs.DB.HSSE_TowerCrane.FirstOrDefault(x => x.TowerCraneId == TowerCraneId); | 
					
						
							|  |  |  |  |             PageContext.RegisterStartupScript("runGetData() ; initVideo('"+ towerCrane.VideoAccount + "', '"+ Funs.EncryptionPassword(towerCrane.VideoPassword )+ "');"); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         [WebMethod] | 
					
						
							|  |  |  |  |         public static string GetData(string TowerCraneId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             Dictionary<string, object> res = new Dictionary<string, object>(); | 
					
						
							|  |  |  |  |             var towerCrane = Funs.DB.HSSE_TowerCrane.FirstOrDefault(x => x.TowerCraneId == TowerCraneId); | 
					
						
							|  |  |  |  |             if (towerCrane != null) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 res.Add("TowerCraneName", towerCrane.TowerCraneName); | 
					
						
							|  |  |  |  |                 res.Add("TowerCraneCode", towerCrane.TowerCraneCode); | 
					
						
							|  |  |  |  |                 res.Add("TowerCap", towerCrane.TowerCap); | 
					
						
							|  |  |  |  |                 res.Add("VideoAccount", towerCrane.VideoAccount); | 
					
						
							|  |  |  |  |                 res.Add("VideoPassword", Funs.EncryptionPassword(towerCrane.VideoPassword)); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 if (towerCrane.MaxHoist.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     res.Add("MaxHoist", towerCrane.MaxHoist.Value.ToString("##.##")); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (towerCrane.MaxMoment.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     res.Add("MaxMoment", towerCrane.MaxMoment.Value.ToString("##.##")); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (towerCrane.FrontArmLength.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     res.Add("FrontArmLength", towerCrane.FrontArmLength.Value.ToString("##.##")); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (towerCrane.BackArmLength.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     res.Add("BackArmLength", towerCrane.BackArmLength.Value.ToString("##.##")); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 if (towerCrane.ArmHeigh.HasValue) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     res.Add("ArmHeigh", towerCrane.ArmHeigh.Value.ToString("##.##")); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                  | 
					
						
							|  |  |  |  |                 DateTime date = DateTime.Now.AddDays(-1); | 
					
						
							|  |  |  |  |                 var record  = Funs.DB.HSSE_TowerCraneRecord.Where(x=>x.TowerCraneId==TowerCraneId && x.Date>=date).OrderByDescending(x=>x.Date).ToList(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 if (record.Count > 0) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     res.Add("AmountHoist", record[0].AmountHoist.Value.ToString("#0.##")); | 
					
						
							|  |  |  |  |                     res.Add("Camber", record[0].Camber.Value.ToString("#0.##")); | 
					
						
							|  |  |  |  |                     res.Add("Height", record[0].Height.Value.ToString("#0.##")); | 
					
						
							|  |  |  |  |                     res.Add("Hoist", record[0].Hoist.Value.ToString("#0.##")); | 
					
						
							|  |  |  |  |                     res.Add("Moment", record[0].Moment.Value.ToString("#0.##")); | 
					
						
							|  |  |  |  |                     res.Add("Range", record[0].Range.Value.ToString("#0.##")); | 
					
						
							|  |  |  |  |                     res.Add("RotationAngle", record[0].RotationAngle.Value.ToString("#0.##")); | 
					
						
							|  |  |  |  |                     res.Add("WindSpeed", record[0].WindSpeed.Value.ToString("#0.##")); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 else | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     res.Add("AmountHoist", "0"); | 
					
						
							|  |  |  |  |                     res.Add("Camber", "0"); | 
					
						
							|  |  |  |  |                     res.Add("Height", "0"); | 
					
						
							|  |  |  |  |                     res.Add("Hoist", "0"); | 
					
						
							|  |  |  |  |                     res.Add("Moment", "0"); | 
					
						
							|  |  |  |  |                     res.Add("Range", "0"); | 
					
						
							|  |  |  |  |                     res.Add("RotationAngle", "0"); | 
					
						
							|  |  |  |  |                     res.Add("WindSpeed", "0"); | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 HashSet<string> warnings = new HashSet<string>(); | 
					
						
							|  |  |  |  |                 warnings.Add("111"); | 
					
						
							|  |  |  |  |                 warnings.Add("121"); | 
					
						
							|  |  |  |  |                 warnings.Add("132"); | 
					
						
							|  |  |  |  |                 warnings.Add("133"); | 
					
						
							|  |  |  |  |                 warnings.Add("141"); | 
					
						
							|  |  |  |  |                 warnings.Add("151");  | 
					
						
							|  |  |  |  |                 HashSet<string> alarms = new HashSet<string>(); | 
					
						
							|  |  |  |  |                 alarms.Add("112"); | 
					
						
							|  |  |  |  |                 alarms.Add("122"); | 
					
						
							|  |  |  |  |                 alarms.Add("131"); | 
					
						
							|  |  |  |  |                 alarms.Add("134"); | 
					
						
							|  |  |  |  |                 alarms.Add("142"); | 
					
						
							|  |  |  |  |                 alarms.Add("152"); | 
					
						
							|  |  |  |  |                 alarms.Add("201"); | 
					
						
							|  |  |  |  |                 alarms.Add("202"); | 
					
						
							|  |  |  |  |                 int DailyWarning = 0; | 
					
						
							|  |  |  |  |                 int DailyAlarm = 0; | 
					
						
							|  |  |  |  |                 List<double> SSDZ = new List<double>(); | 
					
						
							|  |  |  |  |                 List<string> SSDZX = new List<string>(); | 
					
						
							|  |  |  |  |                 List<double> SSLJ = new List<double>(); | 
					
						
							|  |  |  |  |                 List<string> SSLJX = new List<string>(); | 
					
						
							|  |  |  |  |                 List<int> BJQS = new List<int>(); | 
					
						
							|  |  |  |  |                 List<string> BJQSX = new List<string>(); | 
					
						
							|  |  |  |  |                  | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 foreach (var r in record) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(r.AlarmType)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         string[] AlarmType  = r.AlarmType.Replace("[","").Replace("]","").Split(','); | 
					
						
							|  |  |  |  |                         foreach(string a in AlarmType) | 
					
						
							|  |  |  |  |                         { | 
					
						
							|  |  |  |  |                             if (warnings.Contains(a)) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 DailyWarning++; | 
					
						
							|  |  |  |  |                                  | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                             if (alarms.Contains(a)) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 DailyAlarm++; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                         BJQS.Add(AlarmType.Length); | 
					
						
							|  |  |  |  |                         BJQSX.Add(r.Date.Value.ToString("HH:mm")); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     if (r.Hoist.HasValue) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         SSDZ.Add(r.Hoist.Value); | 
					
						
							|  |  |  |  |                         SSDZX.Add(r.Date.Value.ToString("HH:mm")); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         SSDZ.Add(0); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     if (r.Moment.HasValue) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         SSLJ.Add(r.Moment.Value); | 
					
						
							|  |  |  |  |                         SSLJX.Add(r.Date.Value.ToString("HH:mm")); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     else | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         SSLJ.Add(0); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |                 res.Add("SSDZ", SSDZ); | 
					
						
							|  |  |  |  |                 res.Add("SSDZX", SSDZX);  | 
					
						
							|  |  |  |  |                 res.Add("SSLJ", SSLJ); | 
					
						
							|  |  |  |  |                 res.Add("SSLJX", SSLJX); | 
					
						
							|  |  |  |  |                 res.Add("BJQS", BJQS); | 
					
						
							|  |  |  |  |                 res.Add("BJQSX", BJQSX); | 
					
						
							|  |  |  |  |                 res.Add("DailyWarning", DailyWarning + ""); | 
					
						
							|  |  |  |  |                 res.Add("DailyAlarm", DailyAlarm + ""); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |             return      JsonConvert.SerializeObject(res); ; | 
					
						
							| 
									
										
										
										
											2025-06-04 09:11:41 +08:00
										 |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-13 21:17:50 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-06-04 09:11:41 +08:00
										 |  |  |  |     } | 
					
						
							|  |  |  |  | } |