fix 恢复数据代码

This commit is contained in:
2025-12-24 10:18:06 +08:00
parent a100ec2216
commit 71e3e4fd0b
3 changed files with 39 additions and 1 deletions

View File

@@ -89,6 +89,14 @@ public class GainfoOutsourceController : ControllerBase
await _gainfoOutSourceService.AutoResignAsync(); await _gainfoOutSourceService.AutoResignAsync();
} }
[AllowAnonymous]
[HttpPost("recover")]
[IgnoreTenant]
public async Task RecoverAsync()
{
await _gainfoOutSourceService.RecoverAsync();
}
/// <summary> /// <summary>
/// 获取外包白名单分页数据 /// 获取外包白名单分页数据
/// </summary> /// </summary>

View File

@@ -24,4 +24,6 @@ public interface IGainfoOutsourceService : IScopeDependency
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
Task AutoResignAsync(); Task AutoResignAsync();
Task RecoverAsync();
} }

View File

@@ -4,7 +4,6 @@ using Dlhis.Entity.Basic.Entity;
using Dlhis.Entity.Basic.Enums; using Dlhis.Entity.Basic.Enums;
using Dlhis.Entity.Device.Entities; using Dlhis.Entity.Device.Entities;
using Kurisu.AspNetCore.Cache; using Kurisu.AspNetCore.Cache;
using Kurisu.AspNetCore.CustomClass;
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services; using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
using Kurisu.AspNetCore.Utils.Extensions; using Kurisu.AspNetCore.Utils.Extensions;
using Mapster; using Mapster;
@@ -211,6 +210,35 @@ public class GainfoOutsourceService : IGainfoOutsourceService
} }
} }
public async Task RecoverAsync()
{
var gainfoLeaves = await _dbContext.Queryable<GainfoLeaveEntity>()
.Where(x => x.Type == GainfoUserTypeEnumType.Outsource)
.Where(x => x.Remark == "1000天无通行记录")
.Where(x => SqlFunc.Subqueryable<GainfoEntity>().Where(p => p.No == x.No || p.IdNo == x.IdNo).NotAny())
.ToListAsync();
foreach (var gainfoLeave in gainfoLeaves)
{
await _dbContext.Client.Ado.BeginTranAsync();
try
{
var gainfo = gainfoLeave.Adapt<GainfoEntity>();
gainfo.Id = gainfo.IdentityUserId;
await _dbContext.InsertAsync(gainfo);
await _dbContext.DeleteReallyAsync(gainfoLeave);
await _dbContext.Client.Ado.CommitTranAsync();
}
catch (Exception ex)
{
_logger.LogError(ex, "恢复外包人员失败:{userNo}", gainfoLeave.No);
await _dbContext.Client.Ado.RollbackTranAsync();
}
}
}
public List<DateOnly> GetDaysUntilToday(DateTime begin) public List<DateOnly> GetDaysUntilToday(DateTime begin)
{ {
var start = DateOnly.FromDateTime(begin.Date); var start = DateOnly.FromDateTime(begin.Date);