fix 任务生成描述
This commit is contained in:
@@ -109,7 +109,7 @@ public class AppointmentAreaService : IAppointmentAreaService
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Version = 0,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Appointment,
|
||||
Source = "预约区域和设备组关系变更生成",
|
||||
Priority = 99
|
||||
}));
|
||||
|
||||
@@ -122,7 +122,7 @@ public class AppointmentAreaService : IAppointmentAreaService
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Version = 0,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Appointment,
|
||||
Source = "预约区域和设备组关系变更生成",
|
||||
Priority = 99
|
||||
}));
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ public class AppointmentService : IAppointmentService
|
||||
Face = request.Base64Image
|
||||
});
|
||||
|
||||
await GenerateDeviceTasksAsync(detail, false, DeviceTaskEnumType.Add);
|
||||
await GenerateDeviceTasksAsync(detail, false, DeviceTaskEnumType.Add, "访客门岗认证生成");
|
||||
|
||||
try
|
||||
{
|
||||
@@ -189,7 +189,7 @@ public class AppointmentService : IAppointmentService
|
||||
detail.FocusLeaveDateTime = DateTime.Now;
|
||||
detail.Remark += "强制离场原因:" + reason;
|
||||
|
||||
await GenerateDeviceTasksAsync(detail, true, DeviceTaskEnumType.Delete);
|
||||
await GenerateDeviceTasksAsync(detail, true, DeviceTaskEnumType.Delete, "访客手动强制离场");
|
||||
}
|
||||
|
||||
public async Task<Pagination<AppointmentDetailResponse>> GetRecordPageByIdNoAsync(AppointmentIdNoPageRequest request)
|
||||
@@ -306,41 +306,40 @@ public class AppointmentService : IAppointmentService
|
||||
Face = base64
|
||||
});
|
||||
|
||||
await GenerateDeviceTasksAsync(detail, true, DeviceTaskEnumType.Update);
|
||||
await GenerateDeviceTasksAsync(detail, true, DeviceTaskEnumType.Update, "访客手动上传照片");
|
||||
}
|
||||
|
||||
//*********************************************************************************************************************
|
||||
|
||||
|
||||
private async Task GenerateDeviceTasksAsync(VisitorAppointmentDetailEntity detail, bool withWorkplace, DeviceTaskEnumType deviceTaskType)
|
||||
private async Task GenerateDeviceTasksAsync(VisitorAppointmentDetailEntity detail, bool withWorkplace, DeviceTaskEnumType deviceTaskType, string source)
|
||||
{
|
||||
var areaCodes = GetValidAreaCodes(detail, withWorkplace).ToList();
|
||||
if (areaCodes.Any())
|
||||
if (areaCodes.IsEmpty()) return;
|
||||
|
||||
var existsAreaCodes = await _dbContext.Queryable<AppointmentAreaEntity>().Where(x => areaCodes.Contains(x.CustomCode)).Select(x => x.CustomCode).ToListAsync();
|
||||
|
||||
//当前分配的设备组code
|
||||
var deviceGroupCodes = await _dbContext.Queryable<AppointmentAreaAssignmentEntity>()
|
||||
.Where(x => existsAreaCodes.Contains(x.CustomCode))
|
||||
.Select(x => x.DeviceGroupCode)
|
||||
.ToListAsync();
|
||||
|
||||
var deviceCodes = await _dbContext.Queryable<DeviceGroupRelationshipEntity>().Where(x => deviceGroupCodes.Contains(x.GroupCode)).Select(x => x.DeviceCode).ToListAsync();
|
||||
var deviceUniqueNos = await _dbContext.Queryable<DeviceEntity>().Where(x => deviceCodes.Contains(x.Code)).Select(x => new { x.UniqueNo, x.TenantId }).ToListAsync();
|
||||
|
||||
await _dbContext.InsertAsync(deviceUniqueNos.Select(x => new DeviceTaskEntity
|
||||
{
|
||||
var existsAreaCodes = await _dbContext.Queryable<AppointmentAreaEntity>().Where(x => areaCodes.Contains(x.CustomCode)).Select(x => x.CustomCode).ToListAsync();
|
||||
|
||||
//当前分配的设备组code
|
||||
var deviceGroupCodes = await _dbContext.Queryable<AppointmentAreaAssignmentEntity>()
|
||||
.Where(x => existsAreaCodes.Contains(x.CustomCode))
|
||||
.Select(x => x.DeviceGroupCode)
|
||||
.ToListAsync();
|
||||
|
||||
var deviceCodes = await _dbContext.Queryable<DeviceGroupRelationshipEntity>().Where(x => deviceGroupCodes.Contains(x.GroupCode)).Select(x => x.DeviceCode).ToListAsync();
|
||||
var deviceUniqueNos = await _dbContext.Queryable<DeviceEntity>().Where(x => deviceCodes.Contains(x.Code)).Select(x => new { x.UniqueNo, x.TenantId }).ToListAsync();
|
||||
|
||||
await _dbContext.InsertAsync(deviceUniqueNos.Select(x => new DeviceTaskEntity
|
||||
{
|
||||
DeviceType = DeviceTypeEnumType.Door,
|
||||
DeviceUniqueNo = x.UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
UserNo = detail.UserNo,
|
||||
Type = deviceTaskType,
|
||||
Priority = 100,
|
||||
TenantId = x.TenantId,
|
||||
Source = DeviceTaskSourceEnumType.Appointment,
|
||||
Version = 0
|
||||
}).ToList());
|
||||
}
|
||||
DeviceType = DeviceTypeEnumType.Door,
|
||||
DeviceUniqueNo = x.UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
UserNo = detail.UserNo,
|
||||
Type = deviceTaskType,
|
||||
Priority = 100,
|
||||
TenantId = x.TenantId,
|
||||
Source = source,
|
||||
Version = 0
|
||||
}).ToList());
|
||||
}
|
||||
|
||||
private static IEnumerable<string> GetValidAreaCodes(VisitorAppointmentDetailEntity detail, bool withWorkplace)
|
||||
|
||||
@@ -46,9 +46,9 @@ public class DevicePermissionsController : ControllerBase
|
||||
[AssignPermissionLimit]
|
||||
[Transactional]
|
||||
[CrossTenant]
|
||||
public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request)
|
||||
public async Task<DevicePermissionAssignResponse> AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request)
|
||||
{
|
||||
await _devicePermissionService.AssignToUniqueAsync(request);
|
||||
return await _devicePermissionService.AssignToUniqueAsync(request);
|
||||
}
|
||||
|
||||
[AllowAnonymous]
|
||||
@@ -98,13 +98,6 @@ public class DevicePermissionsController : ControllerBase
|
||||
[CrossTenant]
|
||||
public async Task ResetGainfoPageByDeviceAsync(DeviceGainfoReset request)
|
||||
{
|
||||
await _devicePermissionService.ResetGainfoPageByDeviceAsync(request);
|
||||
}
|
||||
|
||||
[HttpGet("userPermissionCodes")]
|
||||
[IgnoreTenant]
|
||||
public async Task<List<Guid>> GetAssignDeviceCodesAsync(string userCode)
|
||||
{
|
||||
return await _devicePermissionService.GetAssignDeviceCodesAsync(userCode);
|
||||
await _devicePermissionService.ResetGainfoPageByDeviceAsync(request.Code);
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ public interface IDevicePermissionAnalyzeService : IScopeDependency
|
||||
{
|
||||
Task<List<DevicePermissionEntity>> GetDevicePermissionsAsync(DevicePermissionSaveRequest request);
|
||||
|
||||
Task<DevicePermissionAssignResponse> GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos);
|
||||
Task<DevicePermissionAssignResponse> GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos, string source);
|
||||
|
||||
Task<List<Guid>> GetAssignmentsAsync(DeviceGetAssignmentsRequest request);
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
using Dlhis.Basic.Device.Dtos;
|
||||
using Dlhis.Basic.Device.Request;
|
||||
using Dlhis.Basic.Device.Response;
|
||||
using Dlhis.Basic.Organization.Dto;
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using Kurisu.AspNetCore.DataAccess.Dto;
|
||||
|
||||
@@ -36,21 +35,21 @@ public interface IDevicePermissionService : IScopeDependency
|
||||
/// <param name="taskType"></param>
|
||||
/// <param name="source"></param>
|
||||
/// <returns></returns>
|
||||
Task GenerateDeviceTasksAsync(string userNo, DeviceTaskEnumType taskType, DeviceTaskSourceEnumType source);
|
||||
Task GenerateDeviceTasksAsync(string userNo, DeviceTaskEnumType taskType, string source);
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户所有设备权限
|
||||
/// </summary>
|
||||
/// <param name="userCode"></param>
|
||||
/// <param name="userNo"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<Guid>> GetAssignDeviceCodesAsync(string userCode);
|
||||
Task<List<Guid>> GetUserDeviceCodesByNoAsync(string userNo);
|
||||
|
||||
Task<Pagination<DeviceGainfoResponse>> GetGainfoPageByDeviceAsync(DeviceWithGainfoRequest request);
|
||||
|
||||
/// <summary>
|
||||
/// 重新下载设备中所有人员
|
||||
/// </summary>
|
||||
/// <param name="request"></param>
|
||||
/// <param name="code"></param>
|
||||
/// <returns></returns>
|
||||
Task ResetGainfoPageByDeviceAsync(DeviceGainfoReset request);
|
||||
Task ResetGainfoPageByDeviceAsync(Guid code);
|
||||
}
|
||||
@@ -15,5 +15,5 @@ public interface IDeviceTimePeriodService : IScopeDependency
|
||||
|
||||
Task DeleteCardTypeAsync(DeviceTimePeriodDeleteCardTypeRequest request);
|
||||
|
||||
Task GenerateDeviceTimePeriodTasksAsync(Func<Task> func);
|
||||
Task GenerateDeviceTimePeriodTasksAsync(Func<Task> func, string source);
|
||||
}
|
||||
@@ -35,6 +35,8 @@ public abstract class BasePermissionAnalyzeService : IPermissionAnalyzeService
|
||||
|
||||
public async Task<DevicePermissionAssignResponse> AnalyzeAsync(DevicePermissionSaveRequest request)
|
||||
{
|
||||
var source = request.ToJson();
|
||||
|
||||
var tasksToAdd = new List<DeviceTaskEntity>();
|
||||
var tasksToDelete = new List<DeviceTaskEntity>();
|
||||
|
||||
@@ -61,7 +63,6 @@ public abstract class BasePermissionAnalyzeService : IPermissionAnalyzeService
|
||||
? await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(gainfoNos, request.UniqueType, request.GetActualAssignValue(), request.AssignType)
|
||||
: new Dictionary<string, List<TenantAssignTypeDeviceCode>>();
|
||||
|
||||
|
||||
foreach (var gainfoNo in gainfoNos)
|
||||
{
|
||||
IEnumerable<DeviceEntity> currentDevicesToDelete = devicesToDelete;
|
||||
@@ -83,7 +84,7 @@ public abstract class BasePermissionAnalyzeService : IPermissionAnalyzeService
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = source,
|
||||
Priority = 0,
|
||||
TenantId = x.TenantId,
|
||||
}).ToList());
|
||||
@@ -99,7 +100,7 @@ public abstract class BasePermissionAnalyzeService : IPermissionAnalyzeService
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = source,
|
||||
Priority = 0,
|
||||
TenantId = x.TenantId,
|
||||
}).ToList());
|
||||
@@ -117,7 +118,18 @@ public abstract class BasePermissionAnalyzeService : IPermissionAnalyzeService
|
||||
}
|
||||
|
||||
|
||||
public async Task CheckAssignedToTenantAsync(DevicePermissionSaveRequest request)
|
||||
/// <summary>
|
||||
/// 获取分配当前类型关联的用户
|
||||
/// </summary>
|
||||
/// <param name="assignValue"></param>
|
||||
/// <returns></returns>
|
||||
protected abstract Task<List<string>> GetGainfoNosAsync(string assignValue);
|
||||
|
||||
|
||||
//************************************************************************************************************************
|
||||
|
||||
|
||||
private async Task CheckAssignedToTenantAsync(DevicePermissionSaveRequest request)
|
||||
{
|
||||
if (request.AssignType != AssignTypeEnumType.Tenant)
|
||||
{
|
||||
@@ -166,17 +178,8 @@ public abstract class BasePermissionAnalyzeService : IPermissionAnalyzeService
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取分配当前类型关联的用户
|
||||
/// </summary>
|
||||
/// <param name="assignValue"></param>
|
||||
/// <returns></returns>
|
||||
protected abstract Task<List<string>> GetGainfoNosAsync(string assignValue);
|
||||
|
||||
|
||||
// --------------------------------------------------------------------------------------------------------------------- //
|
||||
|
||||
|
||||
|
||||
private async Task ChunkInsertAsync<T>(List<T> batch) where T : class, new()
|
||||
{
|
||||
foreach (var tasks in batch.Chunk(500))
|
||||
|
||||
@@ -196,14 +196,13 @@ public class DeviceGroupService : IDeviceGroupService
|
||||
.Where(x => deviceGroupCodes.Contains(x.UniqueValue))
|
||||
.ToListAsync();
|
||||
|
||||
if (!dps.Any())
|
||||
if (dps.IsEmpty())
|
||||
{
|
||||
return new DevicePermissionAssignResponse(0, 0);
|
||||
}
|
||||
|
||||
var gainfoNos = await GetPermissionUserNosAsync(dps);
|
||||
|
||||
|
||||
var userTenantDeviceCodes = codesToDelete.IsPresent() && dps.Exists(x => x.AssignType != AssignTypeEnumType.Tenant)
|
||||
? await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(gainfoNos)
|
||||
: new Dictionary<string, List<TenantAssignTypeDeviceCode>>();
|
||||
@@ -227,47 +226,44 @@ public class DeviceGroupService : IDeviceGroupService
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = "人员分组分配",
|
||||
Priority = 0,
|
||||
TenantId = x.TenantId,
|
||||
TenantId = x.TenantId
|
||||
}).ToList());
|
||||
|
||||
if (userTenantDeviceCodes.Any())
|
||||
if (userTenantDeviceCodes.TryGetValue(gainfoNo, out var permissions))
|
||||
{
|
||||
if (userTenantDeviceCodes.TryGetValue(gainfoNo, out var permissions))
|
||||
foreach (var permission in permissions)
|
||||
{
|
||||
foreach (var permission in permissions)
|
||||
permission.AssignTypes = permission.AssignTypes.Where(p =>
|
||||
{
|
||||
permission.AssignTypes = permission.AssignTypes.Where(p =>
|
||||
if (p.UniqueType == DeviceAssignmentTypeEnumType.Device)
|
||||
{
|
||||
if (p.UniqueType == DeviceAssignmentTypeEnumType.Device)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return p.OriginalCodes.IsPresent() && p.OriginalCodes.First() != groupCode;
|
||||
}).ToList();
|
||||
}
|
||||
|
||||
var myDeviceCodes = permissions.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).ToList();
|
||||
var currentDevicesToDelete = devicesToDelete.Where(p => devicesToDelete.Select(x => x.Code).Except(myDeviceCodes).Contains(p.Code)).ToList();
|
||||
|
||||
tasksToDelete.AddRange(currentDevicesToDelete.Select(x => new DeviceTaskEntity
|
||||
{
|
||||
Type = DeviceTaskEnumType.Delete,
|
||||
DeviceType = x.Type,
|
||||
UserId = null,
|
||||
UserNo = gainfoNo,
|
||||
DeviceUniqueNo = x.UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Priority = 0,
|
||||
TenantId = x.TenantId,
|
||||
}).ToList());
|
||||
return p.OriginalCodes.IsPresent() && p.OriginalCodes.First() != groupCode;
|
||||
}).ToList();
|
||||
}
|
||||
|
||||
var myDeviceCodes = permissions.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).ToList();
|
||||
var currentDevicesToDelete = devicesToDelete.Where(p => devicesToDelete.Select(x => x.Code).Except(myDeviceCodes).Contains(p.Code)).ToList();
|
||||
|
||||
tasksToDelete.AddRange(currentDevicesToDelete.Select(x => new DeviceTaskEntity
|
||||
{
|
||||
Type = DeviceTaskEnumType.Delete,
|
||||
DeviceType = x.Type,
|
||||
UserId = null,
|
||||
UserNo = gainfoNo,
|
||||
DeviceUniqueNo = x.UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 0,
|
||||
Source = "人员分组分配",
|
||||
Priority = 0,
|
||||
TenantId = x.TenantId,
|
||||
}).ToList());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -73,7 +73,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
|
||||
}
|
||||
|
||||
|
||||
public async Task<DevicePermissionAssignResponse> GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos)
|
||||
public async Task<DevicePermissionAssignResponse> GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos, string source)
|
||||
{
|
||||
var before = await GetUserAssignDeviceCodesInTenantAsync(userNos);
|
||||
|
||||
@@ -130,7 +130,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
|
||||
UserNo = userNo,
|
||||
Version = 0,
|
||||
TenantId = tenant,
|
||||
Source = DeviceTaskSourceEnumType.Manually
|
||||
Source = source
|
||||
}));
|
||||
|
||||
addItems.ForEach(x => waitAddTasks.Add(new DeviceTaskEntity
|
||||
@@ -142,7 +142,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
|
||||
UserNo = userNo,
|
||||
Version = 0,
|
||||
TenantId = tenant,
|
||||
Source = DeviceTaskSourceEnumType.Manually
|
||||
Source = source
|
||||
}));
|
||||
}
|
||||
}
|
||||
@@ -162,7 +162,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
|
||||
var gainfos = await _dbContext.Queryable<GainfoEntity>().Where(x => userNos.Contains(x.No)).ToListAsync();
|
||||
if (!gainfos.Any()) return new Dictionary<string, List<TenantAssignTypeDeviceCode>>();
|
||||
|
||||
var devices = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Enable).ToListAsync();
|
||||
var devices = await _dbContext.Queryable<DeviceEntity>().ToListAsync();
|
||||
|
||||
var enableFactoryPermissions = await _dbContext.Queryable<FactorySettingEntity>().ToListAsync();
|
||||
|
||||
|
||||
@@ -101,8 +101,8 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 20,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
CancellationId = 0,
|
||||
Source = "人员分配到设备unique",
|
||||
Priority = 0,
|
||||
TenantId = currentTenantId,
|
||||
}));
|
||||
@@ -113,7 +113,9 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
{
|
||||
foreach (var permission in permissions)
|
||||
{
|
||||
permission.AssignTypes = permission.AssignTypes.Where(x => x.UniqueType != DeviceAssignmentTypeEnumType.Device).ToList();
|
||||
permission.AssignTypes = permission.AssignTypes
|
||||
.Where(x => x.UniqueType != DeviceAssignmentTypeEnumType.Device && x.AssignType != AssignTypeEnumType.User)
|
||||
.ToList();
|
||||
}
|
||||
|
||||
var myDeviceCodes = permissions.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList();
|
||||
@@ -130,7 +132,7 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 20,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = "人员分配到设备unique",
|
||||
Priority = 0,
|
||||
TenantId = currentTenantId
|
||||
});
|
||||
@@ -208,7 +210,7 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = "人员分配到设备import",
|
||||
Priority = 0,
|
||||
TenantId = device.TenantId,
|
||||
}).ToList();
|
||||
@@ -274,8 +276,7 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
var arr = permission.AssignValue.Split(":");
|
||||
var tenantId = arr.First();
|
||||
var currentDepartmentNo = arr.Last();
|
||||
var departmentNos = new List<string> { currentDepartmentNo };
|
||||
DepartmentRecursionGetNext(currentDepartmentNo, departments, departmentNos);
|
||||
var departmentNos = RecursionHelper.HandlerDepartmentNextCodes(currentDepartmentNo, departments);
|
||||
|
||||
ids.AddRange(await _dbContext.Queryable<GainfoEntity>().Where(x => x.Factory == tenantId && departmentNos.Contains(x.DepartmentNo)).Select(x => x.Id).ToListAsync());
|
||||
}
|
||||
@@ -337,9 +338,9 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public async Task ResetGainfoPageByDeviceAsync(DeviceGainfoReset request)
|
||||
public async Task ResetGainfoPageByDeviceAsync(Guid code)
|
||||
{
|
||||
var device = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Code == request.Code).SingleAsync();
|
||||
var device = await _dbContext.Queryable<DeviceEntity>().Where(x => x.Code == code).SingleAsync();
|
||||
device.ThrowIfNull("设备不存在");
|
||||
var departments = await _dbContext.Queryable<DepartmentEntity>().ToListAsync();
|
||||
|
||||
@@ -363,8 +364,8 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
break;
|
||||
case AssignTypeEnumType.Group:
|
||||
{
|
||||
var code = Guid.Parse(permission.AssignValue);
|
||||
gainfoNos.AddRange(await _dbContext.Queryable<GainfoGroupEntity>().Where(x => x.Code == code)
|
||||
var groupCode = Guid.Parse(permission.AssignValue);
|
||||
gainfoNos.AddRange(await _dbContext.Queryable<GainfoGroupEntity>().Where(x => x.Code == groupCode)
|
||||
.LeftJoin<GainfoGroupRelationshipEntity>((a, b) => a.Code == b.GroupCode)
|
||||
.LeftJoin<GainfoEntity>((a, b, c) => b.UserNo == c.No)
|
||||
.Select((a, b, c) => c.No).ToListAsync());
|
||||
@@ -376,8 +377,7 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
var arr = permission.AssignValue.Split(":");
|
||||
var tenantId = arr.First();
|
||||
var currentDepartmentNo = arr.Last();
|
||||
var departmentNos = new List<string> { currentDepartmentNo };
|
||||
DepartmentRecursionGetNext(currentDepartmentNo, departments, departmentNos);
|
||||
var departmentNos = RecursionHelper.HandlerDepartmentNextCodes(currentDepartmentNo, departments);
|
||||
|
||||
gainfoNos.AddRange(await _dbContext.Queryable<GainfoEntity>().Where(x => x.Factory == tenantId && departmentNos.Contains(x.DepartmentNo)).Select(x => x.No).ToListAsync());
|
||||
}
|
||||
@@ -404,31 +404,21 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
UserNo = x,
|
||||
Version = 0,
|
||||
TenantId = device.TenantId,
|
||||
Source = DeviceTaskSourceEnumType.Manually
|
||||
Source = "重新生成设备下的人员"
|
||||
}).ToList());
|
||||
}
|
||||
|
||||
void DepartmentRecursionGetNext(string current, List<DepartmentEntity> data, List<string> result)
|
||||
public async Task GenerateDeviceTasksAsync(string userNo, DeviceTaskEnumType taskType, string source)
|
||||
{
|
||||
var next = data.Where(x => x.PNo == current);
|
||||
foreach (var item in next)
|
||||
{
|
||||
result.Add(item.No);
|
||||
DepartmentRecursionGetNext(item.No, data, result);
|
||||
}
|
||||
}
|
||||
|
||||
public async Task GenerateDeviceTasksAsync(string userNo, DeviceTaskEnumType taskType, DeviceTaskSourceEnumType source)
|
||||
{
|
||||
var deviceCodes = await GetAssignDeviceCodesAsync(userNo);
|
||||
if (!deviceCodes.Any()) return;
|
||||
var deviceCodes = await GetUserDeviceCodesByNoAsync(userNo);
|
||||
if (deviceCodes.IsEmpty()) return;
|
||||
|
||||
var devices = await _dbContext.Queryable<DeviceEntity>()
|
||||
.Where(x => x.Enable)
|
||||
.Where(x => deviceCodes.Contains(x.Code))
|
||||
.ToListAsync();
|
||||
|
||||
var tasks = devices.Select(x => new DeviceTaskEntity
|
||||
await _dbContext.InsertAsync(devices.Select(x => new DeviceTaskEntity
|
||||
{
|
||||
DeviceUniqueNo = x.UniqueNo,
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
@@ -440,20 +430,17 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
Version = 0,
|
||||
TenantId = x.TenantId,
|
||||
Source = source
|
||||
}).ToList();
|
||||
|
||||
await _dbContext.InsertAsync(tasks);
|
||||
}).ToList());
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户所有设备权限
|
||||
/// </summary>
|
||||
/// <param name="userCode"></param>
|
||||
/// <param name="userNo"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<Guid>> GetAssignDeviceCodesAsync(string userCode)
|
||||
public async Task<List<Guid>> GetUserDeviceCodesByNoAsync(string userNo)
|
||||
{
|
||||
var userNo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.Code == userCode || x.No == userCode).Select(x => x.No).SingleAsync();
|
||||
var result = await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List<string> { userNo });
|
||||
return result.First().Value.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList();
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ public class DeviceService : IDeviceService
|
||||
|
||||
request.Adapt(entity);
|
||||
await _dbContext.UpdateAsync(entity);
|
||||
|
||||
|
||||
var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == request.UniqueNo).SingleAsync();
|
||||
if (registry == null)
|
||||
{
|
||||
@@ -123,7 +123,7 @@ public class DeviceService : IDeviceService
|
||||
}
|
||||
|
||||
await GenerateUploadRecordLogForBeginTimeAsync(entity);
|
||||
});
|
||||
}, "设备启用/关闭时段码功能");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -79,7 +79,7 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService
|
||||
|
||||
await _dbContext.UpdateAsync(entity);
|
||||
}
|
||||
});
|
||||
}, "时段码变更");
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
@@ -121,11 +121,11 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService
|
||||
|
||||
entity.ThrowIfNull("数据不存在");
|
||||
await _dbContext.DeleteReallyAsync(entity);
|
||||
});
|
||||
}, "删除时段码");
|
||||
}
|
||||
|
||||
|
||||
public async Task GenerateDeviceTimePeriodTasksAsync(Func<Task> func)
|
||||
public async Task GenerateDeviceTimePeriodTasksAsync(Func<Task> func, string source)
|
||||
{
|
||||
var cardTypes = await _dbContext.Queryable<BasicTypeEntity>().Where(x => x.Type == "timeperiod").Select(x => SqlFunc.ToInt32(x.Code)).ToListAsync();
|
||||
|
||||
@@ -159,9 +159,9 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Version = 0,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = source,
|
||||
Priority = 90,
|
||||
TenantId = device.TenantId,
|
||||
TenantId = device.TenantId
|
||||
});
|
||||
|
||||
continue;
|
||||
@@ -192,7 +192,7 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService
|
||||
Status = DeviceTaskStatusEnumType.Wait,
|
||||
Version = 0,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = source,
|
||||
Priority = 90,
|
||||
TenantId = device.TenantId
|
||||
});
|
||||
|
||||
@@ -55,6 +55,6 @@ public class GainfoPermissionsController : ControllerBase
|
||||
[HttpPost("reset")]
|
||||
public async Task<DevicePermissionAssignResponse> ResetPermissionsAsync(GainfoPermissionResetRequest request)
|
||||
{
|
||||
return await _gainfoPermissions.ResetPermissionsAsync(request.UserNo, request.Status ? DeviceTaskEnumType.Add : DeviceTaskEnumType.Delete, null);
|
||||
return await _gainfoPermissions.ResetPermissionsAsync(request.UserNo, request.Status ? DeviceTaskEnumType.Add : DeviceTaskEnumType.Delete, null, "admin手动操作重置");
|
||||
}
|
||||
}
|
||||
@@ -13,5 +13,5 @@ public interface IGainfoPermissionService : IScopeDependency
|
||||
|
||||
Task<Pagination<GainfoDevicePermissionResponse>> GetAssignDeviceCodesAsync(DeviceAssRequest request);
|
||||
|
||||
Task<DevicePermissionAssignResponse> ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List<Guid> deviceCodes);
|
||||
Task<DevicePermissionAssignResponse> ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List<Guid> deviceCodes, string source);
|
||||
}
|
||||
@@ -137,7 +137,7 @@ public class GainfoFaceService : IGainfoFaceService
|
||||
await _faceDbContext.UpdateAsync(face);
|
||||
}
|
||||
|
||||
await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, taskType, DeviceTaskSourceEnumType.Photo);
|
||||
await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, taskType, "照片上传生成");
|
||||
}
|
||||
|
||||
public async Task<string> GetExternalFaceAsync(string idno)
|
||||
@@ -264,7 +264,7 @@ public class GainfoFaceService : IGainfoFaceService
|
||||
}
|
||||
|
||||
//生成任务
|
||||
await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, taskType, DeviceTaskSourceEnumType.Photo);
|
||||
await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, taskType, "照片上传生成");
|
||||
}
|
||||
|
||||
public async Task UploadFacesAsync(List<GainfoUploadFaceRequest> requests)
|
||||
@@ -309,7 +309,7 @@ public class GainfoFaceService : IGainfoFaceService
|
||||
}
|
||||
|
||||
//生成任务
|
||||
await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, taskType, DeviceTaskSourceEnumType.Photo);
|
||||
await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, taskType, "照片上传生成");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -178,7 +178,7 @@ public class GainfoGroupService : IGainfoGroupService
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
deleteTasks.Add(new DeviceTaskEntity
|
||||
{
|
||||
Type = DeviceTaskEnumType.Delete,
|
||||
@@ -190,7 +190,7 @@ public class GainfoGroupService : IGainfoGroupService
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = "手动操作人员分组关系",
|
||||
Priority = 0,
|
||||
TenantId = device.TenantId
|
||||
});
|
||||
@@ -210,7 +210,7 @@ public class GainfoGroupService : IGainfoGroupService
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = "手动操作人员分组关系",
|
||||
Priority = 0,
|
||||
TenantId = device.TenantId
|
||||
});
|
||||
|
||||
@@ -148,7 +148,7 @@ public class GainfoOutsourceService : IGainfoOutsourceService
|
||||
await _gainfoService.ResignAsync(new GainfoResignRequest
|
||||
{
|
||||
Id = outsource.Id,
|
||||
Reason = $"{setting.NoRecordAutoResignOutsourceDays}天无打开记录",
|
||||
Reason = $"{setting.NoRecordAutoResignOutsourceDays}天无通行记录",
|
||||
Date = DateTime.Now,
|
||||
IsOutsource = true
|
||||
});
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
using Dlhis.Basic.Device.Dtos;
|
||||
using Dlhis.Basic.Device.Request;
|
||||
using Dlhis.Basic.Device.Response;
|
||||
using Dlhis.Basic.Device.Services;
|
||||
using Dlhis.Basic.Organization.Request;
|
||||
using Dlhis.Basic.Organization.Response;
|
||||
using Dlhis.Basic.Places.Response;
|
||||
using Dlhis.Entity.Basic.Entity;
|
||||
using Dlhis.Entity.Device.Entities;
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
@@ -18,13 +16,11 @@ namespace Dlhis.Basic.Organization.Services.Implements;
|
||||
|
||||
public class GainfoPermissionService : IGainfoPermissionService
|
||||
{
|
||||
private readonly IGainfoStore _gainfoStore;
|
||||
private readonly IDevicePermissionAnalyzeService _devicePermissionAnalyzeService;
|
||||
private readonly IDbContext _dbContext;
|
||||
|
||||
public GainfoPermissionService(IGainfoStore gainfoStore, IDevicePermissionAnalyzeService devicePermissionAnalyzeService, IDbContext dbContext)
|
||||
public GainfoPermissionService(IDevicePermissionAnalyzeService devicePermissionAnalyzeService, IDbContext dbContext)
|
||||
{
|
||||
_gainfoStore = gainfoStore;
|
||||
_devicePermissionAnalyzeService = devicePermissionAnalyzeService;
|
||||
_dbContext = dbContext;
|
||||
}
|
||||
@@ -154,7 +150,7 @@ public class GainfoPermissionService : IGainfoPermissionService
|
||||
}
|
||||
|
||||
|
||||
public async Task<DevicePermissionAssignResponse> ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List<Guid> deviceCodes)
|
||||
public async Task<DevicePermissionAssignResponse> ResetPermissionsAsync(string userNo, DeviceTaskEnumType type, List<Guid> deviceCodes, string source)
|
||||
{
|
||||
var gainfo = await _dbContext.Queryable<GainfoEntity>()
|
||||
.Where(x => x.No == userNo)
|
||||
@@ -193,7 +189,7 @@ public class GainfoPermissionService : IGainfoPermissionService
|
||||
DeviceType = x.Type,
|
||||
TenantId = x.TenantId,
|
||||
Priority = 10,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = source,
|
||||
}).ToList();
|
||||
|
||||
await _dbContext.InsertAsync(tasks);
|
||||
|
||||
@@ -254,8 +254,8 @@ public class GainfoService : IGainfoService
|
||||
(outsource == null).ThrowIfTrue("非外包人员不可手动离职");
|
||||
}
|
||||
|
||||
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, null);
|
||||
|
||||
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, null, request.Reason);
|
||||
|
||||
await _dbContext.Deleteable<GainfoGroupRelationshipEntity>().Where(x => x.UserNo != gainfo.No).ExecuteCommandAsync();
|
||||
await _dbContext.Deleteable<DevicePermissionEntity>().Where(x => x.AssignType == AssignTypeEnumType.User && x.AssignValue == gainfo.No).ExecuteCommandAsync();
|
||||
|
||||
@@ -288,7 +288,7 @@ public class GainfoService : IGainfoService
|
||||
|
||||
await _dbContext.UpdateAsync(gainfo);
|
||||
|
||||
var deviceCodes = await _devicePermissionService.GetAssignDeviceCodesAsync(gainfo.Code);
|
||||
var deviceCodes = await _devicePermissionService.GetUserDeviceCodesByNoAsync(gainfo.No);
|
||||
|
||||
var dhDevices = await _dbContext.Queryable<DeviceEntity>().LeftJoin<DeviceTemplateEntity>((x, xt) => x.TemplateCode == xt.Code)
|
||||
.Where((x, xt) => xt.Name == "大华人脸机")
|
||||
@@ -306,7 +306,7 @@ public class GainfoService : IGainfoService
|
||||
Version = 0,
|
||||
ResultMessage = null,
|
||||
CancellationId = 0,
|
||||
Source = DeviceTaskSourceEnumType.Manually,
|
||||
Source = "安全级别提高",
|
||||
Priority = 60,
|
||||
TenantId = x.TenantId
|
||||
}).ToList());
|
||||
@@ -451,7 +451,7 @@ public class GainfoService : IGainfoService
|
||||
//海宁触发权限下发
|
||||
if (gainfo.Workplace == "5")
|
||||
{
|
||||
await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, DeviceTaskEnumType.Add, DeviceTaskSourceEnumType.Migration);
|
||||
await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, DeviceTaskEnumType.Add, "人员迁移生成");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ public class GainfoUpdateService : IGainfoUpdateService
|
||||
{
|
||||
await _dbContext.InsertAsync(info);
|
||||
await _identityUserSyncService.SyncAccountAsync(info.Code, info.Name, info.IdNo, info.Factory);
|
||||
}, new List<string> { info.No });
|
||||
}, new List<string> { info.No }, "入职生成");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -283,7 +283,7 @@ public class GainfoUpdateService : IGainfoUpdateService
|
||||
}).Where(x => x.Code == item.ename).ExecuteCommandAsync();
|
||||
|
||||
await _identityUserSyncService.SyncAccountAsync(gainfo.Code, gainfo.Name, gainfo.IdNo, factory);
|
||||
}, new List<string> { gainfo.No });
|
||||
}, new List<string> { gainfo.No }, "人员数据变更");
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -307,7 +307,7 @@ public class GainfoUpdateService : IGainfoUpdateService
|
||||
|
||||
gainfo.Id = gainfo.IdentityUserId;
|
||||
await _dbContext.DeleteReallyAsync(gainfo);
|
||||
}, new List<string> { gainfo.No });
|
||||
}, new List<string> { gainfo.No }, "人员离职生成");
|
||||
|
||||
await _dbContext.Client.Ado.CommitTranAsync();
|
||||
}
|
||||
@@ -420,7 +420,7 @@ public class GainfoUpdateService : IGainfoUpdateService
|
||||
var native = GetNative(person.ZZ_SFZH);
|
||||
var sex = person.GESCH == "2" ? "F" : "M";
|
||||
|
||||
person.ZZ_SFZH = person.ZZ_SFZH?.TrimStart();
|
||||
person.ZZ_SFZH = person.ZZ_SFZH.TrimStart();
|
||||
GainfoSapEntity o = new()
|
||||
{
|
||||
gname = person.NAME,
|
||||
|
||||
@@ -101,7 +101,7 @@ public class SapBusinessTripService : ISapBusinessTripService
|
||||
await _dbContext.UpdateAsync(todayTripInfo);
|
||||
|
||||
//下发
|
||||
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes);
|
||||
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes, "出差昨天今天都有");
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -120,7 +120,7 @@ public class SapBusinessTripService : ISapBusinessTripService
|
||||
.ExecuteCommandAsync();
|
||||
|
||||
await _dbContext.UpdateAsync(yesterdayTripInfo);
|
||||
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, deviceCodes);
|
||||
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, deviceCodes, "出差昨天有今天无");
|
||||
}
|
||||
|
||||
if (yesterdayTripInfo == null)
|
||||
@@ -149,7 +149,7 @@ public class SapBusinessTripService : ISapBusinessTripService
|
||||
todayTripInfo.Status = BusinessTripStatusEnumType.Generated;
|
||||
await _dbContext.UpdateAsync(todayTripInfo);
|
||||
|
||||
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes);
|
||||
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes, "出差昨天无今天有");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
|
||||
@@ -68,8 +68,8 @@ public class DeviceTaskEntity : SugarBaseEntity, ITenantId, IVersion
|
||||
/// <summary>
|
||||
/// 任务来源
|
||||
/// </summary>
|
||||
[SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
|
||||
public DeviceTaskSourceEnumType? Source { get; set; }
|
||||
[SugarColumn(IsNullable = true, ColumnDataType = "varchar(255)")]
|
||||
public string Source { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 优先级
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
using System.ComponentModel;
|
||||
|
||||
namespace Dlhis.Entity.Device.Enums;
|
||||
|
||||
/// <summary>
|
||||
/// 设备任务来源
|
||||
/// </summary>
|
||||
[Description("设备任务来源")]
|
||||
public enum DeviceTaskSourceEnumType
|
||||
{
|
||||
/// <summary>
|
||||
/// 手动分配
|
||||
/// </summary>
|
||||
[Description("手动分配")]
|
||||
Manually = 1,
|
||||
|
||||
/// <summary>
|
||||
/// 上传照片
|
||||
/// </summary>
|
||||
[Description("上传照片")]
|
||||
Photo = 2,
|
||||
|
||||
/// <summary>
|
||||
/// 数据迁移
|
||||
/// </summary>
|
||||
[Description("数据迁移")]
|
||||
Migration = 3,
|
||||
|
||||
/// <summary>
|
||||
/// 任务调度
|
||||
/// </summary>
|
||||
[Description("任务调度")]
|
||||
Schedule = 4,
|
||||
|
||||
/// <summary>
|
||||
/// 预约
|
||||
/// </summary>
|
||||
[Description("预约")]
|
||||
Appointment = 10,
|
||||
}
|
||||
@@ -55,7 +55,7 @@ public class AutoConfirmAppointmentJob : BaseJob
|
||||
Type = DeviceTaskEnumType.Add,
|
||||
Priority = 100,
|
||||
TenantId = x.TenantId,
|
||||
Source = DeviceTaskSourceEnumType.Appointment,
|
||||
Source = "定时任务判断触发车间下发任务",
|
||||
Version = 0
|
||||
}).ToList());
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ public class AutoRemoveAppointmentJob : BaseJob
|
||||
Type = DeviceTaskEnumType.Delete,
|
||||
Priority = 100,
|
||||
TenantId = x.TenantId,
|
||||
Source = DeviceTaskSourceEnumType.Appointment,
|
||||
Source = "定时任务判断触发移除",
|
||||
Version = 0
|
||||
}).ToList());
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ public class CreateGetUploadRecordJob : BaseJob
|
||||
Type = DeviceTaskEnumType.UploadRecord,
|
||||
CancellationId = 0,
|
||||
Priority = 50,
|
||||
Source = DeviceTaskSourceEnumType.Schedule
|
||||
Source = "定时任务创建设备获取通行记录任务"
|
||||
}).ToList();
|
||||
|
||||
await DbContext.InsertAsync(tasks);
|
||||
|
||||
@@ -40,7 +40,7 @@ public class CreateSyncServerDateTimeJob : BaseJob
|
||||
Type = DeviceTaskEnumType.SyncDateTime,
|
||||
DeviceType = x.Type,
|
||||
Priority = 49,
|
||||
Source = DeviceTaskSourceEnumType.Schedule
|
||||
Source = "定时任务创建设备同步时间任务"
|
||||
}).ToList();
|
||||
|
||||
await DbContext.InsertAsync(tasks);
|
||||
|
||||
Reference in New Issue
Block a user