mh_jy_safe/APT.MicroApi/APT.SC.WebApi/Controllers/Api/PRController/PostFormLinkController.cs

96 lines
3.5 KiB
C#
Raw Normal View History

2025-08-25 09:56:57 +08:00
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.SC.PR;
using APT.Utility;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
namespace APT.SC.WebApi.Controllers.Api.PRController
{
/// <summary>
/// 岗位表单关联表
/// </summary>
[Route("api/PR/PRPostFormLink")]
public partial class PostFormLinkController : AuthorizeApiController<T_PR_POST_FORM_LINK>
{
/// <summary>
/// 新增/编辑
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_PR_POST_FORM_LINK entity)
{
return SafeExecute(() =>
{
var codes = entity.Nav_Codes;
if (codes != null && codes.Any())
{
codes.ForEach(t =>
{
t.ORG_ID = entity.ORG_ID; t.POST_POST_ID = entity.ID;
t.Nav_Form = null;
});
}
entity.Nav_Codes = null;
var departments = entity.Nav_Departments;
if (departments != null && departments.Any())
{
departments.ForEach(t =>
{
t.ORG_ID = entity.ORG_ID; t.POST_POST_ID = entity.ID;
t.Nav_Department = null;
});
}
entity.Nav_Departments = null;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
if (codes != null && codes.Any())
this.BantchSaveEntityNoCommit(codes);
if (departments != null && departments.Any())
this.BantchSaveEntityNoCommit(departments);
});
return true;
});
}
/// <summary>
/// 单条删除
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpGet, Route("FullDelete")]
public JsonActionResult<bool> FullDelete(string id)
{
return SafeExecute<bool>(() =>
{
T_PR_POST_FORM_LINK entity = GetEntity<T_PR_POST_FORM_LINK>(t => t.ID.ToString() == id, false, "Nav_Codes", "Nav_Departments");
List<Guid> codeIds = new List<Guid>();
List<Guid> departIds = new List<Guid>();
if (entity.Nav_Codes != null && entity.Nav_Codes.Any())
{
var idList = entity.Nav_Codes.Select(t => t.ID).ToList();
codeIds.AddRange(idList);
}
if (entity.Nav_Departments != null && entity.Nav_Departments.Any())
{
var idList = entity.Nav_Departments.Select(t => t.ID).ToList();
departIds.AddRange(idList);
}
UnifiedCommit(() =>
{
if (codeIds.Any())
this.BantchDeleteEntityNoCommit<T_PR_POST_FORM_LINK_CODE>(codeIds);
if (departIds.Any())
this.BantchDeleteEntityNoCommit<T_PR_POST_FORM_LINK_DEPARTMENT>(departIds);
if (entity != null)
this.DeleteEntityNoCommit(entity);
});
return true;
});
}
}
}