This commit is contained in:
何美荣 2025-10-29 18:21:22 +08:00
parent 9a7512cd6e
commit 1c2637dc3a
3 changed files with 271 additions and 137 deletions

View File

@ -1498,59 +1498,62 @@ namespace APT.BaseData.Services.Services.FM
/// <param name="taskLast">上一个审批待办</param> /// <param name="taskLast">上一个审批待办</param>
public void TaskToHead(IEnumerable<T_PF_APPROVE_DETAIL> appdetails, T_FM_NOTIFICATION_TASK taskNext, List<T_FM_NOTIFICATION_TASK> listModelNext, T_FM_NOTIFICATION_TASK taskLast) public void TaskToHead(IEnumerable<T_PF_APPROVE_DETAIL> appdetails, T_FM_NOTIFICATION_TASK taskNext, List<T_FM_NOTIFICATION_TASK> listModelNext, T_FM_NOTIFICATION_TASK taskLast)
{ {
var checkAdd = appdetails.FirstOrDefault(e => e.ISHEAD && e.IS_CURRENT); if (appdetails != null)
if (checkAdd == null) {
{ var checkAdd = appdetails.FirstOrDefault(e => e.ISHEAD && e.IS_CURRENT);
//审批的最后一步 IS_CURRENT =false if (checkAdd == null)
if (taskNext == null && (listModelNext == null || listModelNext.Count() < 1) && taskLast != null) {
{ //审批的最后一步 IS_CURRENT =false
checkAdd = appdetails.FirstOrDefault(e => e.APPROVE_USER_ID.HasValue && e.ISHEAD && e.APPROVE_USER_ID.Value == taskLast.USER_ID); if (taskNext == null && (listModelNext == null || listModelNext.Count() < 1) && taskLast != null)
if (checkAdd != null) {
{ checkAdd = appdetails.FirstOrDefault(e => e.APPROVE_USER_ID.HasValue && e.ISHEAD && e.APPROVE_USER_ID.Value == taskLast.USER_ID);
if (checkAdd.NUM != appdetails.Max(e => e.NUM)) if (checkAdd != null)
{ {
checkAdd = null; if (checkAdd.NUM != appdetails.Max(e => e.NUM))
} {
} checkAdd = null;
}
}
}
}
if (checkAdd != null)
{
var isLastDeal = false;//上一个是审批相关
if (taskLast != null)
{
var checkLast = appdetails.FirstOrDefault(e => e.ISHEAD && e.APPROVE_USER_ID.HasValue && e.APPROVE_USER_ID.Value == taskLast.USER_ID);
if (checkLast != null)
isLastDeal = true;
}
try
{
IEnumerable<T_FM_NOTIFICATION_TASK> listSync = null;
if (listModelNext != null && listModelNext.Any())
{
var userids = appdetails.Where(e => e.ISHEAD && e.IS_CURRENT && e.APPROVE_USER_ID.HasValue).Select(e => e.APPROVE_USER_ID.Value);
if (userids != null && userids.Any())
{
listSync = listModelNext.Where(e => userids.Contains(e.USER_ID));
}
}
if (isLastDeal && taskLast != null)
{
this.UpdateEntityByTenant(taskLast, HeadHelper.HeadtelnetCode);
}
if (taskNext != null)
{
this.AddEntityByTenant(taskNext, HeadHelper.HeadtelnetCode);
}
if (listSync != null && listSync.Count() > 0)
{
this.AddEntitiesByTenant(listSync, HeadHelper.HeadtelnetCode);
}
}
catch (Exception ex) { }
} }
} }
if (checkAdd != null)
{
var isLastDeal = false;//上一个是审批相关
if (taskLast != null)
{
var checkLast = appdetails.FirstOrDefault(e => e.ISHEAD && e.APPROVE_USER_ID.HasValue && e.APPROVE_USER_ID.Value == taskLast.USER_ID);
if (checkLast != null)
isLastDeal = true;
}
try
{
IEnumerable<T_FM_NOTIFICATION_TASK> listSync = null;
if (listModelNext != null && listModelNext.Any())
{
var userids = appdetails.Where(e => e.ISHEAD && e.IS_CURRENT && e.APPROVE_USER_ID.HasValue).Select(e => e.APPROVE_USER_ID.Value);
if (userids != null && userids.Any())
{
listSync = listModelNext.Where(e => userids.Contains(e.USER_ID));
}
}
if (isLastDeal && taskLast != null)
{
this.UpdateEntityByTenant(taskLast, HeadHelper.HeadtelnetCode);
}
if (taskNext != null)
{
this.AddEntityByTenant(taskNext, HeadHelper.HeadtelnetCode);
}
if (listSync != null && listSync.Count() > 0)
{
this.AddEntitiesByTenant(listSync, HeadHelper.HeadtelnetCode);
}
}
catch (Exception ex) { }
}
} }
#endregion #endregion

View File

@ -12729,10 +12729,15 @@ namespace APT.BaseData.Services.DomainServices
departIds.Add(currentDepart.ID); departIds.Add(currentDepart.ID);
if (user == null) if (user == null)
{ {
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == currentDepart.ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人")); var departUser = departs.FirstOrDefault(t => t.ID == currentDepart.ID);
if (user != null) if (departUser != null)
{ {
userId = user.ID; userId = departUser.USER_ID;
if (userId != null)
{
//currentDepart = departUser;
user = users.FirstOrDefault(t => t.ID == userId);
}
} }
} }
} }
@ -12743,10 +12748,16 @@ namespace APT.BaseData.Services.DomainServices
departIds.AddRange(classIds); departIds.AddRange(classIds);
if (user == null) if (user == null)
{ {
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == currentDepart.ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人")); //负责人
if (user != null) var departUser = departs.FirstOrDefault(t => t.ID == currentDepart.ID);
if (departUser != null)
{ {
userId = user.ID; userId = departUser.USER_ID;
if (userId != null)
{
//currentDepart = departUser;
user = users.FirstOrDefault(t => t.ID == userId);
}
} }
} }
//DepartmentService.GetDepartmentIds(entity.ORG_ID.Value, new List<Guid>() { currentDepart.ID }, ref departIds); //DepartmentService.GetDepartmentIds(entity.ORG_ID.Value, new List<Guid>() { currentDepart.ID }, ref departIds);
@ -12809,7 +12820,7 @@ namespace APT.BaseData.Services.DomainServices
} }
else else
{ {
//车间负责人 //负责人
var departUser = departs.FirstOrDefault(t => t.ID == parentId); var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null) if (departUser != null)
{ {
@ -13042,10 +13053,15 @@ namespace APT.BaseData.Services.DomainServices
departIds.AddRange(classIds); departIds.AddRange(classIds);
if (user == null) if (user == null)
{ {
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == currentDepart.ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人")); var departUser = departs.FirstOrDefault(t => t.ID == currentDepart.ID);
if (user != null) if (departUser != null)
{ {
userId = user.ID; userId = departUser.USER_ID;
if (userId != null)
{
//currentDepart = departUser;
user = users.FirstOrDefault(t => t.ID == userId);
}
} }
} }
} }
@ -13132,24 +13148,34 @@ namespace APT.BaseData.Services.DomainServices
userId = user.ID; userId = user.ID;
} }
} }
}
//当前层级安全员和负责人都找不到,找一次上级安全员和负责人
if (userId == null)
{
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID)?.PARENT_ID;
if (parentId != null)
{
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
if (user != null)
{
userId = user.ID;
}
else
{
//负责人
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null)
{
userId = departUser.USER_ID;
if (userId != null)
{
//currentDepart = departUser;
user = users.FirstOrDefault(t => t.ID == userId);
}
}
}
}
} }
//var departId = departs.FirstOrDefault(t => departIds.Contains(t.ID) && t.DEPARTMENT_TYPE == 0);
//if (departId != null)
//{
// user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId.ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
// if (user != null)
// {
// userId = user.ID;
// }
// else
// {
// user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId.ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人"));
// if (user != null)
// {
// userId = user.ID;
// }
// }
//}
} }
var requre = this.GetEntity<T_SK_REQUEST>(t => !t.IS_DELETED); var requre = this.GetEntity<T_SK_REQUEST>(t => !t.IS_DELETED);
var filter = new BaseFilter(entity.ORG_ID); var filter = new BaseFilter(entity.ORG_ID);
@ -13609,10 +13635,18 @@ namespace APT.BaseData.Services.DomainServices
departIds.AddRange(shopIds); departIds.AddRange(shopIds);
var classIds = departs.Where(t => t.PARENT_ID != null && shopIds.Contains(t.PARENT_ID.Value)).Select(t => t.ID).ToList(); var classIds = departs.Where(t => t.PARENT_ID != null && shopIds.Contains(t.PARENT_ID.Value)).Select(t => t.ID).ToList();
departIds.AddRange(classIds); departIds.AddRange(classIds);
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人")); if (user == null)
if (user != null)
{ {
userId = user.ID; var departUser = departs.FirstOrDefault(t => t.ID == currentDepart.ID);
if (departUser != null)
{
userId = departUser.USER_ID;
if (userId != null)
{
//currentDepart = departUser;
user = users.FirstOrDefault(t => t.ID == userId);
}
}
} }
} }
else if (currentDepart.DEPARTMENT_TYPE == 15) else if (currentDepart.DEPARTMENT_TYPE == 15)
@ -13633,10 +13667,15 @@ namespace APT.BaseData.Services.DomainServices
} }
else else
{ {
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole.NAME.Contains("负责人")); var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (user != null) if (departUser != null)
{ {
userId = user.ID; userId = departUser.USER_ID;
if (userId != null)
{
//currentDepart = departUser;
user = users.FirstOrDefault(t => t.ID == userId);
}
} }
} }
} }
@ -13663,10 +13702,15 @@ namespace APT.BaseData.Services.DomainServices
} }
else else
{ {
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.DEPARTMENT_ID == parentId2 && t.Nav_ApproveRole.NAME.Contains("负责人")); var departUser = departs.FirstOrDefault(t => t.ID == parentId2);
if (user != null) if (departUser != null)
{ {
userId = user.ID; userId = departUser.USER_ID;
if (userId != null)
{
//currentDepart = departUser;
user = users.FirstOrDefault(t => t.ID == userId);
}
} }
} }
} }
@ -13689,6 +13733,34 @@ namespace APT.BaseData.Services.DomainServices
} }
} }
} }
//当前层级安全员和负责人都找不到,找一次上级安全员和负责人
if (userId == null)
{
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID)?.PARENT_ID;
if (parentId != null)
{
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
if (user != null)
{
userId = user.ID;
}
else
{
//负责人
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null)
{
userId = departUser.USER_ID;
if (userId != null)
{
//currentDepart = departUser;
user = users.FirstOrDefault(t => t.ID == userId);
}
}
}
}
}
} }
var requre = this.GetEntity<T_SK_EVALUATION>(t => !t.IS_DELETED); var requre = this.GetEntity<T_SK_EVALUATION>(t => !t.IS_DELETED);
var filter = new BaseFilter(entity.ORG_ID); var filter = new BaseFilter(entity.ORG_ID);

View File

@ -1,51 +1,52 @@
using APT.BaseData.Domain.Entities.FM; using APT.BaseData.Domain.ApiModel;
using APT.BaseData.Domain.IServices.FM;
using APT.BaseData.Domain.IServices;
using APT.Infrastructure.Core;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using APT.WebApi.Models;
using System;
using System.Collections.Generic;
using APT.MS.Domain.Entities.SK;
using APT.MS.Domain.Enums.SK;
using APT.MS.Domain.Enums;
using APT.MS.Domain.Entities.SC.PT;
using System.Linq;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.Entities; using APT.BaseData.Domain.Entities;
using APT.BaseData.Domain.Entities.FM;
using APT.BaseData.Domain.Enums;
using APT.BaseData.Domain.Enums.PF; using APT.BaseData.Domain.Enums.PF;
using APT.BaseData.Domain.ApiModel; using APT.BaseData.Domain.IServices;
using NPOI.SS.Formula.Functions; using APT.BaseData.Domain.IServices.FM;
using System.Threading.Tasks; using APT.Infrastructure.Core;
using static Microsoft.AspNetCore.Razor.Language.TagHelperMetadata; using APT.MS.Domain.Entities.BS;
using log4net.Filter; using APT.MS.Domain.Entities.LR;
using Microsoft.Extensions.DependencyModel; using APT.MS.Domain.Entities.SC.PT;
using NPOI.Util; using APT.MS.Domain.Entities.SK;
using System.Numerics; using APT.MS.Domain.Enums;
using APT.MS.Domain.Enums.SK;
using APT.Utility;
using APT.WebApi.Models;
using IdentityModel; using IdentityModel;
using InfluxData.Net.InfluxDb.Models.Responses; using InfluxData.Net.InfluxDb.Models.Responses;
using NPOI.POIFS.FileSystem; using log4net.Filter;
using System.Security.Principal;
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Http;
using APT.MS.Domain.Entities.BS; using Microsoft.AspNetCore.Mvc;
using Org.BouncyCastle.Utilities; using Microsoft.Extensions.DependencyModel;
using System.Reflection.Metadata;
using MySqlX.XDevAPI.Common;
using System.Collections.Immutable;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Asn1.Tsp;
using System.Runtime.Intrinsics.X86;
using static Google.Protobuf.WireFormat;
using NPOI.HSSF.UserModel;
using System.Runtime.Intrinsics.Arm;
using APT.MS.Domain.Entities.LR;
using System.Linq.Expressions;
using System.Security.Policy;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using System.Security.Cryptography;
using System.Collections;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using MySqlX.XDevAPI.Common;
using NPOI.HSSF.UserModel;
using NPOI.POIFS.FileSystem;
using NPOI.POIFS.Properties;
using NPOI.SS.Formula.Functions;
using NPOI.Util;
using Org.BouncyCastle.Asn1.Tsp;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Utilities;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Linq.Expressions;
using System.Numerics;
using System.Reflection.Metadata;
using System.Runtime.Intrinsics.Arm;
using System.Runtime.Intrinsics.X86;
using System.Security.Cryptography;
using System.Security.Policy;
using System.Security.Principal;
using System.Threading.Tasks;
using static Google.Protobuf.WireFormat;
using static Microsoft.AspNetCore.Razor.Language.TagHelperMetadata;
namespace APT.PP.WebApi.Controllers.Api namespace APT.PP.WebApi.Controllers.Api
{ {
@ -1481,7 +1482,8 @@ namespace APT.PP.WebApi.Controllers.Api
List<T_SK_IDENTIFY_EVALUATION_PLAN> planTemps = this.GetOrderEntities(expression, baseFilter).ToList(); List<T_SK_IDENTIFY_EVALUATION_PLAN> planTemps = this.GetOrderEntities(expression, baseFilter).ToList();
var planIds = planTemps.Select(t => t.ID).ToList(); var planIds = planTemps.Select(t => t.ID).ToList();
var newFilter = new BaseFilter(filter.GetOrgId()); var newFilter = new BaseFilter(filter.GetOrgId());
newFilter.IgnoreDataRule = true; newFilter.IgnoreDataRule = true;
baseFilter.SelectField = new string[] { "ID", "IDENTIFY_EVALUATION_PLAN_ID", "STATUS", "APPLY_DEPARTMENT_ID", "APPLY_USER_ID", "CONTENTS" }; //指定字段,包括导航属性
Expression<Func<T_SK_RISK_IDENTIFY_RESULT, bool>> expressionTemp = i => planIds.Contains((Guid)i.IDENTIFY_EVALUATION_PLAN_ID); Expression<Func<T_SK_RISK_IDENTIFY_RESULT, bool>> expressionTemp = i => planIds.Contains((Guid)i.IDENTIFY_EVALUATION_PLAN_ID);
List<T_SK_RISK_IDENTIFY_RESULT> identityResults = this.GetOrderEntities(expressionTemp, newFilter).ToList(); List<T_SK_RISK_IDENTIFY_RESULT> identityResults = this.GetOrderEntities(expressionTemp, newFilter).ToList();
Expression<Func<T_SK_RISK_IDENTIFY, bool>> newexpression = i => planIds.Contains((Guid)i.IDENTIFY_EVALUATION_PLAN_ID); Expression<Func<T_SK_RISK_IDENTIFY, bool>> newexpression = i => planIds.Contains((Guid)i.IDENTIFY_EVALUATION_PLAN_ID);
@ -1505,13 +1507,15 @@ namespace APT.PP.WebApi.Controllers.Api
var ides = identityTemps.Where(t => t.IDENTIFY_EVALUATION_PLAN_ID == plan).ToList(); var ides = identityTemps.Where(t => t.IDENTIFY_EVALUATION_PLAN_ID == plan).ToList();
if (ides.Any()) if (ides.Any())
{ {
var applyDepIds = ides.Select(t => t.APPLY_DEPARTMENT_ID).Distinct().ToList();
//找出所有职能部门 //找出所有职能部门
var departListIds = new List<Guid>(); var departListIds = new List<Guid>();
//公司默认职能部门 //公司默认职能部门
var company = departs.FirstOrDefault(t => t.PARENT_ID == null); var company = departs.FirstOrDefault(t => t.PARENT_ID == null);
departListIds.Add(company.ID); departListIds.Add(company.ID);
var tempids = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(m => m.ID).ToList(); var tempids = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(m => m.ID).ToList();
departListIds.AddRange(tempids); departListIds.AddRange(tempids);
departListIds = departListIds.Where(t=> applyDepIds.Contains(t)).Distinct().ToList();
//职能口统一汇总给安环部安全员 //职能口统一汇总给安环部安全员
if (departListIds.Any()) if (departListIds.Any())
{ {
@ -1532,12 +1536,12 @@ namespace APT.PP.WebApi.Controllers.Api
result.ORG_ID = filter.OrgId; result.ORG_ID = filter.OrgId;
result.APPLY_DEPARTMENT_ID = user?.DEPARTMENT_ID; result.APPLY_DEPARTMENT_ID = user?.DEPARTMENT_ID;
result.APPLY_USER_ID = user.ID; result.APPLY_USER_ID = user.ID;
result.IDENTIFY_ID = deTemp.ID; result.IDENTIFY_ID = deTemp?.ID;
result.IDENTIFY_EVALUATION_PLAN_ID = plan; result.IDENTIFY_EVALUATION_PLAN_ID = plan;
result.YEAR = DateTime.Now.Year.ToString(); result.YEAR = DateTime.Now.Year.ToString();
result.ISAUTO = true; result.ISAUTO = true;
result.ISCOMPANY = SKIsStoreEnum.Yes; result.ISCOMPANY = SKIsStoreEnum.Yes;
result.CONTENTS = deTemp.CONTENTS; result.CONTENTS = deTemp?.CONTENTS;
result.START_DATE = DateTime.Now; result.START_DATE = DateTime.Now;
result.END_DATE = DateTime.Now; result.END_DATE = DateTime.Now;
result.REQUIRE_ID = requre?.ID; result.REQUIRE_ID = requre?.ID;
@ -1629,7 +1633,8 @@ namespace APT.PP.WebApi.Controllers.Api
} }
} }
//非职能口 //非职能口
var departIds = ides.Where(m => !departListIds.Contains((Guid)m.APPLY_DEPARTMENT_ID)).Select(t => t.APPLY_DEPARTMENT_ID).Distinct().ToList(); var departIds = ides.Where(m => !departListIds.Contains((Guid)m.APPLY_DEPARTMENT_ID)).Select(t => t.APPLY_DEPARTMENT_ID).Distinct().ToList();
departIds = departIds.Where(t => applyDepIds.Contains(t)).Distinct().ToList();
if (departIds.Any()) if (departIds.Any())
{ {
//部门级给部门安全员 //部门级给部门安全员
@ -1644,8 +1649,35 @@ namespace APT.PP.WebApi.Controllers.Api
{ {
var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == de && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员")); var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == de && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
if (user == null) if (user == null)
{ {
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == de && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人")); //负责人
var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID;
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null && departUser.USER_ID != null)
{
user = users.FirstOrDefault(t => t.ID == departUser.USER_ID);
}
}
//当前层级安全员和负责人都找不到,找一次上级安全员和负责人
if (user == null)
{
var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID;
if (parentId != null)
{
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
if (user == null)
{
//负责人
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null)
{
if (departUser.USER_ID != null)
{
user = users.FirstOrDefault(t => t.ID == departUser.USER_ID);
}
}
}
}
} }
if (user != null) if (user != null)
{ {
@ -1777,8 +1809,35 @@ namespace APT.PP.WebApi.Controllers.Api
{ {
var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == de && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员")); var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == de && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
if (user == null) if (user == null)
{ {
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == de && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人")); //负责人
var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID;
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null && departUser.USER_ID!=null)
{
user = users.FirstOrDefault(t => t.ID == departUser.USER_ID);
}
}
//当前层级安全员和负责人都找不到,找一次上级安全员和负责人
if (user == null)
{
var parentId = departs.FirstOrDefault(t => t.ID == de)?.PARENT_ID;
if (parentId != null)
{
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
if (user == null)
{
//负责人
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
if (departUser != null)
{
if (departUser.USER_ID != null)
{
user = users.FirstOrDefault(t => t.ID == departUser.USER_ID);
}
}
}
}
} }
if (user != null) if (user != null)
{ {