diff --git a/Src/Dlhis.Basic/Device/Request/DeviceGroupSaveRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceGroupSaveRequest.cs
index 625b2134..2dc8e5b2 100644
--- a/Src/Dlhis.Basic/Device/Request/DeviceGroupSaveRequest.cs
+++ b/Src/Dlhis.Basic/Device/Request/DeviceGroupSaveRequest.cs
@@ -1,4 +1,5 @@
-using System.ComponentModel.DataAnnotations;
+using Dlhis.Entity.Device.Enums;
+using System.ComponentModel.DataAnnotations;
namespace Dlhis.Basic.Device.Request;
@@ -16,4 +17,11 @@ public class DeviceGroupSaveRequest
///
[Required(ErrorMessage = "设备组名称不能为空")]
public string Name { get; set; }
+
+ ///
+ /// 设备组功能类型
+ ///
+ [Required(ErrorMessage = "设备组功能类型不能为空")]
+ [EnumDataType(typeof(DeviceGroupFunctionEnumType))]
+ public DeviceGroupFunctionEnumType Type { get; set; }
}
diff --git a/Src/Dlhis.Basic/Device/Request/DeviceSaveRequest.cs b/Src/Dlhis.Basic/Device/Request/DeviceSaveRequest.cs
index b1b9cade..02f923c1 100644
--- a/Src/Dlhis.Basic/Device/Request/DeviceSaveRequest.cs
+++ b/Src/Dlhis.Basic/Device/Request/DeviceSaveRequest.cs
@@ -32,6 +32,13 @@ public class DeviceSaveRequest
[Required(ErrorMessage = "设备功能不能为空")]
public List Funcs { get; set; }
+ ///
+ /// 设备机功能类型
+ ///
+ [Required(ErrorMessage = "设备机功能类型不能为空")]
+ [EnumDataType(typeof(DeviceGroupFunctionEnumType))]
+ public DeviceGroupFunctionEnumType Type { get; set; }
+
///
/// 心跳间隔
///
diff --git a/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs b/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs
index 3269982a..73955b65 100644
--- a/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs
+++ b/Src/Dlhis.Basic/Device/Response/DevicePageResponse.cs
@@ -1,5 +1,6 @@
using Dlhis.Entity.Device.Enums;
using Kurisu.AspNetCore.Utils.Extensions;
+using System.ComponentModel.DataAnnotations;
namespace Dlhis.Basic.Device.Response;
@@ -47,6 +48,11 @@ public class DevicePageResponse
public string FuncsStr { get; set; }
+ ///
+ /// 设备机功能类型
+ ///
+ public string TypeDescription { get; set; }
+
///
/// 部署点
///
diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
index c8255235..38cb83ea 100644
--- a/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
+++ b/Src/Dlhis.Basic/Device/Services/Implements/DeviceService.cs
@@ -32,7 +32,7 @@ public class DeviceService : IDeviceService
{
FuncsStr = d.Funcs.ToString(),
Brand = dt.Brand,
-
+ TypeDescription = d.Type.ToString(),
}, true)
.ToPageListAsync(request);
diff --git a/Src/Dlhis.Entity/Device/Enums/DeviceGroupFunctionEnumType.cs b/Src/Dlhis.Entity/Device/Enums/DeviceGroupFunctionEnumType.cs
index e7838266..02d27cf4 100644
--- a/Src/Dlhis.Entity/Device/Enums/DeviceGroupFunctionEnumType.cs
+++ b/Src/Dlhis.Entity/Device/Enums/DeviceGroupFunctionEnumType.cs
@@ -30,4 +30,10 @@ public enum DeviceGroupFunctionEnumType
///
[Description("考勤")]
Attendance = 3 ,
+
+ ///
+ /// 门禁并作为考勤
+ ///
+ [Description("门禁并作为考勤")]
+ Access = 4,
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/DeviceTaskAssignmentsController.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/DeviceTaskAssignmentsController.cs
index de04a98b..c11add0f 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/DeviceTaskAssignmentsController.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Controllers/DeviceTaskAssignmentsController.cs
@@ -33,13 +33,4 @@ public class DeviceTaskAssignmentsController : ControllerBase
return await _deviceTaskAssignmentService.GetPageAsync(request);
}
- ///
- /// (考勤/门禁/消费机)任务记录
- ///
- ///
- [HttpGet("taskrecords")]
- public async Task> GetTaskRecords([FromQuery]TaskRecordsRequest request)
- {
- return await _deviceTaskAssignmentService.GetTaskRecords(request);
- }
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Job/CreateGetAttendanceJob.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Job/CreateGetAttendanceJob.cs
index 9a0f8d8b..4a8f486f 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Job/CreateGetAttendanceJob.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Job/CreateGetAttendanceJob.cs
@@ -26,6 +26,18 @@ public class CreateGetAttendanceJob
var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync();
devices = devices.Where(x => x.Funcs.Contains(DeviceFuncEnumType.Attendance)).ToList();
+ var ds = devices.Select(x => x.UniqueNo).ToList();
+
+ var b = await _dbContext.Queryable()
+ .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
{
DeviceUniqueNo = x.UniqueNo,
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Request/TaskRecordsRequest.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Request/TaskRecordsRequest.cs
deleted file mode 100644
index 13d9eed0..00000000
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Request/TaskRecordsRequest.cs
+++ /dev/null
@@ -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
- {
-
- ///
- /// 人员档案号
- ///
- [Required]
- public string GainfoNo { get; set; }
-
- ///
- /// 设备机功能类型
- ///
- [Required]
- [EnumDataType(typeof(DeviceGroupFunctionEnumType))]
- public DeviceGroupFunctionEnumType type { get; set; }
- }
-}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskDetailResponse.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskDetailResponse.cs
deleted file mode 100644
index 62687b42..00000000
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskDetailResponse.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-using Dlhis.Entity.Device.Enums;
-using SqlSugar.DbConvert;
-using SqlSugar;
-
-namespace Dlhis.ScheduledTask.TaskAssignment.Response
-{
- public class TaskDetailResponse
- {
- ///
- /// 设备唯一号
- ///
- public string DeviceUniqueNo { get; set; }
-
- ///
- /// 用户学工号
- ///
- public string UserCode { get; set; }
-
- ///
- /// 姓名
- ///
- public string Name { get; set; }
-
- ///
- /// 任务下发状态
- ///
- public string Status { get; set; }
-
- ///
- /// 部署点
- ///
- public string DeviceDescription { get; set; }
-
- ///
- /// 连接信息
- ///
- public string IP { get; set; }
- }
-}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskRecordsResponse.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskRecordsResponse.cs
deleted file mode 100644
index dc0404a7..00000000
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskRecordsResponse.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using Dlhis.Entity.Device.Enums;
-using SqlSugar;
-
-namespace Dlhis.ScheduledTask.TaskAssignment.Response
-{
- public class TaskRecordsResponse
- {
- ///
- /// 用户档案号
- ///
- public string UserNo { get; set; }
-
- ///
- /// 用户学工号
- ///
- public string UserCode { get; set; }
-
- ///
- /// 姓名
- ///
- public string Name { get; set; }
-
- ///
- /// 对应设备任务
- ///
- public List Tasks { get; set; }
- }
-}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IDeviceTaskAssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IDeviceTaskAssignmentService.cs
index 8d6f6e01..e5bc005c 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IDeviceTaskAssignmentService.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/IDeviceTaskAssignmentService.cs
@@ -8,5 +8,4 @@ public interface IDeviceTaskAssignmentService : IScopeDependency
{
Task> GetPageAsync(DeviceTaskAssignmentRequest request);
- Task> GetTaskRecords(TaskRecordsRequest request);
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs
index c1bf0b8c..699bd273 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/DeviceTaskAssignmentService.cs
@@ -38,53 +38,9 @@ public class DeviceTaskAssignmentService : IDeviceTaskAssignmentService
LastUpdateTime = deviceTask.ModifiedTime
})
.ToPageListAsync(request);
-
return page;
}
- ///
- /// 考勤任务记录
- ///
- ///
- public async Task> GetTaskRecords(TaskRecordsRequest request)
-
- {
- //获取启用的功能设备
- var devices = await _dbContext.Queryable()
- .Where(x => x.Type == request.type)
- .Select(x => x.UniqueNo)
- .ToListAsync();
- devices.ThrowIfNull($"{request.type.GetDescription}功能机器为空");
-
- var lst = await _dbContext.Queryable()
- .LeftJoin((task, ga) => task.UserNo == ga.No)
- .LeftJoin((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
- {
- PageIndex = request.PageIndex,
- PageSize = request.PageSize,
- Total = lst.Count, // 使用原始列表的总数进行分页
- Data = pagedData
- };
-
- return pagination;
- }
}