From f7a781a601e57121ef2bac732ef3ca418678d63e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E7=BE=8E=E8=8D=A3?= <10755671+mei-rong-he@user.noreply.gitee.com> Date: Sat, 6 Dec 2025 22:54:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A6=E5=8F=91=E9=A2=86=E5=AF=BC=E5=B8=A6?= =?UTF-8?q?=E7=8F=AD=E4=B8=8B=E4=BA=95=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/FOController.cs | 158 ++++++++++++++++++ 1 file changed, 158 insertions(+) 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; }); }