fix 设备/组新城枚举及调整
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using Dlhis.Entity.Device.Enums;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace Dlhis.Basic.Device.Request;
|
namespace Dlhis.Basic.Device.Request;
|
||||||
|
|
||||||
@@ -16,4 +17,11 @@ public class DeviceGroupSaveRequest
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Required(ErrorMessage = "设备组名称不能为空")]
|
[Required(ErrorMessage = "设备组名称不能为空")]
|
||||||
public string Name { get; set; }
|
public string Name { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备组功能类型
|
||||||
|
/// </summary>
|
||||||
|
[Required(ErrorMessage = "设备组功能类型不能为空")]
|
||||||
|
[EnumDataType(typeof(DeviceGroupFunctionEnumType))]
|
||||||
|
public DeviceGroupFunctionEnumType Type { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,6 +32,13 @@ public class DeviceSaveRequest
|
|||||||
[Required(ErrorMessage = "设备功能不能为空")]
|
[Required(ErrorMessage = "设备功能不能为空")]
|
||||||
public List<DeviceFuncEnumType> Funcs { get; set; }
|
public List<DeviceFuncEnumType> Funcs { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备机功能类型
|
||||||
|
/// </summary>
|
||||||
|
[Required(ErrorMessage = "设备机功能类型不能为空")]
|
||||||
|
[EnumDataType(typeof(DeviceGroupFunctionEnumType))]
|
||||||
|
public DeviceGroupFunctionEnumType Type { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 心跳间隔
|
/// 心跳间隔
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using Dlhis.Entity.Device.Enums;
|
using Dlhis.Entity.Device.Enums;
|
||||||
using Kurisu.AspNetCore.Utils.Extensions;
|
using Kurisu.AspNetCore.Utils.Extensions;
|
||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
namespace Dlhis.Basic.Device.Response;
|
namespace Dlhis.Basic.Device.Response;
|
||||||
|
|
||||||
@@ -47,6 +48,11 @@ public class DevicePageResponse
|
|||||||
|
|
||||||
public string FuncsStr { get; set; }
|
public string FuncsStr { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 设备机功能类型
|
||||||
|
/// </summary>
|
||||||
|
public string TypeDescription { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 部署点
|
/// 部署点
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public class DeviceService : IDeviceService
|
|||||||
{
|
{
|
||||||
FuncsStr = d.Funcs.ToString(),
|
FuncsStr = d.Funcs.ToString(),
|
||||||
Brand = dt.Brand,
|
Brand = dt.Brand,
|
||||||
|
TypeDescription = d.Type.ToString(),
|
||||||
}, true)
|
}, true)
|
||||||
.ToPageListAsync(request);
|
.ToPageListAsync(request);
|
||||||
|
|
||||||
|
|||||||
@@ -30,4 +30,10 @@ public enum DeviceGroupFunctionEnumType
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Description("考勤")]
|
[Description("考勤")]
|
||||||
Attendance = 3 ,
|
Attendance = 3 ,
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 门禁并作为考勤
|
||||||
|
/// </summary>
|
||||||
|
[Description("门禁并作为考勤")]
|
||||||
|
Access = 4,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,13 +33,4 @@ public class DeviceTaskAssignmentsController : ControllerBase
|
|||||||
return await _deviceTaskAssignmentService.GetPageAsync(request);
|
return await _deviceTaskAssignmentService.GetPageAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// (考勤/门禁/消费机)任务记录
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
[HttpGet("taskrecords")]
|
|
||||||
public async Task<Pagination<TaskDetailResponse>> GetTaskRecords([FromQuery]TaskRecordsRequest request)
|
|
||||||
{
|
|
||||||
return await _deviceTaskAssignmentService.GetTaskRecords(request);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,6 +26,18 @@ public class CreateGetAttendanceJob
|
|||||||
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
|
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
|
||||||
devices = devices.Where(x => x.Funcs.Contains(DeviceFuncEnumType.Attendance)).ToList();
|
devices = devices.Where(x => x.Funcs.Contains(DeviceFuncEnumType.Attendance)).ToList();
|
||||||
|
|
||||||
|
var ds = devices.Select(x => x.UniqueNo).ToList();
|
||||||
|
|
||||||
|
var b = await _dbContext.Queryable<DeviceTaskEntity>()
|
||||||
|
.Where(x => ds.Contains(x.DeviceUniqueNo))
|
||||||
|
.Where(x => x.Type == DeviceTaskEnumType.UploadRecord)
|
||||||
|
.Where(x => x.Status == DeviceTaskStatusEnumType.Wait)
|
||||||
|
.AnyAsync();
|
||||||
|
if (b)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
var tasks = devices.Select(x => new DeviceTaskEntity
|
var tasks = devices.Select(x => new DeviceTaskEntity
|
||||||
{
|
{
|
||||||
DeviceUniqueNo = x.UniqueNo,
|
DeviceUniqueNo = x.UniqueNo,
|
||||||
|
|||||||
@@ -1,24 +0,0 @@
|
|||||||
using Dlhis.Entity.Basic.Enums;
|
|
||||||
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]
|
|
||||||
[EnumDataType(typeof(DeviceGroupFunctionEnumType))]
|
|
||||||
public DeviceGroupFunctionEnumType type { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
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 string Status { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 部署点
|
|
||||||
/// </summary>
|
|
||||||
public string DeviceDescription { get; set; }
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 连接信息
|
|
||||||
/// </summary>
|
|
||||||
public string IP { get; set; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
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; }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -8,5 +8,4 @@ public interface IDeviceTaskAssignmentService : IScopeDependency
|
|||||||
{
|
{
|
||||||
Task<Pagination<DeviceTaskAssignmentResponse>> GetPageAsync(DeviceTaskAssignmentRequest request);
|
Task<Pagination<DeviceTaskAssignmentResponse>> GetPageAsync(DeviceTaskAssignmentRequest request);
|
||||||
|
|
||||||
Task<Pagination<TaskDetailResponse>> GetTaskRecords(TaskRecordsRequest request);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,53 +38,9 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
|
|||||||
LastUpdateTime = deviceTask.ModifiedTime
|
LastUpdateTime = deviceTask.ModifiedTime
|
||||||
})
|
})
|
||||||
.ToPageListAsync(request);
|
.ToPageListAsync(request);
|
||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 考勤任务记录
|
|
||||||
/// </summary>
|
|
||||||
/// <returns></returns>
|
|
||||||
public async Task<Pagination<TaskDetailResponse>> GetTaskRecords(TaskRecordsRequest request)
|
|
||||||
|
|
||||||
{
|
|
||||||
//获取启用的功能设备
|
|
||||||
var devices = await _dbContext.Queryable<DeviceEntity>()
|
|
||||||
.Where(x => x.Type == request.type)
|
|
||||||
.Select(x => x.UniqueNo)
|
|
||||||
.ToListAsync();
|
|
||||||
devices.ThrowIfNull($"{request.type.GetDescription}功能机器为空");
|
|
||||||
|
|
||||||
var lst = 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.ToString(),
|
|
||||||
DeviceDescription = de.DeployPlace,
|
|
||||||
IP = de.ConnectionInfo
|
|
||||||
}).ToListAsync();
|
|
||||||
|
|
||||||
// 分页操作
|
|
||||||
var startIndex = (request.PageIndex - 1) * request.PageSize;
|
|
||||||
var pagedData = lst.Skip(startIndex).Take(request.PageSize).ToList();
|
|
||||||
|
|
||||||
var pagination = new Pagination<TaskDetailResponse>
|
|
||||||
{
|
|
||||||
PageIndex = request.PageIndex,
|
|
||||||
PageSize = request.PageSize,
|
|
||||||
Total = lst.Count, // 使用原始列表的总数进行分页
|
|
||||||
Data = pagedData
|
|
||||||
};
|
|
||||||
|
|
||||||
return pagination;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user