From 9250e3e48760f91fbefef03331fc7b14b4b1be18 Mon Sep 17 00:00:00 2001 From: yanjinhui <3306209981@qq.com> Date: 星期六, 07 六月 2025 13:09:59 +0800 Subject: [PATCH] 修改数字大屏接口 --- project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs | 352 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 331 insertions(+), 21 deletions(-) diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs index 45cd188..9f88df3 100644 --- a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs +++ b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/ParametersService.cs @@ -5,11 +5,13 @@ using System.Text; using System.Threading.Tasks; using AutoMapper; +using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using SqlSugar; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Core.Helper; +using WIDESEAWCS_DTO.Telescopic; using WIDESEAWCS_ITelescopicService; using WIDESEAWCS_Model.Models; using WIDESEAWCS_QuartzJob; @@ -50,31 +52,109 @@ if (para == null) return new WebResponseContent { Status = false, Message = "鏈壘鍒板弬鏁伴厤缃�" }; - int ext = (int)para.ExtendSpeed; - int ret = (int)para.RetractionSpeed; + int ext = (int)para.ExtendSpeed;//宸LC鑷姩浼稿嚭缂╁洖閫熷害 + int ret = (int)para.RetractionSpeed;//鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害 + int liftPosition= (int)para.LeftPosition;//宸︿几鍑轰綅缃� + int rigtpostition= (int)para.RightPosition;//鍙充几鍑轰綅缃� + try + { + var leftorigin = devices.Value.left.Communicator.Read<bool>("M115");//宸lc鍒板師鐐逛綅缃俊鍙� + var rightorigin = devices.Value.right.Communicator.Read<bool>("M115");//鍙硃lc鍒拌揪鍘熺偣浣嶇疆淇″彿 + if (leftorigin == true || rightorigin == true) + { + return new WebResponseContent { Status = false, Message = "宸插埌鍘熷鐐�" }; + } + } + catch (Exception) + { + + } + try + { + var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//宸lc鍒拌揪鐩爣浣嶇疆 + var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//鍙硃lc鍒拌揪鐩爣浣嶇疆 + if (lefttarget == true || righttarget == true) + { + return new WebResponseContent { Status = false, Message = "宸插埌鏈�澶у��" }; + } + + } + catch (Exception) + { + + + } if (ExtendedState == "浼稿嚭") { - devices.Value.left.Communicator.Write<int>("D500", ext);//浼稿嚭閫熷害 - devices.Value.left.Communicator.Write<bool>("M100", true);//浼稿嚭鎸夐挳 - devices.Value.right.Communicator.Write<int>("D500", ext);//浼稿嚭閫熷害 - devices.Value.right.Communicator.Write<bool>("M100", true);//浼稿嚭鎸夐挳 - Console.WriteLine($"鑷姩浼哥缉鏉嗕几鍑� {ext}"); + try + { + devices.Value.left.Communicator.Write<int>("D1001", ext);//宸LC鑷姩浼稿嚭缂╁洖閫熷害 + devices.Value.left.Communicator.Write<bool>("M102", true);//浼稿嚭鎸夐挳 + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.left.Communicator.Write<bool>("M102", false); // 閲婃斁鎸夐挳 + devices.Value.left.Communicator.Write<int>("D1002", liftPosition);//宸︿几鍑轰綅缃� + } + catch (Exception) + { + + } + try + { + devices.Value.right.Communicator.Write<int>("D1001", ret);//鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害 + devices.Value.right.Communicator.Write<bool>("M102", true);//浼稿嚭鎸夐挳 + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.right.Communicator.Write<bool>("M102", false); // 閲婃斁鎸夐挳 + devices.Value.right.Communicator.Write<int>("D1002", rigtpostition);//鍙充几鍑轰綅缃� + } + catch (Exception) + { + + } + + Console.WriteLine($"鑷姩浼哥缉鏉嗕几鍑� {ext},宸︿几鍑轰綅缃畕liftPosition}锛屽彸浼稿嚭浣嶇疆{rigtpostition}"); } else if (ExtendedState == "缂╁洖") { - devices.Value.left.Communicator.Write<int>("D501", ext);//浼稿嚭閫熷害 - devices.Value.left.Communicator.Write<bool>("M101", true);//浼稿嚭鎸夐挳 - devices.Value.right.Communicator.Write<int>("D501", ext);//浼稿嚭閫熷害 - devices.Value.right.Communicator.Write<bool>("M101", true);//浼稿嚭鎸夐挳 + try + { + devices.Value.left.Communicator.Write<int>("D1001", ext);//宸LC鑷姩浼稿嚭缂╁洖閫熷害 + devices.Value.left.Communicator.Write<bool>("M103", true);//缂╁洖鎸夐挳 + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.left.Communicator.Write<bool>("M103", false); // 閲婃斁鎸夐挳 + } + catch (Exception) + { + + } + try + { + devices.Value.right.Communicator.Write<int>("D1001", ret);//鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害 + devices.Value.right.Communicator.Write<bool>("M103", true);//缂╁洖鎸夐挳 + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.right.Communicator.Write<bool>("M103", false); // 閲婃斁鎸夐挳 + } + catch (Exception) + { + + } + Console.WriteLine($"鑷姩浼哥缉鏉嗙缉鍥� {ret}"); } + else { return new WebResponseContent { Status = false, Message = "鏈煡鐨勬搷浣滃懡浠�" }; } - return new WebResponseContent { Status = true, Message = "鎴愬姛" }; + return new WebResponseContent { Status = true, Message = "鎴愬姛", + Data = new + { + ExtendSpeed = ext, + RetractionSpeed = ret, + + } + }; } catch (Exception ex) { @@ -106,40 +186,263 @@ //淇╀釜plc宸﹀彸鍚勪竴涓� //OtherDevice liftotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == "SSG001"); //OtherDevice rightotherDevice = (OtherDevice)Storage.Devices.Find(x => x.DeviceCode == "SSG002"); + //鎵惧埌Dt_Parameters涓殑鏈�鏂颁竴鏉℃暟鎹牴鎹綋鍓嶇殑deid var para = BaseDal.QueryData().Where(x => x.Deptid == deid).OrderByDescending(x => x.CreateDate).FirstOrDefault(); - int ext = (int)para.ManualExtend;//鎵嬪姩浼稿嚭閫熷害 - int ret = (int)para.ManualRetraction;//鎵嬪姩缂╁洖閫熷害 + int ext = (int)para.ManualExtend;//宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害 + int ret = (int)para.ManualRetraction;//鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害 + int liftPosition = (int)para.LeftPosition;//宸︿几鍑轰綅缃� + int rigtpostition = (int)para.RightPosition;//鍙充几鍑轰綅缃� + try + { + var leftorigin = devices.Value.left.Communicator.Read<bool>("M115");//宸lc鍒板師鐐逛綅缃俊鍙� + var rightorigin = devices.Value.right.Communicator.Read<bool>("M115");//鍙硃lc鍒拌揪鍘熺偣浣嶇疆淇″彿 + if (leftorigin == true || rightorigin == true) + { + return new WebResponseContent { Status = false, Message = "宸插埌鍘熷鐐�" }; + } + } + catch (Exception) + { + + + } + try + { + var lefttarget = devices.Value.left.Communicator.Read<bool>("M116");//宸lc鍒拌揪鐩爣浣嶇疆 + var righttarget = devices.Value.right.Communicator.Read<bool>("M116");//鍙硃lc鍒拌揪鐩爣浣嶇疆 + if (lefttarget == true || righttarget == true) + { + return new WebResponseContent { Status = false, Message = "宸插埌鏈�澶у��" }; + } + + } + catch (Exception) + { + + + } + + if (position == "宸�" && ExtendedState == "浼稿嚭") { - devices.Value.left.Communicator.Write<int>("D500", ext);//浼稿嚭閫熷害 + devices.Value.left.Communicator.Write<int>("D1000", ext);//宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害 devices.Value.left.Communicator.Write<bool>("M100", true);//浼稿嚭鎸夐挳 + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.left.Communicator.Write<bool>("M100", false); // 閲婃斁鎸夐挳 + devices.Value.left.Communicator.Write<int>("D1002", liftPosition);//宸︿几鍑轰綅缃� + Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ext}"); } else if (position == "宸�" && ExtendedState == "缂╁洖") { - devices.Value.left.Communicator.Write<int>("D501", ret);//缂╁洖閫熷害 + devices.Value.left.Communicator.Write<int>("D1000", ext);//宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害 devices.Value.left.Communicator.Write<bool>("M101", true); - Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄧ缉鍥瀧ret}"); + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.left.Communicator.Write<bool>("M101", false); // 閲婃斁鎸夐挳 + Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄧ缉鍥瀧ext}"); } else if (position == "鍙�" && ExtendedState == "浼稿嚭") { - devices.Value.right.Communicator.Write<int>("D500", ext); + devices.Value.right.Communicator.Write<int>("D1000", ret);//鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害 devices.Value.right.Communicator.Write<bool>("M100", true); - Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ext}"); + Thread.Sleep(100); // 绛夊緟100ms锛堟ā鎷熸寜閽寜涓嬶級 + devices.Value.right.Communicator.Write<bool>("M100", false); // 閲婃斁鎸夐挳 + devices.Value.right.Communicator.Write<int>("D1002", liftPosition);//宸︿几鍑轰綅缃� + Console.WriteLine($"{position}浼哥缉鏉嗘墜鍔ㄤ几鍑簕ret}"); } else if (position == "鍙�" && ExtendedState == "缂╁洖") { - devices.Value.right.Communicator.Write<int>("D501", ret); + 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}"); } - return new WebResponseContent { Status = true, Message = "鎴愬姛" }; + return new WebResponseContent { Status = true, + Message = "鎴愬姛" , + Data = new + { + ManualExtend = ext, + ManualRetraction = ret + } + }; } catch (Exception ex) { return new WebResponseContent { Status = false, Message = ex.Message }; + } + + } + + + /// <summary> + /// 鏍规嵁鐢ㄦ埛娣诲姞閫熷害 + /// </summary> + /// <param name="entity"></param> + /// <returns></returns> + public WebResponseContent AddSpeed(SpeedDTO entity) + { + try + { + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + 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"锛屽氨璁や负杩欎釜鐢ㄦ埛鏄鐞嗗憳 + + // 鏍规嵁鏄惁鏄鐞嗗憳鍐冲畾浣跨敤鍝釜 Deptid + var parmet = new Dt_Parameters + { + ExtendSpeed = entity.ExtendSpeed, + RetractionSpeed = entity.RetractionSpeed, + ManualExtend = entity.ManualExtend, + ManualRetraction = entity.ManualRetraction, + LeftPosition = entity.LeftPosition, + RightPosition = entity.RightPosition, + Deptid = isAdmin ? deid : dept.GetValueOrDefault()//濡傛灉褰撳墠鐢ㄦ埛鏄鐞嗗憳锛屽氨鐢ㄩ厤缃枃浠朵腑鐨� DepartmentID锛屽惁鍒欑敤浼犲叆鐨� entity 鍙傛暟涓殑 Deptid + }; + // 娣诲姞鏁版嵁 + AddData(parmet); + + + return new WebResponseContent + { + Status = true, + Message = "娣诲姞鎴愬姛", + Data = parmet + }; + } + catch (Exception ex) + { + + return new WebResponseContent { Status = false, Message = ex.Message }; + } + } + + + /// <summary> + ///褰撹嚜鍔ㄤ几鍑洪渶瑕佹殏鍋滄椂锛屾殏鍋滄寜閽� + /// </summary> + /// <returns></returns> + public WebResponseContent PauseButton() + { + try + { + //鏍规嵁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); + try + { + devices.Value.left.Communicator.Write<bool>("M104", true); + } + catch (Exception) + { + + + } + try + { + devices.Value.right.Communicator.Write<bool>("M104", true); + } + catch (Exception) + { + + + } + + + return new WebResponseContent { Status =true,Message="鏆傚仠鎴愬姛",Data = devices}; + } + catch (Exception ex) + { + + return new WebResponseContent { Status = false, Message = ex.Message }; + } + } + + + /// <summary> + /// 鑾峰彇褰撳墠绋嬪簭鏈�鏂扮殑浼哥缉鏉嗛�熷害 + /// </summary> + /// <returns></returns> + public WebResponseContent BackfillSpeed() + { + try + { + if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + { + return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; + + } + var para = BaseDal.QueryData().Where(x => x.Deptid == deid).OrderByDescending(x => x.CreateDate).FirstOrDefault(); + if (para == null) + { + return new WebResponseContent { Message = "浣犺繕娌℃湁閰嶇疆閫熷害" }; + } + return new WebResponseContent { Status = true, Data = para }; + } + catch (Exception ex) + { + + return new WebResponseContent { Status = false, Message = ex.Message }; + } + } + + /// <summary> + /// 鑾峰彇褰撳墠浼哥缉鏉嗙殑浣嶇疆(鑷姩) + /// </summary> + /// <param name="ExtendedState"></param> + /// <returns></returns> + public WebResponseContent CurrentLocation() + { + try + { + if (!int.TryParse(AppSettings.Get("DepartmentID"), out int deid)) + { + return new WebResponseContent { Status = false, Message = "閰嶇疆椤� DepartmentID 鏃犳硶杞崲涓烘暣鏁�" }; + + } + var devices = GetDevicesByDeptId(deid); + + + var deviceslift = devices.Value.left.Communicator.Read<float>("D80"); + var devicesright = devices.Value.right.Communicator.Read<float>("D80"); + Console.WriteLine($"褰撳墠宸﹀彸浼哥缉鏉嗚繑鍥為�熷害鍒嗗埆涓轰负{deviceslift}"); + + + return new WebResponseContent + { + Status = true, + Data = new { lift = deviceslift, Right = devicesright } + }; + } + catch (Exception ex) + { + + return new WebResponseContent { Status = false, Message = ex.Message }; } } @@ -165,6 +468,13 @@ return (left, right); } + + + + + + + } } -- Gitblit v1.9.3