diff --git a/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs b/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs
index 6842e25e..816456e7 100644
--- a/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs
+++ b/Src/Dlhis.Basic/Organization/Controllers/GainfosController.cs
@@ -81,7 +81,7 @@ public class GainfosController : ControllerBase
}
///
- /// 当前人员信息
+ /// 当前人员信息,余额
///
///
[HttpGet("current")]
@@ -91,17 +91,17 @@ public class GainfosController : ControllerBase
}
///
- /// 上传人脸头像
+ /// 上传人脸照片
///
///
- [HttpPost("face")]
+ [HttpPost("face")]
public async Task UploadFaceAsync(GainfoUploadFaceRequest request)
{
await _gainfoService.UploadFaceAsync(request);
}
///
- /// 获取人脸照片
+ /// 通过token获取人脸照片,失效或者找不到返回HttpStatus404状态码
///
///
///
@@ -114,7 +114,7 @@ public class GainfosController : ControllerBase
}
///
- /// 获取人脸照片
+ /// 通过学工号获取人脸照片url地址
///
///
///
@@ -125,7 +125,7 @@ public class GainfosController : ControllerBase
}
///
- /// 批量获取人脸照片
+ /// 批量获取人脸照片url地址
///
///
///
diff --git a/Src/Dlhis.Basic/Organization/Request/GainfoUploadFaceRequest.cs b/Src/Dlhis.Basic/Organization/Request/GainfoUploadFaceRequest.cs
index 5f403df8..55b63b59 100644
--- a/Src/Dlhis.Basic/Organization/Request/GainfoUploadFaceRequest.cs
+++ b/Src/Dlhis.Basic/Organization/Request/GainfoUploadFaceRequest.cs
@@ -18,6 +18,7 @@ public class GainfoUploadFaceRequest : IValidatableObject
public IEnumerable Validate(ValidationContext validationContext)
{
+ //后续增加参数判断,如果传入的类型是base64才进行校验
bool v = true;
try
{
diff --git a/Src/Dlhis.Basic/Organization/Request/GetFaceByUserCodesRequest.cs b/Src/Dlhis.Basic/Organization/Request/GetFaceByUserCodesRequest.cs
index fae5fcd1..1a508b02 100644
--- a/Src/Dlhis.Basic/Organization/Request/GetFaceByUserCodesRequest.cs
+++ b/Src/Dlhis.Basic/Organization/Request/GetFaceByUserCodesRequest.cs
@@ -1,7 +1,9 @@
-namespace Dlhis.Basic.Organization.Request
+namespace Dlhis.Basic.Organization.Request;
+
+public class GetFaceByUserCodesRequest
{
- public class GetFaceByUserCodesRequest
- {
- public List UserCodes { get; set; }
- }
+ ///
+ /// 人员学工号
+ ///
+ public List UserCodes { get; set; }
}
diff --git a/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs b/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs
index a82b818d..314f005f 100644
--- a/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs
+++ b/Src/Dlhis.Entity/Device/Entities/DeviceUploadLogEntity.cs
@@ -18,14 +18,9 @@ public class DeviceUploadLogEntity : ITenantId
public string DeviceUniqueNo { get; set; }
///
- /// 用户档案号
+ /// 人员唯一号
///
- public string UserNo { get; set; }
-
- ///
- /// 用户学工号
- ///
- public string UserCode { get; set; }
+ public string UserUniqueNo { get; set; }
///
/// 上传IP
@@ -37,5 +32,7 @@ public class DeviceUploadLogEntity : ITenantId
///
public DateTime UploadTime { get; set; }
+
+ [SugarColumn(IndexGroupNameList = new string[] { "idx_DeviceUploadLog_TenantId" })]
public string TenantId { get; set; }
}
diff --git a/Src/Dlhis.Entity/Device/Enums/DeviceFuncEnumType.cs b/Src/Dlhis.Entity/Device/Enums/DeviceFuncEnumType.cs
index ac475816..d8985ae7 100644
--- a/Src/Dlhis.Entity/Device/Enums/DeviceFuncEnumType.cs
+++ b/Src/Dlhis.Entity/Device/Enums/DeviceFuncEnumType.cs
@@ -50,4 +50,10 @@ public enum DeviceFuncEnumType
///
[Description("考勤")]
Attendance,
+
+ ///
+ /// 计划
+ ///
+ [Description("计划")]
+ Schedule
}
diff --git a/Src/Dlhis.Entity/Device/Enums/DeviceTaskEnumType.cs b/Src/Dlhis.Entity/Device/Enums/DeviceTaskEnumType.cs
index 8d607bb6..3e0a520b 100644
--- a/Src/Dlhis.Entity/Device/Enums/DeviceTaskEnumType.cs
+++ b/Src/Dlhis.Entity/Device/Enums/DeviceTaskEnumType.cs
@@ -11,18 +11,43 @@ public enum DeviceTaskEnumType
///
/// 添加
///
- [Description("添加")]
- Add = 1,
+ [Description("下发人员")]
+ Add = 100,
///
/// 删除
///
- [Description("删除")]
- Delete = 2,
+ [Description("删除人员")]
+ Delete,
///
/// 更新
///
- [Description("更新")]
- Update = 3,
+ [Description("更新人员")]
+ Update,
+
+ ///
+ /// 下发时段码
+ ///
+ [Description("下发时段码")]
+ TimePeriodAdd = 200,
+
+
+ ///
+ /// 删除时段码
+ ///
+ [Description("删除时段码")]
+ TimePeriodDelete,
+
+ ///
+ /// 下发计划
+ ///
+ [Description("下发计划")]
+ ScheduleAdd = 300,
+
+ ///
+ /// 删除计划
+ ///
+ [Description("删除计划")]
+ ScheduleDelete,
}
diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs
index c98178a5..b9e57664 100644
--- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs
+++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Controllers/DeviceUploadLogsController.cs
@@ -43,4 +43,15 @@ public class DeviceUploadLogsController : ControllerBase
{
await _deviceUploadLogService.UploadLogAsync(request);
}
+
+ ///
+ /// 批量上传记录
+ ///
+ ///
+ ///
+ [HttpPost("records")]
+ public async Task UploadLogsAsync(List requests)
+ {
+ await _deviceUploadLogService.UploadLogsAsync(requests);
+ }
}
diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs
index df39165a..42a43522 100644
--- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs
+++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Request/DeviceUploadLogUploadRequest.cs
@@ -13,8 +13,8 @@ public class DeviceUploadLogUploadRequest
///
/// 用户学工号
///
- [Required(ErrorMessage = "用户学工号不能为空")]
- public string UserCode { get; set; }
+ [Required(ErrorMessage = "人员唯一号不能为空")]
+ public string UserUniqueNo { get; set; }
///
/// 上传时间
diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/IDeviceUploadLogService.cs
index b3793541..8a6285e2 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 UploadLogAsync(DeviceUploadLogUploadRequest request);
+
+ Task UploadLogsAsync(List requests);
}
diff --git a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs
index a2411af6..43961c53 100644
--- a/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs
+++ b/Src/Dlhis.ScheduledTask/DeviceUploadLog/Services/Implements/DeviceUploadLogService.cs
@@ -22,7 +22,7 @@ public class DeviceUploadLogService : IDeviceUploadLogService
public async Task> GetPageAsync(DeviceUploadLogPageRequest request)
{
var page = await _dbContext.Queryable()
- .LeftJoin((deviceUp, ga) => deviceUp.UserNo == ga.No)
+ .LeftJoin((deviceUp, ga) => deviceUp.UserUniqueNo == ga.No)
.WhereIF(request.SearchDateTimePeriod?.Start.HasValue == true, deviceUp => deviceUp.UploadTime >= request.SearchDateTimePeriod.Start)
.WhereIF(request.SearchDateTimePeriod?.End.HasValue == true, deviceUp => deviceUp.UploadTime <= request.SearchDateTimePeriod.End)
.Select((deviceUp, ga) => new DeviceUploadLogResponse
@@ -31,8 +31,8 @@ public class DeviceUploadLogService : IDeviceUploadLogService
Id = deviceUp.Id,
Ip = deviceUp.Ip,
UploadTime = deviceUp.UploadTime,
- UserNo = deviceUp.UserNo,
- UserCode = deviceUp.UserCode,
+ UserNo = ga.No,
+ UserCode = ga.Code,
UserName = ga.Name,
})
.ToPageListAsync(request);
@@ -46,18 +46,41 @@ public class DeviceUploadLogService : IDeviceUploadLogService
var device = await _dbContext.Queryable().Where(x => x.UniqueNo == request.DeviceUniqueNo).SingleAsync();
device.ThrowIfNull("设备信息不存在");
- var gainfo = await _dbContext.Queryable().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,
+ UserUniqueNo = request.UserUniqueNo,
TenantId = device.TenantId,
};
await _dbContext.InsertAsync(entity);
}
+
+ [IgnoreTenant]
+ public async Task UploadLogsAsync(List requests)
+ {
+ var nos = requests.Select(x => x.DeviceUniqueNo).ToList();
+ var devices = await _dbContext.Queryable().Where(x => nos.Contains(x.UniqueNo)).ToListAsync();
+
+ var records = requests.GroupBy(x => x.DeviceUniqueNo).Select(x =>
+ {
+ var device = devices.FirstOrDefault(item => item.UniqueNo == x.Key);
+ if (device != null)
+ {
+ return x.AsEnumerable().Select(item => new DeviceUploadLogEntity
+ {
+ DeviceUniqueNo = x.Key,
+ UserUniqueNo = item.UserUniqueNo,
+ UploadTime = item.UploadTime,
+ TenantId = device.TenantId,
+
+ }).ToList();
+ }
+
+ return null;
+ }).Where(x => x != null).ToList();
+
+ await _dbContext.InsertAsync(records);
+ }
}
diff --git a/Src/Dlhis.ScheduledTask/Packs/JobPack.cs b/Src/Dlhis.ScheduledTask/Packs/JobPack.cs
index 2cd1b3a8..59ae770e 100644
--- a/Src/Dlhis.ScheduledTask/Packs/JobPack.cs
+++ b/Src/Dlhis.ScheduledTask/Packs/JobPack.cs
@@ -12,17 +12,9 @@ public class JobPack : BaseAppPack
public override void Invoke(IServiceProvider serviceProvider)
{
-
-#if DEBUG
- RecurringJob.AddOrUpdate("SyncSap", s => s.SyncOrgInfo(), "30 * * * * ?", new RecurringJobOptions
- {
- TimeZone = TimeZoneInfo.Local
- });
-#else
RecurringJob.AddOrUpdate("SyncSap", s => s.SyncOrgInfo(), "0 0 2 * * ?", new RecurringJobOptions
{
TimeZone = TimeZoneInfo.Local
});
-#endif
}
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Request/DeviceTaskGetRequest.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Request/DeviceTaskGetRequest.cs
index 612c6eec..178481ce 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Request/DeviceTaskGetRequest.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Request/DeviceTaskGetRequest.cs
@@ -16,6 +16,11 @@ public class DeviceTaskGetRequest : PageDto, IValidatableObject
///
public string DeviceUniqueNo { get; set; }
+ ///
+ /// 获取处理中的任务
+ ///
+ public bool IsProcess { get; set; } = false;
+
public IEnumerable Validate(ValidationContext validationContext)
{
if (Brand.IsEmpty() && DeviceUniqueNo.IsEmpty())
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/DeviceTaskToDeviceResponse.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/DeviceTaskToDeviceResponse.cs
index ab6bd4ce..5c9846e8 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/DeviceTaskToDeviceResponse.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/DeviceTaskToDeviceResponse.cs
@@ -1,7 +1,7 @@
namespace Dlhis.ScheduledTask.TaskAssignment.Response;
///
-/// 设备维度任务
+/// 设备任务
///
public class DeviceTaskToDeviceByDeviceResponse
{
@@ -16,12 +16,12 @@ public class DeviceTaskToDeviceByDeviceResponse
public string DeviceUniqueNo { get; set; }
///
- /// 连接信息
+ /// 设备信息
///
- public string DeviceConnectionInfo { get; set; }
+ public object DeviceInfo { get; set; }
///
/// 任务
///
- public List Tasks { get; set; }
+ public List Tasks { get; set; }
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/ScheduleDto.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/ScheduleDto.cs
new file mode 100644
index 00000000..648262e6
--- /dev/null
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/ScheduleDto.cs
@@ -0,0 +1,16 @@
+using Kurisu.Core.CustomClass;
+
+namespace Dlhis.ScheduledTask.TaskAssignment.Response;
+
+public class ScheduleDto
+{
+ ///
+ /// 假日名称
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 开始结束日期时段
+ ///
+ public DateTimePeriod DateTimePeriod { get; set; }
+}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/ScheduleToDeviceResponse.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/ScheduleToDeviceResponse.cs
new file mode 100644
index 00000000..4f8515b1
--- /dev/null
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/ScheduleToDeviceResponse.cs
@@ -0,0 +1,24 @@
+namespace Dlhis.ScheduledTask.TaskAssignment.Response;
+
+public class ScheduleToDeviceResponse
+{
+ ///
+ /// 计划id,范围:1-128
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 使能
+ ///
+ public bool Enable { get; set; }
+
+ ///
+ /// 计划名称
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 计划
+ ///
+ public List Schedules { get; set; }
+}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskCombineUserDimensionDto.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskCombineDto.cs
similarity index 80%
rename from Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskCombineUserDimensionDto.cs
rename to Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskCombineDto.cs
index a9725d53..6b1526c8 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskCombineUserDimensionDto.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TaskCombineDto.cs
@@ -3,7 +3,7 @@ using Kurisu.AspNetCore.Utils.Extensions;
namespace Dlhis.ScheduledTask.TaskAssignment.Response;
-public class TaskCombineUserDimensionDto
+public class TaskCombineDto
{
///
/// 任务id
@@ -21,7 +21,7 @@ public class TaskCombineUserDimensionDto
public string TypeDesc => Type.GetDescription();
///
- /// 用户下发信息
+ /// 下发信息
///
- public UserToDeviceResponse UserInfo { get; set; }
+ public object Info { get; set; }
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TimePeriodToDeviceResponse.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TimePeriodToDeviceResponse.cs
new file mode 100644
index 00000000..3402e934
--- /dev/null
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/TimePeriodToDeviceResponse.cs
@@ -0,0 +1,21 @@
+using Kurisu.Core.CustomClass;
+
+namespace Dlhis.ScheduledTask.TaskAssignment.Response;
+
+public class TimePeriodToDeviceResponse
+{
+ ///
+ /// 时段码id
+ ///
+ public int Id { get; set; }
+
+ ///
+ /// 星期
+ ///
+ public List Weeks { get; set; }
+
+ ///
+ /// 时段区间
+ ///
+ public TimePeriod TimePeriod { get; set; }
+}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/UserToDeviceResponse.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/UserToDeviceResponse.cs
index b2d752f3..7f857406 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Response/UserToDeviceResponse.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Response/UserToDeviceResponse.cs
@@ -1,4 +1,6 @@
-namespace Dlhis.ScheduledTask.TaskAssignment.Response;
+using Kurisu.Core.CustomClass;
+
+namespace Dlhis.ScheduledTask.TaskAssignment.Response;
public class UserToDeviceResponse
{
@@ -32,7 +34,6 @@ public class UserToDeviceResponse
///
public string DepartmentName { get; set; }
-
///
/// 卡号
///
@@ -42,4 +43,24 @@ public class UserToDeviceResponse
/// 人脸
///
public string Face { get; set; }
+
+ ///
+ /// 有效日期范围
+ ///
+ public DatePeriod ValidDatePeriod { get; set; }
+
+ ///
+ /// 控制门[1,2,3....]
+ ///
+ public List Doors { get; set; }
+
+ ///
+ /// 时段[1,2,3....]
+ ///
+ public List TimePeriods { get; set; }
+
+ ///
+ /// 假期计划id
+ ///
+ public int Schedule { get; set; }
}
diff --git a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs
index bb595476..e447b532 100644
--- a/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs
+++ b/Src/Dlhis.ScheduledTask/TaskAssignment/Services/Implements/AssignmentService.cs
@@ -13,7 +13,8 @@ using Microsoft.Extensions.Options;
using SqlSugar;
using Kurisu.SqlSugar.Extensions;
using Kurisu.SqlSugar.Attributes;
-using System.Threading.Tasks;
+using Newtonsoft.Json.Linq;
+using Kurisu.Core.CustomClass;
namespace Dlhis.ScheduledTask.TaskAssignment.Services.Implements;
@@ -40,16 +41,18 @@ public class AssignmentService : IAssignmentService
.LeftJoin((deviceTask, deivce, deivceTamplate, ga, department) => department.No == ga.DepartmentNo)
.WhereIF(request.Brand.IsPresent(), (deviceTask, deivce, deivceTamplate) => deivceTamplate.Brand == request.Brand)
.WhereIF(request.DeviceUniqueNo.IsPresent(), (deviceTask, deivce) => deviceTask.DeviceUniqueNo == request.DeviceUniqueNo)
- .Where(deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait)
+ .WhereIF(!request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Wait)
+ .WhereIF(request.IsProcess, deviceTask => deviceTask.Status == DeviceTaskStatusEnumType.Process)
.OrderBy(deviceTask => deviceTask.CreateTime)
.Select((deviceTask, deivce, deivceTamplate, ga, department) => new
{
- UserId = ga.Id,
+ UserId = SqlFunc.IsNull(ga.Id, 0),
TaskId = deviceTask.Id,
deviceTask.Type,
deviceTask.DeviceUniqueNo,
DeviceConnectionInfo = deivce.ConnectionInfo,
deivce.Brand,
+ FuncStr = deivce.Funcs.ToString(),
deviceTask.UserNo,
deviceTask.UserCode,
UserName = ga.Name,
@@ -112,18 +115,25 @@ public class AssignmentService : IAssignmentService
.CreateProtector("down:face")
.ToTimeLimitedDataProtector();
- return data.GroupBy(x => new { x.Brand, x.DeviceUniqueNo, x.DeviceConnectionInfo })
+ return data.GroupBy(x => new { x.Brand, x.DeviceUniqueNo, x.DeviceConnectionInfo, x.FuncStr })
.Select(x =>
{
var b = x.Key.Brand;
var d = x.Key.DeviceUniqueNo;
- var dc = x.Key.DeviceConnectionInfo;
+ var dc = x.Key.DeviceConnectionInfo??"{}";
+ var func = x.Key.FuncStr??"[]";
+
+ var jobj = new JObject
+ {
+ { "connectionInfo", JToken.Parse(dc) },
+ { "function", JArray.Parse(func) }
+ };
return new DeviceTaskToDeviceByDeviceResponse
{
Brand = b,
DeviceUniqueNo = d,
- DeviceConnectionInfo = dc,
+ DeviceInfo = jobj,
Tasks = x.AsEnumerable().Select(item =>
{
var key = $"face:{item.UserCode}";
@@ -131,23 +141,85 @@ public class AssignmentService : IAssignmentService
? timeLimitedDataProtector.Protect(key, TimeSpan.FromSeconds(faceUrlOptions.Limit))
: string.Empty;
- return new TaskCombineUserDimensionDto
+ var dto = new TaskCombineDto
{
TaskId = item.TaskId,
Type = item.Type,
- UserInfo = new UserToDeviceResponse
- {
- UserId = item.UserId,
- UserNo = item.UserNo,
- UserCode = item.UserCode,
- UserName = item.UserName,
- DepartmentNo = item.DepartmentNo,
- DepartmentName = item.DepartmentName,
- CardNo = item.Type == DeviceTaskEnumType.Add ? item.CardNo : string.Empty,
- Face = item.Type == DeviceTaskEnumType.Add ? faceUrlOptions.Url + token : string.Empty,//下发才附带照片信息
- }
};
+
+ switch (dto.Type)
+ {
+ case DeviceTaskEnumType.Add:
+ case DeviceTaskEnumType.Delete:
+ case DeviceTaskEnumType.Update:
+ {
+ dto.Info = new UserToDeviceResponse
+ {
+ UserId = item.UserId,
+ UserNo = item.UserNo,
+ UserCode = item.UserCode,
+ UserName = item.UserName,
+ DepartmentNo = item.DepartmentNo,
+ DepartmentName = item.DepartmentName,
+ CardNo = item.Type == DeviceTaskEnumType.Add ? item.CardNo : string.Empty,
+ Face = item.Type == DeviceTaskEnumType.Add ? faceUrlOptions.Url + token : string.Empty,//下发才附带照片信息
+ ValidDatePeriod = new DatePeriod
+ {
+ Start = DateOnly.FromDateTime(DateTime.Now),
+ End = DateOnly.FromDateTime(DateTime.Now.AddYears(20)),
+ },
+ TimePeriods = new List { 1 },
+ Doors = new List { 1, 2, 3 },
+ Schedule = 1
+ };
+ }
+ break;
+ case DeviceTaskEnumType.TimePeriodAdd:
+ case DeviceTaskEnumType.TimePeriodDelete:
+ {
+ dto.Info = new TimePeriodToDeviceResponse
+ {
+ Id = 1,
+ TimePeriod = new TimePeriod
+ {
+ Start = TimeOnly.Parse("08:00:00"),
+ End = TimeOnly.Parse("17:30:00"),
+ },
+ Weeks = new List
+ {
+ DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Thursday, DayOfWeek.Friday
+ },
+ };
+ }
+ break;
+ case DeviceTaskEnumType.ScheduleAdd:
+ case DeviceTaskEnumType.ScheduleDelete:
+ {
+ dto.Info = new ScheduleToDeviceResponse
+ {
+ Id = 1,
+ Enable = true,
+ Name = "计划的一部分",
+ Schedules = new List
+ {
+ new ScheduleDto
+ {
+ Name = "国庆节",
+ DateTimePeriod = new DateTimePeriod
+ {
+ Start = new DateTime(2024,10,1), End = new DateTime(2024,10,7)
+ }
+ }
+ }
+ };
+ }
+ break;
+ default:
+ break;
+ }
+
+ return dto;
})
.ToList()
};
@@ -226,6 +298,14 @@ public class AssignmentService : IAssignmentService
//*********************************************************** help methods *********************************************************************
+ ///
+ /// 并发处理
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
private async Task ContinueUpdateAsync(Func> func, int retry)
{
for (int i = 0; i < retry; i++)