fix 任务生成描述

This commit is contained in:
2024-12-18 11:53:32 +08:00
parent 7cfd0b7365
commit df299bb019
27 changed files with 151 additions and 218 deletions

View File

@@ -109,7 +109,7 @@ public class AppointmentAreaService : IAppointmentAreaService
Status = DeviceTaskStatusEnumType.Wait, Status = DeviceTaskStatusEnumType.Wait,
Version = 0, Version = 0,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Appointment, Source = "预约区域和设备组关系变更生成",
Priority = 99 Priority = 99
})); }));
@@ -122,7 +122,7 @@ public class AppointmentAreaService : IAppointmentAreaService
Status = DeviceTaskStatusEnumType.Wait, Status = DeviceTaskStatusEnumType.Wait,
Version = 0, Version = 0,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Appointment, Source = "预约区域和设备组关系变更生成",
Priority = 99 Priority = 99
})); }));
} }

View File

@@ -114,7 +114,7 @@ public class AppointmentService : IAppointmentService
Face = request.Base64Image Face = request.Base64Image
}); });
await GenerateDeviceTasksAsync(detail, false, DeviceTaskEnumType.Add); await GenerateDeviceTasksAsync(detail, false, DeviceTaskEnumType.Add, "访客门岗认证生成");
try try
{ {
@@ -189,7 +189,7 @@ public class AppointmentService : IAppointmentService
detail.FocusLeaveDateTime = DateTime.Now; detail.FocusLeaveDateTime = DateTime.Now;
detail.Remark += "强制离场原因:" + reason; detail.Remark += "强制离场原因:" + reason;
await GenerateDeviceTasksAsync(detail, true, DeviceTaskEnumType.Delete); await GenerateDeviceTasksAsync(detail, true, DeviceTaskEnumType.Delete, "访客手动强制离场");
} }
public async Task<Pagination<AppointmentDetailResponse>> GetRecordPageByIdNoAsync(AppointmentIdNoPageRequest request) public async Task<Pagination<AppointmentDetailResponse>> GetRecordPageByIdNoAsync(AppointmentIdNoPageRequest request)
@@ -306,41 +306,40 @@ public class AppointmentService : IAppointmentService
Face = base64 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(); 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(); DeviceType = DeviceTypeEnumType.Door,
DeviceUniqueNo = x.UniqueNo,
//当前分配的设备组code Status = DeviceTaskStatusEnumType.Wait,
var deviceGroupCodes = await _dbContext.Queryable<AppointmentAreaAssignmentEntity>() UserNo = detail.UserNo,
.Where(x => existsAreaCodes.Contains(x.CustomCode)) Type = deviceTaskType,
.Select(x => x.DeviceGroupCode) Priority = 100,
.ToListAsync(); TenantId = x.TenantId,
Source = source,
var deviceCodes = await _dbContext.Queryable<DeviceGroupRelationshipEntity>().Where(x => deviceGroupCodes.Contains(x.GroupCode)).Select(x => x.DeviceCode).ToListAsync(); Version = 0
var deviceUniqueNos = await _dbContext.Queryable<DeviceEntity>().Where(x => deviceCodes.Contains(x.Code)).Select(x => new { x.UniqueNo, x.TenantId }).ToListAsync(); }).ToList());
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());
}
} }
private static IEnumerable<string> GetValidAreaCodes(VisitorAppointmentDetailEntity detail, bool withWorkplace) private static IEnumerable<string> GetValidAreaCodes(VisitorAppointmentDetailEntity detail, bool withWorkplace)

View File

@@ -46,9 +46,9 @@ public class DevicePermissionsController : ControllerBase
[AssignPermissionLimit] [AssignPermissionLimit]
[Transactional] [Transactional]
[CrossTenant] [CrossTenant]
public async Task AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request) public async Task<DevicePermissionAssignResponse> AssignToUniqueAsync(DevicePermissionsAssignToDeviceRequest request)
{ {
await _devicePermissionService.AssignToUniqueAsync(request); return await _devicePermissionService.AssignToUniqueAsync(request);
} }
[AllowAnonymous] [AllowAnonymous]
@@ -98,13 +98,6 @@ public class DevicePermissionsController : ControllerBase
[CrossTenant] [CrossTenant]
public async Task ResetGainfoPageByDeviceAsync(DeviceGainfoReset request) public async Task ResetGainfoPageByDeviceAsync(DeviceGainfoReset request)
{ {
await _devicePermissionService.ResetGainfoPageByDeviceAsync(request); await _devicePermissionService.ResetGainfoPageByDeviceAsync(request.Code);
}
[HttpGet("userPermissionCodes")]
[IgnoreTenant]
public async Task<List<Guid>> GetAssignDeviceCodesAsync(string userCode)
{
return await _devicePermissionService.GetAssignDeviceCodesAsync(userCode);
} }
} }

View File

@@ -14,7 +14,7 @@ public interface IDevicePermissionAnalyzeService : IScopeDependency
{ {
Task<List<DevicePermissionEntity>> GetDevicePermissionsAsync(DevicePermissionSaveRequest request); 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); Task<List<Guid>> GetAssignmentsAsync(DeviceGetAssignmentsRequest request);

View File

@@ -1,7 +1,6 @@
using Dlhis.Basic.Device.Dtos; using Dlhis.Basic.Device.Dtos;
using Dlhis.Basic.Device.Request; using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Response; using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Organization.Dto;
using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Device.Enums;
using Kurisu.AspNetCore.DataAccess.Dto; using Kurisu.AspNetCore.DataAccess.Dto;
@@ -36,21 +35,21 @@ public interface IDevicePermissionService : IScopeDependency
/// <param name="taskType"></param> /// <param name="taskType"></param>
/// <param name="source"></param> /// <param name="source"></param>
/// <returns></returns> /// <returns></returns>
Task GenerateDeviceTasksAsync(string userNo, DeviceTaskEnumType taskType, DeviceTaskSourceEnumType source); Task GenerateDeviceTasksAsync(string userNo, DeviceTaskEnumType taskType, string source);
/// <summary> /// <summary>
/// 获取用户所有设备权限 /// 获取用户所有设备权限
/// </summary> /// </summary>
/// <param name="userCode"></param> /// <param name="userNo"></param>
/// <returns></returns> /// <returns></returns>
Task<List<Guid>> GetAssignDeviceCodesAsync(string userCode); Task<List<Guid>> GetUserDeviceCodesByNoAsync(string userNo);
Task<Pagination<DeviceGainfoResponse>> GetGainfoPageByDeviceAsync(DeviceWithGainfoRequest request); Task<Pagination<DeviceGainfoResponse>> GetGainfoPageByDeviceAsync(DeviceWithGainfoRequest request);
/// <summary> /// <summary>
/// 重新下载设备中所有人员 /// 重新下载设备中所有人员
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="code"></param>
/// <returns></returns> /// <returns></returns>
Task ResetGainfoPageByDeviceAsync(DeviceGainfoReset request); Task ResetGainfoPageByDeviceAsync(Guid code);
} }

View File

@@ -15,5 +15,5 @@ public interface IDeviceTimePeriodService : IScopeDependency
Task DeleteCardTypeAsync(DeviceTimePeriodDeleteCardTypeRequest request); Task DeleteCardTypeAsync(DeviceTimePeriodDeleteCardTypeRequest request);
Task GenerateDeviceTimePeriodTasksAsync(Func<Task> func); Task GenerateDeviceTimePeriodTasksAsync(Func<Task> func, string source);
} }

View File

@@ -35,6 +35,8 @@ public abstract class BasePermissionAnalyzeService : IPermissionAnalyzeService
public async Task<DevicePermissionAssignResponse> AnalyzeAsync(DevicePermissionSaveRequest request) public async Task<DevicePermissionAssignResponse> AnalyzeAsync(DevicePermissionSaveRequest request)
{ {
var source = request.ToJson();
var tasksToAdd = new List<DeviceTaskEntity>(); var tasksToAdd = new List<DeviceTaskEntity>();
var tasksToDelete = 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) ? await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(gainfoNos, request.UniqueType, request.GetActualAssignValue(), request.AssignType)
: new Dictionary<string, List<TenantAssignTypeDeviceCode>>(); : new Dictionary<string, List<TenantAssignTypeDeviceCode>>();
foreach (var gainfoNo in gainfoNos) foreach (var gainfoNo in gainfoNos)
{ {
IEnumerable<DeviceEntity> currentDevicesToDelete = devicesToDelete; IEnumerable<DeviceEntity> currentDevicesToDelete = devicesToDelete;
@@ -83,7 +84,7 @@ public abstract class BasePermissionAnalyzeService : IPermissionAnalyzeService
Version = 0, Version = 0,
ResultMessage = null, ResultMessage = null,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = source,
Priority = 0, Priority = 0,
TenantId = x.TenantId, TenantId = x.TenantId,
}).ToList()); }).ToList());
@@ -99,7 +100,7 @@ public abstract class BasePermissionAnalyzeService : IPermissionAnalyzeService
Version = 0, Version = 0,
ResultMessage = null, ResultMessage = null,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = source,
Priority = 0, Priority = 0,
TenantId = x.TenantId, TenantId = x.TenantId,
}).ToList()); }).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) 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() private async Task ChunkInsertAsync<T>(List<T> batch) where T : class, new()
{ {
foreach (var tasks in batch.Chunk(500)) foreach (var tasks in batch.Chunk(500))

View File

@@ -196,14 +196,13 @@ public class DeviceGroupService : IDeviceGroupService
.Where(x => deviceGroupCodes.Contains(x.UniqueValue)) .Where(x => deviceGroupCodes.Contains(x.UniqueValue))
.ToListAsync(); .ToListAsync();
if (!dps.Any()) if (dps.IsEmpty())
{ {
return new DevicePermissionAssignResponse(0, 0); return new DevicePermissionAssignResponse(0, 0);
} }
var gainfoNos = await GetPermissionUserNosAsync(dps); var gainfoNos = await GetPermissionUserNosAsync(dps);
var userTenantDeviceCodes = codesToDelete.IsPresent() && dps.Exists(x => x.AssignType != AssignTypeEnumType.Tenant) var userTenantDeviceCodes = codesToDelete.IsPresent() && dps.Exists(x => x.AssignType != AssignTypeEnumType.Tenant)
? await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(gainfoNos) ? await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(gainfoNos)
: new Dictionary<string, List<TenantAssignTypeDeviceCode>>(); : new Dictionary<string, List<TenantAssignTypeDeviceCode>>();
@@ -227,47 +226,44 @@ public class DeviceGroupService : IDeviceGroupService
Version = 0, Version = 0,
ResultMessage = null, ResultMessage = null,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = "人员分组分配",
Priority = 0, Priority = 0,
TenantId = x.TenantId, TenantId = x.TenantId
}).ToList()); }).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; return p.OriginalCodes.IsPresent() && p.OriginalCodes.First() != groupCode;
}).ToList(); }).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());
} }
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());
} }
} }

View File

@@ -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); var before = await GetUserAssignDeviceCodesInTenantAsync(userNos);
@@ -130,7 +130,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
UserNo = userNo, UserNo = userNo,
Version = 0, Version = 0,
TenantId = tenant, TenantId = tenant,
Source = DeviceTaskSourceEnumType.Manually Source = source
})); }));
addItems.ForEach(x => waitAddTasks.Add(new DeviceTaskEntity addItems.ForEach(x => waitAddTasks.Add(new DeviceTaskEntity
@@ -142,7 +142,7 @@ public class DevicePermissionAnalyzeService : IDevicePermissionAnalyzeService
UserNo = userNo, UserNo = userNo,
Version = 0, Version = 0,
TenantId = tenant, 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(); var gainfos = await _dbContext.Queryable<GainfoEntity>().Where(x => userNos.Contains(x.No)).ToListAsync();
if (!gainfos.Any()) return new Dictionary<string, List<TenantAssignTypeDeviceCode>>(); 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(); var enableFactoryPermissions = await _dbContext.Queryable<FactorySettingEntity>().ToListAsync();

View File

@@ -101,8 +101,8 @@ public class DevicePermissionService : IDevicePermissionService
Status = DeviceTaskStatusEnumType.Wait, Status = DeviceTaskStatusEnumType.Wait,
Version = 0, Version = 0,
ResultMessage = null, ResultMessage = null,
CancellationId = 20, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = "人员分配到设备unique",
Priority = 0, Priority = 0,
TenantId = currentTenantId, TenantId = currentTenantId,
})); }));
@@ -113,7 +113,9 @@ public class DevicePermissionService : IDevicePermissionService
{ {
foreach (var permission in permissions) 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(); var myDeviceCodes = permissions.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList();
@@ -130,7 +132,7 @@ public class DevicePermissionService : IDevicePermissionService
Version = 0, Version = 0,
ResultMessage = null, ResultMessage = null,
CancellationId = 20, CancellationId = 20,
Source = DeviceTaskSourceEnumType.Manually, Source = "人员分配到设备unique",
Priority = 0, Priority = 0,
TenantId = currentTenantId TenantId = currentTenantId
}); });
@@ -208,7 +210,7 @@ public class DevicePermissionService : IDevicePermissionService
Version = 0, Version = 0,
ResultMessage = null, ResultMessage = null,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = "人员分配到设备import",
Priority = 0, Priority = 0,
TenantId = device.TenantId, TenantId = device.TenantId,
}).ToList(); }).ToList();
@@ -274,8 +276,7 @@ public class DevicePermissionService : IDevicePermissionService
var arr = permission.AssignValue.Split(":"); var arr = permission.AssignValue.Split(":");
var tenantId = arr.First(); var tenantId = arr.First();
var currentDepartmentNo = arr.Last(); var currentDepartmentNo = arr.Last();
var departmentNos = new List<string> { currentDepartmentNo }; var departmentNos = RecursionHelper.HandlerDepartmentNextCodes(currentDepartmentNo, departments);
DepartmentRecursionGetNext(currentDepartmentNo, departments, departmentNos);
ids.AddRange(await _dbContext.Queryable<GainfoEntity>().Where(x => x.Factory == tenantId && departmentNos.Contains(x.DepartmentNo)).Select(x => x.Id).ToListAsync()); 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 /> /// <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("设备不存在"); device.ThrowIfNull("设备不存在");
var departments = await _dbContext.Queryable<DepartmentEntity>().ToListAsync(); var departments = await _dbContext.Queryable<DepartmentEntity>().ToListAsync();
@@ -363,8 +364,8 @@ public class DevicePermissionService : IDevicePermissionService
break; break;
case AssignTypeEnumType.Group: case AssignTypeEnumType.Group:
{ {
var code = Guid.Parse(permission.AssignValue); var groupCode = Guid.Parse(permission.AssignValue);
gainfoNos.AddRange(await _dbContext.Queryable<GainfoGroupEntity>().Where(x => x.Code == code) gainfoNos.AddRange(await _dbContext.Queryable<GainfoGroupEntity>().Where(x => x.Code == groupCode)
.LeftJoin<GainfoGroupRelationshipEntity>((a, b) => a.Code == b.GroupCode) .LeftJoin<GainfoGroupRelationshipEntity>((a, b) => a.Code == b.GroupCode)
.LeftJoin<GainfoEntity>((a, b, c) => b.UserNo == c.No) .LeftJoin<GainfoEntity>((a, b, c) => b.UserNo == c.No)
.Select((a, b, c) => c.No).ToListAsync()); .Select((a, b, c) => c.No).ToListAsync());
@@ -376,8 +377,7 @@ public class DevicePermissionService : IDevicePermissionService
var arr = permission.AssignValue.Split(":"); var arr = permission.AssignValue.Split(":");
var tenantId = arr.First(); var tenantId = arr.First();
var currentDepartmentNo = arr.Last(); var currentDepartmentNo = arr.Last();
var departmentNos = new List<string> { currentDepartmentNo }; var departmentNos = RecursionHelper.HandlerDepartmentNextCodes(currentDepartmentNo, departments);
DepartmentRecursionGetNext(currentDepartmentNo, departments, departmentNos);
gainfoNos.AddRange(await _dbContext.Queryable<GainfoEntity>().Where(x => x.Factory == tenantId && departmentNos.Contains(x.DepartmentNo)).Select(x => x.No).ToListAsync()); 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, UserNo = x,
Version = 0, Version = 0,
TenantId = device.TenantId, TenantId = device.TenantId,
Source = DeviceTaskSourceEnumType.Manually Source = "重新生成设备下的人员"
}).ToList()); }).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); var deviceCodes = await GetUserDeviceCodesByNoAsync(userNo);
foreach (var item in next) if (deviceCodes.IsEmpty()) return;
{
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 devices = await _dbContext.Queryable<DeviceEntity>() var devices = await _dbContext.Queryable<DeviceEntity>()
.Where(x => x.Enable) .Where(x => x.Enable)
.Where(x => deviceCodes.Contains(x.Code)) .Where(x => deviceCodes.Contains(x.Code))
.ToListAsync(); .ToListAsync();
var tasks = devices.Select(x => new DeviceTaskEntity await _dbContext.InsertAsync(devices.Select(x => new DeviceTaskEntity
{ {
DeviceUniqueNo = x.UniqueNo, DeviceUniqueNo = x.UniqueNo,
Status = DeviceTaskStatusEnumType.Wait, Status = DeviceTaskStatusEnumType.Wait,
@@ -440,20 +430,17 @@ public class DevicePermissionService : IDevicePermissionService
Version = 0, Version = 0,
TenantId = x.TenantId, TenantId = x.TenantId,
Source = source Source = source
}).ToList(); }).ToList());
await _dbContext.InsertAsync(tasks);
} }
/// <summary> /// <summary>
/// 获取用户所有设备权限 /// 获取用户所有设备权限
/// </summary> /// </summary>
/// <param name="userCode"></param> /// <param name="userNo"></param>
/// <returns></returns> /// <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 }); var result = await _devicePermissionAnalyzeService.GetUserAssignDeviceCodesWithTypeInTenantAsync(new List<string> { userNo });
return result.First().Value.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList(); return result.First().Value.SelectMany(x => x.AssignTypes.SelectMany(p => p.Codes)).Distinct().ToList();
} }

View File

@@ -106,7 +106,7 @@ public class DeviceService : IDeviceService
request.Adapt(entity); request.Adapt(entity);
await _dbContext.UpdateAsync(entity); await _dbContext.UpdateAsync(entity);
var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == request.UniqueNo).SingleAsync(); var registry = await _dbContext.Queryable<DeviceRegistryEntity>().Where(x => x.DeviceUniqueNo == request.UniqueNo).SingleAsync();
if (registry == null) if (registry == null)
{ {
@@ -123,7 +123,7 @@ public class DeviceService : IDeviceService
} }
await GenerateUploadRecordLogForBeginTimeAsync(entity); await GenerateUploadRecordLogForBeginTimeAsync(entity);
}); }, "设备启用/关闭时段码功能");
} }
/// <summary> /// <summary>

View File

@@ -79,7 +79,7 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService
await _dbContext.UpdateAsync(entity); await _dbContext.UpdateAsync(entity);
} }
}); }, "时段码变更");
} }
/// <inheritdoc /> /// <inheritdoc />
@@ -121,11 +121,11 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService
entity.ThrowIfNull("数据不存在"); entity.ThrowIfNull("数据不存在");
await _dbContext.DeleteReallyAsync(entity); 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(); 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, Status = DeviceTaskStatusEnumType.Wait,
Version = 0, Version = 0,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = source,
Priority = 90, Priority = 90,
TenantId = device.TenantId, TenantId = device.TenantId
}); });
continue; continue;
@@ -192,7 +192,7 @@ public class DeviceTimePeriodService : IDeviceTimePeriodService
Status = DeviceTaskStatusEnumType.Wait, Status = DeviceTaskStatusEnumType.Wait,
Version = 0, Version = 0,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = source,
Priority = 90, Priority = 90,
TenantId = device.TenantId TenantId = device.TenantId
}); });

View File

@@ -55,6 +55,6 @@ public class GainfoPermissionsController : ControllerBase
[HttpPost("reset")] [HttpPost("reset")]
public async Task<DevicePermissionAssignResponse> ResetPermissionsAsync(GainfoPermissionResetRequest request) 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手动操作重置");
} }
} }

View File

@@ -13,5 +13,5 @@ public interface IGainfoPermissionService : IScopeDependency
Task<Pagination<GainfoDevicePermissionResponse>> GetAssignDeviceCodesAsync(DeviceAssRequest request); 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);
} }

View File

@@ -137,7 +137,7 @@ public class GainfoFaceService : IGainfoFaceService
await _faceDbContext.UpdateAsync(face); 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) 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) 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, "照片上传生成");
} }
} }

View File

@@ -178,7 +178,7 @@ public class GainfoGroupService : IGainfoGroupService
{ {
continue; continue;
} }
deleteTasks.Add(new DeviceTaskEntity deleteTasks.Add(new DeviceTaskEntity
{ {
Type = DeviceTaskEnumType.Delete, Type = DeviceTaskEnumType.Delete,
@@ -190,7 +190,7 @@ public class GainfoGroupService : IGainfoGroupService
Version = 0, Version = 0,
ResultMessage = null, ResultMessage = null,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = "手动操作人员分组关系",
Priority = 0, Priority = 0,
TenantId = device.TenantId TenantId = device.TenantId
}); });
@@ -210,7 +210,7 @@ public class GainfoGroupService : IGainfoGroupService
Version = 0, Version = 0,
ResultMessage = null, ResultMessage = null,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = "手动操作人员分组关系",
Priority = 0, Priority = 0,
TenantId = device.TenantId TenantId = device.TenantId
}); });

View File

@@ -148,7 +148,7 @@ public class GainfoOutsourceService : IGainfoOutsourceService
await _gainfoService.ResignAsync(new GainfoResignRequest await _gainfoService.ResignAsync(new GainfoResignRequest
{ {
Id = outsource.Id, Id = outsource.Id,
Reason = $"{setting.NoRecordAutoResignOutsourceDays}天无打开记录", Reason = $"{setting.NoRecordAutoResignOutsourceDays}天无通行记录",
Date = DateTime.Now, Date = DateTime.Now,
IsOutsource = true IsOutsource = true
}); });

View File

@@ -1,10 +1,8 @@
using Dlhis.Basic.Device.Dtos; using Dlhis.Basic.Device.Dtos;
using Dlhis.Basic.Device.Request;
using Dlhis.Basic.Device.Response; using Dlhis.Basic.Device.Response;
using Dlhis.Basic.Device.Services; using Dlhis.Basic.Device.Services;
using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Request;
using Dlhis.Basic.Organization.Response; using Dlhis.Basic.Organization.Response;
using Dlhis.Basic.Places.Response;
using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Entities;
using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Device.Enums;
@@ -18,13 +16,11 @@ namespace Dlhis.Basic.Organization.Services.Implements;
public class GainfoPermissionService : IGainfoPermissionService public class GainfoPermissionService : IGainfoPermissionService
{ {
private readonly IGainfoStore _gainfoStore;
private readonly IDevicePermissionAnalyzeService _devicePermissionAnalyzeService; private readonly IDevicePermissionAnalyzeService _devicePermissionAnalyzeService;
private readonly IDbContext _dbContext; private readonly IDbContext _dbContext;
public GainfoPermissionService(IGainfoStore gainfoStore, IDevicePermissionAnalyzeService devicePermissionAnalyzeService, IDbContext dbContext) public GainfoPermissionService(IDevicePermissionAnalyzeService devicePermissionAnalyzeService, IDbContext dbContext)
{ {
_gainfoStore = gainfoStore;
_devicePermissionAnalyzeService = devicePermissionAnalyzeService; _devicePermissionAnalyzeService = devicePermissionAnalyzeService;
_dbContext = dbContext; _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>() var gainfo = await _dbContext.Queryable<GainfoEntity>()
.Where(x => x.No == userNo) .Where(x => x.No == userNo)
@@ -193,7 +189,7 @@ public class GainfoPermissionService : IGainfoPermissionService
DeviceType = x.Type, DeviceType = x.Type,
TenantId = x.TenantId, TenantId = x.TenantId,
Priority = 10, Priority = 10,
Source = DeviceTaskSourceEnumType.Manually, Source = source,
}).ToList(); }).ToList();
await _dbContext.InsertAsync(tasks); await _dbContext.InsertAsync(tasks);

View File

@@ -254,8 +254,8 @@ public class GainfoService : IGainfoService
(outsource == null).ThrowIfTrue("非外包人员不可手动离职"); (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<GainfoGroupRelationshipEntity>().Where(x => x.UserNo != gainfo.No).ExecuteCommandAsync();
await _dbContext.Deleteable<DevicePermissionEntity>().Where(x => x.AssignType == AssignTypeEnumType.User && x.AssignValue == 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); 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) var dhDevices = await _dbContext.Queryable<DeviceEntity>().LeftJoin<DeviceTemplateEntity>((x, xt) => x.TemplateCode == xt.Code)
.Where((x, xt) => xt.Name == "大华人脸机") .Where((x, xt) => xt.Name == "大华人脸机")
@@ -306,7 +306,7 @@ public class GainfoService : IGainfoService
Version = 0, Version = 0,
ResultMessage = null, ResultMessage = null,
CancellationId = 0, CancellationId = 0,
Source = DeviceTaskSourceEnumType.Manually, Source = "安全级别提高",
Priority = 60, Priority = 60,
TenantId = x.TenantId TenantId = x.TenantId
}).ToList()); }).ToList());
@@ -451,7 +451,7 @@ public class GainfoService : IGainfoService
//海宁触发权限下发 //海宁触发权限下发
if (gainfo.Workplace == "5") if (gainfo.Workplace == "5")
{ {
await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, DeviceTaskEnumType.Add, DeviceTaskSourceEnumType.Migration); await _devicePermissionService.GenerateDeviceTasksAsync(gainfo.No, DeviceTaskEnumType.Add, "人员迁移生成");
} }
} }
} }

View File

@@ -175,7 +175,7 @@ public class GainfoUpdateService : IGainfoUpdateService
{ {
await _dbContext.InsertAsync(info); await _dbContext.InsertAsync(info);
await _identityUserSyncService.SyncAccountAsync(info.Code, info.Name, info.IdNo, info.Factory); await _identityUserSyncService.SyncAccountAsync(info.Code, info.Name, info.IdNo, info.Factory);
}, new List<string> { info.No }); }, new List<string> { info.No }, "入职生成");
} }
else else
{ {
@@ -283,7 +283,7 @@ public class GainfoUpdateService : IGainfoUpdateService
}).Where(x => x.Code == item.ename).ExecuteCommandAsync(); }).Where(x => x.Code == item.ename).ExecuteCommandAsync();
await _identityUserSyncService.SyncAccountAsync(gainfo.Code, gainfo.Name, gainfo.IdNo, factory); await _identityUserSyncService.SyncAccountAsync(gainfo.Code, gainfo.Name, gainfo.IdNo, factory);
}, new List<string> { gainfo.No }); }, new List<string> { gainfo.No }, "人员数据变更");
} }
else else
{ {
@@ -307,7 +307,7 @@ public class GainfoUpdateService : IGainfoUpdateService
gainfo.Id = gainfo.IdentityUserId; gainfo.Id = gainfo.IdentityUserId;
await _dbContext.DeleteReallyAsync(gainfo); await _dbContext.DeleteReallyAsync(gainfo);
}, new List<string> { gainfo.No }); }, new List<string> { gainfo.No }, "人员离职生成");
await _dbContext.Client.Ado.CommitTranAsync(); await _dbContext.Client.Ado.CommitTranAsync();
} }
@@ -420,7 +420,7 @@ public class GainfoUpdateService : IGainfoUpdateService
var native = GetNative(person.ZZ_SFZH); var native = GetNative(person.ZZ_SFZH);
var sex = person.GESCH == "2" ? "F" : "M"; var sex = person.GESCH == "2" ? "F" : "M";
person.ZZ_SFZH = person.ZZ_SFZH?.TrimStart(); person.ZZ_SFZH = person.ZZ_SFZH.TrimStart();
GainfoSapEntity o = new() GainfoSapEntity o = new()
{ {
gname = person.NAME, gname = person.NAME,

View File

@@ -101,7 +101,7 @@ public class SapBusinessTripService : ISapBusinessTripService
await _dbContext.UpdateAsync(todayTripInfo); await _dbContext.UpdateAsync(todayTripInfo);
//下发 //下发
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes); await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes, "出差昨天今天都有");
continue; continue;
} }
@@ -120,7 +120,7 @@ public class SapBusinessTripService : ISapBusinessTripService
.ExecuteCommandAsync(); .ExecuteCommandAsync();
await _dbContext.UpdateAsync(yesterdayTripInfo); await _dbContext.UpdateAsync(yesterdayTripInfo);
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, deviceCodes); await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Delete, deviceCodes, "出差昨天有今天无");
} }
if (yesterdayTripInfo == null) if (yesterdayTripInfo == null)
@@ -149,7 +149,7 @@ public class SapBusinessTripService : ISapBusinessTripService
todayTripInfo.Status = BusinessTripStatusEnumType.Generated; todayTripInfo.Status = BusinessTripStatusEnumType.Generated;
await _dbContext.UpdateAsync(todayTripInfo); await _dbContext.UpdateAsync(todayTripInfo);
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes); await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Add, deviceCodes, "出差昨天无今天有");
} }
} }
catch (Exception e) catch (Exception e)

View File

@@ -68,8 +68,8 @@ public class DeviceTaskEntity : SugarBaseEntity, ITenantId, IVersion
/// <summary> /// <summary>
/// 任务来源 /// 任务来源
/// </summary> /// </summary>
[SugarColumn(IsNullable = true, ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))] [SugarColumn(IsNullable = true, ColumnDataType = "varchar(255)")]
public DeviceTaskSourceEnumType? Source { get; set; } public string Source { get; set; }
/// <summary> /// <summary>
/// 优先级 /// 优先级

View File

@@ -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,
}

View File

@@ -55,7 +55,7 @@ public class AutoConfirmAppointmentJob : BaseJob
Type = DeviceTaskEnumType.Add, Type = DeviceTaskEnumType.Add,
Priority = 100, Priority = 100,
TenantId = x.TenantId, TenantId = x.TenantId,
Source = DeviceTaskSourceEnumType.Appointment, Source = "定时任务判断触发车间下发任务",
Version = 0 Version = 0
}).ToList()); }).ToList());

View File

@@ -57,7 +57,7 @@ public class AutoRemoveAppointmentJob : BaseJob
Type = DeviceTaskEnumType.Delete, Type = DeviceTaskEnumType.Delete,
Priority = 100, Priority = 100,
TenantId = x.TenantId, TenantId = x.TenantId,
Source = DeviceTaskSourceEnumType.Appointment, Source = "定时任务判断触发移除",
Version = 0 Version = 0
}).ToList()); }).ToList());

View File

@@ -39,7 +39,7 @@ public class CreateGetUploadRecordJob : BaseJob
Type = DeviceTaskEnumType.UploadRecord, Type = DeviceTaskEnumType.UploadRecord,
CancellationId = 0, CancellationId = 0,
Priority = 50, Priority = 50,
Source = DeviceTaskSourceEnumType.Schedule Source = "定时任务创建设备获取通行记录任务"
}).ToList(); }).ToList();
await DbContext.InsertAsync(tasks); await DbContext.InsertAsync(tasks);

View File

@@ -40,7 +40,7 @@ public class CreateSyncServerDateTimeJob : BaseJob
Type = DeviceTaskEnumType.SyncDateTime, Type = DeviceTaskEnumType.SyncDateTime,
DeviceType = x.Type, DeviceType = x.Type,
Priority = 49, Priority = 49,
Source = DeviceTaskSourceEnumType.Schedule Source = "定时任务创建设备同步时间任务"
}).ToList(); }).ToList();
await DbContext.InsertAsync(tasks); await DbContext.InsertAsync(tasks);