diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs index c8aaaabb..d894d81f 100644 --- a/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs +++ b/Src/Dlhis.Basic/Organization/Services/Implements/GainfoOutsourceService.cs @@ -1,4 +1,5 @@ -using Dlhis.Basic.Organization.Request; +using System.Text.RegularExpressions; +using Dlhis.Basic.Organization.Request; using Dlhis.Basic.Organization.Response; using Dlhis.Entity.Basic.Entity; using Dlhis.Entity.Basic.Enums; @@ -35,6 +36,7 @@ public class GainfoOutsourceService : IGainfoOutsourceService public async Task SaveAsync(GainfoOutsourceRequest request) { await CheckDuplicate(request); + var sapCodeExists = await _dbContext.Queryable() .Where(x => x.Code == request.ExternalInfo.SapCode) .AnyAsync(); @@ -51,6 +53,12 @@ public class GainfoOutsourceService : IGainfoOutsourceService var entity = request.Adapt(); entity.No = Guid.NewGuid().ToString(); entity.Type = GainfoUserTypeEnumType.Outsource; + + if (request.Code.IsPresent()) + { + IsAlphanumeric(request.Code).ThrowIfFalse("工号只能包含字母和数字"); + } + entity.Code = request.Code.IsPresent() ? request.Code : await GetOutSourceCodeAsync(); @@ -338,4 +346,13 @@ public class GainfoOutsourceService : IGainfoOutsourceService } } } + + public static bool IsAlphanumeric(string input) + { + // 空字符串可根据需要决定是否允许,此处为 false + if (string.IsNullOrEmpty(input)) return false; + + // ^ 表示开头,$ 表示结尾,确保整个字符串都由英文数字组成 + return Regex.IsMatch(input, @"^[a-zA-Z0-9]+$"); + } } \ No newline at end of file