查询支持多工号

This commit is contained in:
2026-10-21 11:20:02 +08:00
parent 473dc2820c
commit 5c72116981

View File

@@ -654,6 +654,32 @@ public class DeviceUploadLogService : IDeviceUploadLogService
var isNormalSearch = !userTypes.Contains(GainfoUserTypeEnumType.Outsource);
var isOutsourceSearch = userTypes.Contains(GainfoUserTypeEnumType.Outsource);
List<string> searchs = null;
if (request.Search.IsPresent())
{
if (request.Search.IndexOf(",") != -1 || request.Search.IndexOf(",") != -1)
{
searchs = request.Search.Replace(",", ",").Split(",", StringSplitOptions.None).ToList();
}
else
{
searchs = new List<string>() { request.Search };
}
}
List<string> userCodes = null;
if (request.UserCode.IsPresent())
{
if (request.UserCode.IndexOf(",") != -1 || request.UserCode.IndexOf(",") != -1)
{
userCodes = request.UserCode.Replace(",", ",").Split(",", StringSplitOptions.None).ToList();
}
else
{
userCodes = new List<string>() { request.UserCode };
}
}
var r = await table
.LeftJoin<DeviceEntity>((x, device) => x.DeviceUniqueNo == device.UniqueNo)
@@ -663,13 +689,13 @@ public class DeviceUploadLogService : IDeviceUploadLogService
.Where(x => x.RaiseDateTime >= request.SearchDateTimePeriod.Start && x.RaiseDateTime <= request.SearchDateTimePeriod.End)
.Where((x, device) => x.Type == type && !SqlFunc.IsNullOrEmpty(x.UserType) && userTypes.Contains(x.UserType))
.WhereIF(request.Sync.HasValue, x => x.Sync == request.Sync)
.WhereIF(isOutsourceSearch && request.Search.IsPresent(), (x, device, ga, os) =>
x.UserUniqueNo == request.Search
|| x.DeviceUniqueNo == request.Search
|| os.Supplier == request.Search
|| os.SapCode == request.Search
.WhereIF(isOutsourceSearch && searchs != null, (x, device, ga, os) =>
searchs.Contains(x.UserUniqueNo)
|| searchs.Contains(x.DeviceUniqueNo)
|| searchs.Contains(os.Supplier)
|| searchs.Contains(os.SapCode)
)
.WhereIF(isNormalSearch && request.UserCode.IsPresent(), (x, device, ga, os) => x.UserUniqueNo == request.UserCode)
.WhereIF(isNormalSearch && userCodes != null, (x, device, ga, os) => userCodes.Contains(x.DeviceUniqueNo))
.WhereIF(isNormalSearch && request.DeviceUniqueNo.IsPresent(), (x, device, ga, os) => x.DeviceUniqueNo == request.DeviceUniqueNo)
.WhereIF(request.Search.IsPresent() && isNormalSearch, (x, device, ga, os) =>
x.UserUniqueNo == request.Search