diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs index 8cdf99e0..12a81719 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs @@ -22,7 +22,7 @@ public class GainfoOutsourceService : IGainfoOutsourceService public async Task SaveAsync(GainfoOutsourceRequest request) { - await CheckDuplicate(request.IdNo, request.Code); + await CheckDuplicate(request); var sapCodeExists = await _dbContext.Queryable() .Where(x => x.Code == request.ExternalInfo.SapCode) .AnyAsync(); @@ -117,17 +117,20 @@ public class GainfoOutsourceService : IGainfoOutsourceService /// /// 检查证件号重复 /// - /// - /// - private async Task CheckDuplicate(string idNo, string code) + /// + private async Task CheckDuplicate(GainfoOutsourceRequest request) { - var exists = await _dbContext.Queryable().Where(x => x.IdNo == idNo).AnyAsync(); - exists.ThrowIfTrue($"证件号{idNo}重复"); + var exists = await _dbContext.Queryable() + .WhereIF(request.Id.HasValue, x => x.Id != request.Id) + .Where(x => x.IdNo == request.IdNo).AnyAsync(); + exists.ThrowIfTrue($"证件号{request.IdNo}重复"); - if (code.IsPresent()) + if (request.Code.IsPresent()) { - exists = await _dbContext.Queryable().Where(x => x.Code == code).AnyAsync(); - exists.ThrowIfTrue($"工号{code}重复"); + exists = await _dbContext.Queryable() + .WhereIF(request.Id.HasValue, x => x.Id != request.Id) + .Where(x => x.Code == request.Code).AnyAsync(); + exists.ThrowIfTrue($"工号{request.Code}重复"); } } } \ No newline at end of file