This commit is contained in:
2026-06-29 15:28:17 +08:00
parent 2e22d145bc
commit ad6d7ea29e
5 changed files with 122 additions and 15 deletions

View File

@@ -15,7 +15,6 @@ namespace Dlhis.Basic.Organization.Services.Implements;
public class GainfoIdCardFaceCompareService : IGainfoIdCardFaceCompareService
{
private readonly IDbContext _dbContext;
private readonly IServiceProvider _serviceProvider;
private readonly IAliyunClient _aliyunClient;
private readonly ICurrentUser _currentUser;
@@ -151,6 +150,59 @@ public class GainfoIdCardFaceCompareService : IGainfoIdCardFaceCompareService
return await GetRecordAsync(record.UserCode);
}
public async Task<IdCardFaceCompareRecordResponse> SaveAsync(IdCardFaceCompareRecordSaveRequest request)
{
var gainfo = await _dbContext.Queryable<GainfoEntity>()
.Where(x => x.Code == request.UserCode)
.SingleAsync();
gainfo.ThrowIfNull("人员档案信息不存在");
var now = DateTime.Now;
var compareTime = request.CompareTime ?? now;
var userId = _currentUser.GetIntSubjectId();
var record = await _dbContext.Queryable<IdCardFaceCompareRecordEntity>()
.Where(x => x.UserCode == gainfo.Code)
.SingleAsync();
if (record == null)
{
record = new IdCardFaceCompareRecordEntity
{
UserCode = gainfo.Code,
CompareCount = 0,
CreatedBy = userId,
CreateTime = now
};
}
record.UserType = gainfo.Type;
record.UserName = gainfo.Name;
record.IdNo = gainfo.IdNo;
record.CompareResult = request.CompareResult
?? (request.ErrorMessage.IsPresent()
? IdCardFaceCompareResultEnumType.NotCompared
: IdCardFaceCompareResultEnumType.Compared);
record.ApiResponse = request.ApiResponse;
record.IsPassed = request.IsPassed;
record.Similarity = request.Similarity;
record.ErrorMessage = request.ErrorMessage;
record.CompareCount += 1;
record.LastCompareTime = compareTime;
record.ModifiedTime = now;
record.ModifiedBy = userId;
if (record.Id == 0)
{
await _dbContext.InsertAsync(record);
}
else
{
await _dbContext.UpdateAsync(record);
}
return await GetRecordAsync(record.UserCode);
}
private async Task UpdateRecordErrorAndThrowAsync(IdCardFaceCompareRecordEntity record, string message, int userId)
{
record.ErrorMessage = message;