d_sms_service/APT.MicroApi/APT.SC.WebApi/Controllers/Api/OGController/05OGAgencyController.cs

133 lines
4.6 KiB
C#
Raw Normal View History

2024-10-28 13:45:58 +08:00

using APT.BaseData.Domain.Enums;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.OG;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
namespace APT.SC.WebApi.Controllers.Api.OG
{
[Route("api/OG/OGAgency")]
public class OGAgencyController : AuthorizeTreeApiController<T_OG_AGENCY>
{
/// <summary>
/// 查询包含上级部门级本部门
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("OrderPagedOther")]
public PagedActionResult<T_OG_AGENCY> OrderPagedOther([FromBody]KeywordPageFilter pageFilter)
{
List<T_OG_AGENCY> list = GetEntities<T_OG_AGENCY>(t => t.ORG_ID == pageFilter.OrgId, new BaseFilter()).ToList();
var departmentA = new T_OG_AGENCY { ID = new Guid("00000000-0000-0000-0000-000000000000"), ORG_ID = pageFilter.OrgId, NAME = "通知部门" };
var departmentB = new T_OG_AGENCY { ID = new Guid("99999999-9999-9999-9999-999999999999"), ORG_ID = pageFilter.OrgId, NAME = "上级部门" };
list.Add(departmentA);
list.Add(departmentB);
return WitOrderPaged(null, pageFilter);
}
/// <summary>
/// 查询公司级/部门级部门及车间级部门,除班组级部门
/// </summary>
/// <param name="pageFilter"></param>
/// <returns></returns>
[HttpPost, Route("OrderPagedWithOutClassDep")]
public JsonActionResult<List<T_OG_AGENCY>> OrderPagedWithOutClassDep([FromBody]KeywordPageFilter pageFilter)
{
var list = GetEntities<T_OG_AGENCY>(t => t.LEVEL == FMDepartmentType. || t.LEVEL == FMDepartmentType. || t.LEVEL == FMDepartmentType., new BaseFilter()).ToList();
JsonActionResult<List<T_OG_AGENCY>> result = new JsonActionResult<List<T_OG_AGENCY>>();
result.Data = list.OrderBy(t => t.LEVEL).ToList();
result.IsSuccessful = true;
result.TotalCount = list.Count();
return result;
}
/// <summary>
/// 更新
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("Update")]
public JsonActionResult<bool> Update([FromBody]T_OG_AGENCY entity)
{
return SafeExecute(() =>
{
if (entity.PARENT_ID != null)
{
var parent = GetEntity<T_OG_AGENCY>(entity.PARENT_ID.ToString());
if (parent != null)
{
parent.IS_LEAF = false;
UpdateEntity(parent);
}
}
var users = entity.Nav_Users;
entity.Nav_Users = null;
if (users != null)
{
users.ForEach(t =>
{
t.AGENCY_ID = entity.ID;
t.ORG_ID = entity.ORG_ID;
t.Nav_User = null;
});
}
UnifiedCommit(() =>
{
UpdateEntityNoCommit(entity);
if (users != null)
BantchSaveEntityNoCommit(users);
});
return true;
});
}
/// <summary>
/// 更新(含人员)
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody]T_OG_AGENCY entity)
{
T_OG_AGENCY parent = new T_OG_AGENCY();
if (entity.PARENT_ID != null)
{
parent = GetEntity<T_OG_AGENCY>(entity.PARENT_ID.ToString());
}
var users = entity.Nav_Users;
entity.Nav_Users = null;
if (users != null)
{
users.ForEach(t =>
{
t.AGENCY_ID = entity.ID;
t.ORG_ID = entity.ORG_ID;
t.Nav_User = null;
});
}
WitCommitTransaction(() =>
{
UpdateEntity(entity);
if (parent != null)
{
parent.IS_LEAF = false;
UpdateEntity(parent);
}
if (users != null)
BantchSaveEntity(users);
});
return SafeExecute<bool>(() =>
{
return true;
});
}
}
}