From 1cf90b018130771eb84df77584ec4fb01972bef3 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 9 Jul 2024 11:53:15 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix=20=E5=BD=93=E5=89=8Did=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/GainfoOutsourceService.cs | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs index 21d18ab7..26e4924d 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(); @@ -112,17 +112,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 From e35b51084b21469479fd50e440b9b8a55f4e45e3 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 9 Jul 2024 11:53:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix=20=E5=BD=93=E5=89=8Did=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/GainfoOutsourceService.cs | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) 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