From dfa9fc852bbfd54b56ca111b00834fc2f6a5e7f8 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: Sun, 11 Jan 2026 11:38:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=94=A8=E6=88=B7=E7=BB=84?= =?UTF-8?q?=E7=BB=87=EF=BC=8C=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E6=8E=92?= =?UTF-8?q?=E7=8F=AD=E6=98=8E=E7=BB=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/UserController.cs | 106 +++++++++++------- 1 file changed, 67 insertions(+), 39 deletions(-) diff --git a/APT.MicroApi/APT.FM.WebApi/Controllers/Api/UserController.cs b/APT.MicroApi/APT.FM.WebApi/Controllers/Api/UserController.cs index 8b6e24f..7bb09c3 100644 --- a/APT.MicroApi/APT.FM.WebApi/Controllers/Api/UserController.cs +++ b/APT.MicroApi/APT.FM.WebApi/Controllers/Api/UserController.cs @@ -743,6 +743,9 @@ namespace APT.FM.WebApi.Controllers.Api.FM T_FM_DEPARTMENT departmentInfo = null; List teamPersons = new List(); List teamPersonIds = new List(); + var departScheIds = new List(); + var deleteDepartScheIds = new List(); + List departScheDetails = new List(); if (!string.IsNullOrEmpty(entity.PHONE) && entity.PHONE.Length != 11) { throw new Exception("手机号码应该为11位!"); @@ -752,44 +755,65 @@ namespace APT.FM.WebApi.Controllers.Api.FM departmentInfo = this.GetEntity(t => t.ID == entity.DEPARTMENT_ID && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用); if (departmentInfo == null) throw new Exception("组织架构已失效,请重新选择!"); - var teamPersonInfo = this.GetEntity(t => t.PERSON_ID == entity.PERSON_ID); - //if (teamPersonInfo != null) - //{ - // teamPersonIds.Add(teamPersonInfo.ID); - //} - //if (departmentInfo != null && departmentInfo.DEPARTMENT_TYPE == (int)FMDepartmentType.班组) - { - teamInfo = this.GetEntity(t => t.DEPARTMENT_ID == entity.DEPARTMENT_ID); - if (teamInfo != null) - { - if (teamPersonInfo == null) - { - T_FM_TEAM_PERSON teamPerson = new T_FM_TEAM_PERSON(); - teamPerson.PERSON_ID = person.ID; - teamPerson.TEAM_ID = teamInfo.ID; - teamPerson.ORG_ID = teamInfo.ORG_ID; - teamPersons.Add(teamPerson); - } - else - { - teamPersonInfo.PERSON_ID = person.ID; - teamPersonInfo.TEAM_ID = teamInfo.ID; - teamPersons.Add(teamPersonInfo); - } - } - else - { - if (teamPersonInfo != null) - teamPersonIds.Add(teamPersonInfo.ID); - } - personTeam = teamPersons; - if (entity.APPROVE_ROLE_ID != null) - { - var isExist = userList.FirstOrDefault(t => t.APPROVE_ROLE_ID == entity.APPROVE_ROLE_ID && t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.ENABLE_STATUS == 0); - if (isExist != null) - this.ThrowError("070001"); - } - } + var teamPersonInfo = this.GetEntity(t => t.PERSON_ID == entity.PERSON_ID); + //if (teamPersonInfo != null) + //{ + // teamPersonIds.Add(teamPersonInfo.ID); + //} + //if (departmentInfo != null && departmentInfo.DEPARTMENT_TYPE == (int)FMDepartmentType.班组) + //{ + teamInfo = this.GetEntity(t => t.DEPARTMENT_ID == entity.DEPARTMENT_ID); + if (teamInfo != null) + { + departScheIds = this.GetEntities(t => t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.TEAM_ID == teamInfo.ID && t.DATE_TIME >= DateTime.Now.Date && t.START_TIME >= DateTime.Now, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); + if (teamPersonInfo == null) + { + T_FM_TEAM_PERSON teamPerson = new T_FM_TEAM_PERSON(); + teamPerson.PERSON_ID = person.ID; + teamPerson.TEAM_ID = teamInfo.ID; + teamPerson.ORG_ID = teamInfo.ORG_ID; + teamPersons.Add(teamPerson); + } + else + { + teamPersonInfo.PERSON_ID = person.ID; + teamPersonInfo.TEAM_ID = teamInfo.ID; + teamPersons.Add(teamPersonInfo); + } + } + else + { + if (teamPersonInfo != null) + teamPersonIds.Add(teamPersonInfo.ID); + } + personTeam = teamPersons; + if (entity.APPROVE_ROLE_ID != null) + { + var isExist = userList.FirstOrDefault(t => t.APPROVE_ROLE_ID == entity.APPROVE_ROLE_ID && t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.ENABLE_STATUS == 0); + if (isExist != null) + this.ThrowError("070001"); + } + //删除旧的排班,在新的排班里面加入 + deleteDepartScheIds = this.GetEntities(t =>t.Nav_DepartmentScheduling!=null && t.Nav_DepartmentScheduling.DATE_TIME >= DateTime.Now.Date && t.Nav_DepartmentScheduling.START_TIME >= DateTime.Now && t.PERSON_ID == entity.PERSON_ID,new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); + if (departScheIds != null && departScheIds.Any()) + { + var departScheDetailTemps = this.GetEntities(t => departScheIds.Contains(t.DEPARTMENT_SCHEDULING_ID) && t.PERSON_ID == entity.PERSON_ID, new BaseFilter(entity.ORG_ID)).ToList(); + foreach (var id in departScheIds) + { + var detail = departScheDetailTemps.FirstOrDefault(t => t.DEPARTMENT_SCHEDULING_ID == id); + if (detail == null) + { + T_FM_DEPARTMENT_SCHEDULING_DETAIL de = new T_FM_DEPARTMENT_SCHEDULING_DETAIL(); + de.ORG_ID = entity.ORG_ID; + de.DEPARTMENT_SCHEDULING_ID = id; + de.PERSON_ID = entity.PERSON_ID.Value; + departScheDetails.Add(de); + } + } + } + + //} + if (entity.APPROVE_ROLE_ID != null) { var isExist = userList.FirstOrDefault(t => t.APPROVE_ROLE_ID == entity.APPROVE_ROLE_ID && t.DEPARTMENT_ID == entity.DEPARTMENT_ID && t.ENABLE_STATUS == 0 && t.Nav_Department != null && t.Nav_Department.DEPARTMENT_TYPE != 3); @@ -1089,7 +1113,11 @@ namespace APT.FM.WebApi.Controllers.Api.FM if (teamPersonIds.Any()) this.DeleteEntityNoCommit(t => teamPersonIds.Contains(t.ID)); if (noticeToday != null) - this.UpdateEntityNoCommit(noticeToday); + this.UpdateEntityNoCommit(noticeToday); + if (deleteDepartScheIds!=null && deleteDepartScheIds.Any()) + this.BantchDeleteEntityNoCommit(deleteDepartScheIds); + if (departScheDetails != null && departScheDetails.Any()) + this.BantchSaveEntityNoCommit(departScheDetails); });