125 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
using APT.BaseData.Domain.Entities;
 | 
						|
using APT.BaseData.Domain.Entities.FM;
 | 
						|
using APT.BaseData.Domain.Enums;
 | 
						|
using APT.BaseData.Domain.IServices.FM;
 | 
						|
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>
 | 
						|
    {
 | 
						|
        IFMNotificationTaskService NotificationTaskService { get; set; }
 | 
						|
        public OGPolicyDocumentController(IFMNotificationTaskService notificationTaskService)
 | 
						|
        {
 | 
						|
            NotificationTaskService = notificationTaskService;
 | 
						|
        }
 | 
						|
 | 
						|
        [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;
 | 
						|
                T_FM_NOTIFICATION_TASK taskEnd = null;
 | 
						|
                if (entity.TaskID != Guid.Empty)
 | 
						|
                {
 | 
						|
                    taskEnd = NotificationTaskService.GetEntityTask(entity.TaskID);
 | 
						|
                    if (!taskEnd.SOURCE_DATA_ID.HasValue)
 | 
						|
                    {
 | 
						|
                        taskEnd.SOURCE_DATA_ID = newditailID;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                UnifiedCommit(() =>
 | 
						|
                {
 | 
						|
                    UpdateEntityNoCommit(entity);
 | 
						|
                    if (taskEnd != null)
 | 
						|
                        UpdateEntityNoCommit(taskEnd);
 | 
						|
                    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;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |