相关bug调整

This commit is contained in:
fuenmao
2026-08-24 16:36:47 +08:00
parent 22a7df5bec
commit 0931e1f343
6 changed files with 57 additions and 9 deletions
@@ -5,6 +5,11 @@ namespace SimpleAdmin.Application;
/// </summary>
public class OnboardingCompanyPageInput : BasePageInput
{
/// <summary>
/// 公司业务编码。
/// </summary>
public virtual string CompanyCode { get; set; }
/// <summary>
/// 公司名称。
/// </summary>
@@ -11,9 +11,8 @@ public class OnboardingCompanyService : DbRepository<ObCompany>, IOnboardingComp
public async Task<SqlSugarPagedList<ObCompany>> Page(OnboardingCompanyPageInput input)
{
return await Context.Queryable<ObCompany>()
.WhereIF(
!string.IsNullOrWhiteSpace(input.CompanyName),
it => it.CompanyName.Contains(input.CompanyName) || it.CompanyCode.Contains(input.CompanyName))
.WhereIF(!string.IsNullOrWhiteSpace(input.CompanyCode), it => it.CompanyCode.Contains(input.CompanyCode))
.WhereIF(!string.IsNullOrWhiteSpace(input.CompanyName), it => it.CompanyName.Contains(input.CompanyName))
.WhereIF(!string.IsNullOrWhiteSpace(input.Status), it => it.Status == input.Status)
.OrderByIF(!string.IsNullOrWhiteSpace(input.SortField), $"{input.SortField} {input.SortOrder}")
.OrderBy(it => it.CreateTime)
@@ -27,8 +27,12 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
/// </summary>
public async Task SaveFormField(OnboardingFormFieldSaveInput input)
{
var fieldCodeExists = await _db.Queryable<ObFormField>()
.AnyAsync(x => x.FieldCode == input.FieldCode && x.Id != input.Id);
var fieldCodeQuery = _db.Queryable<ObFormField>()
.Where(x => x.FieldCode == input.FieldCode);
if (input.Id.HasValue)
fieldCodeQuery = fieldCodeQuery.Where(x => x.Id != input.Id.Value);
var fieldCodeExists = await fieldCodeQuery.AnyAsync();
if (fieldCodeExists)
throw Oops.Bah("字段编码已存在");
@@ -38,7 +42,7 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
FieldCode = input.FieldCode,
FieldName = input.FieldName,
DataType = input.DataType,
OptionsJson = input.OptionsJson,
OptionsJson = NormalizeOptionsJson(input.OptionsJson),
ValidationRule = input.ValidationRule,
Placeholder = input.Placeholder,
Status = input.Status
@@ -57,6 +61,27 @@ public class OnboardingEntryConfigService : IOnboardingEntryConfigService
await _db.Insertable(entity).ExecuteCommandAsync();
}
/// <summary>
/// 将空白的可选项转换为 null,避免 MySQL JSON 字段写入空字符串时报错。
/// </summary>
private static string NormalizeOptionsJson(string optionsJson)
{
if (string.IsNullOrWhiteSpace(optionsJson))
return null;
var normalizedJson = optionsJson.Trim();
try
{
using var jsonDocument = global::System.Text.Json.JsonDocument.Parse(normalizedJson);
return normalizedJson;
}
catch (global::System.Text.Json.JsonException)
{
throw Oops.Bah("可选项不是有效的 JSON 格式");
}
}
/// <summary>
/// 删除未被填写要求引用的动态字段。
/// </summary>
@@ -10,6 +10,11 @@ public class OnboardingPositionPageInput : BasePageInput
/// </summary>
public long? CompanyId { get; set; }
/// <summary>
/// 岗位编码。
/// </summary>
public virtual string PositionCode { get; set; }
/// <summary>
/// 岗位名称。
/// </summary>
@@ -12,9 +12,8 @@ public class OnboardingPositionService : DbRepository<ObPosition>, IOnboardingPo
{
return await Context.Queryable<ObPosition>()
.WhereIF(input.CompanyId.HasValue, it => it.CompanyId == input.CompanyId.Value)
.WhereIF(
!string.IsNullOrWhiteSpace(input.PositionName),
it => it.PositionName.Contains(input.PositionName) || it.PositionCode.Contains(input.PositionName))
.WhereIF(!string.IsNullOrWhiteSpace(input.PositionCode), it => it.PositionCode.Contains(input.PositionCode))
.WhereIF(!string.IsNullOrWhiteSpace(input.PositionName), it => it.PositionName.Contains(input.PositionName))
.WhereIF(!string.IsNullOrWhiteSpace(input.Status), it => it.Status == input.Status)
.OrderByIF(!string.IsNullOrWhiteSpace(input.SortField), $"{input.SortField} {input.SortOrder}")
.OrderBy(it => it.PositionName)
@@ -1399,6 +1399,11 @@
入职业务公司分页查询参数。
</summary>
</member>
<member name="P:SimpleAdmin.Application.OnboardingCompanyPageInput.CompanyCode">
<summary>
公司业务编码。
</summary>
</member>
<member name="P:SimpleAdmin.Application.OnboardingCompanyPageInput.CompanyName">
<summary>
公司名称。
@@ -2327,6 +2332,11 @@
新增或编辑动态入职字段。
</summary>
</member>
<member name="M:SimpleAdmin.Application.OnboardingEntryConfigService.NormalizeOptionsJson(System.String)">
<summary>
将空白的可选项转换为 null,避免 MySQL JSON 字段写入空字符串时报错。
</summary>
</member>
<member name="M:SimpleAdmin.Application.OnboardingEntryConfigService.DeleteFormFields(SimpleAdmin.Core.BaseIdListInput)">
<summary>
删除未被填写要求引用的动态字段。
@@ -2457,6 +2467,11 @@
入职业务公司 Id。
</summary>
</member>
<member name="P:SimpleAdmin.Application.OnboardingPositionPageInput.PositionCode">
<summary>
岗位编码。
</summary>
</member>
<member name="P:SimpleAdmin.Application.OnboardingPositionPageInput.PositionName">
<summary>
岗位名称。