From 23577b6322a3f0f31da1d1a2e30bceae049697bb 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: Fri, 22 May 2026 10:41:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E5=8F=91=E8=B5=B7=E7=9A=84?= =?UTF-8?q?=E7=8F=AD=E5=89=8D=E4=BC=9A=EF=BC=8C=E5=88=B0=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E5=B2=97=E4=BD=8D=E5=BD=93=E7=8F=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/FOController.cs | 83 +++++++++++-------- 1 file changed, 49 insertions(+), 34 deletions(-) diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs index acfe1ee..7222fca 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs @@ -2135,54 +2135,69 @@ namespace APT.PP.WebApi.Controllers.Api.PP var newFilter = new KeywordFilter(); newFilter.OrgId = filter.OrgId; newFilter.IgnoreDataRule = true; + var posts = this.GetEntities(t => true, new BaseFilter(filter.OrgId)); var departs = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); 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_Person.Nav_Post"); - var records = this.GetEntities(t => t.RECORD_DATE.Date == dt.Date, newFilter); - var preClass = this.GetEntities(t => t.START_TIME.Date == dt.Date && t.DEPARTMENT_SCHEDULING_ID == null, newFilter); + //var records = this.GetEntities(t => t.RECORD_DATE.Date == dt.Date, newFilter); + var preClass = this.GetEntities(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 preClassUsers = this.GetEntities(t => preClassIds.Contains(t.PRE_SHIFT_MEETING_RECORD_ID), newFilter); if (preClass != null && preClass.Any()) { foreach (var item in preClass) { - - - if (item.END_TIME != DateTime.MinValue && item.END_TIME.Hour == dt.AddHours(1).Hour) + var userIds = preClassUsers.Where(t => t.PRE_SHIFT_MEETING_RECORD_ID == item.ID && t.USER_ID != null).Select(m => m.USER_ID).Distinct().ToList(); + //当前班前会的所有人 + 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(); - var sendUsers = users.Where(t => userIds.Contains(t.ID) && t.Nav_Person != null).ToList(); - if (sendUsers != null && sendUsers.Any()) + foreach (var departId in userDepartIds) { - foreach (var user in sendUsers) + 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()) { - 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(); - record.ORG_ID = item.ORG_ID; - record.NAME = dt.ToShortDateString() + depart?.NAME + "-" + user?.Nav_Person?.Nav_Post?.NAME + "当班工作记录"; - record.EDITOR_ID = user.ID; - record.RECORD_DATE = Convert.ToDateTime(dt.Date.ToShortDateString() + " " + item.END_TIME.ToShortTimeString()); - record.CLASS_ID = item.CLASS_ID; - record.DEPARTMENT_ID = user.DEPARTMENT_ID; - record.DEPARTMENT_POST_ID = user?.Nav_Person?.POST_ID; - record.CHARGE_USER_ID = depart?.USER_ID; - wellRecords.Add(record); - T_FO_CURRENT_CLASS_RECORD_USER ledUser = new T_FO_CURRENT_CLASS_RECORD_USER(); - ledUser.ORG_ID = item.ORG_ID; - ledUser.CURRENT_CLASS_RECORD_ID = record.ID; - ledUser.USER_ID = user.ID; - wellRecordUsers.Add(ledUser); - var notice = NotificationTaskService.InsertUserNoticeTaskModel(record.NAME, record.ID, item.ORG_ID, user.ID, user.NAME, DateTime.Now, - DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO005"); - notices.Add(notice); - } + 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()) + { + T_FO_CURRENT_CLASS_RECORD record = new T_FO_CURRENT_CLASS_RECORD(); + record.ORG_ID = item.ORG_ID; + record.NAME = dt.ToShortDateString() + depart?.NAME + "-" + post?.NAME + "当班工作记录"; + record.EDITOR_ID = sendUsers.FirstOrDefault().ID; + record.RECORD_DATE = Convert.ToDateTime(dt.Date.ToShortDateString() + " " + item.END_TIME.ToShortTimeString()); + record.CLASS_ID = item.CLASS_ID; + record.DEPARTMENT_ID = departId; + record.DEPARTMENT_POST_ID = postId; + record.CHARGE_USER_ID = depart?.USER_ID; + wellRecords.Add(record); + foreach (var user in sendUsers) + { + T_FO_CURRENT_CLASS_RECORD_USER ledUser = new T_FO_CURRENT_CLASS_RECORD_USER(); + ledUser.ORG_ID = item.ORG_ID; + ledUser.CURRENT_CLASS_RECORD_ID = record.ID; + ledUser.USER_ID = user.ID; + wellRecordUsers.Add(ledUser); + var notice = NotificationTaskService.InsertUserNoticeTaskModel(record.NAME, record.ID, item.ORG_ID, user.ID, user.NAME, DateTime.Now, + DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "FO005"); + notices.Add(notice); + } + } + + } } } - } - } + } + + } } UnifiedCommit(() => {