|
@@ -14,19 +14,22 @@ namespace Hotline.Api.Controllers
|
|
|
/// <summary>
|
|
|
/// 组织架构相关接口
|
|
|
/// </summary>
|
|
|
- public class OrgController: BaseController
|
|
|
+ public class OrgController : BaseController
|
|
|
{
|
|
|
private readonly ISystemOrganizeRepository _systemOrganizeRepository;
|
|
|
private readonly ISystemDomainService _systemDomainService;
|
|
|
+ private readonly ISystemAreaDomainService _areaDomainService;
|
|
|
private readonly IMapper _mapper;
|
|
|
|
|
|
public OrgController(
|
|
|
ISystemOrganizeRepository systemOrganizeRepository,
|
|
|
ISystemDomainService systemDomainService,
|
|
|
+ ISystemAreaDomainService areaDomainService,
|
|
|
IMapper mapper)
|
|
|
{
|
|
|
_systemOrganizeRepository = systemOrganizeRepository;
|
|
|
_systemDomainService = systemDomainService;
|
|
|
+ _areaDomainService = areaDomainService;
|
|
|
_mapper = mapper;
|
|
|
}
|
|
|
|
|
@@ -49,6 +52,7 @@ namespace Hotline.Api.Controllers
|
|
|
/// <returns></returns>
|
|
|
[Permission(EPermission.AddOrg)]
|
|
|
[HttpPost("add-org")]
|
|
|
+ [Obsolete]
|
|
|
public async Task AddOrg([FromBody] AddOrgDto dto)
|
|
|
{
|
|
|
var org = _mapper.Map<SystemOrganize>(dto);
|
|
@@ -60,7 +64,28 @@ namespace Hotline.Api.Controllers
|
|
|
|
|
|
//处理编码
|
|
|
org.OrgCode = await _systemDomainService.GenerateNewOrgCodeAsync(dto.ParentId, HttpContext.RequestAborted);
|
|
|
-
|
|
|
+
|
|
|
+ org.InitOrgLevel();
|
|
|
+ await _systemOrganizeRepository.AddAsync(org, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 新增组织架构
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.AddOrg)]
|
|
|
+ [HttpPost]
|
|
|
+ public async Task Add([FromBody] AddOrgDto dto)
|
|
|
+ {
|
|
|
+ var exists = await _systemOrganizeRepository.AnyAsync(
|
|
|
+ d => d.OrgName == dto.OrgName || d.OrgShortName == dto.OrgShortName, HttpContext.RequestAborted);
|
|
|
+ if (exists)
|
|
|
+ throw UserFriendlyException.SameMessage("名称或简称已存在");
|
|
|
+
|
|
|
+ var org = _mapper.Map<SystemOrganize>(dto);
|
|
|
+
|
|
|
+ org.OrgCode = await _systemDomainService.GenerateNewOrgCodeAsync(dto.ParentId, HttpContext.RequestAborted);
|
|
|
org.InitOrgLevel();
|
|
|
await _systemOrganizeRepository.AddAsync(org, HttpContext.RequestAborted);
|
|
|
}
|
|
@@ -72,7 +97,8 @@ namespace Hotline.Api.Controllers
|
|
|
/// <returns></returns>
|
|
|
[Permission(EPermission.UpdateOrg)]
|
|
|
[HttpPost("update-org")]
|
|
|
- public async Task UpdateOrg([FromBody]UpdateOrgDto dto)
|
|
|
+ [Obsolete]
|
|
|
+ public async Task UpdateOrg([FromBody] UpdateOrgDto dto)
|
|
|
{
|
|
|
var org = await _systemOrganizeRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
|
|
|
if (org is null)
|
|
@@ -89,6 +115,30 @@ namespace Hotline.Api.Controllers
|
|
|
await _systemOrganizeRepository.UpdateAsync(org, HttpContext.RequestAborted);
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 修改组织架构(不支持修改上级)
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="dto"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ [Permission(EPermission.UpdateOrg)]
|
|
|
+ [HttpPut]
|
|
|
+ public async Task Update([FromBody] UpdateOrgDto dto)
|
|
|
+ {
|
|
|
+ var org = await _systemOrganizeRepository.GetAsync(dto.Id, HttpContext.RequestAborted);
|
|
|
+ if (org is null)
|
|
|
+ throw UserFriendlyException.SameMessage("无效组织架构");
|
|
|
+ if (org.Id == dto.ParentId)
|
|
|
+ throw UserFriendlyException.SameMessage("父级不能为自己");
|
|
|
+
|
|
|
+ var exists = await _systemOrganizeRepository.AnyAsync(
|
|
|
+ d => d.OrgName == dto.OrgName || d.OrgShortName == dto.OrgShortName, HttpContext.RequestAborted);
|
|
|
+ if (exists)
|
|
|
+ throw UserFriendlyException.SameMessage("名称或简称已存在");
|
|
|
+
|
|
|
+ _mapper.Map(dto, org);
|
|
|
+ await _systemOrganizeRepository.UpdateAsync(org, HttpContext.RequestAborted);
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 获取组织
|
|
|
/// </summary>
|
|
@@ -120,6 +170,7 @@ namespace Hotline.Api.Controllers
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
[HttpGet("base-data-add")]
|
|
|
+ [Obsolete]
|
|
|
public async Task<object> BaseDataAdd()
|
|
|
{
|
|
|
var rep = new
|
|
@@ -128,5 +179,17 @@ namespace Hotline.Api.Controllers
|
|
|
};
|
|
|
return rep;
|
|
|
}
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 部门页面基础数据
|
|
|
+ /// </summary>
|
|
|
+ /// <returns></returns>
|
|
|
+ [HttpGet("base-data")]
|
|
|
+ public async Task<dynamic> BaseData() =>
|
|
|
+ new
|
|
|
+ {
|
|
|
+ OrgTypeOptions = EnumExts.GetDescriptions<EOrgType>(),
|
|
|
+ Areas = await _areaDomainService.GetAreaTree()
|
|
|
+ };
|
|
|
}
|
|
|
}
|