feat 设备考勤记录考勤上传
This commit is contained in:
@@ -12,5 +12,5 @@ public interface IDevicePermissionService : IScopeDependency
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task AssignmentAsync(List<DevicePermissionSaveReuqest> reuqests);
|
Task AssignmentAsync(List<DevicePermissionSaveReuqest> reuqests);
|
||||||
|
|
||||||
Task<List<Guid>> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue);
|
Task<List<Guid>> GetAssignmentsAsync(string userNo, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,12 +36,12 @@ public class DevicePermissionService : IDevicePermissionService
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<List<Guid>> GetAssignmentsAsync(string userId, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue)
|
public async Task<List<Guid>> GetAssignmentsAsync(string userNo, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue)
|
||||||
{
|
{
|
||||||
var assignments = await _dbContext.Queryable<DevicePermissionEntity>()
|
var assignments = await _dbContext.Queryable<DevicePermissionEntity>()
|
||||||
.Where(x => x.UniqueType == uniqueType)
|
.Where(x => x.UniqueType == uniqueType)
|
||||||
.WhereIF(uniqueValue.HasValue, x => x.UniqueValue == uniqueValue)
|
.WhereIF(uniqueValue.HasValue, x => x.UniqueValue == uniqueValue)
|
||||||
.Where(x => x.UserNo == userId)
|
.Where(x => x.UserNo == userNo)
|
||||||
.Select(x => x.UniqueValue)
|
.Select(x => x.UniqueValue)
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,17 @@
|
|||||||
using Kurisu.Core.DataAccess.Entity;
|
using Kurisu.Core.DataAccess.Entity;
|
||||||
using Kurisu.SqlSugar;
|
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
|
|
||||||
namespace Dlhis.Entity.Device.Entities;
|
namespace Dlhis.Entity.Device.Entities;
|
||||||
|
|
||||||
[SugarTable(TableName = "DeviceUploadLog", TableDescription = "设备上传记录")]
|
[SugarTable(TableName = "DeviceUploadLog", TableDescription = "设备上传记录")]
|
||||||
public class DeviceUploadLogEntity : SugarBaseEntity, ITenantId
|
public class DeviceUploadLogEntity : ITenantId
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// id
|
||||||
|
/// </summary>
|
||||||
|
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 设备号
|
/// 设备号
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -27,5 +32,10 @@ public class DeviceUploadLogEntity : SugarBaseEntity, ITenantId
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public string Ip { get; set; }
|
public string Ip { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 上传时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime UploadTime { get; set; }
|
||||||
|
|
||||||
public string TenantId { get; set; }
|
public string TenantId { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,4 +32,15 @@ public class DeviceUploadLogsController : ControllerBase
|
|||||||
{
|
{
|
||||||
return await _deviceUploadLogService.GetPageAsync(request);
|
return await _deviceUploadLogService.GetPageAsync(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 上传记录
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="request"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpPost("record")]
|
||||||
|
public async Task UploadLogAsync(DeviceUploadLogUploadRequest request)
|
||||||
|
{
|
||||||
|
await _deviceUploadLogService.UploadLogAsync(request);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using System.ComponentModel.DataAnnotations;
|
||||||
|
|
||||||
|
namespace Dlhis.ScheduledTask.DeviceUploadLog.Request;
|
||||||
|
|
||||||
|
public class DeviceUploadLogUploadRequest
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 设备唯一号
|
||||||
|
/// </summary>
|
||||||
|
[Required(ErrorMessage = "设备唯一号不能为空")]
|
||||||
|
public string DeviceUniqueNo { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 用户学工号
|
||||||
|
/// </summary>
|
||||||
|
[Required(ErrorMessage = "用户学工号不能为空")]
|
||||||
|
public string UserCode { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 上传时间
|
||||||
|
/// </summary>
|
||||||
|
public DateTime UploadTime { get; set; }
|
||||||
|
}
|
||||||
@@ -7,4 +7,6 @@ namespace Dlhis.ScheduledTask.DeviceUploadLog.Services;
|
|||||||
public interface IDeviceUploadLogService : IScopeDependency
|
public interface IDeviceUploadLogService : IScopeDependency
|
||||||
{
|
{
|
||||||
Task<Pagination<DeviceUploadLogResponse>> GetPageAsync(DeviceUploadLogPageRequest request);
|
Task<Pagination<DeviceUploadLogResponse>> GetPageAsync(DeviceUploadLogPageRequest request);
|
||||||
|
|
||||||
|
Task UploadLogAsync(DeviceUploadLogUploadRequest request);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,9 @@
|
|||||||
using Dlhis.Entity.Device.Entities;
|
using Dlhis.Entity.Device.Entities;
|
||||||
using Dlhis.ScheduledTask.DeviceUploadLog.Request;
|
using Dlhis.ScheduledTask.DeviceUploadLog.Request;
|
||||||
using Dlhis.ScheduledTask.DeviceUploadLog.Response;
|
using Dlhis.ScheduledTask.DeviceUploadLog.Response;
|
||||||
|
using Kurisu.AspNetCore.Utils.Extensions;
|
||||||
using Kurisu.Core.DataAccess.Dto;
|
using Kurisu.Core.DataAccess.Dto;
|
||||||
|
using Kurisu.SqlSugar.Attributes;
|
||||||
using Kurisu.SqlSugar.Extensions;
|
using Kurisu.SqlSugar.Extensions;
|
||||||
using Kurisu.SqlSugar.Services;
|
using Kurisu.SqlSugar.Services;
|
||||||
|
|
||||||
@@ -21,14 +23,14 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
|||||||
{
|
{
|
||||||
var page = await _dbContext.Queryable<DeviceUploadLogEntity>()
|
var page = await _dbContext.Queryable<DeviceUploadLogEntity>()
|
||||||
.LeftJoin<GainfoEntity>((deviceUp, ga) => deviceUp.UserNo == ga.No)
|
.LeftJoin<GainfoEntity>((deviceUp, ga) => deviceUp.UserNo == ga.No)
|
||||||
.WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.CreateTime >= request.SearchDateTimePeriod.Start)
|
.WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.UploadTime >= request.SearchDateTimePeriod.Start)
|
||||||
.WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.CreateTime <= request.SearchDateTimePeriod.End)
|
.WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.UploadTime <= request.SearchDateTimePeriod.End)
|
||||||
.Select((deviceUp, ga) => new DeviceUploadLogResponse
|
.Select((deviceUp, ga) => new DeviceUploadLogResponse
|
||||||
{
|
{
|
||||||
DeviceUniqueNo = deviceUp.DeviceUniqueNo,
|
DeviceUniqueNo = deviceUp.DeviceUniqueNo,
|
||||||
Id = deviceUp.Id,
|
Id = deviceUp.Id,
|
||||||
Ip = deviceUp.Ip,
|
Ip = deviceUp.Ip,
|
||||||
UploadTime = deviceUp.CreateTime,
|
UploadTime = deviceUp.UploadTime,
|
||||||
UserNo = deviceUp.UserNo,
|
UserNo = deviceUp.UserNo,
|
||||||
UserCode = deviceUp.UserCode,
|
UserCode = deviceUp.UserCode,
|
||||||
UserName = ga.Name,
|
UserName = ga.Name,
|
||||||
@@ -37,4 +39,25 @@ public class DeviceUploadLogService : IDeviceUploadLogService
|
|||||||
|
|
||||||
return page;
|
return page;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[IgnoreTenant]
|
||||||
|
public async Task UploadLogAsync(DeviceUploadLogUploadRequest request)
|
||||||
|
{
|
||||||
|
var device = await _dbContext.Queryable<DeviceEntity>().Where(x => x.UniqueNo == request.DeviceUniqueNo).SingleAsync();
|
||||||
|
device.ThrowIfNull("设备信息不存在");
|
||||||
|
|
||||||
|
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == request.UserCode).FirstAsync();
|
||||||
|
device.ThrowIfNull("人员信息不存在");
|
||||||
|
|
||||||
|
var entity = new DeviceUploadLogEntity
|
||||||
|
{
|
||||||
|
DeviceUniqueNo = request.DeviceUniqueNo,
|
||||||
|
UploadTime = request.UploadTime,
|
||||||
|
UserCode = request.UserCode,
|
||||||
|
UserNo = gainfo.No,
|
||||||
|
TenantId = device.TenantId,
|
||||||
|
};
|
||||||
|
|
||||||
|
await _dbContext.InsertAsync(entity);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user