diff --git a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs index 14f6082..221b00f 100644 --- a/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs +++ b/APT.BaseData.Services/Services/PF/PFApproveCallBackService.cs @@ -13412,6 +13412,7 @@ namespace APT.BaseData.Services.DomainServices } } var requre = this.GetEntity(t => !t.IS_DELETED); + var plan = this.GetEntity(t => t.ID == entity.IDENTIFY_EVALUATION_PLAN_ID); var filter = new BaseFilter(entity.ORG_ID); filter.IgnoreDataRule = true; Expression> expression = i => i.IS_DELETED == false && i.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)i.APPLY_DEPARTMENT_ID); @@ -13429,8 +13430,8 @@ namespace APT.BaseData.Services.DomainServices result.YEAR = entity.YEAR; result.ISAUTO = true; result.CONTENTS = entity.CONTENTS; - result.START_DATE = entity.START_DATE; - result.END_DATE = entity.END_DATE; + result.START_DATE = plan?.START_DATE; + result.END_DATE = plan?.END_DATE; result.REQUIRE_ID = entity.REQUIRE_ID != null ? entity.REQUIRE_ID : requre?.ID; result.ISCOMPANY = currentDepart.DEPARTMENT_TYPE == 5 ? SKIsStoreEnum.Yes : SKIsStoreEnum.No; var planTemp = this.GetEntity(t => t.ID == entity.IDENTIFY_EVALUATION_PLAN_ID, "Nav_Requires"); diff --git a/APT.MicroApi/APT.FM.WebApi/Controllers/Api/DepartmentController.cs b/APT.MicroApi/APT.FM.WebApi/Controllers/Api/DepartmentController.cs index 0835ba5..0dad4d0 100644 --- a/APT.MicroApi/APT.FM.WebApi/Controllers/Api/DepartmentController.cs +++ b/APT.MicroApi/APT.FM.WebApi/Controllers/Api/DepartmentController.cs @@ -1,24 +1,24 @@ -using APT.Infrastructure.Core; -using APT.BaseData.Domain.Entities.FM; -using Microsoft.AspNetCore.Mvc; -using System.Collections.Generic; -using APT.BaseData.Domain.IServices.FM; - -using APT.Utility; +using APT.BaseData.Domain.ApiModel; using APT.BaseData.Domain.Entities.BD; -using System.Linq; +using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.Enums; -using System; -using System.Linq.Expressions; -using APT.BaseData.Services.Services.FM; -using APT.BaseData.Domain.IServices; -using APT.BaseData.Services.DomainServices; -using NPOI.Util; -using Google.Protobuf.WellKnownTypes; -using APT.BaseData.Domain.ApiModel; -using NPOI.SS.Formula.Functions; -using APT.MS.Domain.Entities.PF; using APT.BaseData.Domain.Enums.PF; +using APT.BaseData.Domain.IServices; +using APT.BaseData.Domain.IServices.FM; +using APT.BaseData.Services.DomainServices; +using APT.BaseData.Services.Services.FM; +using APT.Infrastructure.Core; +using APT.MS.Domain.Entities.PF; +using APT.Utility; +using Google.Protobuf.WellKnownTypes; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using NPOI.SS.Formula.Functions; +using NPOI.Util; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Expressions; namespace APT.FM.WebApi.Controllers.Api.FM { @@ -384,17 +384,19 @@ namespace APT.FM.WebApi.Controllers.Api.FM { //var safeUser = entity==null?null:entity.Nav_SafeUser; //entity.Nav_SafeUser = null; - T_FM_TEAM teamInfo = null; + T_FM_TEAM addTeamInfo = null; + T_FM_TEAM updateTeamInfo = null; + var teamInfos = new List(); if (entity.DEPARTMENT_TYPE == (int)FMDepartmentType.Class) { - teamInfo = this.GetEntity(t => t.DEPARTMENT_ID == entity.ID); + var teamInfo = this.GetEntity(t => t.DEPARTMENT_ID == entity.ID); if (teamInfo == null) { - teamInfo = new T_FM_TEAM() + addTeamInfo = new T_FM_TEAM() { NAME = entity.NAME, DEPARTMENT_ID = entity.ID, - //CHARGE_PERSON_ID = user.PERSON_ID, + //CHARGE_PERSON_ID = entity.USER_ID, ORG_ID = entity.ORG_ID, ID = Guid.NewGuid(), }; @@ -404,14 +406,10 @@ namespace APT.FM.WebApi.Controllers.Api.FM teamInfo.NAME = entity.NAME; teamInfo.DEPARTMENT_ID = entity.ID; //teamInfo.CHARGE_PERSON_ID = entity.USER_ID; + updateTeamInfo = teamInfo; } } - if (entity.USER_ID != null) - { - var user = this.GetEntity(t => t.ID == entity.USER_ID); - if (teamInfo != null) - teamInfo.CHARGE_PERSON_ID = user.PERSON_ID; - } + //List productionUnit = null; entity.Nav_ProdutionUnit = null; //if (productionUnit != null && productionUnit.Any()) @@ -424,8 +422,10 @@ namespace APT.FM.WebApi.Controllers.Api.FM //} var unitList = new List(); var userUnitList = new List(); - var departmentList = new List(); - var userList = new List(); + var departUpdateList = new List(); + var entityUpdateList = new List(); + var userUpdateList = new List(); + var userList = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_ProdutionUnit").ToList(); var deleteDepartIds = new List(); var deleteUserIds = new List(); if (entity.PRODUCTION_UNIT_ID != null) @@ -435,14 +435,17 @@ namespace APT.FM.WebApi.Controllers.Api.FM //查所有下级部门组织 List departmentId = new List(); departmentId.Add(entity.ID); - List departmentIds = new List() { entity.ID }; + List departmentIds = new List(); var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value; DepartmentService.GetDepartmentIds(orgId, departmentId, ref departmentIds); - departmentList = this.GetEntities(t => departmentIds.Contains(t.ID) && t.ENABLE_STATUS == 0, new BaseFilter(orgId), "Nav_ProdutionUnit").ToList(); - departmentList.ForEach(t => - { + var departmentList = this.GetEntities(t => departmentIds.Contains(t.ID) && t.ENABLE_STATUS == 0, new BaseFilter(orgId), "Nav_ProdutionUnit").ToList(); + foreach (var t in departmentList) + { + t.ENABLE_STATUS = entity.ENABLE_STATUS; + t.IS_DELETED = entity.IS_DELETED; t.MineType = entity.MineType; t.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID; + departUpdateList.Add(t); T_FM_DEPARTMENT_PRODUCTION_UNIT unit = new T_FM_DEPARTMENT_PRODUCTION_UNIT(); unit.ORG_ID = t.ORG_ID; unit.DEPARTMENT_ID = t.ID; //unit.ENUMS_ID = enumList?.ID; unit.Nav_Enums = null; unit.DEPART_UNIT_ID = entity.PRODUCTION_UNIT_ID; @@ -452,10 +455,10 @@ namespace APT.FM.WebApi.Controllers.Api.FM var ids = t.Nav_ProdutionUnit.Select(t => t.ID).ToList(); deleteDepartIds.AddRange(ids); } - }); + } //departmentList.ForEach(t => t.MineType = entity.MineType); - userList = this.GetEntities(t => departmentIds.Contains(t.DEPARTMENT_ID.Value) && t.ENABLE_STATUS == 0, new BaseFilter(orgId), "Nav_ProdutionUnit").ToList(); - userList.ForEach(t => + var userListTemp = userList.Where(t => t.DEPARTMENT_ID!=null && departmentIds.Contains(t.DEPARTMENT_ID.Value)).ToList(); + userListTemp.ForEach(t => { //var enumValues = new List(); //productionUnit.ForEach(t1 => @@ -468,6 +471,7 @@ namespace APT.FM.WebApi.Controllers.Api.FM // enumValues.Add(value); //}); //t.MineType = string.Join(",", enumValues); + userUpdateList.Add(t); T_FM_USER_PRODUCTION_UNIT unit = new T_FM_USER_PRODUCTION_UNIT(); unit.ORG_ID = t.ORG_ID; unit.USER_ID = t.ID; //unit.ENUMS_ID = enumList?.ID; unit.Nav_Enums = null; unit.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID; @@ -479,42 +483,58 @@ namespace APT.FM.WebApi.Controllers.Api.FM } }); } + if (entity.USER_ID != null) + { + var user = userList.FirstOrDefault(t => t.ID == entity.USER_ID); + if (addTeamInfo != null) + addTeamInfo.CHARGE_PERSON_ID = user.PERSON_ID; + if (updateTeamInfo != null) + updateTeamInfo.CHARGE_PERSON_ID = user.PERSON_ID; + } if (entity.ENABLE_STATUS == 1) { entity.IS_DELETED = true; - if (teamInfo != null) + if (updateTeamInfo != null) { - teamInfo.ENABLE_STATUS = 1; - teamInfo.IS_DELETED = true; - } - foreach (var item in unitList.Where(m => m.DEPARTMENT_ID == entity.ID)) - { - item.IS_DELETED = true; + updateTeamInfo.ENABLE_STATUS = 1; + updateTeamInfo.IS_DELETED = true; + teamInfos.Add(updateTeamInfo); } } + entityUpdateList.Add(entity); + foreach (var item in departUpdateList) + { + item.Nav_User = null; item.Nav_ProdutionUnit = null; item.Nav_Unit = null; item.Nav_Parent = null; item.Nav_DepartmentUser = null; + } + foreach (var item in entityUpdateList) + { + item.Nav_User = null; item.Nav_ProdutionUnit = null; item.Nav_Unit = null; item.Nav_Parent = null;item.Nav_DepartmentUser = null; + } this.UnifiedCommit(() => { //BantchUpdateEntity_noneBase //if (safeUser != null && safeUser.Any()) // this.BantchSaveEntityNoCommit(safeUser); - if (teamInfo != null) - this.UpdateEntityNoCommit(teamInfo); - //if (productionUnit != null && productionUnit.Any()) - // this.BantchSaveEntityNoCommit(productionUnit); + if (addTeamInfo != null) + this.UpdateEntityNoCommit(addTeamInfo); if (deleteDepartIds != null && deleteDepartIds.Any()) this.BantchDeleteEntityNoCommit(deleteDepartIds); if (deleteUserIds != null && deleteUserIds.Any()) this.BantchDeleteEntityNoCommit(deleteUserIds); - if (departmentList != null && departmentList.Any()) - this.BantchSaveEntityNoCommit(departmentList); - if (userList != null && userList.Any()) - this.BantchSaveEntityNoCommit(userList); + if (userUpdateList != null && userUpdateList.Any()) + this.BantchSaveEntityNoCommit(userUpdateList); if (unitList != null && unitList.Any()) this.BantchSaveEntityNoCommit(unitList); if (userUnitList != null && userUnitList.Any()) this.BantchSaveEntityNoCommit(userUnitList); - if (entity != null) - this.UpdateEntityNoCommit(entity); + if (departUpdateList != null && departUpdateList.Any()) + this.BantchUpdateEntity_noneBase(departUpdateList); + if (teamInfos != null && teamInfos.Any()) + this.BantchUpdateEntity_noneBase(teamInfos); + if (entityUpdateList != null && entityUpdateList.Any()) + this.BantchUpdateEntity_noneBase(entityUpdateList); + //if (entity != null) + // this.UpdateEntityNoCommit(entity); }); return true; }); diff --git a/APT.MicroApi/APT.FO.WebApi/Controllers/ChangeShiftRecordController.cs b/APT.MicroApi/APT.FO.WebApi/Controllers/ChangeShiftRecordController.cs index bc41103..7a77816 100644 --- a/APT.MicroApi/APT.FO.WebApi/Controllers/ChangeShiftRecordController.cs +++ b/APT.MicroApi/APT.FO.WebApi/Controllers/ChangeShiftRecordController.cs @@ -221,8 +221,8 @@ namespace APT.FO.WebApi.Controllers.Api.FO /// /// 分页过滤实体 /// - [HttpPost, Route("FullOrderPaged")] - public PagedActionResult FullOrderPaged([FromBody] KeywordPageFilter pageFilter) + [HttpPost, Route("OrderPaged")] + public PagedActionResult OrderPaged([FromBody] KeywordPageFilter pageFilter) { var result = new PagedActionResult(); var loginDepartmentId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; diff --git a/APT.MicroApi/APT.FO.WebApi/Controllers/CurrentClassRecord.cs b/APT.MicroApi/APT.FO.WebApi/Controllers/CurrentClassRecord.cs index 5342875..5b3898c 100644 --- a/APT.MicroApi/APT.FO.WebApi/Controllers/CurrentClassRecord.cs +++ b/APT.MicroApi/APT.FO.WebApi/Controllers/CurrentClassRecord.cs @@ -612,8 +612,8 @@ namespace APT.FO.WebApi.Controllers.Api.FO /// /// 分页过滤实体 /// - [HttpPost, Route("FullOrderPaged")] - public PagedActionResult FullOrderPaged([FromBody] KeywordPageFilter pageFilter) + [HttpPost, Route("OrderPaged")] + public PagedActionResult OrderPaged([FromBody] KeywordPageFilter pageFilter) { pageFilter.IgnoreDataRule = true; pageFilter.Include.Add("Nav_Team"); diff --git a/APT.MicroApi/APT.FO.WebApi/Controllers/PreShiftMeetingRecordController.cs b/APT.MicroApi/APT.FO.WebApi/Controllers/PreShiftMeetingRecordController.cs index fc02826c..6114e8a 100644 --- a/APT.MicroApi/APT.FO.WebApi/Controllers/PreShiftMeetingRecordController.cs +++ b/APT.MicroApi/APT.FO.WebApi/Controllers/PreShiftMeetingRecordController.cs @@ -63,6 +63,7 @@ namespace APT.FO.WebApi.Controllers.Api.FO List postList = new List(); var oldUserIds = GetEntities(t => t.PRE_SHIFT_MEETING_RECORD_ID == entity.ID, new BaseFilter(entity.ORG_ID)).Select(m => m.ID).ToList(); var userID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID; + var departId = APT.Infrastructure.Api.AppContext.CurrentSession.DepartmentID; if (entity.TaskID != null && entity.TaskID != Guid.Empty) { var currTask = GetEntity(t => t.ID == entity.TaskID); @@ -141,6 +142,7 @@ namespace APT.FO.WebApi.Controllers.Api.FO { throw new Exception("通知人员不能为空"); } + if (entity.DEPARTMENT_ID == null) { var user = GetEntity(t => t.ID == userID); @@ -160,7 +162,7 @@ namespace APT.FO.WebApi.Controllers.Api.FO } else { - var currTeam = GetEntity(t => t.DEPARTMENT_ID == entity.DEPARTMENT_ID); + var currTeam = GetEntity(t => t.DEPARTMENT_ID == departId); entity.TEAM_ID = currTeam?.ID; TeamName = currTeam?.NAME; } @@ -836,8 +838,8 @@ namespace APT.FO.WebApi.Controllers.Api.FO /// /// 分页过滤实体 /// - [HttpPost, Route("FullOrderPaged")] - public PagedActionResult FullOrderPaged([FromBody] KeywordPageFilter pageFilter) + [HttpPost, Route("OrderPaged")] + public PagedActionResult OrderPaged([FromBody] KeywordPageFilter pageFilter) { pageFilter.IgnoreDataRule = true; pageFilter.Include.Add("Nav_Team"); diff --git a/APT.MicroApi/APT.FO.WebApi/Controllers/TeamActivityController.cs b/APT.MicroApi/APT.FO.WebApi/Controllers/TeamActivityController.cs index 5f6504b..5e97a26 100644 --- a/APT.MicroApi/APT.FO.WebApi/Controllers/TeamActivityController.cs +++ b/APT.MicroApi/APT.FO.WebApi/Controllers/TeamActivityController.cs @@ -252,8 +252,8 @@ namespace APT.FO.WebApi.Controllers.Api.FO /// /// 分页过滤实体 /// - [HttpPost, Route("FullOrderPaged")] - public PagedActionResult FullOrderPaged([FromBody] KeywordPageFilter pageFilter) + [HttpPost, Route("OrderPaged")] + public PagedActionResult OrderPaged([FromBody] KeywordPageFilter pageFilter) { pageFilter.IgnoreDataRule = true; pageFilter.Include.Add("Nav_Taem"); diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs index 52d0850..25cb447 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FMController.cs @@ -2779,15 +2779,19 @@ namespace APT.PP.WebApi.Controllers.Api.PP return SafeExecute(() => { try - { - var teamLists = new List(); - var teamPersonLists = new List(); - var teamPersonIds = new List(); + { + var departLists = new List(); + var teamAddLists = new List(); + var teamUpdateLists = new List(); + var teamPersonAddLists = new List(); + var teamPersonUpdateLists = new List(); + var deleteTeamPersonIds = new List(); var departs = this.GetEntities_noneBase(t => t.DEPARTMENT_TYPE == (int)FMDepartmentType.Class); var departIds = departs.Select(t => t.ID).ToList(); var teams = this.GetEntities_noneBase(t => true); - var teamPersons = this.GetEntities< T_FM_TEAM_PERSON> (t =>true, new BaseFilter(filter.OrgId)); - var users = this.GetEntities(t => t.DEPARTMENT_ID != null && departIds.Contains((Guid)t.DEPARTMENT_ID),new BaseFilter(filter.OrgId)); + var teamPersons = this.GetEntities< T_FM_TEAM_PERSON> (t =>true, new BaseFilter(filter.OrgId)); + var userAlls = this.GetEntities(t => true, new BaseFilter(filter.OrgId)); + var users = userAlls.Where(t => t.DEPARTMENT_ID != null && departIds.Contains((Guid)t.DEPARTMENT_ID) && t.ENABLE_STATUS == 0); if (departIds != null && departIds.Any()) { foreach (var item in departIds) @@ -2795,79 +2799,84 @@ namespace APT.PP.WebApi.Controllers.Api.PP var departInfo = departs.FirstOrDefault(t => t.ID == item); var userInfo = users.FirstOrDefault(t => t.ID == departInfo?.USER_ID); var persons = users.Where(t => t.DEPARTMENT_ID == item && t.PERSON_ID != null).ToList(); - var teamInfo = teams.FirstOrDefault(t => t.DEPARTMENT_ID == item); - if (teamInfo == null) + var teamInfo = teams.FirstOrDefault(t => t.DEPARTMENT_ID == item); + if (teamInfo == null) + { + if (departInfo.IS_DELETED == false) { - if (departInfo.IS_DELETED == false) + T_FM_TEAM team = new T_FM_TEAM(); + team.ORG_ID = filter.OrgId; + team.CHARGE_PERSON_ID = userInfo?.PERSON_ID; + team.NAME = departInfo.NAME; + team.ENABLE_STATUS = 0; + team.DEPARTMENT_ID = item; + team.ENABLE_STATUS = departInfo.ENABLE_STATUS; + team.IS_DELETED = departInfo.IS_DELETED; + teamAddLists.Add(team); + if (persons != null && persons.Any()) { - T_FM_TEAM team = new T_FM_TEAM(); - team.ORG_ID = filter.OrgId; - team.CHARGE_PERSON_ID = userInfo?.PERSON_ID; - team.NAME = departInfo.NAME; - team.ENABLE_STATUS = 0; - team.DEPARTMENT_ID = item; - team.ENABLE_STATUS = departInfo.ENABLE_STATUS; - team.IS_DELETED = departInfo.IS_DELETED; - teamLists.Add(team); + foreach (var per in persons) + { + T_FM_TEAM_PERSON person = new T_FM_TEAM_PERSON(); + person.ORG_ID = filter.OrgId; + person.TEAM_ID = team.ID; + person.PERSON_ID = (Guid)per.PERSON_ID; + person.IS_DELETED = departInfo.IS_DELETED; + teamPersonAddLists.Add(person); + } + } + } + } + else + { + teamInfo.CHARGE_PERSON_ID = userInfo?.PERSON_ID; + if (departInfo.IS_DELETED == true || departInfo.ENABLE_STATUS == 1) + { + departInfo.IS_DELETED = true; + departInfo.ENABLE_STATUS = 1; + departLists.Add(departInfo); + teamInfo.ENABLE_STATUS = 1; + teamInfo.IS_DELETED = true; + teamUpdateLists.Add(teamInfo); + foreach (var item1 in teamPersons.Where(t => t.TEAM_ID == teamInfo.ID)) + { + item1.IS_DELETED = true; + teamPersonUpdateLists.Add(item1); + } + } + else + { + var teamPersonIds = teamPersons.Where(t => t.TEAM_ID == teamInfo.ID).Select(m => m.ID).ToList(); + deleteTeamPersonIds.AddRange(teamPersonIds); if (persons != null && persons.Any()) { foreach (var per in persons) { T_FM_TEAM_PERSON person = new T_FM_TEAM_PERSON(); person.ORG_ID = filter.OrgId; - person.TEAM_ID = team.ID; + person.TEAM_ID = teamInfo.ID; person.PERSON_ID = (Guid)per.PERSON_ID; - person.IS_DELETED = departInfo.IS_DELETED; - teamPersonLists.Add(person); + teamPersonAddLists.Add(person); } } - } - } - else - { - teamInfo.CHARGE_PERSON_ID = userInfo?.PERSON_ID; - teamInfo.ENABLE_STATUS = departInfo.ENABLE_STATUS; - teamInfo.IS_DELETED = departInfo.IS_DELETED; - teamLists.Add(teamInfo); - if (teamInfo.IS_DELETED == true) - { - foreach (var item1 in teamPersons.Where(t => t.TEAM_ID == teamInfo.ID)) - { - item1.IS_DELETED = true; - teamPersonLists.Add(item1); - } - } - else - { - var personIds = teamPersons.Where(t => t.TEAM_ID == teamInfo.ID).Select(m => m.PERSON_ID).ToList(); - if (persons != null && persons.Any()) - { - foreach (var per in persons) - { - if (!personIds.Contains((Guid)per.PERSON_ID)) - { - T_FM_TEAM_PERSON person = new T_FM_TEAM_PERSON(); - person.ORG_ID = filter.OrgId; - person.TEAM_ID = teamInfo.ID; - person.PERSON_ID = (Guid)per.PERSON_ID; - teamPersonLists.Add(person); - } - } - } - var deletePersonId = teamPersonLists.Select(t => t.PERSON_ID).ToList(); - teamPersonIds = teamPersons.Where(t => personIds.Contains(t.PERSON_ID) && t.TEAM_ID != teamInfo.ID).Select(m => m.ID).ToList(); } } } } UnifiedCommit(() => { - if (teamPersonLists != null && teamPersonLists.Any()) - BantchUpdateEntity_noneBase(teamPersonLists); - if (teamLists != null && teamLists.Any()) - BantchUpdateEntity_noneBase(teamLists); - if (teamPersonIds != null && teamPersonIds.Any()) - BantchDeleteEntityNoCommit(teamPersonIds); + if (deleteTeamPersonIds != null && deleteTeamPersonIds.Any()) + BantchDeleteEntityNoCommit(deleteTeamPersonIds); + if (teamAddLists != null && teamAddLists.Any()) + BantchSaveEntityNoCommit(teamAddLists); + if (teamPersonAddLists != null && teamPersonAddLists.Any()) + BantchSaveEntityNoCommit(teamPersonAddLists); + if (teamPersonUpdateLists != null && teamPersonUpdateLists.Any()) + BantchUpdateEntity_noneBase(teamPersonUpdateLists); + if (teamUpdateLists != null && teamUpdateLists.Any()) + BantchUpdateEntity_noneBase(teamUpdateLists); + if (departLists != null && departLists.Any()) + BantchUpdateEntity_noneBase(departLists); }); } catch (Exception ex) diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs index b69c7aa..acfe1ee 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/FOController.cs @@ -95,65 +95,84 @@ namespace APT.PP.WebApi.Controllers.Api.PP { shift.RUN_STATUS = true; //查出当前班组 - var currentTeam = shift.Nav_Team; - var userAgent = userVacations.FirstOrDefault(t => t.USER_ID == currentTeam?.Nav_ChargePerson?.Nav_User?.ID); - var userId = userAgent != null && userAgent.AGENT_ID != null ? userAgent.AGENT_ID : currentTeam?.Nav_ChargePerson?.Nav_User?.ID; - var userName = userAgent != null && userAgent.AGENT_ID != null ? userAgent.Nav_Agent?.NAME : currentTeam?.Nav_ChargePerson?.Nav_User?.NAME; - //当前班组的人员 - var currentTeamUsers = shift.Nav_DepartmentSchedulingDetail; - T_FO_PRE_SHIFT_MEETING_RECORD record = new T_FO_PRE_SHIFT_MEETING_RECORD(); ; - record.ID = Guid.NewGuid(); - record.ORG_ID = filter.GetOrgId(); - record.CLASS_ID = shift.CLASS_ID; - record.DEPARTMENT_ID = shift.DEPARTMENT_ID; - record.TEAM_ID = shift.TEAM_ID; - record.USER_ID = userId; - record.MEETING_TIME = DateTime.Now.Date; - record.MONITOR_ID = userId; - record.RECORD_ID = userId; - record.START_TIME = shift.START_TIME; - record.END_TIME = shift.END_TIME; - record.NAME = dt.Date.ToString("yyyyMMdd") + currentTeam.NAME + "-" + "班前会议"; - record.DEPARTMENT_SCHEDULING_ID = shift.ID; - if (currentTeam.NAME.Contains("回水泵房")) - { - record.JOB_CONTENT = "6S清扫,清洁,设备没施巡查点检"; - record.PROTECT_MEASURE = "注意人身安全,戴好安全帽,劳动防护用品"; - record.OTHER_CONTENT = "确保外排水数据正常。设备运行正常"; - } - foreach (var person in currentTeamUsers) - { - if (person.Nav_Person.Nav_User != null && person.Nav_Person.Nav_User.ENABLE_STATUS == 0) - { - T_FO_PRE_SHIFT_MEETING_RECORD_USER rUser = new T_FO_PRE_SHIFT_MEETING_RECORD_USER(); - rUser.ORG_ID = filter.OrgId; - rUser.PRE_SHIFT_MEETING_RECORD_ID = record.ID; - rUser.USER_ID = person.Nav_Person.Nav_User.ID; - listUser.Add(rUser); + var currentTeam = shift.Nav_Team; + Guid? userId = null; + var userName = ""; + //班长删掉了去查休假表,有代理人发给代理人,没有代理人就不触发 + var charge = shift.Nav_DepartmentSchedulingDetail.FirstOrDefault(t => t.PERSON_ID == currentTeam?.CHARGE_PERSON_ID); + if (charge == null) + { + var userAgent = userVacations.FirstOrDefault(t => t.USER_ID == currentTeam?.Nav_ChargePerson?.Nav_User?.ID); + if (userAgent != null && userAgent.AGENT_ID != null) + { + userId = userAgent.AGENT_ID; + userName = userAgent.Nav_Agent?.NAME; } } - record.SHOULD_QTY = listUser.Count; - record.ACTUAL_QTY = listUser.Count; - record.LATE_QTY = 0; - record.LEAVE_QTY = 0; - record.GREETING = "班长:大家好!员工:好、很好、非常好!"; - listRecord.Add(record); - - //noticeTitles.Add(dt.Date.ToString("yyyyMMdd") + currentTeam.NAME + "-" + "班前会议"); - //noticeDataIds.Add(record.ID); - //noticeUserIds.Add(currentTeam.Nav_ChargePerson.Nav_User.ID); - //noticeUserNames.Add(currentTeam.Nav_ChargePerson.Nav_User.NAME); - - - var startTime = shift.START_TIME.AddHours(-1); - var endTime = shift.START_TIME.AddHours(1); - if (filter.OrgId.ToString() == "8b3c41aa-51b1-7ce9-1879-248a038c1b5c" && currentTeam.NAME.Contains("磨浮机修班")) - { - //startTime = shift.START_TIME.AddHours(-4); - endTime = shift.START_TIME.AddHours(2); + else + { + userId = currentTeam?.Nav_ChargePerson?.Nav_User?.ID; + userName = currentTeam?.Nav_ChargePerson?.Nav_User?.NAME; + } + //有排班或者有代理人才触发 + if (userId != null) + { + //当前班组的人员 + var currentTeamUsers = shift.Nav_DepartmentSchedulingDetail; + T_FO_PRE_SHIFT_MEETING_RECORD record = new T_FO_PRE_SHIFT_MEETING_RECORD(); ; + record.ID = Guid.NewGuid(); + record.ORG_ID = filter.GetOrgId(); + record.CLASS_ID = shift.CLASS_ID; + record.DEPARTMENT_ID = shift.DEPARTMENT_ID; + record.TEAM_ID = shift.TEAM_ID; + record.USER_ID = userId; + record.MEETING_TIME = DateTime.Now.Date; + record.MONITOR_ID = userId; + record.RECORD_ID = userId; + record.START_TIME = shift.START_TIME; + record.END_TIME = shift.END_TIME; + record.NAME = dt.Date.ToString("yyyyMMdd") + currentTeam.NAME + "-" + "班前会议"; + record.DEPARTMENT_SCHEDULING_ID = shift.ID; + if (currentTeam.NAME.Contains("回水泵房")) + { + record.JOB_CONTENT = "6S清扫,清洁,设备没施巡查点检"; + record.PROTECT_MEASURE = "注意人身安全,戴好安全帽,劳动防护用品"; + record.OTHER_CONTENT = "确保外排水数据正常。设备运行正常"; + } + foreach (var person in currentTeamUsers) + { + if (person.Nav_Person.Nav_User != null && person.Nav_Person.Nav_User.ENABLE_STATUS == 0) + { + T_FO_PRE_SHIFT_MEETING_RECORD_USER rUser = new T_FO_PRE_SHIFT_MEETING_RECORD_USER(); + rUser.ORG_ID = filter.OrgId; + rUser.PRE_SHIFT_MEETING_RECORD_ID = record.ID; + rUser.USER_ID = person.Nav_Person.Nav_User.ID; + listUser.Add(rUser); + } + } + record.SHOULD_QTY = listUser.Count; + record.ACTUAL_QTY = listUser.Count; + record.LATE_QTY = 0; + record.LEAVE_QTY = 0; + record.GREETING = "班长:大家好!员工:好、很好、非常好!"; + listRecord.Add(record); + + //noticeTitles.Add(dt.Date.ToString("yyyyMMdd") + currentTeam.NAME + "-" + "班前会议"); + //noticeDataIds.Add(record.ID); + //noticeUserIds.Add(currentTeam.Nav_ChargePerson.Nav_User.ID); + //noticeUserNames.Add(currentTeam.Nav_ChargePerson.Nav_User.NAME); + + + var startTime = shift.START_TIME.AddHours(-1); + var endTime = shift.START_TIME.AddHours(1); + if (filter.OrgId.ToString() == "8b3c41aa-51b1-7ce9-1879-248a038c1b5c" && currentTeam.NAME.Contains("磨浮机修班")) + { + //startTime = shift.START_TIME.AddHours(-4); + endTime = shift.START_TIME.AddHours(2); + } + var noticeTask = NotificationTaskService.InsertUserNoticeTaskModel(dt.Date.ToString("yyyyMMdd") + currentTeam.NAME + "-" + "班前会议", record.ID, filter.GetOrgId(), (Guid)userId, userName, startTime, endTime, (int)FMNoticeTypeEnum.消息, "FO003"); + notices.Add(noticeTask); } - var noticeTask = NotificationTaskService.InsertUserNoticeTaskModel(dt.Date.ToString("yyyyMMdd") + currentTeam.NAME + "-" + "班前会议", record.ID, filter.GetOrgId(), (Guid)userId, userName, startTime, endTime, (int)FMNoticeTypeEnum.消息, "FO003"); - notices.Add(noticeTask); } UnifiedCommit(() => { diff --git a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs index 902717b..6a579db 100644 --- a/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs +++ b/APT.MicroApi/APT.PP.WebApi/Controllers/Api/SKController.cs @@ -1644,7 +1644,7 @@ namespace APT.PP.WebApi.Controllers.Api var userPosts = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(filter.OrgId)); var baseFilter = new BaseFilter(filter.GetOrgId()); baseFilter.IgnoreDataRule = true; - baseFilter.SelectField = new string[] { "ID" }; //指定字段,包括导航属性 + baseFilter.SelectField = new string[] { "ID", "START_DATE", "END_DATE" }; //指定字段,包括导航属性 Expression> expression = i => i.END_DATE.Value.Date == DateTime.Now.Date && i.STATUS == PFStandardStatus.Archived; List planTemps = this.GetOrderEntities(expression, baseFilter, "Nav_Requires").ToList(); var planIds = planTemps.Select(t => t.ID).ToList(); @@ -1670,7 +1670,7 @@ namespace APT.PP.WebApi.Controllers.Api var libPosts = GetEntities(i => libIds.Contains(i.ENTERPRISE_LIBRARY_ID), new BaseFilter(filter.OrgId)).ToList(); var libPostIds = libPosts.Select(t => t.ID).ToList(); var libPostDetails = GetEntities(i => libPostIds.Contains(i.ENTERPRISE_LIBRARY_POST_ID), new BaseFilter(filter.OrgId)).ToList(); - if (planIds != null && planIds.Any())//&& dtNow.Hour >= 16 && dtNow.Hour <= 20 + if (planIds != null && planIds.Any() )//&& dtNow.Hour >= 16 && dtNow.Hour <= 20 { //plans.ForEach(t => t.STATUS = PFStandardStatus.Close); identitys.ForEach(m => { m.STATUS = PFStandardStatus.Close; m.END_DATE = DateTime.Now; }); @@ -5566,8 +5566,8 @@ namespace APT.PP.WebApi.Controllers.Api } if (item.CheckPost == "班组负责人") { - //判断排班//取消人员排班判断&& teamDepartIds.Contains(t.DEPARTMENT_ID) && t.PERSON_ID != null && personIds.Contains((Guid)t.PERSON_ID) - userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost); + //判断排班 + userInfo = users.FirstOrDefault(t => t.DEPARTMENT_ID == item.CheckDepartId && teamDepartIds.Contains(t.DEPARTMENT_ID) && t.PERSON_ID != null && personIds.Contains((Guid)t.PERSON_ID) && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == item.CheckPost); } if (userInfo == null && item.CheckDepartId != null && item.CheckPost != "班组负责人") { @@ -6096,7 +6096,7 @@ namespace APT.PP.WebApi.Controllers.Api { foreach (var item in contentDeparts) { - var departUsers = contentDepartUsers.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID == item.ID).Select(m => m.USER_ID).ToList(); + var departUsers = contentDepartUsers.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID == item.ID && t.USER_ID!=null).Select(m => m.USER_ID).ToList(); var departUserIds = string.Join(",", departUsers); var conFirst = contents.FirstOrDefault(t => t.ID == item.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID); var detailFirst = libraryDetails.FirstOrDefault(t => t.ID == conFirst?.ENTERPRISE_LIBRARY_DETAIL_ID); @@ -6218,7 +6218,7 @@ namespace APT.PP.WebApi.Controllers.Api } listNew.details = listDetail.GroupBy(n => new { n.RISK_AREA_ID, n.RISK_NAME, n.CHECK_CONTENTS_ID }).Select(g => g.FirstOrDefault()).OrderBy(t => t.RISK_AREA_NAME).ThenBy(m => m.RISK_NAME).ToList(); } - var depatUserIds = conDepartlist.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.POST_NAME == item.Key.POST_NAME && t.POST_ID == item.Key.POST_ID).Select(m => m.USER_ID).ToList(); + var depatUserIds = conDepartlist.Where(t => t.DEPARTMENT_ID == item.Key.DEPARTMENT_ID && t.CHECK_TYPE_ID == item.Key.CHECK_TYPE_ID && t.CHECK_TYPE == item.Key.CHECK_TYPE && t.CHECK_CYCLE == item.Key.CHECK_CYCLE && t.PRODUCTION_UNIT_ID == item.Key.PRODUCTION_UNIT_ID && t.POST_NAME == item.Key.POST_NAME && t.POST_ID == item.Key.POST_ID && t.USER_ID != null).Select(m => m.USER_ID).ToList(); var depatUserIdList = new List(); if (depatUserIds != null && depatUserIds.Any()) { @@ -6248,7 +6248,7 @@ namespace APT.PP.WebApi.Controllers.Api if (!string.IsNullOrEmpty(tem2)) { CheckListUser user = new CheckListUser(); - user.USER_ID = Guid.Parse(tem); + user.USER_ID = Guid.Parse(tem2); listUser.Add(user); } } diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIKanBanController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIKanBanController.cs index 1459835..b2a1ea8 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIKanBanController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIKanBanController.cs @@ -949,16 +949,23 @@ namespace APT.SC.WebApi.Controllers.Api.BI } //行转列 var groupList = riskTempList - .GroupBy(x => x.companyName) - .Select(g => new RiskList - { - companyName = g.Key, - majorCount = g.First(x => x.riskType == SKEvaluateLevelEnum.重大风险.GetDescription()).cnt, - largerCount = g.First(x => x.riskType == SKEvaluateLevelEnum.较大风险.GetDescription()).cnt, - generalCount = g.First(x => x.riskType == SKEvaluateLevelEnum.一般风险.GetDescription()).cnt, - lowCount = g.First(x => x.riskType == SKEvaluateLevelEnum.低风险.GetDescription()).cnt, - totalCount = g.Sum(x => x.cnt) - }).ToList(); + .GroupBy(x => x.companyName) + .Select(g => + { + // 先把当前公司的风险类型和数量转成字典,避免多次遍历分组 + var riskDict = g.ToDictionary(x => x.riskType, x => x.cnt); + + return new RiskList + { + companyName = g.Key, + majorCount = riskDict.TryGetValue(SKEvaluateLevelEnum.重大风险.GetDescription(), out var major) ? major : 0, + largerCount = riskDict.TryGetValue(SKEvaluateLevelEnum.较大风险.GetDescription(), out var larger) ? larger : 0, + generalCount = riskDict.TryGetValue(SKEvaluateLevelEnum.一般风险.GetDescription(), out var general) ? general : 0, + lowCount = riskDict.TryGetValue(SKEvaluateLevelEnum.低风险.GetDescription(), out var low) ? low : 0, + totalCount = riskDict.Sum(x => x.Value) + }; + }) + .ToList(); if (orgList != null && orgList.Any()) { foreach (var item in orgList) diff --git a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs index 485ed93..128903e 100644 --- a/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs +++ b/APT.MicroApi/APT.SC.WebApi/Controllers/Api/BIController/BIStatiscialAnalysisController.cs @@ -175,6 +175,8 @@ namespace APT.SC.WebApi.Controllers.Api.BIController public DateTime? TASK_DT { get; set; } public string NOTICE_STATUS { get; set; } public string USER_NAME { get; set; } + + public int? NUM { get; set; } } /// /// @@ -11237,6 +11239,8 @@ namespace APT.SC.WebApi.Controllers.Api.BIController var taskGroup = listAddNew.GroupBy(t => new { t.COMPANY_NAME, t.MOULD_NAME, t.FORM_NAME }).ToList(); if (taskGroup != null && taskGroup.Any()) { + //var forms = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); + //var menus = this.GetEntities(t => t.ENABLE_STATUS == 0, new BaseFilter(filter.OrgId)); foreach (var item in taskGroup) { var details = listAddNew.Where(t => t.COMPANY_NAME == item.Key.COMPANY_NAME && t.MOULD_NAME == item.Key.MOULD_NAME && t.FORM_NAME == item.Key.FORM_NAME).ToList(); @@ -11257,6 +11261,8 @@ namespace APT.SC.WebApi.Controllers.Api.BIController info.details = new List(); foreach (var de in details) { + //var formInfo = forms.FirstOrDefault(t=>t.NAME == de.FORM_NAME); + //var menuInfo = menus.FirstOrDefault(t => t.FORM_ID == formInfo?.ID); TaskViewInfoDetail dd = new TaskViewInfoDetail(); dd.COMPANY_NAME = de.COMPANY_NAME; dd.MOULD_NAME = de.MOULD_NAME; @@ -11267,8 +11273,10 @@ namespace APT.SC.WebApi.Controllers.Api.BIController dd.TASK_STARTDT = de.TASK_STARTDT; dd.TASK_ENDDT = de.TASK_ENDDT; dd.USER_NAME = de.USER_NAME; + //dd.NUM = menuInfo?.NUM; info.details.Add(dd); } + info.details = info.details.OrderBy(t => t.NUM).ToList(); } result.Data.Add(info); }