工作票审批流修改

This commit is contained in:
何美荣 2026-09-07 16:31:20 +08:00
parent c2d0982364
commit 5637cc30af

View File

@ -21,6 +21,7 @@ using Autofac.Features.Metadata;
using Castle.DynamicProxy.Generators.Emitters.SimpleAST;
using InfluxData.Net.InfluxDb.Models.Responses;
using log4net.Filter;
using Microsoft.AspNetCore.JsonPatch.Operations;
using Microsoft.AspNetCore.Mvc;
using MySqlX.XDevAPI.Common;
using Newtonsoft.Json;
@ -847,6 +848,7 @@ namespace APT.FO.WebApi.Controllers
/// <returns></returns>
private Guid? GetApproveUser(T_PF_APPROVE_TEMP_DETAIL approveTempDetail, T_FO_CRUCIAL_LICENSE_JOB entity, List<T_FM_USER> users,List<T_FM_DEPARTMENT> departs, List<T_PF_APPROVAL_ROLE> roles, Guid loginUserId)
{
var operationName = entity.APPLY_USER_ID == loginUserId ? "发起人" : "作业人员";
Guid? approveId = null;
var zbRoles = roles.FirstOrDefault(t => t.NAME.Contains("值班"));
var sdRoles = roles.Where(t => t.NAME.Contains("属地")).ToList();
@ -935,6 +937,7 @@ namespace APT.FO.WebApi.Controllers
}
else
{
var roleName = roles.FirstOrDefault(t => t.ID == approveTempDetail.APPROVE_ROLE_ID)?.NAME;
if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.Company)
{
var approveIds = users.Where(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID).Select(t => t.ID).ToList();
@ -949,8 +952,20 @@ namespace APT.FO.WebApi.Controllers
{ approveId = dep.USER_ID.Value; }
else if (dep.CHARGEUSER_ID.HasValue)
{ approveId = dep.CHARGEUSER_ID.Value; }
else
{
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
else
{
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
else
{
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
else if (approveIds.Count() == 1)
{
@ -965,9 +980,13 @@ namespace APT.FO.WebApi.Controllers
GetDepartmentId((Guid)user.DEPARTMENT_ID, ref departmentIds);
if (departmentIds.Any())
{
var dep = departs.FirstOrDefault(t => departmentIds.Contains(t.ID) && t.DEPARTMENT_TYPE != 3 && approveIds.Contains((Guid)t.CHARGEUSER_ID));
var dep = departs.FirstOrDefault(t => departmentIds.Contains(t.ID) && t.DEPARTMENT_TYPE != 5 && approveIds.Contains((Guid)t.CHARGEUSER_ID));
if (dep != null)
approveId = dep.CHARGEUSER_ID;
else
{
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
}
}
@ -1015,7 +1034,8 @@ namespace APT.FO.WebApi.Controllers
}
else
{
continue;
//continue;
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
}
@ -1045,8 +1065,9 @@ namespace APT.FO.WebApi.Controllers
break;
}
else
{
continue;
{
//continue;
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
}
@ -1076,8 +1097,9 @@ namespace APT.FO.WebApi.Controllers
break;
}
else
{
continue;
{
//continue;
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
}
@ -1107,8 +1129,9 @@ namespace APT.FO.WebApi.Controllers
break;
}
else
{
continue;
{
//continue;
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
}
@ -1139,7 +1162,8 @@ namespace APT.FO.WebApi.Controllers
}
else
{
continue;
//continue;
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
}
@ -1169,8 +1193,9 @@ namespace APT.FO.WebApi.Controllers
break;
}
else
{
continue;
{
//continue;
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
}
@ -1195,8 +1220,35 @@ namespace APT.FO.WebApi.Controllers
break;
}
else
{
//continue;
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
}
else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.Workshop && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "班组负责人")
{
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
if (temp != null)
{
approveId = temp.ID;
break;
}
else
{
var dep = departs.FirstOrDefault(t => t.ID == item);
if (dep != null && dep.DEPARTMENT_TYPE == 20)
{
continue;
if (dep.USER_ID.HasValue)
{ approveId = dep.USER_ID.Value; }
else if (dep.CHARGEUSER_ID.HasValue)
{ approveId = dep.CHARGEUSER_ID.Value; }
break;
}
else
{
//continue;
throw new Exception(operationName + "对应审批角色" + roleName + "未配置人员");
}
}
}
@ -1210,19 +1262,21 @@ namespace APT.FO.WebApi.Controllers
}
else
{
var dep = departs.FirstOrDefault(t => t.ID == item);
if (dep != null && dep.DEPARTMENT_TYPE == approveTempDetail.DEPARTMENT_TYPE)
{
if (dep.USER_ID.HasValue)
{ approveId = dep.USER_ID.Value; }
else if (dep.CHARGEUSER_ID.HasValue)
{ approveId = dep.CHARGEUSER_ID.Value; }
break;
}
else
{
continue;
}
//var dep = departs.FirstOrDefault(t => t.ID == item);
//if (dep != null && dep.DEPARTMENT_TYPE == approveTempDetail.DEPARTMENT_TYPE)
//{
// if (dep.USER_ID.HasValue)
// { approveId = dep.USER_ID.Value; }
// else if (dep.CHARGEUSER_ID.HasValue)
// { approveId = dep.CHARGEUSER_ID.Value; }
// break;
//}
//else
//{
// continue;
//}
throw new Exception(operationName + "对应审批角色"+ roleName + "未配置人员");
}
}
}
@ -1389,14 +1443,15 @@ namespace APT.FO.WebApi.Controllers
.ToList();
distinctTempDetails.ForEach(t =>
{
var roleName = roles.FirstOrDefault(m => m.ID == t.APPROVE_ROLE_ID)?.NAME;
var userList = new List<Guid?>();
userIds.ForEach(x =>
{
var userId = GetApproveUser(t,entity, users, departs, roles,(Guid)x);
var userId = GetApproveUser(t,entity, users, departs, roles,(Guid)x);
var targetUser = users.FirstOrDefault(u => u.ID == userId);
if (userId != null)
{
// 过滤userId 对应的用户必须是启用状态ENABLE_STATUS == 0
var targetUser = users.FirstOrDefault(u => u.ID == userId);
if (targetUser != null && targetUser.ENABLE_STATUS == 0)
{
var userAgent = userVacations.FirstOrDefault(v => v.USER_ID == userId);
@ -1411,6 +1466,11 @@ namespace APT.FO.WebApi.Controllers
userList.Add(detailUserAgent);
}
}
else
{
var targetName = entity.APPLY_USER_ID == x ? "发起人" : "作业人员";
throw new Exception(targetName + "对应审批角色" + roleName+ "未配置人员");
}
});
userList = userList.Distinct().ToList();
if (userList != null && userList.Any())