fix(ClientModule): 客户列表不能翻页报错 客户端查询服务中的空引用异常

- 添加auditLog空值检查避免NullReferenceException
- 为开户审批和其他审批流程分别处理不同的流程列表
- 添加错误日志记录以便调试auditLog为空的情况
- 当auditLog为空时按一般审批流程处理以确保功能正常运行
This commit is contained in:
hjhan
2026-02-06 16:30:06 +08:00
parent e5f3d6d11d
commit 1ab74826aa
@@ -1,4 +1,4 @@
using Autofac.Features.Indexed;
using Autofac.Features.Indexed;
using Autofac.Features.OwnedInstances;
using BaseOUDAL;
using ClosedXML;
@@ -452,12 +452,23 @@ namespace YLErp.Modules.ClientModule
clientLinq.ApprovalRole = roles.Where(x => x.Id == clientLinq.ProcessRoleId)?.FirstOrDefault()?.Name;
if (clientLinq.ApprovalStatus == "审批中")
{
if (clientLinq.auditLog.OptType.Contains("开户审批"))
// 添加空值检查并记录日志
if (clientLinq.auditLog != null)
{
clientLinq.ApprovalStatus = GetApprovalStatus(openProcessList.ToList(), clientLinq.ApprovalStatus, clientLinq.ApprovalOrderId, clientLinq.ProcessOrderBranch);
if (clientLinq.auditLog.OptType.Contains("开户审批"))
{
clientLinq.ApprovalStatus = GetApprovalStatus(openProcessList.ToList(), clientLinq.ApprovalStatus, clientLinq.ApprovalOrderId, clientLinq.ProcessOrderBranch);
}
else
{
clientLinq.ApprovalStatus = GetApprovalStatus(clientProcessList.ToList(), clientLinq.ApprovalStatus, clientLinq.ApprovalOrderId, clientLinq.ProcessOrderBranch);
}
}
else
{
// 记录auditLog为空的情况,便于后续调试
LogFactory.GetLogger("ClientQueryService").Error("ClientQueryService.SearchList: auditLog is null for client id: " + clientLinq.id + ", ApprovalOrderId: " + clientLinq.ApprovalOrderId + ", ProcessOrderBranch: " + clientLinq.ProcessOrderBranch + ", ApprovalStatus: " + clientLinq.ApprovalStatus);
// 当auditLog为空时,无法判断是否为开户审批,按一般审批流程处理
clientLinq.ApprovalStatus = GetApprovalStatus(clientProcessList.ToList(), clientLinq.ApprovalStatus, clientLinq.ApprovalOrderId, clientLinq.ProcessOrderBranch);
}
}