diff --git a/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs b/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs
index 1c9cc3e2..0cfb14fe 100644
--- a/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs
+++ b/Src/Dlhis.Basic/Organization/Controllers/WerksController.cs
@@ -1,5 +1,7 @@
-using Dlhis.Basic.Organization.Services;
-using Dlhis.Sys.Api.Response;
+using Dlhis.Basic.Organization.Request;
+using Dlhis.Basic.Organization.Response;
+using Dlhis.Basic.Organization.Services;
+using Kurisu.Core.DataAccess.Dto;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
@@ -11,7 +13,6 @@ namespace Dlhis.Basic.Organization.Controllers;
[Authorize]
[Route("api/[controller]")]
[ApiController]
-[Obsolete]
public class WerksController : ControllerBase
{
private readonly IWerkService _werkService;
@@ -22,22 +23,24 @@ public class WerksController : ControllerBase
}
///
- /// 获取人事范围列表
+ /// 分页
///
+ ///
///
- [HttpGet("list")]
- public async Task> GetListAsync()
+ [HttpGet("page")]
+ public async Task> GetPageAsync([FromQuery] PageDto request)
{
- return await _werkService.GetListAsync();
+ return await _werkService.GetPageAsync(request);
}
///
- /// 获取当前组织信息
+ /// 保存人事范围
///
+ ///
///
- [HttpGet("current")]
- public async Task GetCurrentAsync()
+ [HttpPost("save")]
+ public async Task SaveAsync(WerkRequest request)
{
- return await _werkService.GetCurrentAsync();
+ await _werkService.SaveAsync(request);
}
}
diff --git a/Src/Dlhis.Basic/Organization/Request/WerkRequest.cs b/Src/Dlhis.Basic/Organization/Request/WerkRequest.cs
new file mode 100644
index 00000000..a591f8e2
--- /dev/null
+++ b/Src/Dlhis.Basic/Organization/Request/WerkRequest.cs
@@ -0,0 +1,22 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Dlhis.Basic.Organization.Request;
+
+public class WerkRequest
+{
+ public long? Id { get; set; }
+
+ ///
+ /// 人事范围
+ ///
+ [Required]
+ public string Werk { get; set; }
+
+ ///
+ /// 名称
+ ///
+ [Required]
+ public string Name { get; set; }
+
+ public bool Enable { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Organization/Response/WerkResponse.cs b/Src/Dlhis.Basic/Organization/Response/WerkResponse.cs
new file mode 100644
index 00000000..6f1cf331
--- /dev/null
+++ b/Src/Dlhis.Basic/Organization/Response/WerkResponse.cs
@@ -0,0 +1,21 @@
+namespace Dlhis.Basic.Organization.Response;
+
+public class WerkResponse
+{
+ public long Id { get; set; }
+
+ ///
+ /// 人事范围
+ ///
+ public string Werk { get; set; }
+
+ ///
+ /// 名称
+ ///
+ public string Name { get; set; }
+
+ ///
+ /// 是否启用
+ ///
+ public bool Enable { get; set; }
+}
diff --git a/Src/Dlhis.Basic/Organization/Services/IWerkService.cs b/Src/Dlhis.Basic/Organization/Services/IWerkService.cs
index 42b1a90e..087f5bc2 100644
--- a/Src/Dlhis.Basic/Organization/Services/IWerkService.cs
+++ b/Src/Dlhis.Basic/Organization/Services/IWerkService.cs
@@ -1,10 +1,12 @@
-using Dlhis.Sys.Api.Response;
+using Dlhis.Basic.Organization.Request;
+using Dlhis.Basic.Organization.Response;
+using Kurisu.Core.DataAccess.Dto;
namespace Dlhis.Basic.Organization.Services;
public interface IWerkService : IScopeDependency
{
- Task> GetListAsync();
+ Task> GetPageAsync(PageDto request);
- Task GetCurrentAsync();
+ Task SaveAsync(WerkRequest request);
}
diff --git a/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs b/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs
index 99517d8a..58acac62 100644
--- a/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs
+++ b/Src/Dlhis.Basic/Organization/Services/Implements/WerkService.cs
@@ -1,38 +1,48 @@
-using Dlhis.Sys.Api;
-using Dlhis.Sys.Api.Response;
+using Dlhis.Basic.Organization.Request;
+using Dlhis.Basic.Organization.Response;
+using Dlhis.Entity.Basic.Entity;
using Kurisu.AspNetCore.Utils.Extensions;
-using Kurisu.Core.Result;
-using Kurisu.Core.User.Abstractions;
+using Kurisu.Core.DataAccess.Dto;
+using Kurisu.SqlSugar.Extensions;
+using Kurisu.SqlSugar.Services;
+using Mapster;
namespace Dlhis.Basic.Organization.Services.Implements;
public class WerkService : IWerkService
{
- private readonly ICurrentUser _currentUser;
- private readonly ITenantApi _tenantApi;
+ private readonly IDbContext _dbContext;
- public WerkService(ICurrentUser currentUser, ITenantApi tenantApi)
+ public WerkService(IDbContext dbContext)
{
- _currentUser = currentUser;
- _tenantApi = tenantApi;
+ _dbContext = dbContext;
}
- public async Task> GetListAsync()
+ public async Task> GetPageAsync(PageDto request)
{
- var tenantResult = await _tenantApi.GetTenantsAsync();
- (tenantResult.Code == ApiStateCode.Success).ThrowIfFalse(tenantResult.Msg);
-
- var tenants = tenantResult.Data;
- return tenants;
+ return await _dbContext.Queryable()
+ .WhereIF(request.Search.IsPresent(), x => x.Name.Contains(request.Search))
+ .Select()
+ .ToPageListAsync(request);
}
- public async Task GetCurrentAsync()
+ public async Task SaveAsync(WerkRequest request)
{
- var tenant = _currentUser.GetStringTenantId();
- var tenantResult = await _tenantApi.GetTenantsAsync();
- (tenantResult.Code == ApiStateCode.Success).ThrowIfFalse(tenantResult.Msg);
+ if (!request.Id.HasValue)
+ {
+ var entity = request.Adapt();
+ entity.Werk = request.Werk;
- var tenants = tenantResult.Data;
- return tenants.FirstOrDefault(x => x.Code == tenant);
+ await _dbContext.InsertAsync(entity);
+ }
+ else
+ {
+ var entity = await _dbContext.Queryable().Where(x => x.Id == request.Id).SingleAsync();
+ entity.ThrowIfNull("人事范围不存在,无法更新!");
+
+ request.Adapt(entity);
+
+ await _dbContext.UpdateAsync(entity);
+ }
}
}
diff --git a/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs
index 845dc6bf..46607582 100644
--- a/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs
+++ b/Src/Dlhis.Entity/Basic/Entity/WerkEntity.cs
@@ -1,4 +1,5 @@
using Kurisu.SqlSugar;
+using Mapster;
using SqlSugar;
namespace Dlhis.Entity.Basic.Entity;
@@ -9,6 +10,7 @@ public class WerkEntity : SugarBaseEntity
///
/// 人事范围
///
+ [AdaptIgnore(MemberSide.Destination)]
[SugarColumn(UniqueGroupNameList = new[] { "idx_Werk_Werk" })]
public string Werk { get; set; }