手动发起的班前会,到时间触发岗位当班
This commit is contained in:
parent
02b5111fb9
commit
23577b6322
@ -2135,41 +2135,52 @@ namespace APT.PP.WebApi.Controllers.Api.PP
|
|||||||
var newFilter = new KeywordFilter();
|
var newFilter = new KeywordFilter();
|
||||||
newFilter.OrgId = filter.OrgId;
|
newFilter.OrgId = filter.OrgId;
|
||||||
newFilter.IgnoreDataRule = true;
|
newFilter.IgnoreDataRule = true;
|
||||||
|
var posts = this.GetEntities<T_FM_USER_POST>(t => true, new BaseFilter(filter.OrgId));
|
||||||
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
|
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId));
|
||||||
var fmClass = this.GetEntities<T_FM_CLASS>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail");
|
var fmClass = this.GetEntities<T_FM_CLASS>(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail");
|
||||||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId), "Nav_Person.Nav_Post");
|
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId), "Nav_Person.Nav_Post");
|
||||||
var records = this.GetEntities<T_FO_CURRENT_CLASS_RECORD>(t => t.RECORD_DATE.Date == dt.Date, newFilter);
|
//var records = this.GetEntities<T_FO_CURRENT_CLASS_RECORD>(t => t.RECORD_DATE.Date == dt.Date, newFilter);
|
||||||
var preClass = this.GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD>(t => t.START_TIME.Date == dt.Date && t.DEPARTMENT_SCHEDULING_ID == null, newFilter);
|
var preClass = this.GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD>(t => t.START_TIME <= dt && t.END_TIME!=null && t.END_TIME.Date == dt.Date && t.END_TIME.Hour == dt.AddHours(1).Hour && t.DEPARTMENT_SCHEDULING_ID == null, newFilter);
|
||||||
var preClassIds = preClass.Select(t => t.ID).ToList();
|
var preClassIds = preClass.Select(t => t.ID).ToList();
|
||||||
var preClassUsers = this.GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD_USER>(t => preClassIds.Contains(t.PRE_SHIFT_MEETING_RECORD_ID), newFilter);
|
var preClassUsers = this.GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD_USER>(t => preClassIds.Contains(t.PRE_SHIFT_MEETING_RECORD_ID), newFilter);
|
||||||
if (preClass != null && preClass.Any())
|
if (preClass != null && preClass.Any())
|
||||||
{
|
{
|
||||||
foreach (var item in preClass)
|
foreach (var item in preClass)
|
||||||
{
|
{
|
||||||
|
var userIds = preClassUsers.Where(t => t.PRE_SHIFT_MEETING_RECORD_ID == item.ID && t.USER_ID != null).Select(m => m.USER_ID).Distinct().ToList();
|
||||||
|
//当前班前会的所有人
|
||||||
if (item.END_TIME != DateTime.MinValue && item.END_TIME.Hour == dt.AddHours(1).Hour)
|
var preUsers = users.Where(t => t.DEPARTMENT_ID != null && userIds.Contains(t.ID) && t.Nav_Person != null && t.Nav_Person.POST_ID != null).ToList();
|
||||||
|
//按部门触发
|
||||||
|
var userDepartIds = preUsers.Select(t => t.DEPARTMENT_ID).Distinct().ToList();
|
||||||
|
if (userDepartIds != null && userDepartIds.Any())
|
||||||
{
|
{
|
||||||
var userIds = preClassUsers.Where(t => t.PRE_SHIFT_MEETING_RECORD_ID == item.ID).Select(m => m.USER_ID).Distinct().ToList();
|
foreach (var departId in userDepartIds)
|
||||||
var sendUsers = users.Where(t => userIds.Contains(t.ID) && t.Nav_Person != null).ToList();
|
{
|
||||||
|
var depart = departs.FirstOrDefault(t => t.ID == departId);
|
||||||
|
//按岗位触发
|
||||||
|
var postIds = preUsers.Where(t => t.DEPARTMENT_ID == departId).Select(m => m.Nav_Person.POST_ID).Distinct().ToList();
|
||||||
|
if (postIds != null && postIds.Any())
|
||||||
|
{
|
||||||
|
foreach (var postId in postIds)
|
||||||
|
{
|
||||||
|
var post = posts.FirstOrDefault(t => t.ID == postId);
|
||||||
|
//查同部门同岗位的
|
||||||
|
var sendUsers = preUsers.Where(t => t.DEPARTMENT_ID == departId && t.Nav_Person.POST_ID == postId).Distinct().ToList();
|
||||||
|
//发待办给每个人
|
||||||
if (sendUsers != null && sendUsers.Any())
|
if (sendUsers != null && sendUsers.Any())
|
||||||
{
|
{
|
||||||
foreach (var user in sendUsers)
|
|
||||||
{
|
|
||||||
var firstRecord = records.FirstOrDefault(t => t.EDITOR_ID == user.ID);
|
|
||||||
if (firstRecord == null)
|
|
||||||
{
|
|
||||||
var depart = departs.FirstOrDefault(t => t.ID == user.DEPARTMENT_ID);
|
|
||||||
T_FO_CURRENT_CLASS_RECORD record = new T_FO_CURRENT_CLASS_RECORD();
|
T_FO_CURRENT_CLASS_RECORD record = new T_FO_CURRENT_CLASS_RECORD();
|
||||||
record.ORG_ID = item.ORG_ID;
|
record.ORG_ID = item.ORG_ID;
|
||||||
record.NAME = dt.ToShortDateString() + depart?.NAME + "-" + user?.Nav_Person?.Nav_Post?.NAME + "当班工作记录";
|
record.NAME = dt.ToShortDateString() + depart?.NAME + "-" + post?.NAME + "当班工作记录";
|
||||||
record.EDITOR_ID = user.ID;
|
record.EDITOR_ID = sendUsers.FirstOrDefault().ID;
|
||||||
record.RECORD_DATE = Convert.ToDateTime(dt.Date.ToShortDateString() + " " + item.END_TIME.ToShortTimeString());
|
record.RECORD_DATE = Convert.ToDateTime(dt.Date.ToShortDateString() + " " + item.END_TIME.ToShortTimeString());
|
||||||
record.CLASS_ID = item.CLASS_ID;
|
record.CLASS_ID = item.CLASS_ID;
|
||||||
record.DEPARTMENT_ID = user.DEPARTMENT_ID;
|
record.DEPARTMENT_ID = departId;
|
||||||
record.DEPARTMENT_POST_ID = user?.Nav_Person?.POST_ID;
|
record.DEPARTMENT_POST_ID = postId;
|
||||||
record.CHARGE_USER_ID = depart?.USER_ID;
|
record.CHARGE_USER_ID = depart?.USER_ID;
|
||||||
wellRecords.Add(record);
|
wellRecords.Add(record);
|
||||||
|
foreach (var user in sendUsers)
|
||||||
|
{
|
||||||
T_FO_CURRENT_CLASS_RECORD_USER ledUser = new T_FO_CURRENT_CLASS_RECORD_USER();
|
T_FO_CURRENT_CLASS_RECORD_USER ledUser = new T_FO_CURRENT_CLASS_RECORD_USER();
|
||||||
ledUser.ORG_ID = item.ORG_ID;
|
ledUser.ORG_ID = item.ORG_ID;
|
||||||
ledUser.CURRENT_CLASS_RECORD_ID = record.ID;
|
ledUser.CURRENT_CLASS_RECORD_ID = record.ID;
|
||||||
@ -2180,10 +2191,14 @@ namespace APT.PP.WebApi.Controllers.Api.PP
|
|||||||
notices.Add(notice);
|
notices.Add(notice);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
UnifiedCommit(() =>
|
UnifiedCommit(() =>
|
||||||
{
|
{
|
||||||
if (wellRecords != null && wellRecords.Any())
|
if (wellRecords != null && wellRecords.Any())
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user