From 1e414dac65915133e5474b6f811fd782be36a17f Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 29 五月 2025 13:30:15 +0800
Subject: [PATCH] 修改plc读写

---
 project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs |  144 +++++++++++++++++++++++++++--------------------
 1 files changed, 83 insertions(+), 61 deletions(-)

diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs
index 2c2b8d6..4619a7b 100644
--- a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs
+++ b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs
@@ -23,11 +23,13 @@
         public IRepository<Dt_Maintenance> Repository => BaseDal;
         public readonly IRepository<Dt_MaintenanceTeam> _team;
         private readonly IRepository<Sys_User> _user;
+        private readonly IRepository<Sys_Role> _role;
 
-        public MaintenanceService(IRepository<Dt_Maintenance> BaseDal, IRepository<Sys_User> user, IRepository<Dt_MaintenanceTeam> team) : base(BaseDal)
+        public MaintenanceService(IRepository<Sys_Role> role,IRepository<Dt_Maintenance> BaseDal, IRepository<Sys_User> user, IRepository<Dt_MaintenanceTeam> team) : base(BaseDal)
         {
             _user = user;
-            _team = team;   
+            _team = team;
+            _role = role;
         }
 
 
@@ -487,35 +489,52 @@
 
         //}
 
+
+
+
         ///// <summary>
         ///// 寮�濮嬫淇�
         ///// </summary>
-        ///// <param name="account"></param>
-        ///// <returns></returns>(鐝暱-鏅�氬憳宸�)
-        //public WebResponseContent StartMaintenceTask(string account)
+        ///// <param name="account">璐﹀彿</param>
+        ///// <param name="LocalIP">閭e彴鐢佃剳鐧诲叆鐨刬p鍦板潃</param>
+        ///// <returns></returns>
+        //public WebResponseContent StartMaintenceTask(string account,string LocalIP)
         //{
         //    try
         //    {
-        //        var today = DateTime.Today;               // 浠婂ぉ鐨勯浂鐐�
-        //        var tomorrow = today.AddDays(1);         // 鏄庡ぉ鐨勯浂鐐�
-
-
-        //        var maint = BaseDal.QueryData(x =>
-        //            x.UserAccount == account &&
-        //            x.IsPossible == "true" &&
-        //            x.MaintenanceDate >= today &&
-        //            x.MaintenanceDate < tomorrow
-        //        ).FirstOrDefault();
-
-        //        if (maint == null)
+        //        var user = BaseDal.QueryData();
+        //        var maint = user.Where(x =>x.UserAccount == account).FirstOrDefault();
+        //        var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault();//鐢ㄦ埛琛�
+        //        if (maint == null || sysuer == null)
         //        {
-        //            return new WebResponseContent { Status = false, Message = "鏈壘鍒颁粖鏃ョ殑缁存姢浠诲姟璁板綍" };
+        //            return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌璇ョ敤鎴�" };
         //        }
+        //        if (maint.IsLeader!=1)//濡傛灉璇ョ敤鎴蜂笉鏄彮闀匡紝閭d箞瑕佺瓑鐝暱鍏堝仛锛屼粬鎵嶅彲浠ュ仛
+        //        {
+        //            bool leaderStarted = user.Any(x =>x.Roleid == maint.Roleid &&x.IsLeader == 1 &&x.MaintenanceStatus == 1); //娌℃壘鍒拌偗瀹氭槸false
+        //            if (!leaderStarted)
+        //            {
+        //                return new WebResponseContent { Status = false, Message = "璇风瓑寰呯粍闀垮紑濮嬫淇�" };
+        //            }
 
-        //        maint.MaintenancStartTime = DateTime.Now;
+        //        }
+        //       //濡傛灉婊¤冻涓嬮潰鐨勬潯浠跺氨寮�濮�
+        //        maint.MaintenancStartTime = DateTime.Now;//璁板綍寮�濮嬫椂闂�
+        //        maint.MaintenanceStatus = 1;//鏇存敼鐘舵��
         //        BaseDal.UpdateData(maint);
+        //        //鎻掑叆璁板綍琛�
+        //        var recording = new Dt_MaintenanceTeam  //娣诲姞璁板綍
+        //        {
+        //            OperatorName = sysuer.UserTrueName,
+        //            TeamName = sysuer.RoleName,
+        //            DistributionTime = DateTime.Now,
+        //            IPAddress= LocalIP,
+        //            //Creater = "admin",
+        //            //CreateDate = DateTime.Now,
+        //        };
+        //        _team.AddData(recording);
 
-        //        return new WebResponseContent { Status = true, Data = maint };
+        //        return new WebResponseContent { Status = true, Data = maint,Message="寮�濮嬫淇�" };
         //    }
         //    catch (Exception ex)
         //    {
@@ -526,36 +545,52 @@
 
         ///// <summary>
         ///// 缁撴潫妫�淇�
-        ///// </summary>
+        ///// </summary>MaintenanceStatus 0浠h〃妫�淇畬鎴�  1浠h〃妫�淇腑
         ///// <param name="account"></param>
         ///// <returns></returns>
         //public WebResponseContent StopMaintenanceTask(string account)
         //{
         //    try
         //    {
-        //        var today = DateTime.Today;               // 浠婂ぉ鐨勯浂鐐�
-        //        var tomorrow = today.AddDays(1);         // 鏄庡ぉ鐨勯浂鐐�
-
-        //        var maint = BaseDal.QueryData(x => x.UserAccount == account && x.IsPossible == "true"
-        //        && x.MaintenanceDate >= today &&x.MaintenanceDate < tomorrow).FirstOrDefault();
-        //        if (maint == null)
+        //        var user = BaseDal.QueryData();//妫�淇〃
+        //        var maint = user.Where(x => x.UserAccount == account).FirstOrDefault();
+        //        var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault();//鐢ㄦ埛琛�
+        //        if (maint == null || sysuer == null)
         //        {
-        //            return new WebResponseContent { Status = false, Message = "鏈壘鍒板彲鐢ㄧ殑缁存姢浠诲姟璁板綍" };
+        //            return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌璇ョ敤鎴�" };
         //        }
-        //        // 淇敼鍏剁粨鏉熸椂闂�
-        //        maint.MaintenancEendTime = DateTime.Now;
-        //        maint.IsPossible = "ok";//ok灏变唬琛ㄥ畬鎴愪簡
+        //        if (maint.IsLeader == 1)//濡傛灉璇ョ敤鎴锋槸鐝暱锛岄偅涔堣绛夊叏閮ㄤ汉閮芥淇畬鎴愶紝浠栨墠鍙互缁撴潫妫�淇�
+        //        {
+        //            //鍏堟煡鎵炬墍鏈夌敤鎴风殑缁勬槸閭d釜缁勭殑锛岀粍鍛樼姸鎬佹湁涓�涓笉鏄�1               
+        //            // 鏌ユ壘鍚岀粍鏈畬鎴愮殑缁勫憳锛圛sLeader=0 && MaintenanceStatus=1锛�
+        //            bool hasUnfinishedMembers = user.Any(x =>x.Roleid == maint.Roleid && x.IsLeader == 0 &&
+        //                x.MaintenanceStatus == 1); //锛欰ny()鏈変竴涓弧瓒冲氨杩斿洖true琛ㄧず瀛樺湪婊¤冻鏉′欢鐨勮褰�
+        //            if (hasUnfinishedMembers)
+        //            {
+        //                return new WebResponseContent { Status = false, Message = "杩樻湁缁勫憳鏈畬鎴愬綋鍓嶆壒娆℃淇�" };
+        //            }
+        //        }
+        //        //濡傛灉婊¤冻涓嬮潰鐨勬潯浠跺氨寮�濮�
+        //        maint.MaintenancEendTime = DateTime.Now;//璁板綍缁撴潫鏃堕棿
+        //        maint.MaintenanceStatus = 0;//鏇存敼鐘舵��
         //        BaseDal.UpdateData(maint);
-        //        return new WebResponseContent { Status = true, Data = maint };
+        //        ////鎻掑叆璁板綍琛�
+        //        //var recording = new Dt_MaintenanceTeam  //娣诲姞璁板綍
+        //        //{
+        //        //    OperatorName = sysuer.UserTrueName,
+        //        //    TeamName = sysuer.RoleName,
+        //        //    DistributionTime = DateTime.Now,
+        //        //    EndTime=DateTime.Now,
+        //        //};
+        //        //_team.AddData(recording);
 
+        //        return new WebResponseContent { Status = true, Data = maint, Message = "瀹屾垚妫�淇�" };
         //    }
         //    catch (Exception ex)
         //    {
-
         //        return new WebResponseContent { Status = false, Message = "閿欒淇℃伅锛�" + ex.Message };
         //    }
         //}
-
 
 
         /// <summary>
@@ -564,33 +599,29 @@
         /// <param name="account">璐﹀彿</param>
         /// <param name="LocalIP">閭e彴鐢佃剳鐧诲叆鐨刬p鍦板潃</param>
         /// <returns></returns>
-        public WebResponseContent StartMaintenceTask(string account,string LocalIP)
+        public WebResponseContent StartMaintenceTask(string account, string LocalIP)
         {
             try
             {
-                var user = BaseDal.QueryData();
-                var maint = user.Where(x =>x.UserAccount == account).FirstOrDefault();
-                var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault();//鐢ㄦ埛琛�
+                var user = BaseDal.QueryData();//妫�淇〃
+                var Role = _role.QueryData();//瑙掕壊琛�
+                var maint = user.Where(x => x.UserAccount == account).FirstOrDefault(); //鍦ㄦ淇〃涓厛鎵惧埌璇ョ敤鎴�
+                var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault();//鍦ㄧ敤鎴疯〃涓壘鍒扮敤鎴�
                 if (maint == null || sysuer == null)
                 {
                     return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌璇ョ敤鎴�" };
                 }
-                if (maint.IsLeader!=1)//濡傛灉璇ョ敤鎴蜂笉鏄彮闀匡紝閭d箞瑕佺瓑鐝暱鍏堝仛锛屼粬鎵嶅彲浠ュ仛
+                //鍏堣鎵惧埌璇ョ敤鎴峰睘浜庨偅涓鑹茬殑锛岃繖涓鑹蹭腑灞炰簬閭d釜浠�涔堢被鍨嬶紙缁勯暱/缁勫憳锛�
+                if (maint.IsLeader != 1)//濡傛灉璇ョ敤鎴蜂笉鏄彮闀匡紝閭d箞瑕佺瓑鐝暱鍏堝仛锛屼粬鎵嶅彲浠ュ仛
                 {
-                    //鍏堟煡鎵剧敤鎴风殑鐝暱鏄笉鏄仛浜�
-                    //bool monitor = user.Where(x => x.Roleid == maint.Roleid && x.IsLeader == 1 && x.MaintenanceStatus == 1);
-                    //if (monitor==null)
-                    //{
-                    //    return new WebResponseContent { Status = false, Message = "浣犵殑涓婄骇杩樻病鏈夊紑濮嬫淇紝璇风◢鍚庡啀璇�" };
-                    //}
-                    bool leaderStarted = user.Any(x =>x.Roleid == maint.Roleid &&x.IsLeader == 1 &&x.MaintenanceStatus == 1); //娌℃壘鍒拌偗瀹氭槸false
+                    bool leaderStarted = user.Any(x =>  x.IsLeader == 1 && x.MaintenanceStatus == 1); //鍚︽湁婊¤冻鏉′欢 鎵惧埌涓�鏉″氨杩斿洖true MaintenanceStatus锛�0娌℃湁寮�濮嬶紝1寮�濮嬶級
                     if (!leaderStarted)
                     {
                         return new WebResponseContent { Status = false, Message = "璇风瓑寰呯粍闀垮紑濮嬫淇�" };
                     }
 
                 }
-               //濡傛灉婊¤冻涓嬮潰鐨勬潯浠跺氨寮�濮�
+                //濡傛灉婊¤冻涓嬮潰鐨勬潯浠跺氨寮�濮�
                 maint.MaintenancStartTime = DateTime.Now;//璁板綍寮�濮嬫椂闂�
                 maint.MaintenanceStatus = 1;//鏇存敼鐘舵��
                 BaseDal.UpdateData(maint);
@@ -600,13 +631,11 @@
                     OperatorName = sysuer.UserTrueName,
                     TeamName = sysuer.RoleName,
                     DistributionTime = DateTime.Now,
-                    IPAddress= LocalIP,
-                    //Creater = "admin",
-                    //CreateDate = DateTime.Now,
+                    IPAddress = LocalIP,
                 };
                 _team.AddData(recording);
 
-                return new WebResponseContent { Status = true, Data = maint,Message="寮�濮嬫淇�" };
+                return new WebResponseContent { Status = true, Data = maint, Message = "寮�濮嬫淇�" };
             }
             catch (Exception ex)
             {
@@ -633,16 +662,10 @@
                 }
                 if (maint.IsLeader == 1)//濡傛灉璇ョ敤鎴锋槸鐝暱锛岄偅涔堣绛夊叏閮ㄤ汉閮芥淇畬鎴愶紝浠栨墠鍙互缁撴潫妫�淇�
                 {
-                    //鍏堟煡鎵炬墍鏈夌敤鎴风殑缁勬槸閭d釜缁勭殑锛岀粍鍛樼姸鎬佹湁涓�涓笉鏄�1
-                    //var monitor = user.Where(x => x.Roleid == maint.Roleid && x.IsLeader == 0 && x.MaintenanceStatus == 1).ToList();
-                    //if (monitor.Count >0)
-                    //{
-                    //    return new WebResponseContent { Status = false, Message = "浣犵殑缁勫憳杩樻病鏈夊畬鎴�" };
-                    //}
+                    //鍏堟煡鎵炬墍鏈夌敤鎴风殑缁勬槸閭d釜缁勭殑锛岀粍鍛樼姸鎬佹湁涓�涓笉鏄�1               
                     // 鏌ユ壘鍚岀粍鏈畬鎴愮殑缁勫憳锛圛sLeader=0 && MaintenanceStatus=1锛�
-                    bool hasUnfinishedMembers = user.Any(x =>x.Roleid == maint.Roleid && x.IsLeader == 0 &&
-                        x.MaintenanceStatus == 1); //锛欰ny()鏈変竴涓弧瓒冲氨杩斿洖true琛ㄧず瀛樺湪婊¤冻鏉′欢鐨勮褰�
-                    if (hasUnfinishedMembers)
+                    var hasUnfinishedMembers = user.Where(x =>x.IsLeader == 0 &&x.MaintenanceStatus == 1).ToList(); //锛欰ny()鏈変竴涓弧瓒冲氨杩斿洖true琛ㄧず瀛樺湪婊¤冻鏉′欢鐨勮褰�
+                    if (hasUnfinishedMembers.Count>0)
                     {
                         return new WebResponseContent { Status = false, Message = "杩樻湁缁勫憳鏈畬鎴愬綋鍓嶆壒娆℃淇�" };
                     }
@@ -668,7 +691,6 @@
                 return new WebResponseContent { Status = false, Message = "閿欒淇℃伅锛�" + ex.Message };
             }
         }
-
 
         /// <summary>
         /// 鐘舵�佹灇涓�

--
Gitblit v1.9.3