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 | 270 ++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 224 insertions(+), 46 deletions(-)
diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs
index bd1cb30..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;
}
@@ -42,7 +44,7 @@
try
{
int totalCount = 0;
- var sys = _user.Db.Queryable<Sys_User>();
+ var sys = _user.Db.Queryable<Sys_User>().Where(x=>x.Enable==1);
var main = Db.Queryable<Dt_Maintenance>();
var query = sys.InnerJoin<Dt_Maintenance>((a, b) => a.UserName == b.UserAccount);
@@ -74,7 +76,6 @@
query = query.Where((a, b) => a.Dept_Id == deptId);
}
-
// 鎵ц鍒嗛〉鏌ヨ
var result = query.Select((a, b) => new
{
@@ -123,14 +124,15 @@
// 绗竴姝ワ細鑷姩娓呯悊杩囨湡妫�淇姸鎬�
var today = DateTime.Today;
var recordsToUpdate = Db.Queryable<Dt_Maintenance>()
- .Where(b => b.MaintenancStartTime != null &&
- b.MaintenancStartTime.Value.Date < today )
+ .Where(b => b.MaintenanceDate != null &&
+ b.MaintenanceDate.Value.Date < today )
.ToList();
if (recordsToUpdate.Count > 0)
{
foreach (var record in recordsToUpdate)//鏇存柊
{
+ record.MaintenanceDate = null;//娓呯┖妫�淇棩鏈�
record.MaintenancStartTime = null;//娓呯┖寮�濮嬫椂闂�
record.MaintenancEendTime = null;//娓呯┖缁撴潫鏃堕棿
record.MaintenanceStatus = 0; // Set to false
@@ -211,7 +213,7 @@
/// <summary>
- /// 鏇存柊鐘舵�佹槸鍚﹀厑璁歌繘鍏ユ淇�
+ /// 鏇存柊鐘舵�佹槸鍚﹀厑璁歌繘鍏ユ淇紙娣诲姞浜嗘淇褰曪級
/// </summary>
/// <param name="id"></param>
/// <param name="ispossible"></param>
@@ -231,7 +233,7 @@
mon.IsPossible = "true";
mon.MaintenanceDate = DateTime.Now;
BaseDal.UpdateData(mon);
- var recording = new Dt_MaintenanceTeam
+ var recording = new Dt_MaintenanceTeam //娣诲姞璁板綍
{
OperatorName = sysuer.UserTrueName,
TeamName = sysuer.RoleName,
@@ -258,7 +260,7 @@
/// <summary>
- /// 鏇存敼鐘舵��
+ /// 鏇存敼鐘舵�侊紙鏆傛椂娌℃湁鐢ㄥ埌锛�
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
@@ -374,6 +376,7 @@
a.UserTrueName,
a.Userteam,
a.HeadImageUrl,
+ a.Dept_Id,
b.MaintenancStartTime,
b.MaintenancEendTime,
}).ToPageList(pagination.pageIndex, pagination.pageSize, ref totalCount);
@@ -399,7 +402,7 @@
/// <summary>
- /// 鐪嬩粖澶╃殑妫�淇换鍔�
+ /// 鏌ョ湅浠婂ぉ鐨勬淇换鍔★紙杩愯妫�淇殣钘忎簡锛岃繖涓帴鍙d篃鐢ㄤ笉閬擄級
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
@@ -426,52 +429,213 @@
b.MaintenancStartTime,
b.MaintenancEendTime,
}).ToList();
- if (query==null)
+ if (query == null)
{
return new WebResponseContent { Status = false, Message = "浣犱粖澶╂病鏈夋淇换鍔�" };
}
-
- return new WebResponseContent { Status=true, Data = query };
+
+ return new WebResponseContent { Status = true, Data = query };
}
catch (Exception ex)
{
return new WebResponseContent { Status = false, Message = "閿欒淇℃伅锛�" + ex.Message };
}
-
+
}
+
+ /// <summary>
+ /// 鐪嬩粖澶╃殑妫�淇换鍔★紙杩愯妫�淇殣钘忎簡锛岃繖涓帴鍙d篃鐢ㄤ笉閬擄級
+ /// </summary>
+ /// <param name="id"></param>
+ /// <returns></returns>
+ //public WebResponseContent MaintenanceTasksOfTheDay(string account)
+ //{
+ // try
+ // {
+
+ // var query = _user.Db.Queryable<Sys_User>()
+ // .InnerJoin<Dt_Maintenance>((a, b) => a.UserName == b.UserAccount)
+ // .Where((a,b) => b.UserAccount == account ).Select((a, b) => new
+ // {
+ // b.ID,
+ // a.UserTrueName,
+ // a.UserName,
+ // a.CardNumber,
+ // a.Userteam,
+ // a.HeadImageUrl,
+ // b.IsPossible,
+ // b.MaintenanceStatus,
+ // b.MaintenanceDate,
+ // b.MaintenancStartTime,
+ // b.MaintenancEendTime,
+ // }).ToList();
+ // if (query == null)
+ // {
+ // return new WebResponseContent { Status = false, Message = "浣犱粖澶╂病鏈夋淇换鍔�" };
+ // }
+
+
+
+ // return new WebResponseContent { Status = true, Data = query };
+ // }
+ // catch (Exception ex)
+ // {
+
+ // return new WebResponseContent { Status = false, Message = "閿欒淇℃伅锛�" + ex.Message };
+ // }
+
+ //}
+
+
+
+
+ ///// <summary>
+ ///// 寮�濮嬫淇�
+ ///// </summary>
+ ///// <param name="account">璐﹀彿</param>
+ ///// <param name="LocalIP">閭e彴鐢佃剳鐧诲叆鐨刬p鍦板潃</param>
+ ///// <returns></returns>
+ //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();//鐢ㄦ埛琛�
+ // if (maint == null || sysuer == null)
+ // {
+ // 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.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,Message="寮�濮嬫淇�" };
+ // }
+ // catch (Exception ex)
+ // {
+ // return new WebResponseContent { Status = false, Message = "閿欒淇℃伅锛�" + ex.Message };
+ // }
+ //}
+
+
+ ///// <summary>
+ ///// 缁撴潫妫�淇�
+ ///// </summary>MaintenanceStatus 0浠h〃妫�淇畬鎴� 1浠h〃妫�淇腑
+ ///// <param name="account"></param>
+ ///// <returns></returns>
+ //public WebResponseContent StopMaintenanceTask(string account)
+ //{
+ // try
+ // {
+ // 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 = "娌℃湁鎵惧埌璇ョ敤鎴�" };
+ // }
+ // 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);
+ // ////鎻掑叆璁板綍琛�
+ // //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>
/// 寮�濮嬫淇�
/// </summary>
- /// <param name="account"></param>
+ /// <param name="account">璐﹀彿</param>
+ /// <param name="LocalIP">閭e彴鐢佃剳鐧诲叆鐨刬p鍦板潃</param>
/// <returns></returns>
- public WebResponseContent StartMaintenceTask(string account)
+ 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 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 = "鏈壘鍒颁粖鏃ョ殑缁存姢浠诲姟璁板綍" };
+ return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌璇ョ敤鎴�" };
}
+ //鍏堣鎵惧埌璇ョ敤鎴峰睘浜庨偅涓鑹茬殑锛岃繖涓鑹蹭腑灞炰簬閭d釜浠�涔堢被鍨嬶紙缁勯暱/缁勫憳锛�
+ if (maint.IsLeader != 1)//濡傛灉璇ョ敤鎴蜂笉鏄彮闀匡紝閭d箞瑕佺瓑鐝暱鍏堝仛锛屼粬鎵嶅彲浠ュ仛
+ {
+ 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.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,
+ };
+ _team.AddData(recording);
- return new WebResponseContent { Status = true, Data = maint };
+ return new WebResponseContent { Status = true, Data = maint, Message = "寮�濮嬫淇�" };
}
catch (Exception ex)
{
@@ -482,37 +646,51 @@
/// <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锛�
+ var hasUnfinishedMembers = user.Where(x =>x.IsLeader == 0 &&x.MaintenanceStatus == 1).ToList(); //锛欰ny()鏈変竴涓弧瓒冲氨杩斿洖true琛ㄧず瀛樺湪婊¤冻鏉′欢鐨勮褰�
+ if (hasUnfinishedMembers.Count>0)
+ {
+ 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>
/// 鐘舵�佹灇涓�
--
Gitblit v1.9.3