diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs
index 99fa74b..4ea6cab 100644
--- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs
+++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs
@@ -1974,6 +1974,164 @@ namespace APT.PP.WebApi.Controllers.Api.PP
throw new Exception("【" + HttpContext.Request.Path + "】错误日志:[Message]" + ex.Message);
}
+ return true;
+ });
+ }
+
+ ///
+ /// 触发领导带班下井记录
+ ///
+ ///
+ ///
+ [HttpPost, Route("LeaderWellRecordSync")]
+ public JsonActionResult LeaderWellRecordSync([FromBody] KeywordFilter filter)
+ {
+ return SafeExecute(() =>
+ {
+ try
+ {
+ var notices = new List();
+ var wellRecords = new List();
+ var wellRecordUsers = new List();
+ var dt = DateTime.Now;
+ var company = this.GetEntity(t => t.PARENT_ID == null && t.ENABLE_STATUS == 0);
+ var fmClass = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail");
+ var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId),"Nav_Department");
+ var jobs = this.GetEntities(t => t.DATE.Date == DateTime.Now.Date, new BaseFilter(filter.OrgId), "Nav_User");
+ var records = this.GetEntities(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;
+ });
+ }
+ ///
+ /// 手动触发的班前会根据下班时间自动触发岗位当班
+ ///
+ ///
+ ///
+ [HttpPost, Route("CurrentClassSync")]
+ public JsonActionResult CurrentClassSync([FromBody] KeywordFilter filter)
+ {
+ return SafeExecute(() =>
+ {
+ try
+ {
+ var notices = new List();
+ var wellRecords = new List();
+ var wellRecordUsers = new List();
+ var dt = DateTime.Now;
+ var fmClass = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId), "Nav_ClassDetail");
+ var users = this.GetEntities(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(filter.OrgId), "Nav_Department");
+ var records = this.GetEntities(t => t.CREATE_TIME.Value.Date == DateTime.Now.Date, new BaseFilter(filter.OrgId));
+ var preClass = this.GetEntities(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;
});
}