触发领导带班下井记录
This commit is contained in:
parent
4fdf21e31b
commit
f7a781a601
@ -1977,5 +1977,163 @@ namespace APT.PP.WebApi.Controllers.Api.PP
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 触发领导带班下井记录
|
||||
/// </summary>
|
||||
/// <param name="pageFilter"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("LeaderWellRecordSync")]
|
||||
public JsonActionResult<bool> LeaderWellRecordSync([FromBody] KeywordFilter filter)
|
||||
{
|
||||
return SafeExecute<bool>(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
var notices = new List<T_FM_NOTIFICATION_TASK>();
|
||||
var wellRecords = new List<T_FO_LEADER_WELL_RECORD>();
|
||||
var wellRecordUsers = new List<T_FO_LEADER_WELL_RECORD_USER>();
|
||||
var dt = DateTime.Now;
|
||||
var company = this.GetEntity<T_FM_DEPARTMENT>(t => t.PARENT_ID == null && t.ENABLE_STATUS == 0);
|
||||
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_Department");
|
||||
var jobs = this.GetEntities<T_FO_SCHEDULING>(t => t.DATE.Date == DateTime.Now.Date, new BaseFilter(filter.OrgId), "Nav_User");
|
||||
var records = this.GetEntities<T_FO_LEADER_WELL_RECORD>(t => t.JOB_START_DATE.Value.Date == DateTime.Now.Date, new BaseFilter(filter.OrgId));
|
||||
if (jobs != null && jobs.Any())
|
||||
{
|
||||
foreach (var item in jobs)
|
||||
{
|
||||
var classFisrt = fmClass.FirstOrDefault(t => t.ID == item.CLASS_ID);
|
||||
if (classFisrt != null && classFisrt.Nav_ClassDetail != null && classFisrt.Nav_ClassDetail.Any())
|
||||
{
|
||||
var firstRecord = records.FirstOrDefault(t => t.CLASS_ID == item.CLASS_ID);
|
||||
var firstTime = classFisrt.Nav_ClassDetail.OrderBy(t => t.NUM).FirstOrDefault();
|
||||
if (firstTime.STARTTIME.Hour == DateTime.Now.AddHours(1).Hour && firstRecord == null)
|
||||
{
|
||||
var sendUser = users.FirstOrDefault(t => t.ID == item.USER_ID);
|
||||
if (sendUser != null)
|
||||
{
|
||||
T_FO_LEADER_WELL_RECORD record = new T_FO_LEADER_WELL_RECORD();
|
||||
record.ORG_ID = item.ORG_ID;
|
||||
record.APPLY_USER_ID = sendUser.ID;
|
||||
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
|
||||
record.JOB_START_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.STARTTIME.ToShortTimeString());
|
||||
record.JOB_END_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.ENDTIME.ToShortTimeString());
|
||||
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
|
||||
record.COMPANY_ID = company?.ID;
|
||||
record.PRODUCTION_UNIT_ID = sendUser?.Nav_Department?.PRODUCTION_UNIT_ID;
|
||||
wellRecords.Add(record);
|
||||
T_FO_LEADER_WELL_RECORD_USER ledUser = new T_FO_LEADER_WELL_RECORD_USER();
|
||||
ledUser.ORG_ID = item.ORG_ID;
|
||||
ledUser.LEADER_WELL_RECORD_ID = record.ID;
|
||||
ledUser.USER_ID = sendUser.ID;
|
||||
wellRecordUsers.Add(ledUser);
|
||||
var notice = NotificationTaskService.InsertUserNoticeTaskModel("领导带班下井记录"+DateTime.Now.Month.PadLeft(2,'0')+ DateTime.Now.Day.PadLeft(2, '0') + "-"+classFisrt.NAME, record.ID, item.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now,
|
||||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO041");
|
||||
notices.Add(notice);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
UnifiedCommit(() =>
|
||||
{
|
||||
if (wellRecords != null && wellRecords.Any())
|
||||
BantchSaveEntityNoCommit(wellRecords);
|
||||
if (wellRecordUsers != null && wellRecordUsers.Any())
|
||||
BantchSaveEntityNoCommit(wellRecordUsers);
|
||||
if (notices != null && notices.Any())
|
||||
BantchSaveEntityNoCommit(notices);
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(ex.StackTrace))
|
||||
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
|
||||
else
|
||||
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
/// <summary>
|
||||
/// 手动触发的班前会根据下班时间自动触发岗位当班
|
||||
/// </summary>
|
||||
/// <param name="pageFilter"></param>
|
||||
/// <returns></returns>
|
||||
[HttpPost, Route("CurrentClassSync")]
|
||||
public JsonActionResult<bool> CurrentClassSync([FromBody] KeywordFilter filter)
|
||||
{
|
||||
return SafeExecute<bool>(() =>
|
||||
{
|
||||
try
|
||||
{
|
||||
var notices = new List<T_FM_NOTIFICATION_TASK>();
|
||||
var wellRecords = new List<T_FO_LEADER_WELL_RECORD>();
|
||||
var wellRecordUsers = new List<T_FO_LEADER_WELL_RECORD_USER>();
|
||||
var dt = DateTime.Now;
|
||||
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_Department");
|
||||
var records = this.GetEntities<T_FO_CURRENT_CLASS_RECORD>(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date, new BaseFilter(filter.OrgId));
|
||||
var preClass = this.GetEntities<T_FO_PRE_SHIFT_MEETING_RECORD>(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date && t.DEPARTMENT_SCHEDULING_ID == null, new BaseFilter(filter.OrgId));
|
||||
if (preClass != null && preClass.Any())
|
||||
{
|
||||
foreach (var item in preClass)
|
||||
{
|
||||
var classFisrt = fmClass.FirstOrDefault(t => t.ID == item.CLASS_ID);
|
||||
if (classFisrt != null && classFisrt.Nav_ClassDetail != null && classFisrt.Nav_ClassDetail.Any())
|
||||
{
|
||||
var firstRecord = records.FirstOrDefault(t => t.CLASS_ID == item.CLASS_ID);
|
||||
var firstTime = classFisrt.Nav_ClassDetail.OrderBy(t => t.NUM).FirstOrDefault();
|
||||
if (firstTime.ENDTIME.Hour == DateTime.Now.AddHours(1).Hour && firstRecord == null)
|
||||
{
|
||||
var sendUser = users.FirstOrDefault(t => t.ID == item.USER_ID);
|
||||
if (sendUser != null)
|
||||
{
|
||||
T_FO_LEADER_WELL_RECORD record = new T_FO_LEADER_WELL_RECORD();
|
||||
record.ORG_ID = item.ORG_ID;
|
||||
record.APPLY_USER_ID = sendUser.ID;
|
||||
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
|
||||
record.JOB_START_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.STARTTIME.ToShortTimeString());
|
||||
record.JOB_END_DATE = Convert.ToDateTime(DateTime.Now.Date.ToShortDateString() + firstTime.ENDTIME.ToShortTimeString());
|
||||
record.APPLY_DEPARTMENT_ID = sendUser.DEPARTMENT_ID;
|
||||
|
||||
record.PRODUCTION_UNIT_ID = sendUser?.Nav_Department?.PRODUCTION_UNIT_ID;
|
||||
wellRecords.Add(record);
|
||||
T_FO_LEADER_WELL_RECORD_USER ledUser = new T_FO_LEADER_WELL_RECORD_USER();
|
||||
ledUser.ORG_ID = item.ORG_ID;
|
||||
ledUser.LEADER_WELL_RECORD_ID = record.ID;
|
||||
ledUser.USER_ID = sendUser.ID;
|
||||
wellRecordUsers.Add(ledUser);
|
||||
var notice = NotificationTaskService.InsertUserNoticeTaskModel("领导带班下井记录" + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + "-" + classFisrt.NAME, record.ID, item.ORG_ID, sendUser.ID, sendUser.NAME, DateTime.Now,
|
||||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO041");
|
||||
notices.Add(notice);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
UnifiedCommit(() =>
|
||||
{
|
||||
//if (wellRecords != null && wellRecords.Any())
|
||||
// BantchSaveEntityNoCommit(wellRecords);
|
||||
//if (wellRecordUsers != null && wellRecordUsers.Any())
|
||||
// BantchSaveEntityNoCommit(wellRecordUsers);
|
||||
//if (notices != null && notices.Any())
|
||||
// BantchSaveEntityNoCommit(notices);
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(ex.StackTrace))
|
||||
throw new Exception("错误日志:[StackTrace]" + ex.StackTrace);
|
||||
else
|
||||
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user