From d3091b37a593885877f4ed4180d49e5ce259b657 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期一, 04 八月 2025 10:27:55 +0800
Subject: [PATCH] 优化接口
---
项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_TelescopicService/MaintenanceService.cs | 184 +++++++++++++++------------------------------
1 files changed, 63 insertions(+), 121 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/MaintenanceService.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/MaintenanceService.cs"
index bd567dd..190f7f4 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/MaintenanceService.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/MaintenanceService.cs"
@@ -174,14 +174,24 @@
// return new WebResponseContent { Status = false, Data = ex.Message };
// }
//}
- public WebResponseContent PersonnelMonitoring(PaginationDTO pagination)
+ /// <summary>
+ /// 浜哄憳鐩戞帶锛堟暟瀛楀ぇ灞忥級
+ /// </summary>
+ /// <param name="pageIndex"></param>
+ /// <param name="pageSize"></param>
+ /// <param name="searchKeyw
+ public WebResponseContent PersonnelMonitoring(PaginationDTO pagination, string LocalIP)
{
try
{
int totalCount = 0;
+ var ip = LocalIP?.Replace("::ffff:", "") ?? ""; // 濡傛灉 LocalIP 鏄� null锛宨p 浼氭槸 ""
+ var cunstomip = _ipaddress.QueryData(x => x.IPaddress == ip).FirstOrDefault();
+
+
var query = _user.Db.Queryable<Dt_Maintenance>()
- .Where(b => b.MaintenanceStatus == 1)
+ .Where(b => b.MaintenanceStatus == 1&&b.StationID==cunstomip.StationID)
.InnerJoin<Sys_User>((b, a) => b.UserAccount == a.UserName)
.LeftJoin<Dt_CustomIPaddress>((b, a, c) => b.IPAddress == c.IPaddress);
@@ -235,11 +245,12 @@
{
// 1. 鏌ユ壘鐩爣鐢ㄦ埛锛堣琚己鍒朵笅绾跨殑浜猴級
var maint = BaseDal.QueryData().FirstOrDefault(x => x.ID == id);
- var sysuer = _user.QueryData(x => x.UserName == maint.UserAccount).FirstOrDefault();//user琛�
- if (maint == null || sysuer==null)
+ if (maint==null)
{
return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌璇ョ敤鎴�" };
}
+ var sysuer = _user.QueryData(x => x.UserName == maint.UserAccount).FirstOrDefault();//user琛�
+
// 2. 鏌ユ壘褰撳墠鐧诲綍鐢ㄦ埛锛堟墽琛屾搷浣滅殑浜猴級
@@ -260,7 +271,11 @@
// 4. 鎵ц寮哄埗涓嬬嚎
maint.MaintenanceStatus = 0; // 鏀瑰彉鐘舵�佷负涓嬬嚎
+ maint.IPAddress = "";//灏唅p鍦板潃涓簄ull
+ maint.StationID = null;
BaseDal.UpdateData(maint);
+
+ var ip = LocalIP?.Replace("::ffff:", "") ?? ""; // 濡傛灉 LocalIP 鏄� null锛宨p 浼氭槸 ""
// 5. 璁板綍鎿嶄綔鏃ュ織
var recording = new Dt_MaintenanceTeam
@@ -270,7 +285,7 @@
OperatorName = sysuer.UserTrueName, // 鎿嶄綔浜哄鍚�
TeamName = sysuer.RoleName, // 鎿嶄綔浜鸿鑹�
DistributionTime = DateTime.Now,
- IPAddress = LocalIP,
+ IPAddress = ip,
};
_team.AddData(recording);
@@ -499,108 +514,6 @@
-
- ///// <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>
@@ -614,7 +527,14 @@
var user = BaseDal.QueryData();//妫�淇〃
var maint = user.Where(x => x.UserAccount == account).FirstOrDefault(); //鍦ㄦ淇〃涓厛鎵惧埌璇ョ敤鎴�
var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault();//鍦ㄧ敤鎴疯〃涓壘鍒扮敤鎴�
-
+ var ip = LocalIP?.Replace("::ffff:", "") ?? ""; // 濡傛灉 LocalIP 鏄� null锛宨p 浼氭槸 ""
+ //鎵捐澶噄p鍦板潃琛�
+ var address = _ipaddress.QueryData(x => x.IPaddress == ip).FirstOrDefault();
+ if (address==null)
+ {
+ return new WebResponseContent { Status = false, Message = "浣犳病鏈夐厤缃搴旂殑ip鍦板潃锛岃鍏堥厤缃紝鍦ㄦ搷浣�" };
+ }
+
if (maint == null || sysuer == null)
{
return new WebResponseContent { Status = false, Message = "娌℃湁鎵惧埌璇ョ敤鎴�" };
@@ -632,19 +552,24 @@
//鍏堣鎵惧埌璇ョ敤鎴峰睘浜庨偅涓鑹茬殑锛岃繖涓鑹蹭腑灞炰簬閭d釜浠�涔堢被鍨嬶紙缁勯暱/缁勫憳锛�
if (maint.IsLeader != 1)//濡傛灉璇ョ敤鎴蜂笉鏄彮闀匡紝閭d箞瑕佺瓑鐝暱鍏堝仛锛屼粬鎵嶅彲浠ュ仛
{
- bool leaderStarted = user.Any(x => x.IsLeader == 1 && x.MaintenanceStatus == 1); //鍚︽湁婊¤冻鏉′欢 鎵惧埌涓�鏉″氨杩斿洖true MaintenanceStatus锛�0娌℃湁寮�濮嬶紝1寮�濮嬶級
+ //鎵捐杞ㄩ亾绔欎笂鐨勭粍闀匡紝鏄惁寮�濮嬫淇�
+ bool leaderStarted = user.Any(x => x.IsLeader == 1 && x.MaintenanceStatus == 1&&x.StationID==address.StationID); //鍚︽湁婊¤冻鏉′欢 鎵惧埌涓�鏉″氨杩斿洖true锛� MaintenanceStatus锛�0娌℃湁寮�濮嬶紝1寮�濮嬶級
if (!leaderStarted)
{
return new WebResponseContent { Status = false, Message = "璇风瓑寰呬竴绾т汉鍛樺紑濮嬫淇�" };
}
}
+
+
+
//濡傛灉婊¤冻涓嬮潰鐨勬潯浠跺氨寮�濮�
maint.MaintenancStartTime = DateTime.Now;//璁板綍寮�濮嬫椂闂�
maint.MaintenanceStatus = 1;//鏇存敼鐘舵��
- maint.IPAddress = LocalIP;//鏇存敼ip鍦板潃
+ maint.IPAddress = ip;//鏇存敼ip鍦板潃
+ maint.StationID = address.StationID;//璁板綍璇ョ敤鎴锋槸閭d釜杞ㄩ亾绔欏紑濮嬩綔涓�
BaseDal.UpdateData(maint);
- var address = _ipaddress.QueryData(x=>x.IPaddress== LocalIP).FirstOrDefault();
+
var addressIp = "";
if (address!=null) //鎵惧埌浜�
{
@@ -652,7 +577,7 @@
}
else
{
- addressIp = LocalIP;
+ addressIp = ip;
}
//鎻掑叆璁板綍琛�
var recording = new Dt_MaintenanceTeam //娣诲姞璁板綍
@@ -660,7 +585,7 @@
Account = account,
MaintenanceStatus=1,
OperatorName = sysuer.UserTrueName,
- TeamName = sysuer.RoleName,
+ TeamName = sysuer.Userteam,
DistributionTime = DateTime.Now,
IPAddress = addressIp,
};
@@ -684,8 +609,18 @@
try
{
var user = BaseDal.QueryData(); // 妫�淇〃
- var maint = user.Where(x => x.UserAccount == account).FirstOrDefault();
+ var maint = user.Where(x => x.UserAccount == account).FirstOrDefault();// 妫�淇〃
var sysuer = _user.QueryData(x => x.UserName == account).FirstOrDefault(); // 鐢ㄦ埛琛�
+
+ var ip = LocalIP?.Replace("::ffff:", "") ?? ""; // 濡傛灉 LocalIP 鏄� null锛宨p 浼氭槸 ""
+ var address = _ipaddress.QueryData(x => x.IPaddress == ip).FirstOrDefault();
+ var addressIp = "";
+ //濡傛灉鐢ㄦ埛涓嶅湪鍘熸湰杞ㄩ亾绔欎笂缁撴潫浠诲姟锛岄偅涔堝氨鎻愮ず浠栬浠栧洖鍘�
+ if (maint.IPAddress != ip)
+ {
+ return new WebResponseContent { Status = false, Message = "璇峰洖鍒板師鏉ョ殑杞ㄩ亾绔欑粨鏉熶换鍔�" };
+ }
+
if (maint == null || sysuer == null)
{
@@ -718,7 +653,7 @@
return new WebResponseContent
{
Status = false,
- Message = "鎮ㄦ槸鏈�鍚庝竴涓湪鍦虹殑缁勯暱锛岃绛夊緟鎵�鏈夌粍鍛樺畬鎴愭淇悗鍐嶇粨鏉�"
+ Message = "鎮ㄦ槸鏈�鍚庝竴涓湪鍦虹殑涓�绾т汉鍛橈紝璇风瓑寰呮墍鏈変簩绾т汉鍛樺畬鎴愭淇悗鍐嶇粨鏉�"
};
}
}
@@ -727,20 +662,22 @@
//{
// return new WebResponseContent { Status = false, Message = "鎿嶄綔璁惧涓嶅悓锛岃鍥炲埌鍘熸湰璁惧鍐嶇偣鍑荤粨鏉熸淇�" };
//}
- var address = _ipaddress.QueryData(x => x.IPaddress == LocalIP).FirstOrDefault();
- var addressIp = "";
+
if (address != null) //鎵惧埌浜�
{
addressIp = address.Addressname;
}
else
{
- addressIp = LocalIP;
+ addressIp = ip;
}
+
// 鏇存柊褰撳墠鐢ㄦ埛鐨勬淇姸鎬�
maint.MaintenancEendTime = DateTime.Now; // 璁板綍缁撴潫鏃堕棿
maint.MaintenanceStatus = 0; // 鏇存敼鐘舵��
+ maint.IPAddress= "";//缁撴潫浠诲姟鍚庡皢ip鍦板潃鏀逛负null
+ maint.StationID = null;//灏嗚建閬撶珯鍙锋敼涓簄ull
BaseDal.UpdateData(maint);
// 鎻掑叆璁板綍琛�
@@ -749,7 +686,7 @@
Account = account,
MaintenanceStatus = 0,
OperatorName = sysuer.UserTrueName,
- TeamName = sysuer.RoleName,
+ TeamName = sysuer.Userteam,
IPAddress = addressIp,
EndTime = DateTime.Now,
};
@@ -768,11 +705,16 @@
/// 灞曠ず寮�濮嬫淇汉鍛�
/// </summary>
/// <returns></returns>
- public WebResponseContent YShowStartTake()
+ public WebResponseContent YShowStartTake(string LocalIP)
{
try
{
- var reslut=BaseDal.QueryData(x => x.MaintenanceStatus == 1).ToList();
+ var ip = LocalIP?.Replace("::ffff:", "") ?? ""; // 濡傛灉 LocalIP 鏄� null锛宨p 浼氭槸 ""
+ //鎵捐澶噄p鍦板潃琛�
+ var address = _ipaddress.QueryData(x => x.IPaddress == ip).FirstOrDefault();
+
+
+ var reslut=BaseDal.QueryData(x => x.MaintenanceStatus == 1&&x.IPAddress==address.IPaddress).ToList();
if (reslut.Count<=0)
{
return new WebResponseContent { Status = false, Message = "杩樻病鏈変汉寮�濮嬫淇�" };
--
Gitblit v1.9.3