From 9f3858dd723a69c56dbab909e0c7e6c5ef8b85a8 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 09 六月 2025 20:27:19 +0800
Subject: [PATCH] 修改plc信息,以及进入检修接口
---
project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs | 243 +++++++++++++++++++++++++-----------------------
1 files changed, 125 insertions(+), 118 deletions(-)
diff --git a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs
index 4619a7b..a99fa9d 100644
--- a/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs
+++ b/project/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs
@@ -23,13 +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<Sys_Role> role,IRepository<Dt_Maintenance> BaseDal, IRepository<Sys_User> user, IRepository<Dt_MaintenanceTeam> team) : base(BaseDal)
+ public MaintenanceService(IRepository<Dt_Maintenance> BaseDal, IRepository<Sys_User> user, IRepository<Dt_MaintenanceTeam> team) : base(BaseDal)
{
_user = user;
_team = team;
- _role = role;
+
}
@@ -111,7 +111,7 @@
/// <summary>
- /// 浜哄憳鐩戞帶
+ /// 浜哄憳鐩戞帶锛堟暟瀛楀ぇ灞忥級
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
@@ -121,32 +121,12 @@
{
try
{
- // 绗竴姝ワ細鑷姩娓呯悊杩囨湡妫�淇姸鎬�
- var today = DateTime.Today;
- var recordsToUpdate = Db.Queryable<Dt_Maintenance>()
- .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
- record.IsPossible = "NULL"; //鏇存敼鐘舵�佷负false涓嶈繍琛屾淇�//榛樿涓篘ULL
- }
- Db.Updateable(recordsToUpdate).ExecuteCommand();
- }
-
int totalCount = 0;
var sys = _user.Db.Queryable<Sys_User>();
- var main = Db.Queryable<Dt_Maintenance>();
+
var query = sys.InnerJoin<Dt_Maintenance>((a, b) => a.UserName == b.UserAccount)
- .Where((a, b) => b.IsPossible == "true"); // 灞曠ず杩愯妫�淇殑
+ .Where((a, b) => b.MaintenanceStatus==1); // 灞曠ず杩愯妫�淇殑
// 鎼滅储鍏抽敭瀛�
if (!string.IsNullOrEmpty(pagination.searchKeyword))
@@ -156,37 +136,22 @@
a.Userteam.Contains(pagination.searchKeyword));
}
- // 鐘舵�佸弬鏁�
- if (pagination.status.HasValue)
- {
- query = query.Where((a, b) => b.MaintenanceStatus == pagination.status.Value);
- }
-
- // 濡傛灉涓嶆槸绠$悊鍛橈紝璇锋寜閮ㄩ棬杩囨护
- if (pagination.account != "admin")
- {
- var currentUser = _user.Db.Queryable<Sys_User>()
- .Where(u => u.UserName == pagination.account)
- .First();
-
- if (currentUser == null)
- {
- return new WebResponseContent { Status = false, Data = "鏈幏鍙栧埌鐢ㄦ埛淇℃伅" };
- }
-
- int? deptId = currentUser.Dept_Id;
- query = query.Where((a, b) => a.Dept_Id == deptId);
- }
+ //// 鐘舵�佸弬鏁�
+ //if (pagination.status.HasValue) //澶氫紶涓�涓姸鎬�
+ //{
+ // query = query.Where((a, b) => b.MaintenanceStatus == pagination.status.Value);
+ //}
var result = query
.Select((a, b) => new
{
a.UserTrueName,
- a.Userteam,
- a.HeadImageUrl,
- b.MaintenanceStatus,
- b.MaintenanceDate,
- b.IsPossible,
+ a.Userteam,//鐝粍
+ a.Unit,//鍗曚綅
+ b.ID,//id
+ b.MaintenanceStatus,//妫�淇姸鎬�
+ b.CreateDate,//鏃ユ湡
+ b.MaintenancStartTime,//寮�濮嬫椂闂�
})
.ToPageList(pagination.pageIndex, pagination.pageSize, ref totalCount);
@@ -213,43 +178,38 @@
/// <summary>
- /// 鏇存柊鐘舵�佹槸鍚﹀厑璁歌繘鍏ユ淇紙娣诲姞浜嗘淇褰曪級
+ /// 鏇存柊鐘舵�佸己鍒朵笅绾匡紙娣诲姞浜嗘淇褰曪級
/// </summary>
/// <param name="id"></param>
/// <param name="ispossible"></param>
/// <returns></returns>
- public WebResponseContent RunOperation(int id, string ispossible)
+ public WebResponseContent RunOperation(int id,string LocalIP)
{
try
{
- var mon = BaseDal.QueryFirst(x => x.ID == id);
- if (mon == null)
+ var user = BaseDal.QueryData();//妫�淇〃
+
+ var maint = user.Where(x => x.ID == id).FirstOrDefault(); //鍦ㄦ淇〃涓厛鎵惧埌璇ョ敤鎴�
+ var sysuer = _user.QueryData(x => x.UserName == maint.UserAccount).FirstOrDefault();
+ if (maint == null ||sysuer==null)
{
- return new WebResponseContent { Status = false, Message = "鏃犳硶鏇存敼锛屾病鏈夋壘鍒拌鐢ㄦ埛" };
+ return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌璇ョ敤鎴�" };
}
- var sysuer = _user.QueryData(x => x.UserName == mon.UserAccount).FirstOrDefault();
- if (ispossible == "true")
+ maint.MaintenanceStatus = 0;//鏀瑰彉鐘舵�佸己鍒朵笅绾�
+ BaseDal.UpdateData(maint);
+ //鎻掑叆璁板綍琛�
+ var recording = new Dt_MaintenanceTeam //娣诲姞璁板綍
{
- mon.IsPossible = "true";
- mon.MaintenanceDate = DateTime.Now;
- BaseDal.UpdateData(mon);
- var recording = new Dt_MaintenanceTeam //娣诲姞璁板綍
- {
- OperatorName = sysuer.UserTrueName,
- TeamName = sysuer.RoleName,
- DistributionTime = DateTime.Now,
- Creater = "admin",
- CreateDate = DateTime.Now,
+ Account = maint.UserAccount,
+ MaintenanceStatus = 0,
+ OperatorName = sysuer.UserTrueName,
+ TeamName = sysuer.RoleName,
+ DistributionTime = DateTime.Now,
+ IPAddress = LocalIP,
+ };
+ _team.AddData(recording);
- };
- _team.AddData(recording);
- }
- else
- {
- mon.IsPossible = "false";
- BaseDal.UpdateData(mon);
- }
- return new WebResponseContent { Status = true, Data = mon };
+ return new WebResponseContent { Status = true,Message="寮哄埗涓嬬嚎鎴愬姛", Data = recording };
}
catch (Exception ex)
{
@@ -353,23 +313,7 @@
query=query.OrderByDescending((a, b) => b.Creater);
}
- // 濡傛灉涓嶆槸绠$悊鍛橈紝鏍规嵁閮ㄩ棬杩囨护
- if (pagination.account != "admin")
- {
- var currentUser = _user.Db.Queryable<Sys_User>()
- .Where(u => u.UserName == pagination.account)
- .First();
-
- if (currentUser == null)
- {
- return new WebResponseContent { Status = false, Data = "鏈幏鍙栧埌鐢ㄦ埛淇℃伅" };
- }
-
- int? deptId = currentUser.Dept_Id;
-
- query = query.Where((a, b) => a.Dept_Id == deptId);
- }
-
+
//杩斿洖缁撴灉
var result = query.Select((a, b) => new
{
@@ -604,13 +548,22 @@
try
{
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 = "娌℃湁鎵惧埌璇ョ敤鎴�" };
}
+ // 鏌ユ壘璇ョ敤鎴峰湪 _team 琛ㄤ腑鐨勬渶鏂颁竴鏉¤褰�
+ var lastRecord = _team.QueryData(x => x.Account == account)
+ .OrderByDescending(x => x.CreateDate)
+ .FirstOrDefault();
+
+ if (lastRecord != null && lastRecord.MaintenanceStatus == 1)
+ {
+ return new WebResponseContent { Status = false, Message = "浣犲凡缁忓湪寮�濮嬫淇簡锛岃涓嶈閲嶅鐐瑰嚮" };
+ }
+
//鍏堣鎵惧埌璇ョ敤鎴峰睘浜庨偅涓鑹茬殑锛岃繖涓鑹蹭腑灞炰簬閭d釜浠�涔堢被鍨嬶紙缁勯暱/缁勫憳锛�
if (maint.IsLeader != 1)//濡傛灉璇ョ敤鎴蜂笉鏄彮闀匡紝閭d箞瑕佺瓑鐝暱鍏堝仛锛屼粬鎵嶅彲浠ュ仛
{
@@ -621,6 +574,10 @@
}
}
+ if (true)
+ {
+
+ }
//濡傛灉婊¤冻涓嬮潰鐨勬潯浠跺氨寮�濮�
maint.MaintenancStartTime = DateTime.Now;//璁板綍寮�濮嬫椂闂�
maint.MaintenanceStatus = 1;//鏇存敼鐘舵��
@@ -628,6 +585,8 @@
//鎻掑叆璁板綍琛�
var recording = new Dt_MaintenanceTeam //娣诲姞璁板綍
{
+ Account = account,
+ MaintenanceStatus=1,
OperatorName = sysuer.UserTrueName,
TeamName = sysuer.RoleName,
DistributionTime = DateTime.Now,
@@ -643,46 +602,71 @@
}
}
-
/// <summary>
/// 缁撴潫妫�淇�
- /// </summary>MaintenanceStatus 0浠h〃妫�淇畬鎴� 1浠h〃妫�淇腑
+ /// </summary>
/// <param name="account"></param>
/// <returns></returns>
public WebResponseContent StopMaintenanceTask(string account)
{
try
{
- var user = BaseDal.QueryData();//妫�淇〃
+ var user = BaseDal.QueryData(); // 妫�淇〃
var maint = user.Where(x => x.UserAccount == account).FirstOrDefault();
- var sysuer = _user.QueryData(x => x.UserName == 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)//濡傛灉璇ョ敤鎴锋槸鐝暱锛岄偅涔堣绛夊叏閮ㄤ汉閮芥淇畬鎴愶紝浠栨墠鍙互缁撴潫妫�淇�
+
+ // 鏌ユ壘璇ョ敤鎴峰湪 _team 琛ㄤ腑鐨勬渶鏂颁竴鏉¤褰�
+ var lastRecord = _team.QueryData(x => x.Account == account)
+ .OrderByDescending(x => x.CreateDate)
+ .FirstOrDefault();
+
+ if (lastRecord == null || lastRecord.MaintenanceStatus != 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 = "浣犺繕娌℃湁寮�濮嬫淇紝璇峰厛鐐瑰嚮寮�濮嬫淇�" };
+ }
+
+ // 妫�鏌ユ槸鍚﹁嚦灏戞湁涓�涓粍闀垮湪鍦�
+ var activeLeaders = user.Where(x => x.IsLeader == 1 && x.MaintenanceStatus == 1).ToList();
+
+ // 濡傛灉褰撳墠鐢ㄦ埛鏄粍闀�
+ if (maint.IsLeader == 1)
+ {
+ // 濡傛灉鏄渶鍚庝竴涓湪鍦虹殑缁勯暱
+ if (activeLeaders.Count == 1 && activeLeaders[0].UserAccount == account)
{
- return new WebResponseContent { Status = false, Message = "杩樻湁缁勫憳鏈畬鎴愬綋鍓嶆壒娆℃淇�" };
+ // 妫�鏌ユ槸鍚﹁繕鏈夋湭瀹屾垚鐨勭粍鍛�
+ var unfinishedMembers = user.Where(x => x.IsLeader == 0 && x.MaintenanceStatus == 1).Any();
+ if (unfinishedMembers)
+ {
+ return new WebResponseContent
+ {
+ Status = false,
+ Message = "鎮ㄦ槸鏈�鍚庝竴涓湪鍦虹殑缁勯暱锛岃绛夊緟鎵�鏈夌粍鍛樺畬鎴愭淇悗鍐嶇粨鏉�"
+ };
+ }
}
}
- //濡傛灉婊¤冻涓嬮潰鐨勬潯浠跺氨寮�濮�
- maint.MaintenancEendTime = DateTime.Now;//璁板綍缁撴潫鏃堕棿
- maint.MaintenanceStatus = 0;//鏇存敼鐘舵��
+
+ // 鏇存柊褰撳墠鐢ㄦ埛鐨勬淇姸鎬�
+ 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);
+
+ // 鎻掑叆璁板綍琛�
+ var recording = new Dt_MaintenanceTeam // 娣诲姞璁板綍
+ {
+ Account = account,
+ MaintenanceStatus = 0,
+ OperatorName = sysuer.UserTrueName,
+ TeamName = sysuer.RoleName,
+ EndTime = DateTime.Now,
+ };
+ _team.AddData(recording);
return new WebResponseContent { Status = true, Data = maint, Message = "瀹屾垚妫�淇�" };
}
@@ -692,6 +676,29 @@
}
}
+
+ /// <summary>
+ /// 灞曠ず寮�濮嬫淇汉鍛�
+ /// </summary>
+ /// <returns></returns>
+ public WebResponseContent YShowStartTake()
+ {
+ try
+ {
+ var reslut=BaseDal.QueryData(x => x.MaintenanceStatus == 1).ToList();
+ if (reslut.Count<=0)
+ {
+ return new WebResponseContent { Status = false, Message = "杩樻病鏈変汉寮�濮嬫淇�" };
+ }
+ return new WebResponseContent { Status = true, Data = reslut,Message="妫�淇汉鍛樻湁浠ヤ笅" };
+ }
+ catch (Exception ex)
+ {
+
+ return new WebResponseContent { Status = false, Message = ex.Message };
+ }
+ }
+
/// <summary>
/// 鐘舵�佹灇涓�
/// </summary>
--
Gitblit v1.9.3