自测问题修复

This commit is contained in:
何美荣 2024-02-18 11:45:45 +08:00
parent 722f55910a
commit 3fc746f65e
4 changed files with 215 additions and 223 deletions

View File

@ -445,15 +445,17 @@ namespace APT.BaseData.Services.Services.FM
}); });
var loginUser = users.FirstOrDefault(t => t.ID == loginUserId); var loginUser = users.FirstOrDefault(t => t.ID == loginUserId);
var departUser = this.GetEntity<T_FM_DEPARTMENT>(t => (t.USER_ID == loginUserId || t.CHARGEUSER_ID == loginUserId) && (t.NAME.Contains("安全环保") || t.NAME.Contains("安环部"))); var departUser = this.GetEntity<T_FM_DEPARTMENT>(t => (t.USER_ID == loginUserId || t.CHARGEUSER_ID == loginUserId) && (t.NAME.Contains("安全环保") || t.NAME.Contains("安环部")));
if (departUser != null || (loginUser.Nav_ApproveRole!=null &&loginUser.Nav_ApproveRole.NAME.Contains("安环部负责人"))) if (departUser != null || (loginUser.Nav_ApproveRole != null && loginUser.Nav_ApproveRole.NAME.Contains("安环部负责人")) || (loginUser.Nav_ApproveRole != null && loginUser.Nav_ApproveRole.NAME.Contains("安环部安全员")))
{ {
var tempSafe = appdetails.FirstOrDefault(m => m.Nav_ApproveRole!=null && m.Nav_ApproveRole.NAME.Contains("安环部安全员")); var tempSafeD = appdetails.FirstOrDefault(m => m.Nav_ApproveRole != null && m.Nav_ApproveRole.NAME.Contains("部门安全员"));
if (tempSafe != null) var tempSafe = appdetails.FirstOrDefault(m => m.Nav_ApproveRole != null && m.Nav_ApproveRole.NAME.Contains("安环部安全员"));
if (tempSafe != null && tempSafeD != null && appdetails.Count() > 1 && tempSafeD.APPROVE_USER_ID == tempSafe.APPROVE_USER_ID)
{ {
appdetails.Remove(tempSafe); appdetails.Remove(tempSafe);
} }
var tempChargeD = appdetails.FirstOrDefault(m => m.Nav_ApproveRole != null && m.Nav_ApproveRole.NAME.Contains("部门负责人"));
var tempCharge = appdetails.FirstOrDefault(m => m.Nav_ApproveRole != null && m.Nav_ApproveRole.NAME.Contains("安环部负责人")); var tempCharge = appdetails.FirstOrDefault(m => m.Nav_ApproveRole != null && m.Nav_ApproveRole.NAME.Contains("安环部负责人"));
if (tempCharge != null) if (tempCharge != null && tempChargeD != null && appdetails.Count() > 1 && tempChargeD.APPROVE_USER_ID == tempCharge.APPROVE_USER_ID)
{ {
appdetails.Remove(tempCharge); appdetails.Remove(tempCharge);
} }
@ -1437,12 +1439,12 @@ namespace APT.BaseData.Services.Services.FM
Guid? approveId = null; Guid? approveId = null;
if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.) if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.)
{ {
var approveIds= users.Where(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID).Select(t=>t.ID).ToList(); var approveIds = users.Where(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID).Select(t => t.ID).ToList();
if (approveIds.Count() == 0) if (approveIds.Count() == 0)
{ {
if (approveTempDetail.Nav_ApproveRole.NAME == "安环部负责人") if (approveTempDetail.Nav_ApproveRole.NAME == "安环部负责人")
{ {
var dep = GetEntity<T_FM_DEPARTMENT>(t=>(t.NAME.Contains("安全环保")|| t.NAME.Contains("安环部")) && t.DEPARTMENT_TYPE == 0 && t.ENABLE_STATUS == 0); var dep = GetEntity<T_FM_DEPARTMENT>(t => (t.NAME.Contains("安全环保") || t.NAME.Contains("安环部")) && t.DEPARTMENT_TYPE == 0 && t.ENABLE_STATUS == 0);
if (dep != null) if (dep != null)
{ {
if (dep.USER_ID.HasValue) if (dep.USER_ID.HasValue)
@ -1465,8 +1467,8 @@ namespace APT.BaseData.Services.Services.FM
GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds); GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds);
if (departmentIds.Any()) if (departmentIds.Any())
{ {
var dep = GetEntity<T_FM_DEPARTMENT>(t=> departmentIds.Contains(t.ID) && t.DEPARTMENT_TYPE != 3 && approveIds.Contains((Guid)t.CHARGEUSER_ID)); var dep = GetEntity<T_FM_DEPARTMENT>(t => departmentIds.Contains(t.ID) && t.DEPARTMENT_TYPE != 3 && approveIds.Contains((Guid)t.CHARGEUSER_ID));
if(dep !=null) if (dep != null)
approveId = dep.CHARGEUSER_ID; approveId = dep.CHARGEUSER_ID;
} }
} }
@ -1481,6 +1483,8 @@ namespace APT.BaseData.Services.Services.FM
GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds); GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds);
if (departmentIds.Any()) if (departmentIds.Any())
{ {
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部负责人");
var chargeSafe = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部安全员");
foreach (var item in departmentIds) foreach (var item in departmentIds)
{ {
var userTemp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item); var userTemp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
@ -1488,21 +1492,18 @@ namespace APT.BaseData.Services.Services.FM
{ {
if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门负责人") if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门负责人")
{ {
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部负责人");
if (charge != null) if (charge != null)
{ {
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && x.DEPARTMENT_ID == item);
if (temp == null) if (temp == null)
{ {
var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
if (temp2 != null) if (temp2 != null)
{ {
approveId = temp2.ID; approveId = temp2.ID;
break; break;
} }
else else
{
if (user.DEPARTMENT_ID.HasValue)
{ {
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value); var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
if (dep != null) if (dep != null)
@ -1514,9 +1515,6 @@ namespace APT.BaseData.Services.Services.FM
break; break;
} }
} }
else
continue;
}
} }
else else
{ {
@ -1525,32 +1523,18 @@ namespace APT.BaseData.Services.Services.FM
} }
} }
else else
{
var departInfo=this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == user.DEPARTMENT_ID);
if (departInfo != null)
{
if (departInfo.USER_ID != null)
{ approveId = departInfo.USER_ID; }
else if (departInfo.CHARGEUSER_ID != null)
{ approveId = departInfo.CHARGEUSER_ID; }
else
{ continue; }
}
else
{ {
continue; continue;
} }
} }
}
else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门安全员") else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门安全员")
{ {
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部安全员"); if (chargeSafe != null)
if (charge != null)
{ {
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == chargeSafe.ID && x.DEPARTMENT_ID == item);
if (temp == null) if (temp == null)
{ {
var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
if (temp2 != null) if (temp2 != null)
{ {
approveId = temp2.ID; approveId = temp2.ID;
@ -1558,19 +1542,6 @@ namespace APT.BaseData.Services.Services.FM
} }
else else
{ {
if (user.DEPARTMENT_ID.HasValue)
{
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
if (dep != null)
{
if (dep.USER_ID.HasValue)
{ approveId = dep.USER_ID.Value; }
else if (dep.CHARGEUSER_ID.HasValue)
{ approveId = dep.CHARGEUSER_ID.Value; }
break;
}
}
else
continue; continue;
} }
} }
@ -1582,40 +1553,14 @@ namespace APT.BaseData.Services.Services.FM
} }
else else
{ {
var departInfo = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == user.DEPARTMENT_ID); continue;
if (departInfo != null) }
{
if (departInfo.USER_ID != null)
{ approveId = departInfo.USER_ID; }
else if (departInfo.CHARGEUSER_ID != null)
{ approveId = departInfo.CHARGEUSER_ID; }
else
{ continue; }
} }
else else
{ {
continue; continue;
} }
} }
}
else
{
var departInfo = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == user.DEPARTMENT_ID);
if (departInfo != null)
{
if (departInfo.USER_ID != null)
{ approveId = departInfo.USER_ID; }
else if (departInfo.CHARGEUSER_ID != null)
{ approveId = departInfo.CHARGEUSER_ID; }
else
{ continue; }
}
else
{
continue;
}
}
}
else else
{ {
approveId = userTemp?.ID; approveId = userTemp?.ID;
@ -1627,7 +1572,6 @@ namespace APT.BaseData.Services.Services.FM
} }
return approveId; return approveId;
} }
/// <summary> /// <summary>
/// 根据部门树查找审核人 /// 根据部门树查找审核人
/// </summary> /// </summary>

View File

@ -591,7 +591,18 @@ namespace APT.FO.WebApi.Controllers
var mineType = APT.Infrastructure.Api.AppContext.CurrentSession.MineType; var mineType = APT.Infrastructure.Api.AppContext.CurrentSession.MineType;
var tempList = mineType.Split(",").ToList(); var tempList = mineType.Split(",").ToList();
Expression<Func<T_HM_OPERATION_STEP, bool>> expressionStep = e => !e.IS_DELETED && e.STATUS == STATUSEnum.; Expression<Func<T_HM_OPERATION_STEP, bool>> expressionStep = e => !e.IS_DELETED && e.STATUS == STATUSEnum.;
Expression<Func<T_HM_OPERATION_LINK, bool>> expressionLink = t => !t.IS_DELETED && t.STATUS == (int)STATUSEnum. && tempList.Contains(t.MineType.ToString()); Expression<Func<T_HM_OPERATION_LINK, bool>> expressionLink = t => !t.IS_DELETED && t.STATUS == (int)STATUSEnum.;
if (tempList != null && tempList.Any())
{
bool isExsis = false;
foreach (var temp in tempList)
{
if (!string.IsNullOrEmpty(temp))
isExsis = true;
}
if (isExsis)
expressionLink = expressionLink.And(t => tempList.Contains(t.MineType.ToString()));
}
var operationLink = this.GetEntities<T_HM_OPERATION_LINK>(expressionLink, new BaseFilter(pageFilter.OrgId)).Select(t => t.OPERATION_STEP_ID).Distinct().ToList(); var operationLink = this.GetEntities<T_HM_OPERATION_LINK>(expressionLink, new BaseFilter(pageFilter.OrgId)).Select(t => t.OPERATION_STEP_ID).Distinct().ToList();
expressionStep = expressionStep.And(e => operationLink.Contains(e.ID)); expressionStep = expressionStep.And(e => operationLink.Contains(e.ID));
var info = this.GetOrderEntities<T_HM_OPERATION_STEP>(expressionStep, pageFilter, null); var info = this.GetOrderEntities<T_HM_OPERATION_STEP>(expressionStep, pageFilter, null);
@ -613,7 +624,18 @@ namespace APT.FO.WebApi.Controllers
var mineType = APT.Infrastructure.Api.AppContext.CurrentSession.MineType; var mineType = APT.Infrastructure.Api.AppContext.CurrentSession.MineType;
var tempList = mineType.Split(",").ToList(); var tempList = mineType.Split(",").ToList();
Expression<Func<T_HM_OPERATION_STEP, bool>> expressionStep = e => !e.IS_DELETED && e.STATUS == STATUSEnum.; Expression<Func<T_HM_OPERATION_STEP, bool>> expressionStep = e => !e.IS_DELETED && e.STATUS == STATUSEnum.;
Expression<Func<T_HM_OPERATION_LINK, bool>> expressionLink = t => !t.IS_DELETED && t.STATUS == (int)STATUSEnum. && tempList.Contains(t.MineType.ToString()); Expression<Func<T_HM_OPERATION_LINK, bool>> expressionLink = t => !t.IS_DELETED && t.STATUS == (int)STATUSEnum.;
if (tempList != null && tempList.Any())
{
bool isExsis = false;
foreach (var temp in tempList)
{
if (!string.IsNullOrEmpty(temp))
isExsis = true;
}
if(isExsis)
expressionLink = expressionLink.And(t => tempList.Contains(t.MineType.ToString()));
}
var operationLink = this.GetEntities<T_HM_OPERATION_LINK>(expressionLink, new BaseFilter(pageFilter.OrgId)).Select(t=>t.OPERATION_STEP_ID).Distinct().ToList(); var operationLink = this.GetEntities<T_HM_OPERATION_LINK>(expressionLink, new BaseFilter(pageFilter.OrgId)).Select(t=>t.OPERATION_STEP_ID).Distinct().ToList();
expressionStep = expressionStep.And(e => operationLink.Contains(e.ID)); expressionStep = expressionStep.And(e => operationLink.Contains(e.ID));
var info = this.GetOrderPageEntities<T_HM_OPERATION_STEP>(expressionStep, pageFilter, null); var info = this.GetOrderPageEntities<T_HM_OPERATION_STEP>(expressionStep, pageFilter, null);
@ -881,7 +903,21 @@ namespace APT.FO.WebApi.Controllers
if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.) if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.)
{ {
var approveIds = users.Where(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID).Select(t => t.ID).ToList(); var approveIds = users.Where(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID).Select(t => t.ID).ToList();
if (approveIds.Count() == 1) if (approveIds.Count() == 0)
{
if (approveTempDetail.Nav_ApproveRole.NAME == "安环部负责人")
{
var dep = GetEntity<T_FM_DEPARTMENT>(t => (t.NAME.Contains("安全环保") || t.NAME.Contains("安环部")) && t.DEPARTMENT_TYPE == 0 && t.ENABLE_STATUS == 0);
if (dep != null)
{
if (dep.USER_ID.HasValue)
{ approveId = dep.USER_ID.Value; }
else if (dep.CHARGEUSER_ID.HasValue)
{ approveId = dep.CHARGEUSER_ID.Value; }
}
}
}
else if (approveIds.Count() == 1)
{ {
approveId = approveIds.FirstOrDefault(); approveId = approveIds.FirstOrDefault();
} }
@ -910,6 +946,8 @@ namespace APT.FO.WebApi.Controllers
GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds); GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds);
if (departmentIds.Any()) if (departmentIds.Any())
{ {
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部负责人");
var chargeSafe = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部安全员");
foreach (var item in departmentIds) foreach (var item in departmentIds)
{ {
var userTemp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item); var userTemp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
@ -917,21 +955,18 @@ namespace APT.FO.WebApi.Controllers
{ {
if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门负责人") if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门负责人")
{ {
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部负责人");
if (charge != null) if (charge != null)
{ {
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && x.DEPARTMENT_ID == item);
if (temp == null) if (temp == null)
{ {
var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
if (temp2 != null) if (temp2 != null)
{ {
approveId = temp2.ID; approveId = temp2.ID;
break; break;
} }
else else
{
if (user.DEPARTMENT_ID.HasValue)
{ {
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value); var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
if (dep != null) if (dep != null)
@ -943,9 +978,6 @@ namespace APT.FO.WebApi.Controllers
break; break;
} }
} }
else
continue;
}
} }
else else
{ {
@ -954,32 +986,18 @@ namespace APT.FO.WebApi.Controllers
} }
} }
else else
{
var departInfo = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == user.DEPARTMENT_ID);
if (departInfo != null)
{
if (departInfo.USER_ID != null)
{ approveId = departInfo.USER_ID; }
else if (departInfo.CHARGEUSER_ID != null)
{ approveId = departInfo.CHARGEUSER_ID; }
else
{ continue; }
}
else
{ {
continue; continue;
} }
} }
}
else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门安全员") else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门安全员")
{ {
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部安全员"); if (chargeSafe != null)
if (charge != null)
{ {
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == chargeSafe.ID && x.DEPARTMENT_ID == item);
if (temp == null) if (temp == null)
{ {
var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
if (temp2 != null) if (temp2 != null)
{ {
approveId = temp2.ID; approveId = temp2.ID;
@ -987,19 +1005,6 @@ namespace APT.FO.WebApi.Controllers
} }
else else
{ {
if (user.DEPARTMENT_ID.HasValue)
{
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
if (dep != null)
{
if (dep.USER_ID.HasValue)
{ approveId = dep.USER_ID.Value; }
else if (dep.CHARGEUSER_ID.HasValue)
{ approveId = dep.CHARGEUSER_ID.Value; }
break;
}
}
else
continue; continue;
} }
} }
@ -1011,40 +1016,14 @@ namespace APT.FO.WebApi.Controllers
} }
else else
{ {
var departInfo = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == user.DEPARTMENT_ID); continue;
if (departInfo != null) }
{
if (departInfo.USER_ID != null)
{ approveId = departInfo.USER_ID; }
else if (departInfo.CHARGEUSER_ID != null)
{ approveId = departInfo.CHARGEUSER_ID; }
else
{ continue; }
} }
else else
{ {
continue; continue;
} }
} }
}
else
{
var departInfo = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == user.DEPARTMENT_ID);
if (departInfo != null)
{
if (departInfo.USER_ID != null)
{ approveId = departInfo.USER_ID; }
else if (departInfo.CHARGEUSER_ID != null)
{ approveId = departInfo.CHARGEUSER_ID; }
else
{ continue; }
}
else
{
continue;
}
}
}
else else
{ {
approveId = userTemp?.ID; approveId = userTemp?.ID;

View File

@ -389,7 +389,26 @@ namespace APT.FO.WebApi.Controllers
{ {
Guid? approveId = null; Guid? approveId = null;
if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.) if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.)
approveId = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID)?.ID; {
var approveIds = users.Where(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID).Select(t => t.ID).ToList();
if (approveIds.Count() == 0)
{
if (approveTempDetail.Nav_ApproveRole.NAME == "安环部负责人")
{
var dep = GetEntity<T_FM_DEPARTMENT>(t => (t.NAME.Contains("安全环保") || t.NAME.Contains("安环部")) && t.DEPARTMENT_TYPE == 0 && t.ENABLE_STATUS == 0);
if (dep != null)
{
if (dep.USER_ID.HasValue)
{ approveId = dep.USER_ID.Value; }
else if (dep.CHARGEUSER_ID.HasValue)
{ approveId = dep.CHARGEUSER_ID.Value; }
}
}
}
else if (approveIds.Count() == 1)
{
approveId = approveIds.FirstOrDefault();
}
else else
{ {
var user = users.FirstOrDefault(t => t.ID == loginUserId); var user = users.FirstOrDefault(t => t.ID == loginUserId);
@ -399,6 +418,24 @@ namespace APT.FO.WebApi.Controllers
GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds); GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds);
if (departmentIds.Any()) if (departmentIds.Any())
{ {
var dep = GetEntity<T_FM_DEPARTMENT>(t => departmentIds.Contains(t.ID) && t.DEPARTMENT_TYPE != 3 && approveIds.Contains((Guid)t.CHARGEUSER_ID));
if (dep != null)
approveId = dep.CHARGEUSER_ID;
}
}
}
}
else
{
var user = users.FirstOrDefault(t => t.ID == loginUserId);
if (user.DEPARTMENT_ID != null)
{
List<Guid> departmentIds = new List<Guid>();
GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds);
if (departmentIds.Any())
{
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部负责人");
var chargeSafe = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部安全员");
foreach (var item in departmentIds) foreach (var item in departmentIds)
{ {
var userTemp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item); var userTemp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
@ -406,12 +443,30 @@ namespace APT.FO.WebApi.Controllers
{ {
if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门负责人") if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门负责人")
{ {
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部负责人");
if (charge != null) if (charge != null)
{ {
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && x.DEPARTMENT_ID == item);
if (temp == null) if (temp == null)
continue; {
var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
if (temp2 != null)
{
approveId = temp2.ID;
break;
}
else
{
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
if (dep != null)
{
if (dep.USER_ID.HasValue)
{ approveId = dep.USER_ID.Value; }
else if (dep.CHARGEUSER_ID.HasValue)
{ approveId = dep.CHARGEUSER_ID.Value; }
break;
}
}
}
else else
{ {
approveId = temp?.ID; approveId = temp?.ID;
@ -419,16 +474,28 @@ namespace APT.FO.WebApi.Controllers
} }
} }
else else
{
continue; continue;
} }
}
else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门安全员") else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType. && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门安全员")
{ {
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部安全员"); if (chargeSafe != null)
if (charge != null)
{ {
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && departmentIds.Contains((Guid)x.DEPARTMENT_ID)); var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == chargeSafe.ID && x.DEPARTMENT_ID == item);
if (temp == null) if (temp == null)
{
var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
if (temp2 != null)
{
approveId = temp2.ID;
break;
}
else
{
continue; continue;
}
}
else else
{ {
approveId = temp?.ID; approveId = temp?.ID;
@ -436,8 +503,10 @@ namespace APT.FO.WebApi.Controllers
} }
} }
else else
{
continue; continue;
} }
}
else else
{ {
continue; continue;

View File

@ -31,7 +31,7 @@ namespace APT.HM.WebApi.Controllers.Api
{ {
return SafeExecute(() => return SafeExecute(() =>
{ {
var history = this.GetEntity<T_HM_OPERATION_LINK>(t => t.OPERATION_STEP_ID == entity.OPERATION_STEP_ID, "Nav_OperationStep"); var history = this.GetEntity<T_HM_OPERATION_LINK>(t => t.OPERATION_STEP_ID == entity.OPERATION_STEP_ID && t.ID != entity.ID, "Nav_OperationStep");
if (history != null) if (history != null)
throw new Exception("已存在名为"+ history.Nav_OperationStep.NAME+"的数据,请修改作业名称"); throw new Exception("已存在名为"+ history.Nav_OperationStep.NAME+"的数据,请修改作业名称");
var details = entity.Nav_LinkPost; var details = entity.Nav_LinkPost;