From b9c76ce85e533250cd36de670146530f970859e7 Mon Sep 17 00:00:00 2001 From: yanjinhui <3306209981@qq.com> Date: 星期五, 01 八月 2025 11:29:49 +0800 Subject: [PATCH] 修改伸缩杆接口 --- 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs | 194 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 129 insertions(+), 65 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs" index 33da6ce..d2cf37b 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs" @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using AutoMapper; +using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using SqlSugar; using WIDESEAWCS_Core; @@ -24,30 +25,46 @@ { public IRepository<Dt_Parameters> Repository => BaseDal; private readonly IRepository<Sys_User> _user; + private readonly IRepository<Dt_AlarmResetHsy> _alarm; + private readonly IRepository<Dt_CustomIPaddress> _cunstomip; - public ParametersService(IRepository<Dt_Parameters> BaseDal, IRepository<Sys_User> user) : base(BaseDal) + public ParametersService(IRepository<Dt_Parameters> BaseDal, IRepository<Sys_User> user, IRepository<Dt_AlarmResetHsy> alarm, IRepository<Dt_CustomIPaddress> cunstomip) : base(BaseDal) { - _user = user; + _user = user; + _alarm = alarm; + _cunstomip = cunstomip; } /// <summary> - /// 鑷姩鎺у埗浼哥缉鏉嗙殑浼稿嚭鍜岀缉鍥為�熷害 + /// 鑷姩鎺у埗璀︽儠鏈烘瀯鐨勪几鍑哄拰缂╁洖閫熷害 /// </summary> /// <param name="ExtendedState">浼�/鍑虹姸鎬�</param> /// <returns></returns> - public WebResponseContent automation(string ExtendedState) + public WebResponseContent automation(string ExtendedState, string LocalIP) { try { - //鏍规嵁int.TryParse(AppSettings.Get("DepartmentID")璇诲彇鍒板綋鍓嶆槸杞ㄩ亾鍑狅紝鎵�鏈変汉閮藉彧鑳芥搷浣滃綋鍓� - if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + ////鏍规嵁int.TryParse(AppSettings.Get("DepartmentID")璇诲彇鍒板綋鍓嶆槸杞ㄩ亾鍑狅紝鎵�鏈変汉閮藉彧鑳芥搷浣滃綋鍓� + //if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + //{ + // return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; + //}; + + //var devices = GetDevicesByDeptId(deid); + //鍏堟煡璇㈣澶噄p閰嶇疆琛紙Dt_CustomIPaddress锛夛紝鐪嬫槸鍚︽湁閰嶇疆锛屾病鏈夊氨鎻愮ず浠栭厤缃� + var customip=_cunstomip.QueryData(x=>x.IPaddress==LocalIP).FirstOrDefault(); + if (customip == null) { - return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; - }; + return new WebResponseContent { Status = false, Message = "浣犺繕娌℃湁閰嶇疆璇ヨ建閬撶珯鐨処P鍦板潃,璇峰厛閰嶇疆鍦ㄦ搷浣�" }; + } + var deid = customip.StationID; var devices = GetDevicesByDeptId(deid); + + + //鎵惧埌Dt_Parameters涓殑鏈�鏂颁竴鏉℃暟鎹� var para = BaseDal.QueryData().Where(x => x.Deptid == deid).OrderByDescending(x => x.CreateDate).FirstOrDefault(); @@ -60,8 +77,16 @@ int rigtpostition = (int)para.RightPosition;//鍙充几鍑轰綅缃� string message = ""; + var alarm = _alarm.QueryData(x => x.ResetStatus == true && x.Deptid == deid && !x.AlarmContent.Contains("闅滅")); // 鎺掗櫎 AlarmContent 鍖呭惈 "闅滅s" 鐨勮褰�.ToList(); + if (alarm.Count > 0) + { + return new WebResponseContent { Status = true, Message = "璀︽儠鏈烘瀯鎶ヨ锛岃鍏堝浣�" }; + } + + try { + if (devices.Value.left.Communicator.Read<bool>("M117")) { @@ -74,6 +99,8 @@ } try { + + if (devices.Value.right.Communicator.Read<bool>("M117")) { return new WebResponseContent { Status = true, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; @@ -91,7 +118,7 @@ { if (devices.Value.left.Communicator.Read<float>("D80")>= liftPosition-5)//鍒拌揪鏈�澶т綅缃�) { - message += "宸︿几缂╂潌鍒拌揪鐩爣浣嶇疆锛�"; + message += "宸﹁鎯曟満鏋勫埌杈剧洰鏍囦綅缃紱"; } else { @@ -107,7 +134,7 @@ { if (devices.Value.right.Communicator.Read<float>("D80") >= rigtpostition-5) { - message += "鍙充几缂╂潌鍒拌揪鐩爣浣嶇疆锛�"; + message += "鍙宠鎯曟満鏋勫埌杈剧洰鏍囦綅缃紱"; } else { @@ -126,7 +153,7 @@ { if (devices.Value.left.Communicator.Read<bool>("M115")) //鍒拌揪鍘熺偣浣� { - message += "宸︿几缂╂潌宸插埌鍘熺偣锛�"; + message += "宸﹁鎯曟満鏋勫凡鍒板師鐐癸紱"; } else { @@ -144,7 +171,7 @@ { if (devices.Value.right.Communicator.Read<bool>("M115")) { - message += "鍙充几缂╂潌宸插埌鍘熺偣锛�"; + message += "鍙宠鎯曟満鏋勫凡鍒板師鐐癸紱"; } else { @@ -184,20 +211,22 @@ /// <summary> - /// 鎵嬪姩鎺у埗锛屼几缂╂潌鐨勭缉鍥炲拰浼稿嚭閫熷害 + /// 鎵嬪姩鎺у埗锛岃鎯曟満鏋勭殑缂╁洖鍜屼几鍑洪�熷害 /// </summary> - /// <param name="position">浼哥缉鏉嗙殑浣嶇疆锛堝乏鍙筹級</param> + /// <param name="position">璀︽儠鏈烘瀯鐨勪綅缃紙宸﹀彸锛�</param> /// <param name="ExtendedState">浼�/缂╃姸鎬�</param> /// <returns></returns> /// - public WebResponseContent ManualOperation(string position, string ExtendedState) + public WebResponseContent ManualOperation(string position, string ExtendedState, string LocalIP) { try { - if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + var customip = _cunstomip.QueryData(x => x.IPaddress == LocalIP).FirstOrDefault(); + if (customip == null) { - return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; + return new WebResponseContent { Status = false, Message = "浣犺繕娌℃湁閰嶇疆璇ヨ建閬撶珯鐨処P鍦板潃,璇峰厛閰嶇疆鍦ㄦ搷浣�" }; } + var deid = customip.StationID; var devices = GetDevicesByDeptId(deid); //淇╀釜plc宸﹀彸鍚勪竴涓� @@ -213,9 +242,20 @@ //bool canLeft = true, // canRight = true; string message = ""; + var alarm = _alarm.QueryData(x => x.ResetStatus == true && x.Deptid == deid && !x.AlarmContent.Contains("闅滅")); // 鎺掗櫎 AlarmContent 鍖呭惈 "闅滅s" 鐨勮褰�.ToList(); + if (alarm.Count > 0) + { + return new WebResponseContent { Status = true, Message = "璀︽儠鏈烘瀯鎶ヨ锛岃鍏堝浣�" }; + } try { + + //var alarmSignals = new[] { "M109", "M111", "M110", "M120" }; + //if (alarmSignals.Any(signal => devices.Value.left.Communicator.Read<bool>(signal))) + //{ + // return new WebResponseContent { Status = true, Message = "璀︽儠鏈烘瀯鎶ヨ锛岃鍏堝浣�" }; + //} if (devices.Value.left.Communicator.Read<bool>("M117")) //榛樿鏄痜lase { @@ -228,6 +268,8 @@ } try { + + if (devices.Value.right.Communicator.Read<bool>("M117")) { return new WebResponseContent { Status = true, Message = "鐜板湪姝e湪杩涜涓紝绛夊緟鎿嶄綔瀹屾垚" }; @@ -241,7 +283,7 @@ { if (devices.Value.left.Communicator.Read<float>("D80") >= liftPosition - 5) //鍒拌揪鐩爣浣嶇疆 { - message += "宸︿几缂╂潌鍒拌揪鐩爣浣嶇疆锛�"; + message += "宸﹁鎯曟満鏋勫埌杈剧洰鏍囦綅缃紱"; } else { @@ -252,7 +294,7 @@ devices.Value.left.Communicator.Write<bool>("M100", false); // 閲婃斁鎸夐挳 - Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ext}"); + Console.WriteLine($"{position}璀︽儠鏈烘瀯鎵嬪姩浼稿嚭{ext}"); } } @@ -260,16 +302,16 @@ { if (devices.Value.left.Communicator.Read<bool>("M115"))//缂╁洖鐨勬椂鍊欏垽鏂�) { - message += "宸︿几缂╂潌宸插埌鍘熺偣锛�"; + message += "宸﹁鎯曟満鏋勫凡鍒板師鐐癸紱"; } else { - //devices.Value.left.Communicator.Write<int>("D1004", liftPosition);//浼稿嚭浣嶇疆 + devices.Value.left.Communicator.Write<int>("D1004", liftPosition);//浼稿嚭浣嶇疆 devices.Value.left.Communicator.Write<int>("D1000", ext);//宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害 devices.Value.left.Communicator.Write<bool>("M101", true); Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 devices.Value.left.Communicator.Write<bool>("M101", false); // 閲婃斁鎸夐挳 - Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄧ缉鍥瀧ext}"); + Console.WriteLine($"{position}璀︽儠鏈烘瀯鎵嬪姩缂╁洖{ext}"); } } @@ -278,7 +320,7 @@ { if (devices.Value.right.Communicator.Read<float>("D80") >= rigtpostition - 5) { - message += "鍙充几缂╂潌鍒拌揪鐩爣浣嶇疆锛�"; + message += "鍙宠鎯曟満鏋勫埌杈剧洰鏍囦綅缃紱"; } else { @@ -287,7 +329,7 @@ devices.Value.right.Communicator.Write<bool>("M100", true); Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 devices.Value.right.Communicator.Write<bool>("M100", false); // 閲婃斁鎸夐挳 - Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ret}"); + Console.WriteLine($"{position}璀︽儠鏈烘瀯鎵嬪姩浼稿嚭{ret}"); } @@ -296,16 +338,16 @@ { if (devices.Value.right.Communicator.Read<bool>("M115")) { - message += "鍙充几缂╂潌宸插埌鍘熺偣锛�"; + message += "鍙宠鎯曟満鏋勫凡鍒板師鐐癸紱"; } else { - //devices.Value.right.Communicator.Write<int>("D1004", rigtpostition);//浼稿嚭浣嶇疆 + devices.Value.right.Communicator.Write<int>("D1004", rigtpostition);//浼稿嚭浣嶇疆 devices.Value.right.Communicator.Write<int>("D1000", ret);//鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害 devices.Value.right.Communicator.Write<bool>("M101", true); Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 devices.Value.right.Communicator.Write<bool>("M101", false); // 閲婃斁鎸夐挳 - Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄧ缉鍥瀧ret}"); + Console.WriteLine($"{position}璀︽儠鏈烘瀯鎵嬪姩缂╁洖{ret}"); } } @@ -336,39 +378,46 @@ /// <summary> - /// 鏍规嵁鐢ㄦ埛娣诲姞閫熷害 + /// 鏍规嵁褰撳墠鏈烘ip鍦板潃鏉ユ坊鍔犻�熷害 /// </summary> /// <param name="entity"></param> /// <returns></returns> - public WebResponseContent AddSpeed(SpeedDTO entity) + public WebResponseContent AddSpeed(SpeedDTO entity,string LocalIP) { try { - // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 - var user = _user.QueryData(x => x.UserName == entity.account).FirstOrDefault(); - // 鍒ゆ柇锛氬鏋滀笉鏄鐞嗗憳 && Dept_Id 涓虹┖锛屽垯鎻愮ず閿欒 - if (user.UserName != "admin" && user.Dept_Id == null) + // // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + // var user = _user.QueryData(x => x.UserName == entity.account).FirstOrDefault(); + //// 鍒ゆ柇锛氬鏋滀笉鏄鐞嗗憳 && Dept_Id 涓虹┖锛屽垯鎻愮ず閿欒 + // if (user.UserName != "admin" && user.Dept_Id == null) + // { + // return new WebResponseContent { Status = false, Message = "浣犵殑璐﹀彿娌℃湁璁剧疆杞ㄩ亾绔欏彿锛屾棤娉曟坊鍔狅紝璇疯仈绯荤鐞嗗憳" }; + // } + + //var dept = user.Dept_Id; + + //// 鑾峰彇閰嶇疆鏂囦欢涓殑 DepartmentID锛堢鐞嗗憳涓撶敤锛� + //if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + //{ + // return new WebResponseContent + // { + // Status = false, + // Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" + // }; + //} + + + //// 鍒ゆ柇鏄惁涓虹鐞嗗憳璐﹀彿 + //bool isAdmin = user?.UserName?.Equals("admin") == true; //濡傛灉褰撳墠鐢ㄦ埛涓嶄负绌猴紝涓旂敤鎴峰悕鏄� "admin"锛屽氨璁や负杩欎釜鐢ㄦ埛鏄鐞嗗憳 + + //鍘昏鍙栧搴旇澶囩殑ip鍦板潃 + var customip = _cunstomip.QueryData(x => x.IPaddress == LocalIP).FirstOrDefault(); + if (customip == null) { - return new WebResponseContent { Status = false, Message = "浣犵殑璐﹀彿娌℃湁璁剧疆杞ㄩ亾绔欏彿锛屾棤娉曟坊鍔狅紝璇疯仈绯荤鐞嗗憳" }; + return new WebResponseContent { Status = false, Message = "浣犺繕娌℃湁閰嶇疆璇ヨ建閬撶珯鐨処P鍦板潃,璇峰厛閰嶇疆鍦ㄦ搷浣�" }; } - - var dept = user.Dept_Id; + var deid = customip.StationID; - // 鑾峰彇閰嶇疆鏂囦欢涓殑 DepartmentID锛堢鐞嗗憳涓撶敤锛� - if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) - { - return new WebResponseContent - { - Status = false, - Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" - }; - } - - - // 鍒ゆ柇鏄惁涓虹鐞嗗憳璐﹀彿 - bool isAdmin = user?.UserName?.Equals("admin") == true; //濡傛灉褰撳墠鐢ㄦ埛涓嶄负绌猴紝涓旂敤鎴峰悕鏄� "admin"锛屽氨璁や负杩欎釜鐢ㄦ埛鏄鐞嗗憳 - - // 鏍规嵁鏄惁鏄鐞嗗憳鍐冲畾浣跨敤鍝釜 Deptid var parmet = new Dt_Parameters { ExtendSpeed = entity.ExtendSpeed, @@ -376,8 +425,9 @@ ManualExtend = entity.ManualExtend, ManualRetraction = entity.ManualRetraction, LeftPosition = entity.LeftPosition, - RightPosition = entity.RightPosition, - Deptid = isAdmin ? deid : dept.GetValueOrDefault()//濡傛灉褰撳墠鐢ㄦ埛鏄鐞嗗憳锛屽氨鐢ㄩ厤缃枃浠朵腑鐨� DepartmentID锛屽惁鍒欑敤浼犲叆鐨� entity 鍙傛暟涓殑 Deptid + RightPosition = entity.RightPosition, + //Deptid = isAdmin ? deid : dept.GetValueOrDefault()//濡傛灉褰撳墠鐢ㄦ埛鏄鐞嗗憳锛屽氨鐢ㄩ厤缃枃浠朵腑鐨� DepartmentID锛屽惁鍒欑敤浼犲叆鐨� entity 鍙傛暟涓殑 Deptid + Deptid = deid }; // 娣诲姞鏁版嵁 AddData(parmet); @@ -402,16 +452,24 @@ ///褰撹嚜鍔ㄤ几鍑洪渶瑕佹殏鍋滄椂锛屾殏鍋滄寜閽� /// </summary> /// <returns></returns> - public WebResponseContent PauseButton() + public WebResponseContent PauseButton(string LocalIP) { try { - //鏍规嵁int.TryParse(AppSettings.Get("DepartmentID")璇诲彇鍒板綋鍓嶆槸杞ㄩ亾鍑狅紝鎵�鏈変汉閮藉彧鑳芥搷浣滃綋鍓� - if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + ////鏍规嵁int.TryParse(AppSettings.Get("DepartmentID")璇诲彇鍒板綋鍓嶆槸杞ㄩ亾鍑狅紝鎵�鏈変汉閮藉彧鑳芥搷浣滃綋鍓� + //if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + //{ + // return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; + //}; + //var devices = GetDevicesByDeptId(deid); + var customip = _cunstomip.QueryData(x => x.IPaddress == LocalIP).FirstOrDefault(); + if (customip == null) { - return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; - }; + return new WebResponseContent { Status = false, Message = "浣犺繕娌℃湁閰嶇疆璇ヨ建閬撶珯鐨処P鍦板潃,璇峰厛閰嶇疆鍦ㄦ搷浣�" }; + } + var deid = customip.StationID; var devices = GetDevicesByDeptId(deid); + try { devices.Value.left.Communicator.Write<bool>("M104", true); @@ -443,18 +501,24 @@ /// <summary> - /// 鑾峰彇褰撳墠绋嬪簭鏈�鏂扮殑浼哥缉鏉嗛�熷害 + /// 鑾峰彇褰撳墠绋嬪簭鏈�鏂扮殑璀︽儠鏈烘瀯閫熷害 /// </summary> /// <returns></returns> - public WebResponseContent BackfillSpeed() + public WebResponseContent BackfillSpeed(string LocalIP) { try { - if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) - { - return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; + //if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + //{ + // return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; + //} + var customip = _cunstomip.QueryData(x => x.IPaddress == LocalIP).FirstOrDefault(); + if (customip == null) + { + return new WebResponseContent { Status = false, Message = "浣犺繕娌℃湁閰嶇疆璇ヨ建閬撶珯鐨処P鍦板潃,璇峰厛閰嶇疆鍦ㄦ搷浣�" }; } + var deid = customip.StationID; var para = BaseDal.QueryData().Where(x => x.Deptid == deid).OrderByDescending(x => x.CreateDate).FirstOrDefault(); if (para == null) { @@ -470,7 +534,7 @@ } /// <summary> - /// 鑾峰彇褰撳墠浼哥缉鏉嗙殑浣嶇疆(鑷姩) + /// 鑾峰彇褰撳墠璀︽儠鏈烘瀯鐨勪綅缃�(鑷姩) /// </summary> /// <param name="ExtendedState"></param> /// <returns></returns> @@ -488,7 +552,7 @@ var deviceslift = devices.Value.left.Communicator.Read<float>("D80"); var devicesright = devices.Value.right.Communicator.Read<float>("D80"); - Console.WriteLine($"褰撳墠宸﹀彸浼哥缉鏉嗚繑鍥為�熷害鍒嗗埆涓轰负{deviceslift}"); + Console.WriteLine($"褰撳墠宸﹀彸璀︽儠鏈烘瀯杩斿洖閫熷害鍒嗗埆涓轰负{deviceslift}"); return new WebResponseContent -- Gitblit v1.9.3