feat: 用户卡号导入

This commit is contained in:
2026-05-22 11:53:15 +08:00
parent 3fa80c7f21
commit 05f0dfb312
4 changed files with 64 additions and 2 deletions

View File

@@ -36,6 +36,19 @@ public class GainfoCardsController : ControllerBase
await _gainfoCardService.ChangeCardAsync(request);
}
/// <summary>
/// 导入卡
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
[HttpPost("import")]
[IgnoreTenant]
[Transactional]
public async Task ImportCardsAsync(GainfoImportCardRequest request)
{
await _gainfoCardService.ImportCardsAsync(request);
}
/// <summary>
/// 换卡记录
/// </summary>

View File

@@ -0,0 +1,23 @@
using System.ComponentModel.DataAnnotations;
namespace Dlhis.Basic.Organization.Request;
public class GainfoImportCardRequest
{
public List<GainfoImportCardItemRequest> UserCards { get; set; } = new List<GainfoImportCardItemRequest>();
}
public class GainfoImportCardItemRequest
{
/// <summary>
/// 档案号
/// </summary>
[Required(ErrorMessage = "工号不能为空")]
public string UserCode { get; set; }
/// <summary>
/// 卡号
/// </summary>
[Required(ErrorMessage = "卡号不能为空")]
public string CardNo { get; set; }
}

View File

@@ -26,4 +26,11 @@ public interface IGainfoCardService : IScopeDependency
/// <param name="typeId"></param>
/// <returns></returns>
Task EditCardTypeAsync(List<string> userCodes, int typeId);
/// <summary>
/// 导入卡信息
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
Task ImportCardsAsync(GainfoImportCardRequest request);
}

View File

@@ -48,9 +48,9 @@ public class GainfoCardService : IGainfoCardService
UserNo = gainfo.No,
CardNo = gainfo.CardNo,
Reason = "换卡",
Remark = $"换卡前卡号:{gainfo.CardNo}"
Remark = $"换卡前卡号:{gainfo.CardNo}",
TenantId = gainfo.Factory
};
oldCardRecord.TenantId = gainfo.Factory;
await _dbContext.InsertAsync(oldCardRecord);
}
@@ -60,6 +60,25 @@ public class GainfoCardService : IGainfoCardService
await _gainfoPermissionService.ResetPermissionsAsync(gainfo.No, DeviceTaskEnumType.Update, null, null, "更新卡号下发");
}
public async Task ImportCardsAsync(GainfoImportCardRequest request)
{
var userCodes = request.UserCards.Select(x => x.UserCode).Distinct().ToList();
var gainfos = await _dbContext.Queryable<GainfoEntity>().Where(x => userCodes.Contains(x.Code)).ToListAsync();
(gainfos.Count != userCodes.Count).ThrowIfTrue("存在档案号不存在,检查");
foreach (var gainfo in gainfos)
{
await ChangeCardAsync(new GainfoChangeCardRequest
{
UserNo = gainfo.No,
CardNo = request.UserCards.First(x => x.UserCode == gainfo.Code).CardNo,
Remark = "导入",
Reason = "卡号初始化导入"
});
}
}
public async Task<List<ChangeCardResponse>> GetChangeRecordsAsync(string userNo)
{
return await _dbContext.Queryable<GainfoCardRecordEntity>()