using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Device.Entities; using Dlhis.ScheduledTask.TaskAssignment.Request; using Dlhis.ScheduledTask.TaskAssignment.Response; using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.Core.DataAccess.Dto; using Kurisu.SqlSugar.Extensions; using Kurisu.SqlSugar.Services; using SqlSugar; namespace Dlhis.ScheduledTask.TaskAssignment.Services.Implements; public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService { private readonly IDbContext _dbContext; public DeviceTaskAssignmentService(IDbContext dbContext) { _dbContext = dbContext; } public async Task> GetPageAsync(DeviceTaskAssignmentRequest request) { var page = await _dbContext.Queryable() .LeftJoin((deviceTask, ga) => deviceTask.UserNo == ga.No) .WhereIF(!request.Search.IsEmpty(), deviceTask => deviceTask.UserNo == request.Search) .OrderBy(deviceTask => deviceTask.CreateTime, OrderByType.Desc) .Select((deviceTask, ga) => new DeviceTaskAssignmentResponse { DeviceUniqueNo = deviceTask.DeviceUniqueNo, ResultMessage = deviceTask.ResultMessage, RetryCount = deviceTask.Version, Status = deviceTask.Status, UserNo = deviceTask.UserNo, UserName = ga.Name, UserCode = ga.Code, Type = deviceTask.Type, LastUpdateTime = deviceTask.ModifiedTime }) .ToPageListAsync(request); return page; } }