diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
index 55b92463..4072f04e 100644
--- a/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
+++ b/Src/Dlhis.Basic/Device/Controllers/DevicesController.cs
@@ -37,7 +37,6 @@ public class DevicesController : ControllerBase
///
///
///
- [Authorize(Roles = "admin,tenant-admin")]
[HttpGet("template/page")]
public async Task> GetTemplatePageAsync([FromQuery] DeviceTemplatePageRequest request)
{
diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs
index c7792ab7..0ae52de3 100644
--- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs
+++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs
@@ -45,4 +45,15 @@ public class DeviceUploadLogsController : ControllerBase
{
await _deviceUploadLogService.UploadLogsAsync(requests);
}
-}
+
+ ///
+ /// 获取考勤记录
+ ///
+ ///
+ ///
+ [HttpGet("my")]
+ public async Task> GetMyRecordsAsync([FromQuery] DeviceUploadLogMyRecordRequest request)
+ {
+ return await _deviceUploadLogService.GetMyRecordsAsync(request);
+ }
+}
\ No newline at end of file
diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogMyRecordRequest.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogMyRecordRequest.cs
new file mode 100644
index 00000000..3f863015
--- /dev/null
+++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogMyRecordRequest.cs
@@ -0,0 +1,26 @@
+using System.ComponentModel.DataAnnotations;
+using Kurisu.AspNetCore.CustomClass;
+
+namespace Dlhis.ScheduledTask.DeviceUploadLog.Request;
+
+public class DeviceUploadLogMyRecordRequest : IValidatableObject
+{
+ public DateTimePeriod DateTimePeriod { get; set; }
+
+ ///
+ public IEnumerable Validate(ValidationContext validationContext)
+ {
+ if (DateTimePeriod == null)
+ {
+ DateTimePeriod = new DateTimePeriod();
+ }
+
+ if (DateTimePeriod.Start != null)
+ {
+ DateTimePeriod.End = DateTimePeriod.Start.Value.AddDays(1);
+ }
+
+
+ yield break;
+ }
+}
\ No newline at end of file
diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs
index 7d8310e2..117570fe 100644
--- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs
+++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs
@@ -9,4 +9,6 @@ public interface IDeviceUploadLogService : IScopeDependency
Task> GetPageAsync(DeviceUploadLogPageRequest request);
Task UploadLogsAsync(List requests);
+
+ Task> GetMyRecordsAsync(DeviceUploadLogMyRecordRequest request);
}
diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs
index 071f53c4..06930b8a 100644
--- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs
+++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs
@@ -3,6 +3,7 @@ using Dlhis.Entity.Device.Entities;
using Dlhis.Entity.Device.Enums;
using Dlhis.ScheduledTask.DeviceUploadLog.Request;
using Dlhis.ScheduledTask.DeviceUploadLog.Response;
+using Kurisu.AspNetCore.Authentication.Abstractions;
using Kurisu.AspNetCore.CustomClass;
using Kurisu.AspNetCore.DataAccess.Dto;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Extensions;
@@ -15,10 +16,38 @@ namespace Dlhis.ScheduledTask.DeviceUploadLog.Services.Implements;
public class DeviceUploadLogService : IDeviceUploadLogService
{
private readonly IDbContext _dbContext;
+ private readonly ICurrentUser _currentUser;
- public DeviceUploadLogService(IDbContext dbContext)
+ public DeviceUploadLogService(IDbContext dbContext, ICurrentUser currentUser)
{
_dbContext = dbContext;
+ _currentUser = currentUser;
+ }
+
+
+ public async Task> GetMyRecordsAsync(DeviceUploadLogMyRecordRequest request)
+ {
+ var jinkoCode = _currentUser.GetUserClaim("jinko-code") ?? string.Empty;
+
+ return await _dbContext.Queryable()
+ .LeftJoin((log, d) => log.DeviceUniqueNo == d.UniqueNo)
+ .Where(log => log.UserUniqueNo == jinkoCode)
+ .WhereIF(request.DateTimePeriod.HasValue(), log => log.RaiseDateTime >= request.DateTimePeriod.Start && log.RaiseDateTime <= request.DateTimePeriod.End)
+ .Where((log, d) => d.Type == DeviceTypeEnumType.Attendance || (d.Type == DeviceTypeEnumType.Door && d.AsAttendance))
+ .OrderBy(log => log.RaiseDateTime)
+ .Select((log, d) => new DeviceUploadLogResponse
+ {
+ OriginUserUniqueNo = log.UserUniqueNo,
+ Supplier = d.Supplier,
+ DeviceUniqueNo = log.DeviceUniqueNo,
+ Id = log.Id,
+ RaiseDateTime = log.RaiseDateTime,
+ CreateTime = log.CreateTime,
+ SerialNo = log.SerialNo,
+ DeployPlace = d.DeployPlace,
+ Sync = log.Sync,
+ })
+ .ToListAsync();
}
public async Task> GetPageAsync(DeviceUploadLogPageRequest request)
diff --git a/Src/Dlhis.Sys/Identity/Controllers/RolesController.cs b/Src/Dlhis.Sys/Identity/Controllers/RolesController.cs
index b17eccb8..9a012e28 100644
--- a/Src/Dlhis.Sys/Identity/Controllers/RolesController.cs
+++ b/Src/Dlhis.Sys/Identity/Controllers/RolesController.cs
@@ -50,7 +50,7 @@ public class RolesController : ControllerBase
///
///
///
- [Authorize(Roles = "admin")]
+ [Authorize(Roles = "admin,tenant-admin")]
[HttpPost("assign")]
public async Task AssignRole(RoleAssignRequest request)
{