feat 记录查询接口
This commit is contained in:
@@ -32,4 +32,14 @@ public class DeviceTaskAssignmentsController : ControllerBase
|
||||
{
|
||||
return await _deviceTaskAssignmentService.GetPageAsync(request);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// (考勤/门禁/消费机)任务记录
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
[HttpGet("taskrecords")]
|
||||
public async Task<TaskRecordsResponse> GetTaskRecords([FromQuery]TaskRecordsRequest request)
|
||||
{
|
||||
return await _deviceTaskAssignmentService.GetTaskRecords(request);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using Kurisu.Core.DataAccess.Dto;
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
namespace Dlhis.ScheduledTask.TaskAssignment.Request
|
||||
{
|
||||
public class TaskRecordsRequest : PageDto
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 人员档案号
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string GainfoNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 设备功能
|
||||
/// </summary>
|
||||
[Required]
|
||||
public DeviceFuncEnumType type { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using SqlSugar.DbConvert;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Dlhis.ScheduledTask.TaskAssignment.Response
|
||||
{
|
||||
public class TaskDetailResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 设备唯一号
|
||||
/// </summary>
|
||||
public string DeviceUniqueNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户学工号
|
||||
/// </summary>
|
||||
public string UserCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 姓名
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 任务下发状态
|
||||
/// </summary>
|
||||
public DeviceTaskStatusEnumType Status { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 部署点
|
||||
/// </summary>
|
||||
public string DeviceDescription { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 连接信息
|
||||
/// </summary>
|
||||
public string IP { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using SqlSugar;
|
||||
|
||||
namespace Dlhis.ScheduledTask.TaskAssignment.Response
|
||||
{
|
||||
public class TaskRecordsResponse
|
||||
{
|
||||
/// <summary>
|
||||
/// 用户档案号
|
||||
/// </summary>
|
||||
public string UserNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 用户学工号
|
||||
/// </summary>
|
||||
public string UserCode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 姓名
|
||||
/// </summary>
|
||||
public string Name { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 对应设备任务
|
||||
/// </summary>
|
||||
public List<TaskDetailResponse> Tasks { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -7,4 +7,6 @@ namespace Dlhis.ScheduledTask.TaskAssignment.Services;
|
||||
public interface IDeviceTaskAssignmentService : IScopeDependency
|
||||
{
|
||||
Task<Pagination<DeviceTaskAssignmentResponse>> GetPageAsync(DeviceTaskAssignmentRequest request);
|
||||
|
||||
Task<TaskRecordsResponse> GetTaskRecords(TaskRecordsRequest request);
|
||||
}
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
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 Newtonsoft.Json.Linq;
|
||||
|
||||
namespace Dlhis.ScheduledTask.TaskAssignment.Services.Implements;
|
||||
|
||||
@@ -38,4 +40,46 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
||||
return page;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 考勤任务记录
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public async Task<TaskRecordsResponse> GetTaskRecords(TaskRecordsRequest request)
|
||||
|
||||
{
|
||||
//获取启用的功能设备
|
||||
var devices = await _dbContext.Queryable<DeviceEntity>()
|
||||
.Where(x => x.Enable && x.Funcs.Contains(request.type))
|
||||
.Select(x => x.UniqueNo)
|
||||
.ToListAsync();
|
||||
devices.ThrowIfNull($"{request.type.GetDescription}功能机器为空");
|
||||
|
||||
var tasks = await _dbContext.Queryable<DeviceTaskEntity>()
|
||||
.LeftJoin<GainfoEntity>((task, ga) => task.UserNo == ga.No)
|
||||
.LeftJoin<DeviceEntity>((task, ga, de) => task.DeviceUniqueNo == de.UniqueNo)
|
||||
.Where(task => task.UserNo == request.GainfoNo)
|
||||
.Where(task => devices.Contains(task.DeviceUniqueNo))
|
||||
.Select((task, ga, de) => new TaskDetailResponse
|
||||
{
|
||||
DeviceUniqueNo = task.DeviceUniqueNo,
|
||||
UserCode = task.UserCode,
|
||||
Name = ga.Name,
|
||||
Status = task.Status,
|
||||
DeviceDescription = de.DeployPlace,
|
||||
IP = de.ConnectionInfo
|
||||
}).ToListAsync();
|
||||
|
||||
var info = await _dbContext.Queryable<GainfoEntity>().Where(x => x.No == request.GainfoNo).FirstAsync();
|
||||
|
||||
var entity = new TaskRecordsResponse
|
||||
{
|
||||
UserNo = info.No,
|
||||
UserCode = info.Code,
|
||||
Name = info.Name,
|
||||
Tasks = tasks,
|
||||
};
|
||||
return entity;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user