106 lines
4.3 KiB
C#
106 lines
4.3 KiB
C#
using APT.BaseData.Domain.Entities.FM;
|
|
using APT.BaseData.Domain.Enums;
|
|
using APT.Infrastructure.Core;
|
|
using APT.MS.Domain.Entities.OG;
|
|
using APT.MS.Domain.Entities.SC.SC;
|
|
using APT.MS.Domain.Enums;
|
|
using APT.Utility;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using NPOI.SS.Formula.Functions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
|
|
|
|
namespace APT.SC.WebApi.Controllers.Api.OG
|
|
{
|
|
[Route("api/OG/OGPolicyDocument")]
|
|
public class OGPolicyDocumentController : AuthorizeApiController<T_OG_POLICY_DOCUMENT>
|
|
{
|
|
[HttpPost, Route("FullUpdate")]
|
|
public JsonActionResult<bool> FullUpdate([FromBody] T_OG_POLICY_DOCUMENT entity)
|
|
{
|
|
return SafeExecute(() =>
|
|
{
|
|
var newditailID = Guid.NewGuid();
|
|
var Nav_Files = entity.Nav_Files;
|
|
var Nav_AppointUsers = entity.Nav_AppointUsers;
|
|
Nav_Files.ForEach(t =>
|
|
{
|
|
t.POLICY_DOCUMENT_DETAIL_ID = newditailID;
|
|
});
|
|
Nav_AppointUsers.ForEach(t =>
|
|
{
|
|
t.POLICY_DOCUMENT_DETAIL_ID = newditailID;
|
|
t.Nav_User = null;
|
|
});
|
|
|
|
var isHave = GetEntity<T_OG_POLICY_DOCUMENT>(t => t.APPOINT_TYPE == entity.APPOINT_TYPE);
|
|
if (isHave != null)
|
|
{
|
|
entity.ID = isHave.ID;
|
|
entity.VERSION = isHave.VERSION + 1;
|
|
var oldDetail = GetEntities<T_OG_POLICY_DOCUMENT_DETAIL>(t => t.POLICY_DOCUMENT_ID == isHave.ID&&t.STATUS== HMOperationStepEnum.有效, new BaseFilter(entity.ORG_ID));
|
|
foreach (var item in oldDetail)
|
|
{
|
|
item.STATUS = HMOperationStepEnum.作废;
|
|
}
|
|
BantchUpdateEntity(oldDetail);
|
|
}
|
|
if (entity.USER_ID == Guid.Empty)
|
|
{
|
|
entity.USER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
|
|
}
|
|
if (entity.CODE == null)
|
|
{
|
|
entity.CODE = "RM" + DateTime.Now.ToString("yyyyMMddHHmmss");
|
|
}
|
|
T_OG_POLICY_DOCUMENT_DETAIL newDetail = new T_OG_POLICY_DOCUMENT_DETAIL
|
|
{
|
|
ID = newditailID,
|
|
POLICY_DOCUMENT_ID = entity.ID,
|
|
CODE = entity.CODE,
|
|
NAME = entity.NAME,
|
|
APPOINT_TYPE = entity.APPOINT_TYPE,
|
|
VERSION = entity.VERSION,
|
|
DEPARTMENT_ID = entity.DEPARTMENT_ID,
|
|
APPOINT_AGREEUSER_ID = entity.APPOINT_AGREEUSER_ID,
|
|
PUBLISH_TIME = entity.PUBLISH_TIME,
|
|
APPOINT_EFFECT_TIME = entity.APPOINT_EFFECT_TIME,
|
|
APPOINT_REASON = entity.APPOINT_REASON,
|
|
USER_ID = entity.USER_ID,
|
|
ORG_ID = entity.ORG_ID
|
|
};
|
|
|
|
entity.Nav_Files = null;
|
|
entity.Nav_AppointUsers = null;
|
|
UnifiedCommit(() =>
|
|
{
|
|
UpdateEntityNoCommit(entity);
|
|
if (newDetail != null)
|
|
AddEntityNoCommit(newDetail);
|
|
if (Nav_Files != null && Nav_Files.Any())
|
|
BantchSaveEntityNoCommit(Nav_Files);
|
|
if (Nav_AppointUsers != null && Nav_AppointUsers.Any())
|
|
BantchSaveEntityNoCommit(Nav_AppointUsers);
|
|
});
|
|
return true;
|
|
});
|
|
}
|
|
/// <summary>
|
|
/// 排序分页查询数据
|
|
/// </summary>
|
|
/// <param name="pageFilter">分页过滤实体</param>
|
|
/// <returns></returns>
|
|
[HttpPost, Route("FullOrderPaged")]
|
|
public PagedActionResult<T_OG_POLICY_DOCUMENT_DETAIL> FullOrderPaged([FromBody] KeywordPageFilter pageFilter)
|
|
{
|
|
|
|
var modify = pageFilter.FilterGroup.Rules.FirstOrDefault(t => t.Field == "ID");
|
|
modify.Field = "POLICY_DOCUMENT_ID";
|
|
PagedActionResult<T_OG_POLICY_DOCUMENT_DETAIL> result = this.GetOrderPageEntities<T_OG_POLICY_DOCUMENT_DETAIL>(null, pageFilter);
|
|
return result;
|
|
}
|
|
}
|
|
}
|