|
@@ -1,4 +1,6 @@
|
|
|
-using OASystem.Domain.Entities.Groups;
|
|
|
+using Microsoft.AspNetCore.SignalR;
|
|
|
+using OASystem.API.OAMethodLib.Hubs;
|
|
|
+using OASystem.Domain.Entities.Groups;
|
|
|
using OASystem.Domain.Entities.PersonnelModule;
|
|
|
using OASystem.Infrastructure.Repositories.PersonnelModule;
|
|
|
using ILogger = Microsoft.Extensions.Logging.ILogger;
|
|
@@ -13,6 +15,7 @@ namespace OASystem.API.OAMethodLib.Quartz.Business
|
|
|
{
|
|
|
private readonly static TaskAllocationRepository _taskAllocationRep = AutofacIocManager.Instance.GetService<TaskAllocationRepository>();
|
|
|
private readonly static ILogger _logger;
|
|
|
+ private readonly static IHubContext<ChatHub> _hubContext;
|
|
|
/// <summary>
|
|
|
/// 定时任务更改状态
|
|
|
/// 每天下午六点定时更新
|
|
@@ -62,113 +65,116 @@ namespace OASystem.API.OAMethodLib.Quartz.Business
|
|
|
/// </summary>
|
|
|
public static async void PostTaskNewsFeed()
|
|
|
{
|
|
|
- var data = _taskAllocationRep._sqlSugar
|
|
|
- .Queryable<Pm_TaskAllocation>()
|
|
|
- .Where(it => it.IsDel == 0 &&
|
|
|
- !string.IsNullOrEmpty(it.PredictEndTime) &&
|
|
|
- Convert.ToDateTime(it.PredictEndTime).ToString("yyyy-MM-dd").Equals(DateTime.Now.ToString("yyyy-MM-dd"))
|
|
|
- )
|
|
|
- .ToList();
|
|
|
- if (data.Count > 0)
|
|
|
- {
|
|
|
- //处理要任务提醒的员工
|
|
|
- List<int> primaryIds = new List<int>();
|
|
|
- primaryIds = data.Select(it => it.Id).ToList();
|
|
|
- var subData = _taskAllocationRep._sqlSugar
|
|
|
- .Queryable<Pm_TaskRelevanceUser>()
|
|
|
- .Where(it => it.IsDel == 0 &&
|
|
|
- primaryIds.Contains(it.TAId) &&
|
|
|
- it.TaskStatus <= (int)TaskEnum.UnderWay
|
|
|
- )
|
|
|
- .ToList();
|
|
|
-
|
|
|
- _taskAllocationRep._sqlSugar.BeginTran();
|
|
|
- var depDatas = _taskAllocationRep._sqlSugar.Queryable<Sys_Department>().Where(it => it.IsDel == 0).ToList();
|
|
|
- var groupDatas = _taskAllocationRep._sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0).ToList();
|
|
|
- var userDatas = _taskAllocationRep._sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0).ToList();
|
|
|
-
|
|
|
- foreach (var item in data)
|
|
|
- {
|
|
|
- string depName = string.Empty;
|
|
|
- string groupName = string.Empty;
|
|
|
- var depData = depDatas.Where(it => it.Id == item.DepId).FirstOrDefault();
|
|
|
- if (depData != null) { depName = depData.DepName; }
|
|
|
- if (item.DiId == -1) { groupName = "其他"; }
|
|
|
- else
|
|
|
- {
|
|
|
- var groupData = groupDatas.Where(it => it.Id == item.DiId).FirstOrDefault();
|
|
|
- if (groupData != null) { groupName = groupData.TeamName; }
|
|
|
- }
|
|
|
-
|
|
|
- var subData1 = subData.Where(it => it.TAId == item.Id).ToList();
|
|
|
-
|
|
|
- foreach (var subItem in subData1)
|
|
|
- {
|
|
|
- string realityStartTime = string.Empty;
|
|
|
- string userName = string.Empty;
|
|
|
- if (!string.IsNullOrEmpty(subItem.BeginTime))
|
|
|
- {
|
|
|
- realityStartTime = subItem.BeginTime;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if (subItem.TaskStatus == -1) realityStartTime = "未开始";
|
|
|
- else if (subItem.TaskStatus == 0) realityStartTime = "已知晓";
|
|
|
- }
|
|
|
-
|
|
|
- var userData = userDatas.Where(it => it.Id == subItem.UserId).FirstOrDefault();
|
|
|
- if (userData != null) { userName = userData.CnName; }
|
|
|
- string msgContent = string.Format(@"任务归属:{0}<br/>
|
|
|
- 归属团组:{1}<br/>
|
|
|
- 预计起止时间:{2} 至 {3}<br/>
|
|
|
- 实际开始时间:{4}<br/>
|
|
|
- 任务优先级:{5}<br/>
|
|
|
- 任务参与者:{6}<br/>
|
|
|
- 任务内容:{7}", depName, groupName, item.PredictBeginTime, item.PredictEndTime,
|
|
|
- realityStartTime, item.TaskPriority, userName, item.TaskContent);
|
|
|
- Sys_Message _Message = new Sys_Message()
|
|
|
- {
|
|
|
- Type = MessgeTypeEnum.TaskProgressUpdate,
|
|
|
- Title = item.TaskName,
|
|
|
- IssuerId = 4, //管理员
|
|
|
- Content = msgContent,
|
|
|
- ReleaseTime = DateTime.Now,
|
|
|
- CreateUserId = 4,
|
|
|
- CreateTime = DateTime.Now,
|
|
|
- DeleteTime = "1990-01-01 00:00:00.000",
|
|
|
- DiId = item.DiId,
|
|
|
- };
|
|
|
- var msgAddId = _taskAllocationRep._sqlSugar.Insertable<Sys_Message>(_Message).ExecuteReturnIdentity();
|
|
|
- if (msgAddId < 0)
|
|
|
- {
|
|
|
- _taskAllocationRep._sqlSugar.RollbackTran();
|
|
|
- _logger.LogError("任务通知消息推送失败!");
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- Sys_MessageReadAuth _MessageReadAuth = new Sys_MessageReadAuth()
|
|
|
- {
|
|
|
- MsgId = msgAddId,
|
|
|
- ReadableUId = subItem.UserId,
|
|
|
- IsRead = 0,
|
|
|
- ReadTime = Convert.ToDateTime("1990-01-01 00:00:00.000"),
|
|
|
- CreateUserId = 4,
|
|
|
- CreateTime = DateTime.Now,
|
|
|
- DeleteTime = "1990-01-01 00:00:00.000"
|
|
|
- };
|
|
|
-
|
|
|
- var msgAuthAddId = _taskAllocationRep._sqlSugar.Insertable<Sys_MessageReadAuth>(_MessageReadAuth).ExecuteReturnIdentity();
|
|
|
- if (msgAuthAddId < 0)
|
|
|
- {
|
|
|
- _taskAllocationRep._sqlSugar.RollbackTran();
|
|
|
- _logger.LogError("任务通知消息推送失败!");
|
|
|
- return;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- _taskAllocationRep._sqlSugar.CommitTran();
|
|
|
- }
|
|
|
+ #region 消息处理
|
|
|
+
|
|
|
+
|
|
|
+ //var data = _taskAllocationRep._sqlSugar
|
|
|
+ // .Queryable<Pm_TaskAllocation>()
|
|
|
+ // .Where(it => it.IsDel == 0 &&
|
|
|
+ // !string.IsNullOrEmpty(it.PredictEndTime) &&
|
|
|
+ // Convert.ToDateTime(it.PredictEndTime).ToString("yyyy-MM-dd").Equals(DateTime.Now.ToString("yyyy-MM-dd"))
|
|
|
+ // )
|
|
|
+ // .ToList();
|
|
|
+ //if (data.Count > 0)
|
|
|
+ //{
|
|
|
+ // //处理要任务提醒的员工
|
|
|
+ // List<int> primaryIds = new List<int>();
|
|
|
+ // primaryIds = data.Select(it => it.Id).ToList();
|
|
|
+ // var subData = _taskAllocationRep._sqlSugar
|
|
|
+ // .Queryable<Pm_TaskRelevanceUser>()
|
|
|
+ // .Where(it => it.IsDel == 0 &&
|
|
|
+ // primaryIds.Contains(it.TAId) &&
|
|
|
+ // it.TaskStatus <= (int)TaskEnum.UnderWay
|
|
|
+ // )
|
|
|
+ // .ToList();
|
|
|
|
|
|
+ // _taskAllocationRep._sqlSugar.BeginTran();
|
|
|
+ // var depDatas = _taskAllocationRep._sqlSugar.Queryable<Sys_Department>().Where(it => it.IsDel == 0).ToList();
|
|
|
+ // var groupDatas = _taskAllocationRep._sqlSugar.Queryable<Grp_DelegationInfo>().Where(it => it.IsDel == 0).ToList();
|
|
|
+ // var userDatas = _taskAllocationRep._sqlSugar.Queryable<Sys_Users>().Where(it => it.IsDel == 0).ToList();
|
|
|
+
|
|
|
+ // foreach (var item in data)
|
|
|
+ // {
|
|
|
+ // string depName = string.Empty;
|
|
|
+ // string groupName = string.Empty;
|
|
|
+ // var depData = depDatas.Where(it => it.Id == item.DepId).FirstOrDefault();
|
|
|
+ // if (depData != null) { depName = depData.DepName; }
|
|
|
+ // if (item.DiId == -1) { groupName = "其他"; }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // var groupData = groupDatas.Where(it => it.Id == item.DiId).FirstOrDefault();
|
|
|
+ // if (groupData != null) { groupName = groupData.TeamName; }
|
|
|
+ // }
|
|
|
+
|
|
|
+ // var subData1 = subData.Where(it => it.TAId == item.Id).ToList();
|
|
|
+
|
|
|
+ // foreach (var subItem in subData1)
|
|
|
+ // {
|
|
|
+ // string realityStartTime = string.Empty;
|
|
|
+ // string userName = string.Empty;
|
|
|
+ // if (!string.IsNullOrEmpty(subItem.BeginTime))
|
|
|
+ // {
|
|
|
+ // realityStartTime = subItem.BeginTime;
|
|
|
+ // }
|
|
|
+ // else
|
|
|
+ // {
|
|
|
+ // if (subItem.TaskStatus == -1) realityStartTime = "未开始";
|
|
|
+ // else if (subItem.TaskStatus == 0) realityStartTime = "已知晓";
|
|
|
+ // }
|
|
|
+
|
|
|
+ // var userData = userDatas.Where(it => it.Id == subItem.UserId).FirstOrDefault();
|
|
|
+ // if (userData != null) { userName = userData.CnName; }
|
|
|
+ // string msgContent = string.Format(@"任务归属:{0}<br/>
|
|
|
+ // 归属团组:{1}<br/>
|
|
|
+ // 预计起止时间:{2} 至 {3}<br/>
|
|
|
+ // 实际开始时间:{4}<br/>
|
|
|
+ // 任务优先级:{5}<br/>
|
|
|
+ // 任务参与者:{6}<br/>
|
|
|
+ // 任务内容:{7}", depName, groupName, item.PredictBeginTime, item.PredictEndTime,
|
|
|
+ // realityStartTime, item.TaskPriority, userName, item.TaskContent);
|
|
|
+ // Sys_Message _Message = new Sys_Message()
|
|
|
+ // {
|
|
|
+ // Type = MessgeTypeEnum.TaskProgressUpdate,
|
|
|
+ // Title = item.TaskName,
|
|
|
+ // IssuerId = 4, //管理员
|
|
|
+ // Content = msgContent,
|
|
|
+ // ReleaseTime = DateTime.Now,
|
|
|
+ // CreateUserId = 4,
|
|
|
+ // CreateTime = DateTime.Now,
|
|
|
+ // DeleteTime = "1990-01-01 00:00:00.000",
|
|
|
+ // DiId = item.DiId,
|
|
|
+ // };
|
|
|
+ // var msgAddId = _taskAllocationRep._sqlSugar.Insertable<Sys_Message>(_Message).ExecuteReturnIdentity();
|
|
|
+ // if (msgAddId < 0)
|
|
|
+ // {
|
|
|
+ // _taskAllocationRep._sqlSugar.RollbackTran();
|
|
|
+ // _logger.LogError("任务通知消息推送失败!");
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+
|
|
|
+ // Sys_MessageReadAuth _MessageReadAuth = new Sys_MessageReadAuth()
|
|
|
+ // {
|
|
|
+ // MsgId = msgAddId,
|
|
|
+ // ReadableUId = subItem.UserId,
|
|
|
+ // IsRead = 0,
|
|
|
+ // ReadTime = Convert.ToDateTime("1990-01-01 00:00:00.000"),
|
|
|
+ // CreateUserId = 4,
|
|
|
+ // CreateTime = DateTime.Now,
|
|
|
+ // DeleteTime = "1990-01-01 00:00:00.000"
|
|
|
+ // };
|
|
|
+
|
|
|
+ // var msgAuthAddId = _taskAllocationRep._sqlSugar.Insertable<Sys_MessageReadAuth>(_MessageReadAuth).ExecuteReturnIdentity();
|
|
|
+ // if (msgAuthAddId < 0)
|
|
|
+ // {
|
|
|
+ // _taskAllocationRep._sqlSugar.RollbackTran();
|
|
|
+ // _logger.LogError("任务通知消息推送失败!");
|
|
|
+ // return;
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ // _taskAllocationRep._sqlSugar.CommitTran();
|
|
|
+ //}
|
|
|
+ #endregion
|
|
|
|
|
|
//查询需要提示的消息 Singlr
|
|
|
string sql = string.Format(@"Select smra.Id,su.CnName As Issuer,sm.ReleaseTime,sm.Title,
|
|
@@ -180,6 +186,9 @@ namespace OASystem.API.OAMethodLib.Quartz.Business
|
|
|
Order By smra.ReadableUId,smra.CreateTime Desc");
|
|
|
var datas = _taskAllocationRep._sqlSugar.SqlQueryable<MessageReadAuthPushView>(sql).ToList();
|
|
|
|
|
|
+ await _hubContext.Clients.All.SendAsync("ReceiveMessage","系统通知","${da}");
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|