fix 处理离职下发问题

This commit is contained in:
2024-04-07 20:55:41 +08:00
parent 16100f3d04
commit 9033ed8614
7 changed files with 42 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
using Dlhis.Basic.Api.Dtos; using Dlhis.Basic.Api.Dtos;
using Dlhis.Basic.Api.Request;
using Kurisu.Core.Result; using Kurisu.Core.Result;
using Kurisu.RemoteCall.Attributes; using Kurisu.RemoteCall.Attributes;
@@ -10,4 +11,8 @@ public interface IBusinessPlacePermissionsApi
[Auth] [Auth]
[Get("/api/businessplacepermissions/my")] [Get("/api/businessplacepermissions/my")]
Task<DefaultApiResult<List<BusinessPlaceDto>>> GetMyAsync(); Task<DefaultApiResult<List<BusinessPlaceDto>>> GetMyAsync();
[Auth]
[Post("/api/gainfoPermissions/reset")]
Task<DefaultApiResult> ResetAsync(GainfoPermissionResetRequest request);
} }

View File

@@ -0,0 +1,11 @@
namespace Dlhis.Basic.Api.Request;
public class GainfoPermissionResetRequest
{
public string UserNo { get; set; }
/// <summary>
/// 是否是离职
/// </summary>
public bool IsLeave { get; set; }
}

View File

@@ -72,7 +72,6 @@ public class GainfoPermissionsController : ControllerBase
/// </summary> /// </summary>
/// <param name="request"></param> /// <param name="request"></param>
/// <returns></returns> /// <returns></returns>
[Authorize(Roles = "admin,tenant-admin")]
[HttpPost("reset")] [HttpPost("reset")]
[IgnoreTenant] [IgnoreTenant]
public async Task ResetPermissionsAsync(GainfoPermissionResetRequest request) public async Task ResetPermissionsAsync(GainfoPermissionResetRequest request)

View File

@@ -217,6 +217,7 @@ public class GainfoPermissionService : IGainfoPermissionService
var tasks = devices.Select(x => new DeviceTaskEntity var tasks = devices.Select(x => new DeviceTaskEntity
{ {
UserId = gainfo.Id,
CancellationId = 0, CancellationId = 0,
Version = 0, Version = 0,
DeviceUniqueNo = x.UniqueNo, DeviceUniqueNo = x.UniqueNo,

View File

@@ -18,6 +18,12 @@ public class DeviceTaskEntity : SugarBaseEntity, ITenantId, IVersion
[SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))] [SugarColumn(ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))]
public DeviceTaskEnumType Type { get; set; } public DeviceTaskEnumType Type { get; set; }
/// <summary>
/// 用户id
/// </summary>
[SugarColumn(IsNullable = true)]
public long? UserId { get; set; }
/// <summary> /// <summary>
/// 用户档案号 /// 用户档案号
/// </summary> /// </summary>

View File

@@ -9,6 +9,7 @@ using Dlhis.ScheduledTask.Common.Dto;
using Dlhis.ScheduledTask.Common.Comparers; using Dlhis.ScheduledTask.Common.Comparers;
using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.AspNetCore.Utils.Extensions;
using Dlhis.Basic.Api.Dtos; using Dlhis.Basic.Api.Dtos;
using Microsoft.AspNetCore.Mvc.Formatters;
namespace Dlhis.ScheduledTask.Common.Services.Implements; namespace Dlhis.ScheduledTask.Common.Services.Implements;
@@ -17,6 +18,7 @@ public class GainfoUpdateService : IGainfoUpdateService
private readonly IDbContext _dbContext; private readonly IDbContext _dbContext;
private readonly ILogger<GainfoUpdateService> _logger; private readonly ILogger<GainfoUpdateService> _logger;
private readonly ITenantApi _tenantApi; private readonly ITenantApi _tenantApi;
private readonly IBusinessPlacePermissionsApi _businessPlacePermissionsApi;
private readonly IDevicePermissionApi _devicePermissionApi; private readonly IDevicePermissionApi _devicePermissionApi;
private readonly IJinkoSapService _jinkoSapService; private readonly IJinkoSapService _jinkoSapService;
@@ -27,6 +29,7 @@ public class GainfoUpdateService : IGainfoUpdateService
public GainfoUpdateService(IDbContext dbContext, public GainfoUpdateService(IDbContext dbContext,
ILogger<GainfoUpdateService> logger, ILogger<GainfoUpdateService> logger,
ITenantApi tenantApi, ITenantApi tenantApi,
IBusinessPlacePermissionsApi businessPlacePermissionsApi,
IDevicePermissionApi devicePermissionApi, IDevicePermissionApi devicePermissionApi,
IJinkoSapService jinkoSapService) IJinkoSapService jinkoSapService)
{ {
@@ -34,6 +37,7 @@ public class GainfoUpdateService : IGainfoUpdateService
_dbContext.Client.QueryFilter.Clear(); _dbContext.Client.QueryFilter.Clear();
_logger = logger; _logger = logger;
_tenantApi = tenantApi; _tenantApi = tenantApi;
_businessPlacePermissionsApi = businessPlacePermissionsApi;
_devicePermissionApi = devicePermissionApi; _devicePermissionApi = devicePermissionApi;
_jinkoSapService = jinkoSapService; _jinkoSapService = jinkoSapService;
} }
@@ -334,8 +338,22 @@ public class GainfoUpdateService : IGainfoUpdateService
} }
else else
{ {
//离职
if (gainfo != null) if (gainfo != null)
{ {
try
{
await _businessPlacePermissionsApi.ResetAsync(new Basic.Api.Request.GainfoPermissionResetRequest
{
IsLeave = true,
UserNo = gainfo.No
});
}
catch (Exception ex)
{
_logger.LogError(ex, "离职任务生成失败:{message}", ex.Message);
}
//先写入离职表 //先写入离职表
gainfo.IdentityUserId = (int)gainfo.Id; gainfo.IdentityUserId = (int)gainfo.Id;
gainfo.Id = 0; gainfo.Id = 0;

View File

@@ -54,7 +54,7 @@ public class AssignmentService : IAssignmentService
.OrderBy(deviceTask => deviceTask.CreateTime) .OrderBy(deviceTask => deviceTask.CreateTime)
.Select((deviceTask, deivce, deivceTamplate, ga, department) => new .Select((deviceTask, deivce, deivceTamplate, ga, department) => new
{ {
UserId = SqlFunc.IsNull(ga.Id, 0), UserId = SqlFunc.IsNull(deviceTask.UserId, ga.Id),
TaskId = deviceTask.Id, TaskId = deviceTask.Id,
deviceTask.Type, deviceTask.Type,
deviceTask.DeviceUniqueNo, deviceTask.DeviceUniqueNo,