1491 lines
		
	
	
		
			74 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			1491 lines
		
	
	
		
			74 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 
								 | 
							
								using APT.BaseData.Domain.Entities;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.Entities.FM;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.Enums;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.Enums.PF;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.IServices;
							 | 
						|||
| 
								 | 
							
								using APT.BaseData.Domain.IServices.FM;
							 | 
						|||
| 
								 | 
							
								using APT.Infrastructure.Core;
							 | 
						|||
| 
								 | 
							
								using APT.MS.Domain.Entities.FO;
							 | 
						|||
| 
								 | 
							
								using APT.MS.Domain.Entities.SC;
							 | 
						|||
| 
								 | 
							
								using APT.MS.Domain.Enums;
							 | 
						|||
| 
								 | 
							
								using APT.Utility;
							 | 
						|||
| 
								 | 
							
								using Microsoft.AspNetCore.Mvc;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace APT.SC.WebApi.Controllers.Api.SC
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    /// <summary>
							 | 
						|||
| 
								 | 
							
								    /// 
							 | 
						|||
| 
								 | 
							
								    /// </summary>
							 | 
						|||
| 
								 | 
							
								    [Route("api/SC/SCMtMeetingMinutes")]
							 | 
						|||
| 
								 | 
							
								    public class SCMtMeetingMinutesController : AuthorizeApiController<T_SC_MT_MEETING_MINUTES>
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        IFMFlowPermitService MFlowPermitService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IFMUserService FMUserService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IPFApproveCallBackService ApproveCallBackService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IFMNotificationTaskService FMNotificActionTaskService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IFMNotificationTaskService NotificationTaskService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IPFCodeRuleService CodeRuleService { get; set; }
							 | 
						|||
| 
								 | 
							
								        public SCMtMeetingMinutesController(IFMUserService fMUserService, IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService, IPFCodeRuleService codeRuleService, IFMNotificationTaskService fMNotificActionTaskService, IFMNotificationTaskService notificationTaskService)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            FMUserService = fMUserService;
							 | 
						|||
| 
								 | 
							
								            MFlowPermitService = mFlowPermitService;
							 | 
						|||
| 
								 | 
							
								            ApproveCallBackService = approveCallBackService;
							 | 
						|||
| 
								 | 
							
								            FMNotificActionTaskService = fMNotificActionTaskService;
							 | 
						|||
| 
								 | 
							
								            NotificationTaskService = notificationTaskService;
							 | 
						|||
| 
								 | 
							
								            CodeRuleService = codeRuleService;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 编辑页面过滤 评审人
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filter"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("Get")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<T_SC_MT_MEETING_MINUTES> Get([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<T_SC_MT_MEETING_MINUTES>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Guid ID = Guid.Empty;
							 | 
						|||
| 
								 | 
							
								                if (filter.FilterGroup.Rules != null && filter.FilterGroup.Rules.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in filter.FilterGroup.Rules)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.Field == "ID")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            ID = new Guid(item.Value.ToString());
							 | 
						|||
| 
								 | 
							
								                            filter.FilterGroup.Rules.Remove(item);
							 | 
						|||
| 
								 | 
							
								                            break;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                T_SC_MT_MEETING_MINUTES result = null;
							 | 
						|||
| 
								 | 
							
								                if (ID == Guid.Empty)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    result = GetEntity<T_SC_MT_MEETING_MINUTES>(null, filter);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ICollection<string> IncludeMinutes = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    //ICollection<string> IncludeMinutesUserExt = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    bool isUserExt = false;
							 | 
						|||
| 
								 | 
							
								                    List<string> IncludeMinutesContent = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    ICollection<string> IncludeMeeting = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    ICollection<string> IncludeMinutesUserSign = new List<string>();//需要签名的
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in filter.Include)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        //if (item == "Nav_ListContent.Nav_ListContentDeal" || item == "Nav_ListContent.Nav_Content.Nav_ListContentDeal" || item == "Nav_ListMeetingContent.Nav_ContentName" || item == "Nav_ListMeetingContent")
							 | 
						|||
| 
								 | 
							
								                        //{
							 | 
						|||
| 
								 | 
							
								                        //    //会议纪要 拉出了 会议的会议内容
							 | 
						|||
| 
								 | 
							
								                        //    IncludeMeeting.Add(item);
							 | 
						|||
| 
								 | 
							
								                        //}
							 | 
						|||
| 
								 | 
							
								                        //else 
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (item.Contains("Nav_Meeting"))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item != "Nav_Meeting" && item != "Nav_Meeting.Nav_UserHost" && item != "Nav_Meeting.Nav_UserRecorder")
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                IncludeMeeting.Add(item.Substring(12));
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (item.Contains("Nav_ListContent"))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item != "Nav_ListContent")
							 | 
						|||
| 
								 | 
							
								                                IncludeMinutesContent.Add(item.Substring(16));
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (item.Contains("Nav_User") && item.StartsWith("Nav_ListP"))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item.Contains("Nav_UserSignFiles"))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                IncludeMinutesUserSign.Add(item);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            IncludeMinutes.Add(item.Split(".Nav_User")[0]);//人员拆分搜索
							 | 
						|||
| 
								 | 
							
								                            if (!isUserExt && item.Contains(".Nav_User."))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                isUserExt = true;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            //if (item.Contains(".Nav_User."))
							 | 
						|||
| 
								 | 
							
								                            //{
							 | 
						|||
| 
								 | 
							
								                            //    IncludeMinutesUserExt.Add(item.Split(".Nav_User.")[1]);
							 | 
						|||
| 
								 | 
							
								                            //}
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            IncludeMinutes.Add(item);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    //if (IncludeMinutesUserExt.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    //{
							 | 
						|||
| 
								 | 
							
								                    //    IncludeMinutesUserExt = IncludeMinutesUserExt.Distinct().ToList();
							 | 
						|||
| 
								 | 
							
								                    //}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    filter.Include = IncludeMinutes;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    result = GetEntity<T_SC_MT_MEETING_MINUTES>(e => e.ID == ID, IncludeMinutes.ToArray());
							 | 
						|||
| 
								 | 
							
								                    var meeting = GetEntity<T_SC_MT_MEETING>(e => e.ID == result.MEETING_ID, IncludeMeeting.ToArray());
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (IncludeMinutesContent != null && IncludeMinutesContent.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (IncludeMinutesContent.Contains("Nav_ListContentDeal") && !IncludeMinutesContent.Contains("Nav_ListContentDeal.Nav_ContentDeal"))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            IncludeMinutesContent.Add("Nav_ListContentDeal.Nav_ContentDeal");
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        var contents = GetEntities<T_SC_MT_MEETING_MINUTES_CONTENT>(e => e.MEETING_MINUTES_ID == ID, null, IncludeMinutesContent.ToArray());
							 | 
						|||
| 
								 | 
							
								                        if (contents != null && contents.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result.Nav_ListContent = contents.ToList();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result.Nav_ListContent = new List<T_SC_MT_MEETING_MINUTES_CONTENT>();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    //1   "Nav_ListPReview.Nav_User"
							 | 
						|||
| 
								 | 
							
								                    //10  "Nav_ListPAskForLeave.Nav_User"
							 | 
						|||
| 
								 | 
							
								                    //11  "Nav_ListPAbsence.Nav_User"
							 | 
						|||
| 
								 | 
							
								                    //13  "Nav_ListPJoin.Nav_User.Nav_UserSignFiles.Nav_ImgFile.Nav_File"
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    List<Guid> listUserID = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                    List<Guid> listUserIDSign = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                    if (meeting.USER_ID_HOST.HasValue)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID.Add(meeting.USER_ID_HOST.Value);//主持人
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (meeting.USER_ID_RECORDER.HasValue)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID.Add(meeting.USER_ID_RECORDER.Value);//记录人
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (result.Nav_ListPReview != null && result.Nav_ListPReview.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID.AddRange(result.Nav_ListPReview.Select(e => e.USER_ID));
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (result.Nav_ListPAskForLeave != null && result.Nav_ListPAskForLeave.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID.AddRange(result.Nav_ListPAskForLeave.Select(e => e.USER_ID));
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (result.Nav_ListPAbsence != null && result.Nav_ListPAbsence.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID.AddRange(result.Nav_ListPAbsence.Select(e => e.USER_ID));
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (result.Nav_ListPJoin != null && result.Nav_ListPJoin.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID.AddRange(result.Nav_ListPJoin.Select(e => e.USER_ID));
							 | 
						|||
| 
								 | 
							
								                        listUserIDSign.AddRange(result.Nav_ListPJoin.Select(e => e.USER_ID));
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (listUserID.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID = listUserID.Distinct().ToList();
							 | 
						|||
| 
								 | 
							
								                        var listUserAll = GetEntities<T_FM_USER>(e => listUserID.Contains(e.ID), null, null);
							 | 
						|||
| 
								 | 
							
								                        if (listUserAll != null && listUserAll.Any() && listUserIDSign.Count > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var listUserSign = GetEntities<T_FM_USER_SIGN_FILE>(e => listUserIDSign.Contains(e.USER_ID), null, "Nav_ImgFile.Nav_File");
							 | 
						|||
| 
								 | 
							
								                            foreach (var item in listUserAll)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (listUserIDSign.Contains(item.ID))
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    item.Nav_UserSignFiles = listUserSign.Where(e => e.USER_ID == item.ID).ToList();
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (result.Nav_ListPReview != null && result.Nav_ListPReview.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            foreach (var item in result.Nav_ListPReview)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                item.Nav_User = listUserAll.FirstOrDefault(e => e.ID == item.USER_ID);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (result.Nav_ListPAskForLeave != null && result.Nav_ListPAskForLeave.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            foreach (var item in result.Nav_ListPAskForLeave)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                item.Nav_User = listUserAll.FirstOrDefault(e => e.ID == item.USER_ID);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (result.Nav_ListPAbsence != null && result.Nav_ListPAbsence.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            foreach (var item in result.Nav_ListPAbsence)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                item.Nav_User = listUserAll.FirstOrDefault(e => e.ID == item.USER_ID);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (result.Nav_ListPJoin != null && result.Nav_ListPJoin.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            foreach (var item in result.Nav_ListPJoin)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                item.Nav_User = listUserAll.FirstOrDefault(e => e.ID == item.USER_ID);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (meeting.USER_ID_HOST.HasValue)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            meeting.Nav_UserHost = listUserAll.FirstOrDefault(e => e.ID == meeting.USER_ID_HOST.Value);//主持人
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (meeting.USER_ID_RECORDER.HasValue)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            meeting.Nav_UserRecorder = listUserAll.FirstOrDefault(e => e.ID == meeting.USER_ID_RECORDER.Value);//记录人
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (isUserExt)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            //评审人员 和 参加人 额外显示部门职位信息
							 | 
						|||
| 
								 | 
							
								                            List<Guid> listDepID = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                            List<Guid> listPersonID = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                            listDepID.AddRange(result.Nav_ListPJoin.Where(e => e.Nav_User.DEPARTMENT_ID.HasValue).Select(e => e.Nav_User.DEPARTMENT_ID.Value).ToList());
							 | 
						|||
| 
								 | 
							
								                            listDepID.AddRange(result.Nav_ListPReview.Where(e => e.Nav_User.DEPARTMENT_ID.HasValue).Select(e => e.Nav_User.DEPARTMENT_ID.Value).ToList());
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            listPersonID.AddRange(result.Nav_ListPJoin.Where(e => e.Nav_User.PERSON_ID.HasValue).Select(e => e.Nav_User.PERSON_ID.Value).ToList());
							 | 
						|||
| 
								 | 
							
								                            listPersonID.AddRange(result.Nav_ListPReview.Where(e => e.Nav_User.PERSON_ID.HasValue).Select(e => e.Nav_User.PERSON_ID.Value).ToList());
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            listDepID = listDepID.Distinct().ToList();
							 | 
						|||
| 
								 | 
							
								                            listPersonID = listPersonID.Distinct().ToList();
							 | 
						|||
| 
								 | 
							
								                            if (listDepID != null)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                var listDep = GetEntities<T_FM_DEPARTMENT>(e => listDepID.Contains(e.ID), null, null);
							 | 
						|||
| 
								 | 
							
								                                foreach (var item in result.Nav_ListPJoin)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (item.Nav_User.DEPARTMENT_ID.HasValue)
							 | 
						|||
| 
								 | 
							
								                                        item.Nav_User.Nav_Department = listDep.FirstOrDefault(e => item.Nav_User.DEPARTMENT_ID == e.ID);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                foreach (var item in result.Nav_ListPReview)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (item.Nav_User.DEPARTMENT_ID.HasValue)
							 | 
						|||
| 
								 | 
							
								                                        item.Nav_User.Nav_Department = listDep.FirstOrDefault(e => item.Nav_User.DEPARTMENT_ID == e.ID);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (listPersonID != null && listPersonID.Any())
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                var listPersons = GetEntities<T_FM_PERSON>(e => listPersonID.Contains(e.ID), null, "Nav_Post");
							 | 
						|||
| 
								 | 
							
								                                foreach (var item in result.Nav_ListPJoin)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (item.Nav_User.PERSON_ID.HasValue)
							 | 
						|||
| 
								 | 
							
								                                        item.Nav_User.Nav_Person = listPersons.FirstOrDefault(e => item.Nav_User.PERSON_ID == e.ID);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                foreach (var item in result.Nav_ListPReview)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if (item.Nav_User.PERSON_ID.HasValue)
							 | 
						|||
| 
								 | 
							
								                                        item.Nav_User.Nav_Person = listPersons.FirstOrDefault(e => item.Nav_User.PERSON_ID == e.ID);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    result.Nav_Meeting = meeting;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (result.Nav_ListPJoin != null && result.Nav_ListPJoin.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListPJoin = result.Nav_ListPJoin.Where(e => e.PERSONTYPE == SCMEETINGPERSONTYPE.JOIN).OrderBy(e => e.ISRECORDRED).ThenBy(e => e.MODIFY_TIME).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //检查内容排序
							 | 
						|||
| 
								 | 
							
								                if (result.Nav_ListContent != null && result.Nav_ListContent.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var ListContent = result.Nav_ListContent.OrderBy(e => e.Nav_Content.CONTENT_NO).ThenBy(e => e.Nav_Content.CONTENTNAME_ID).ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in ListContent)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.Nav_ListContentDeal != null && item.Nav_ListContentDeal.Any())
							 | 
						|||
| 
								 | 
							
								                            item.Nav_ListContentDeal = item.Nav_ListContentDeal.OrderBy(e => e.Nav_ContentDeal.CONTENT_DEAL_NO).ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (item.Nav_Content.Nav_ListContentDeal != null && item.Nav_Content.Nav_ListContentDeal.Any())
							 | 
						|||
| 
								 | 
							
								                            item.Nav_Content.Nav_ListContentDeal = item.Nav_Content.Nav_ListContentDeal.OrderBy(e => e.CONTENT_DEAL_NO).ToList();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListContent = ListContent;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (DataHelper.GetRequestType(Request.Headers) == 2 && result.Nav_ListMinutesDetail != null && result.Nav_ListMinutesDetail.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in result.Nav_ListMinutesDetail)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.DEALEFFECT.HasValue)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.DEALEFFECTSHOW = item.DEALEFFECT.Value.GetDescription();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                return result;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 编辑页面过滤 评审人  Get的改进版(移动端)
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filter"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("GetDevelop")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<T_SC_MT_MEETING_MINUTES> GetDevelop([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<T_SC_MT_MEETING_MINUTES>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Guid ID = Guid.Empty;
							 | 
						|||
| 
								 | 
							
								                if (filter.FilterGroup.Rules != null && filter.FilterGroup.Rules.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in filter.FilterGroup.Rules)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.Field == "ID")
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            ID = new Guid(item.Value.ToString());
							 | 
						|||
| 
								 | 
							
								                            filter.FilterGroup.Rules.Remove(item);
							 | 
						|||
| 
								 | 
							
								                            break;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                T_SC_MT_MEETING_MINUTES result = null;
							 | 
						|||
| 
								 | 
							
								                if (ID == Guid.Empty)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    result = GetEntity<T_SC_MT_MEETING_MINUTES>(null, filter);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ICollection<string> IncludeMinutes = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    ICollection<string> IncludeMeeting = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    ICollection<string> IncludeMinutesContent = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in filter.Include)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        //if (item == "Nav_ListContent.Nav_ListContentDeal" || item == "Nav_ListContent.Nav_Content.Nav_ListContentDeal" || item == "Nav_ListMeetingContent.Nav_ContentName" || item == "Nav_ListMeetingContent")
							 | 
						|||
| 
								 | 
							
								                        //{
							 | 
						|||
| 
								 | 
							
								                        //    //会议纪要 拉出了 会议的会议内容
							 | 
						|||
| 
								 | 
							
								                        //    IncludeMeeting.Add(item);
							 | 
						|||
| 
								 | 
							
								                        //}
							 | 
						|||
| 
								 | 
							
								                        //else 
							 | 
						|||
| 
								 | 
							
								                        if (item.Contains("Nav_Meeting"))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item != "Nav_Meeting" && item != "Nav_Meeting.Nav_UserHost" && item != "Nav_Meeting.Nav_UserRecorder")
							 | 
						|||
| 
								 | 
							
								                                IncludeMeeting.Add(item.Substring(12));
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (item.Contains("Nav_ListContent"))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item != "Nav_ListContent")
							 | 
						|||
| 
								 | 
							
								                                IncludeMinutesContent.Add(item.Substring(16));
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            IncludeMinutes.Add(item);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    filter.Include = IncludeMinutes;
							 | 
						|||
| 
								 | 
							
								                    result = GetEntity<T_SC_MT_MEETING_MINUTES>(e => e.ID == ID, IncludeMinutes.ToArray());
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var meeting = GetEntity<T_SC_MT_MEETING>(e => e.ID == result.MEETING_ID, IncludeMeeting.ToArray());
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #region    人员加载
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListPReview = GetEntities<T_SC_MT_MINUTES_PREVIEW>(e => e.MEETING_MINUTES_ID == result.ID, null, null).ToList();
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListPAskForLeave = GetEntities<T_SC_MT_MEETING_PASKFORLEAVE>(e => e.MEETING_MINUTES_ID == result.ID, null, null).ToList();
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListPAbsence = GetEntities<T_SC_MT_MEETING_PABSENCE>(e => e.MEETING_MINUTES_ID == result.ID, null, null).ToList();
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListPJoin = GetEntities<T_SC_MT_MEETING_PJOIN>(e => e.MEETING_MINUTES_ID == result.ID, null, null).ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    List<Guid> listUserID = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                    if (meeting.USER_ID_HOST.HasValue)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID.Add(meeting.USER_ID_HOST.Value);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (meeting.USER_ID_RECORDER.HasValue)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID.Add(meeting.USER_ID_RECORDER.Value);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (result.Nav_ListPReview != null && result.Nav_ListPReview.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var listUserIDPR = result.Nav_ListPReview.Select(e => e.USER_ID);
							 | 
						|||
| 
								 | 
							
								                        if (listUserIDPR.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            listUserID.AddRange(listUserIDPR);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (result.Nav_ListPAskForLeave != null && result.Nav_ListPAskForLeave.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var listUserIDPR = result.Nav_ListPAskForLeave.Select(e => e.USER_ID);
							 | 
						|||
| 
								 | 
							
								                        if (listUserIDPR.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            listUserID.AddRange(listUserIDPR);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (result.Nav_ListPAbsence != null && result.Nav_ListPAbsence.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var listUserIDPR = result.Nav_ListPAbsence.Select(e => e.USER_ID);
							 | 
						|||
| 
								 | 
							
								                        if (listUserIDPR.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            listUserID.AddRange(listUserIDPR);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (result.Nav_ListPJoin != null && result.Nav_ListPJoin.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var listUserIDPR = result.Nav_ListPJoin.Select(e => e.USER_ID);
							 | 
						|||
| 
								 | 
							
								                        if (listUserIDPR.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            listUserID.AddRange(listUserIDPR);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (listUserID != null && listUserID.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listUserID = listUserID.Distinct().ToList();
							 | 
						|||
| 
								 | 
							
								                        var listUserS = GetEntities<T_FM_USER>(e => listUserID.Contains(e.ID), null, null);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (result.Nav_ListPReview != null && result.Nav_ListPReview.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result.Nav_ListPReview.ForEach(e =>
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                e.Nav_User = listUserS.FirstOrDefault(eu => eu.ID == e.USER_ID);
							 | 
						|||
| 
								 | 
							
								                            });
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (result.Nav_ListPAskForLeave != null && result.Nav_ListPAskForLeave.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result.Nav_ListPAskForLeave.ForEach(e =>
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                e.Nav_User = listUserS.FirstOrDefault(eu => eu.ID == e.USER_ID);
							 | 
						|||
| 
								 | 
							
								                            });
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (result.Nav_ListPAbsence != null && result.Nav_ListPAbsence.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result.Nav_ListPAbsence.ForEach(e =>
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                e.Nav_User = listUserS.FirstOrDefault(eu => eu.ID == e.USER_ID);
							 | 
						|||
| 
								 | 
							
								                            });
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (result.Nav_ListPJoin != null && result.Nav_ListPJoin.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result.Nav_ListPJoin.ForEach(e =>
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                e.Nav_User = listUserS.FirstOrDefault(eu => eu.ID == e.USER_ID);
							 | 
						|||
| 
								 | 
							
								                            });
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (meeting.USER_ID_HOST.HasValue)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            meeting.Nav_UserHost = listUserS.FirstOrDefault(e => e.ID == meeting.USER_ID_HOST.Value);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (meeting.USER_ID_RECORDER.HasValue)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            meeting.Nav_UserRecorder = listUserS.FirstOrDefault(e => e.ID == meeting.USER_ID_RECORDER.Value);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //#region     Nav_ListContent
							 | 
						|||
| 
								 | 
							
								                    //var Nav_ListContent = GetEntities<T_SC_MT_MEETING_MINUTES_CONTENT>(e => e.MEETING_MINUTES_ID == result.ID, null, IncludeMinutesNav_ListContent.ToArray());
							 | 
						|||
| 
								 | 
							
								                    //result.Nav_ListContent = Nav_ListContent.ToList();
							 | 
						|||
| 
								 | 
							
								                    //#endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    result.Nav_Meeting = meeting;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (IncludeMinutesContent != null && IncludeMinutesContent.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (IncludeMinutesContent.Contains("Nav_ListContentDeal") && !IncludeMinutesContent.Contains("Nav_ListContentDeal.Nav_ContentDeal"))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            IncludeMinutesContent.Add("Nav_ListContentDeal.Nav_ContentDeal");
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        var contents = GetEntities<T_SC_MT_MEETING_MINUTES_CONTENT>(e => e.MEETING_MINUTES_ID == ID, null, IncludeMinutesContent.ToArray());
							 | 
						|||
| 
								 | 
							
								                        if (contents != null && contents.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result.Nav_ListContent = contents.ToList();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            result.Nav_ListContent = new List<T_SC_MT_MEETING_MINUTES_CONTENT>();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (result.Nav_ListPJoin != null && result.Nav_ListPJoin.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListPJoin = result.Nav_ListPJoin.Where(e => e.PERSONTYPE == SCMEETINGPERSONTYPE.JOIN).OrderBy(e => e.ISRECORDRED).ThenBy(e => e.MODIFY_TIME).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //检查内容排序
							 | 
						|||
| 
								 | 
							
								                if (result.Nav_ListContent != null && result.Nav_ListContent.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var ListContent = result.Nav_ListContent.OrderBy(e => e.Nav_Content.CONTENT_NO).ThenBy(e => e.Nav_Content.CONTENTNAME_ID).ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in ListContent)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.Nav_ListContentDeal != null && item.Nav_ListContentDeal.Any())
							 | 
						|||
| 
								 | 
							
								                            item.Nav_ListContentDeal = item.Nav_ListContentDeal.OrderBy(e => e.Nav_ContentDeal.CONTENT_DEAL_NO).ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (item.Nav_Content.Nav_ListContentDeal != null && item.Nav_Content.Nav_ListContentDeal.Any())
							 | 
						|||
| 
								 | 
							
								                            item.Nav_Content.Nav_ListContentDeal = item.Nav_Content.Nav_ListContentDeal.OrderBy(e => e.CONTENT_DEAL_NO).ToList();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListContent = ListContent;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (DataHelper.GetRequestType(Request.Headers) == 2 && result.Nav_ListMinutesDetail != null && result.Nav_ListMinutesDetail.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in result.Nav_ListMinutesDetail)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.DEALEFFECT.HasValue)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.DEALEFFECTSHOW = item.DEALEFFECT.Value.GetDescription();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                return result;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        ///// <summary>
							 | 
						|||
| 
								 | 
							
								        ///// 编辑页面过滤 评审人
							 | 
						|||
| 
								 | 
							
								        ///// </summary>
							 | 
						|||
| 
								 | 
							
								        ///// <param name="filter"></param>
							 | 
						|||
| 
								 | 
							
								        ///// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        //[HttpPost, Route("Get")]
							 | 
						|||
| 
								 | 
							
								        //public JsonActionResult<T_SC_MT_MEETING_MINUTES> GetPAll([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        //{
							 | 
						|||
| 
								 | 
							
								        //    return SafeExecute<T_SC_MT_MEETING_MINUTES>(() =>
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        T_SC_MT_MEETING_MINUTES result = GetEntity<T_SC_MT_MEETING_MINUTES>(null, filter);
							 | 
						|||
| 
								 | 
							
								        //        if (result.Nav_ListPJoin != null && result.Nav_ListPJoin.Any())
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            result.Nav_ListPJoin = result.Nav_ListPJoin.Where(e => e.PERSONTYPE == SCMEETINGPERSONTYPE.JOIN).OrderBy(e => e.ISRECORDRED).ThenBy(e => e.MODIFY_TIME).ToList();
							 | 
						|||
| 
								 | 
							
								        //            //var listPJoin = result.Nav_ListPJoin.Where(e => e.PERSONTYPE == SCMEETINGPERSONTYPE.REVIEW);
							 | 
						|||
| 
								 | 
							
								        //            //if (listPJoin != null && listPJoin.Any())
							 | 
						|||
| 
								 | 
							
								        //            //{
							 | 
						|||
| 
								 | 
							
								        //            //    //result.Nav_ListPReView = listPJoin.ToList();
							 | 
						|||
| 
								 | 
							
								        //            //}
							 | 
						|||
| 
								 | 
							
								        //        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //        //检查内容排序
							 | 
						|||
| 
								 | 
							
								        //        if (result.Nav_ListContent != null && result.Nav_ListContent.Any())
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            var ListContent = result.Nav_ListContent.OrderBy(e => e.CONTENT_ID).ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //            foreach (var item in ListContent)
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                if (item.Nav_ListContentDeal != null && item.Nav_ListContentDeal.Any())
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    item.Nav_ListContentDeal = item.Nav_ListContentDeal.OrderBy(e => e.Nav_ContentDeal.CONTENT_DEAL_NO).ToList();
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            result.Nav_ListContent = ListContent;
							 | 
						|||
| 
								 | 
							
								        //            //foreach (var item in ListContent)
							 | 
						|||
| 
								 | 
							
								        //            //{
							 | 
						|||
| 
								 | 
							
								        //            //    if (item.Nav_ListContentDeal!=null&& item.Nav_ListContentDeal.Count>0)
							 | 
						|||
| 
								 | 
							
								        //            //    {
							 | 
						|||
| 
								 | 
							
								        //            //        foreach (var itemD in item.Nav_ListContentDeal)
							 | 
						|||
| 
								 | 
							
								        //            //        {
							 | 
						|||
| 
								 | 
							
								        //            //            itemD.Nav_ContentDeal = itemD.Nav_ContentDeal.Nav_Content.Nav_ListContentDeal.OrderBy(e=>e.CONTENT_DEAL_NO).ToList();
							 | 
						|||
| 
								 | 
							
								        //            //        }
							 | 
						|||
| 
								 | 
							
								        //            //    }
							 | 
						|||
| 
								 | 
							
								        //            //}
							 | 
						|||
| 
								 | 
							
								        //        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //        return result;
							 | 
						|||
| 
								 | 
							
								        //    });
							 | 
						|||
| 
								 | 
							
								        //}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 纪要
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="entity"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("FullUpdate")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> FullUpdate([FromBody] T_SC_MT_MEETING_MINUTES entity)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Guid LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
							 | 
						|||
| 
								 | 
							
								                var meeting = GetEntity<T_SC_MT_MEETING>(entity.MEETING_ID, new string[] { "Nav_UserRecorder", "Nav_ListPAll.Nav_User", "Nav_ListPReView" });
							 | 
						|||
| 
								 | 
							
								                if (meeting.USER_ID_RECORDER != LoginID)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    throw new Exception("您不是" + meeting.Nav_UserRecorder.NAME + "不能操作此会议纪要!");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (entity.STATUS != PFStandardStatus.Draft && entity.STATUS != PFStandardStatus.Sign)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    //会议纪要不是草稿或者 保存并发送
							 | 
						|||
| 
								 | 
							
								                    throw new Exception("纪要状态【" + entity.STATUS.GetDescription() + "】,操作失败!");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //如果有会议意见
							 | 
						|||
| 
								 | 
							
								                //如果是单选 同一组 取最后为true的 别的false
							 | 
						|||
| 
								 | 
							
								                var listContent = entity.Nav_ListContent;
							 | 
						|||
| 
								 | 
							
								                entity.Nav_ListContent = null;
							 | 
						|||
| 
								 | 
							
								                List<T_SC_MT_MEETING_MINUTES_CONTENT_DEAL> listContentDetail = new List<T_SC_MT_MEETING_MINUTES_CONTENT_DEAL>();
							 | 
						|||
| 
								 | 
							
								                if (listContent != null && listContent.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    int index = 0;
							 | 
						|||
| 
								 | 
							
								                    string Msg = string.Empty;
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in listContent)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        index++;
							 | 
						|||
| 
								 | 
							
								                        if (item.CONTENT_ID == Guid.Empty)
							 | 
						|||
| 
								 | 
							
								                            continue;
							 | 
						|||
| 
								 | 
							
								                        if (item.Nav_ListContentDeal == null || !item.Nav_ListContentDeal.Any())
							 | 
						|||
| 
								 | 
							
								                            continue;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        T_SC_MT_CONTENT content = GetEntity<T_SC_MT_CONTENT>(item.CONTENT_ID);
							 | 
						|||
| 
								 | 
							
								                        if (content.CHECKTYPE != CHECKTYPE.TheRadio)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            //多选 都不选 暂时也OK
							 | 
						|||
| 
								 | 
							
								                            listContentDetail.AddRange(item.Nav_ListContentDeal); //不需要数据处理
							 | 
						|||
| 
								 | 
							
								                            continue;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        var listRadioCheck = item.Nav_ListContentDeal.Where(e => e.ISCHECK);
							 | 
						|||
| 
								 | 
							
								                        if (listRadioCheck == null || listRadioCheck.Count() < 1)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            Msg += ((string.IsNullOrEmpty(Msg) ? "" : ",") + index.ToString());
							 | 
						|||
| 
								 | 
							
								                            continue;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (string.IsNullOrEmpty(Msg))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            listContentDetail.AddRange(item.Nav_ListContentDeal);
							 | 
						|||
| 
								 | 
							
								                            var listRadioCheckOrder = listRadioCheck.OrderByDescending(e => e.MODIFY_TIME).ToList();//时间倒序 第二个之后的都是false
							 | 
						|||
| 
								 | 
							
								                            for (int i = 1; i < listRadioCheckOrder.Count; i++)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                listRadioCheckOrder[i].ISCHECK = false;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (!string.IsNullOrEmpty(Msg))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        throw new Exception("请选择【" + Msg + "】项会议意见的结果!");
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //所有的人员信息 必须有在 参加 缺勤 请假 中
							 | 
						|||
| 
								 | 
							
								                var Join = entity.Nav_ListPJoin;
							 | 
						|||
| 
								 | 
							
								                if (Join == null || !Join.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    throw new Exception("参会人不能为空!");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                var listJoins = Join.ToList();
							 | 
						|||
| 
								 | 
							
								                foreach (var item in listJoins)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    item.Nav_User.ID = item.USER_ID;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var AskForLeave = entity.Nav_ListPAskForLeave;
							 | 
						|||
| 
								 | 
							
								                var Absence = entity.Nav_ListPAbsence;
							 | 
						|||
| 
								 | 
							
								                var Review = entity.Nav_ListPReview;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //entity.Nav_ListPJoin = null;
							 | 
						|||
| 
								 | 
							
								                //entity.Nav_ListPAskForLeave = null;
							 | 
						|||
| 
								 | 
							
								                //entity.Nav_ListPAbsence = null;
							 | 
						|||
| 
								 | 
							
								                //bool isThisInt = false;
							 | 
						|||
| 
								 | 
							
								                //bool isThisRepeat = false;
							 | 
						|||
| 
								 | 
							
								                List<T_FM_USER> listUserJoin = listJoins.Where(e => !e.IS_DELETED).Select(e => e.Nav_User).ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                List<T_FM_USER> listUserLevel = null;
							 | 
						|||
| 
								 | 
							
								                List<T_FM_USER> listUserAbsence = null;
							 | 
						|||
| 
								 | 
							
								                List<T_FM_USER> listUserReview = null;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                List<T_FM_USER> listUserLack = new List<T_FM_USER>();//少选人员
							 | 
						|||
| 
								 | 
							
								                List<T_FM_USER> listUserRepeat = new List<T_FM_USER>();//重复人员
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (AskForLeave != null && AskForLeave.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in AskForLeave)
							 | 
						|||
| 
								 | 
							
								                        item.Nav_User.ID = item.USER_ID;//前端配置有问题
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    listUserLevel = AskForLeave.Where(e => !e.IS_DELETED).Select(e => e.Nav_User).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (Absence != null && Absence.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in Absence)
							 | 
						|||
| 
								 | 
							
								                        item.Nav_User.ID = item.USER_ID;//前端配置有问题
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    listUserAbsence = Absence.Where(e => !e.IS_DELETED).Select(e => e.Nav_User).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (Review != null && Review.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    listUserReview = Review.Where(e => !e.IS_DELETED).Select(e => e.Nav_User).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                var ListMinutesDetail = entity.Nav_ListMinutesDetail;
							 | 
						|||
| 
								 | 
							
								                //entity.Nav_ListMinutesDetail = null;
							 | 
						|||
| 
								 | 
							
								                var files = entity.Nav_Files;
							 | 
						|||
| 
								 | 
							
								                //entity.Nav_Files = null;
							 | 
						|||
| 
								 | 
							
								                if (entity.STATUS == PFStandardStatus.Sign)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (string.IsNullOrEmpty(entity.MEETINGRECORD))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        throw new Exception("会议记录不能为空!");
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if ((entity.MEETINGTYPE == SCMEETINGTYPE.BasicSecurity || entity.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard) && (entity.Nav_ListMinutesDetail == null || !entity.Nav_ListMinutesDetail.Any()))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        throw new Exception("请填写" + entity.MEETINGTYPE.GetDescription() + "的会议决议!");
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //保存并发送
							 | 
						|||
| 
								 | 
							
								                    var PAllUser = meeting.Nav_ListPAll.Where(e => !e.IS_DELETED && e.PERSONTYPE != SCMEETINGPERSONTYPE.REVIEW && e.PERSONNATURE == PersonNature.JOIN).Select(e => e.Nav_User).ToList();//所有人员
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    List<T_FM_USER> listJoin = null;
							 | 
						|||
| 
								 | 
							
								                    List<T_FM_USER> listLevel = null;
							 | 
						|||
| 
								 | 
							
								                    List<T_FM_USER> listRepeat = null;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    List<T_FM_USER> listReview = null;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    int thisCount = 0;
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in PAllUser)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listJoin = listUserJoin.FindAll(e => e.ID == item.ID);
							 | 
						|||
| 
								 | 
							
								                        if (listJoin.Count > 1)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            throw new Exception("参会人员重复:" + item.NAME + "!");
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (listUserLevel != null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            listLevel = listUserLevel.FindAll(e => e.ID == item.ID);
							 | 
						|||
| 
								 | 
							
								                            if (listLevel.Count > 1)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                throw new Exception("请假人员重复:" + item.NAME + "!");
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (listUserAbsence != null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            listRepeat = listUserAbsence.FindAll(e => e.ID == item.ID);
							 | 
						|||
| 
								 | 
							
								                            if (listRepeat.Count > 1)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                throw new Exception("缺勤人员重复:" + item.NAME + "!");
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (listUserReview != null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            listReview = listUserReview.FindAll(e => e.ID == item.ID);
							 | 
						|||
| 
								 | 
							
								                            if (listReview.Count > 1)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                throw new Exception("评审人员重复:" + item.NAME + "!");
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        thisCount = (listJoin == null ? 0 : listJoin.Count) + (listLevel == null ? 0 : listLevel.Count) + (listRepeat == null ? 0 : listRepeat.Count) + (listReview == null ? 0 : listReview.Count);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        if (thisCount == 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            //没找到对应人员
							 | 
						|||
| 
								 | 
							
								                            listUserLack.Add(item);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else if (thisCount > 1)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            //重复
							 | 
						|||
| 
								 | 
							
								                            listUserRepeat.Add(item);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    string Msg = string.Empty;
							 | 
						|||
| 
								 | 
							
								                    if (listUserLack != null && listUserLack.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Msg = "以下人员参会情况丢失:" + String.Join(",", listUserLack.Select(e => e.NAME).ToList());
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (listUserRepeat != null && listUserRepeat.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Msg += (string.IsNullOrEmpty(Msg) ? "" : ";") + "以下人员重复:" + String.Join(",", listUserRepeat.Select(e => e.NAME).ToList()) + "!";
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (!string.IsNullOrEmpty(Msg))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        throw new Exception(Msg);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (ListMinutesDetail != null && ListMinutesDetail.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        int i = 0;
							 | 
						|||
| 
								 | 
							
								                        foreach (var item in ListMinutesDetail)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            i++;
							 | 
						|||
| 
								 | 
							
								                            if (string.IsNullOrEmpty(item.RESOLUTION))
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                throw new Exception("第【" + i + "】行,会议决议不能为空!");
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            if (item.ISNEEDDEAL)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (item.DEAL_DEPARTMENT_ID == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    throw new Exception("第【" + i + "】行,落实部门不能为空!");
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                if (item.DEAL_USER_ID == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    throw new Exception("第【" + i + "】行,落实责任不能为空!");
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                if (item.LIMITDATETIME == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    throw new Exception("第【" + i + "】行,落实期限不能为空!");
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else if (item.LIMITDATETIME.Value.Date <= DateTime.Now.Date)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    throw new Exception("第【" + i + "】行,落实期限不能小于当前时间!");
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                else
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    item.LIMITDATETIME = item.LIMITDATETIME.Value.Date.AddDays(1).AddSeconds(-1);
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (item.DEAL_DEPARTMENT_ID != null && item.DEAL_DEPARTMENT_ID != Guid.Empty)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    throw new Exception("第【" + i + "】行,无需填写落实部门!");
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                if (item.DEAL_USER_ID != null && item.DEAL_USER_ID != Guid.Empty)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    throw new Exception("第【" + i + "】行,无需填写落实责任人!");
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (Join != null && Join.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in Join)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        item.Nav_User = null;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (AskForLeave != null && AskForLeave.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in AskForLeave)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        item.Nav_User = null;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (Absence != null && Absence.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in Absence)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        item.Nav_User = null;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (Review != null && Review.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in Review)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        item.Nav_User = null;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                #region     参加人 删除 到缺席人     请假人、缺席人 删除 到参加人 没有传入的参加人、请假人、缺席人 删除
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                List<Guid> listIDs = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                if (Join != null && Join.Count > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    listIDs = Join.Select(e => e.ID).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                var listPJDel = GetEntities<T_SC_MT_MEETING_PJOIN>(e => e.PERSONTYPE == SCMEETINGPERSONTYPE.JOIN && e.MEETING_MINUTES_ID == entity.ID && !listIDs.Contains(e.ID), null, null);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                ////评审人
							 | 
						|||
| 
								 | 
							
								                //listIDs = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                //var listPVDel = GetEntities<T_SC_MT_MINUTES_PREVIEW>(e => e.MEETING_MINUTES_ID == entity.ID, null, null);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //请假人
							 | 
						|||
| 
								 | 
							
								                listIDs = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                if (AskForLeave != null && AskForLeave.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    listIDs = AskForLeave.Select(e => e.ID).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                var listPAskLDel = GetEntities<T_SC_MT_MEETING_PASKFORLEAVE>(e => e.MEETING_MINUTES_ID == entity.ID && !listIDs.Contains(e.ID), null, null);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //缺席人
							 | 
						|||
| 
								 | 
							
								                listIDs = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                if (Absence != null && Absence.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    listIDs = Absence.Select(e => e.ID).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                var listPAbsDel = GetEntities<T_SC_MT_MEETING_PABSENCE>(e => e.MEETING_MINUTES_ID == entity.ID && !listIDs.Contains(e.ID), null, null);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (entity.STATUS == PFStandardStatus.Draft)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (entity != null)
							 | 
						|||
| 
								 | 
							
								                            UpdateEntityNoCommit(entity);   //保存主表 NoCommit
							 | 
						|||
| 
								 | 
							
								                        if (listContentDetail != null && listContentDetail.Any())//纪要意见
							 | 
						|||
| 
								 | 
							
								                            BantchUpdateEntityNoCommit(listContentDetail);
							 | 
						|||
| 
								 | 
							
								                        if (Join != null && Join.Any())//参会人员
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(Join);
							 | 
						|||
| 
								 | 
							
								                        if (AskForLeave != null && AskForLeave.Any())//请假人员
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(AskForLeave);
							 | 
						|||
| 
								 | 
							
								                        if (Absence != null && Absence.Any())//缺席人员
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(Absence);
							 | 
						|||
| 
								 | 
							
								                        if (ListMinutesDetail != null && ListMinutesDetail.Any())//纪要评估 反馈
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(ListMinutesDetail);
							 | 
						|||
| 
								 | 
							
								                        if (files != null && files.Any())//附件
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(files);
							 | 
						|||
| 
								 | 
							
								                        if (listPJDel != null && listPJDel.Count() > 0) //参加人
							 | 
						|||
| 
								 | 
							
								                            BantchDeleteEntityNoCommit<T_SC_MT_MEETING_PJOIN>(listPJDel.Select(e => e.ID).ToList());
							 | 
						|||
| 
								 | 
							
								                        if (listPAskLDel != null && listPAskLDel.Count() > 0) //请假人
							 | 
						|||
| 
								 | 
							
								                            BantchDeleteEntityNoCommit<T_SC_MT_MEETING_PASKFORLEAVE>(listPAskLDel.Select(e => e.ID).ToList());
							 | 
						|||
| 
								 | 
							
								                        if (listPAbsDel != null && listPAbsDel.Count() > 0) //缺席人
							 | 
						|||
| 
								 | 
							
								                            BantchDeleteEntityNoCommit<T_SC_MT_MEETING_PABSENCE>(listPAbsDel.Select(e => e.ID).ToList());
							 | 
						|||
| 
								 | 
							
								                    });
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else if (entity.STATUS == PFStandardStatus.Sign)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    //获取待办信息
							 | 
						|||
| 
								 | 
							
								                    var task = FMNotificActionTaskService.GetEntityTask(entity.TaskID, "SC030_SHOWPRINT");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //保存并发送 
							 | 
						|||
| 
								 | 
							
								                    //没有需要落实整改的信息
							 | 
						|||
| 
								 | 
							
								                    List<Guid> ListNoticeAll = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                    List<string> ListNoticeAllNAME = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in listUserJoin)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        ListNoticeAll.Add(item.ID);
							 | 
						|||
| 
								 | 
							
								                        ListNoticeAllNAME.Add(item.NAME);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (listUserReview != null && listUserReview.Count > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        foreach (var item in listUserReview)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            ListNoticeAll.Add(item.ID);
							 | 
						|||
| 
								 | 
							
								                            ListNoticeAllNAME.Add(item.NAME);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    List<T_FM_NOTIFICATION_TASK> listTaskRread = NotificationTaskService.InsertUserNoticeTaskModels("会议纪要签到", entity.ID, entity.ORG_ID, ListNoticeAll, ListNoticeAllNAME, DateTime.Now, (int)FMNoticeTypeEnum.消息, "SC030_SHOWPRINT", FMTASKTYPE.MT_MINUTES_Sign);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var listModelJoin = Join.Where(e => e.USER_ID == LoginID);
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in Join)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.USER_ID == LoginID)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.ISRECORDRED = true;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    List<T_SC_MT_MINUTES_PREVIEW> listPReview = null;
							 | 
						|||
| 
								 | 
							
								                    if (Review != null && Review.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        foreach (var item in Review)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item.USER_ID == LoginID)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if (listPReview == null)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    listPReview = new List<T_SC_MT_MINUTES_PREVIEW>();
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                                item.ISRECORDRED = true;
							 | 
						|||
| 
								 | 
							
								                                listPReview.Add(item);
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //当前人 默认 知晓
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in listTaskRread)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.USER_ID == LoginID)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.TASK_DT = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                            item.NOTICE_STATUS = 1;
							 | 
						|||
| 
								 | 
							
								                            break;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (listContentDetail != null && listContentDetail.Any() && DataHelper.GetRequestType(Request.Headers) == 2)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        foreach (var item in listContentDetail)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            item.Nav_ContentDeal = null;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (entity != null)
							 | 
						|||
| 
								 | 
							
								                            UpdateEntityNoCommit(entity);   //保存主表 NoCommit
							 | 
						|||
| 
								 | 
							
								                        if (listContentDetail != null && listContentDetail.Any())//纪要意见
							 | 
						|||
| 
								 | 
							
								                            BantchUpdateEntityNoCommit(listContentDetail);
							 | 
						|||
| 
								 | 
							
								                        if (Join != null && Join.Any())//参会人员
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(Join);
							 | 
						|||
| 
								 | 
							
								                        if (listPReview != null && listPReview.Any())//登陆者如果是评审人 默认阅读
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(listPReview);
							 | 
						|||
| 
								 | 
							
								                        if (AskForLeave != null && AskForLeave.Any())//请假人员
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(AskForLeave);
							 | 
						|||
| 
								 | 
							
								                        if (Absence != null && Absence.Any())//缺席人员
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(Absence);
							 | 
						|||
| 
								 | 
							
								                        if (ListMinutesDetail != null && ListMinutesDetail.Any())//纪要评估 反馈
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(ListMinutesDetail);
							 | 
						|||
| 
								 | 
							
								                        if (files != null && files.Any())//附件
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(files);
							 | 
						|||
| 
								 | 
							
								                        if (listTaskRread != null && listTaskRread.Any())//参与人 阅
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(listTaskRread);
							 | 
						|||
| 
								 | 
							
								                        if (task != null)//待办
							 | 
						|||
| 
								 | 
							
								                            UpdateEntity(task);
							 | 
						|||
| 
								 | 
							
								                        if (listPJDel != null && listPJDel.Count() > 0) //参加人
							 | 
						|||
| 
								 | 
							
								                            BantchDeleteEntityNoCommit<T_SC_MT_MEETING_PJOIN>(listPJDel.Select(e => e.ID).ToList());
							 | 
						|||
| 
								 | 
							
								                        if (listPAskLDel != null && listPAskLDel.Count() > 0) //请假人
							 | 
						|||
| 
								 | 
							
								                            BantchDeleteEntityNoCommit<T_SC_MT_MEETING_PASKFORLEAVE>(listPAskLDel.Select(e => e.ID).ToList());
							 | 
						|||
| 
								 | 
							
								                        if (listPAbsDel != null && listPAbsDel.Count() > 0) //缺席人
							 | 
						|||
| 
								 | 
							
								                            BantchDeleteEntityNoCommit<T_SC_MT_MEETING_PABSENCE>(listPAbsDel.Select(e => e.ID).ToList());
							 | 
						|||
| 
								 | 
							
								                    });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    ////如果通知人 包含 登陆者
							 | 
						|||
| 
								 | 
							
								                    //if (ListNoticeAll.Contains(LoginID))
							 | 
						|||
| 
								 | 
							
								                    //{
							 | 
						|||
| 
								 | 
							
								                    //    KeywordFilter filterSign = new KeywordFilter();
							 | 
						|||
| 
								 | 
							
								                    //    filterSign.Parameter1 = listTaskRread.Find(e => e.USER_ID == LoginID).ID.ToString();
							 | 
						|||
| 
								 | 
							
								                    //    filterSign.Keyword = entity.ID.ToString();
							 | 
						|||
| 
								 | 
							
								                    //    MeetingMinutesSign(filterSign);
							 | 
						|||
| 
								 | 
							
								                    //}
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 整改责任人 纪要落实
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="entity"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("UpdateDeal")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> UpdateDeal([FromBody] T_SC_MT_MEETING_MINUTES entity)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Guid LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
							 | 
						|||
| 
								 | 
							
								                //责任人意见 落实情况反馈
							 | 
						|||
| 
								 | 
							
								                if (entity.Nav_ListMinutesDetail == null || !entity.Nav_ListMinutesDetail.Any())
							 | 
						|||
| 
								 | 
							
								                    throw new Exception("未获取到纪要落实信息,操作失败!");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var ListMinutesDetail = entity.Nav_ListMinutesDetail.ToList();
							 | 
						|||
| 
								 | 
							
								                MINUTES_DETAIL_STATUS dealType = ListMinutesDetail[0].STATUS;
							 | 
						|||
| 
								 | 
							
								                foreach (var item in ListMinutesDetail)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    item.STATUS = dealType;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                int i = 1;
							 | 
						|||
| 
								 | 
							
								                foreach (var item in ListMinutesDetail)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (string.IsNullOrEmpty(item.OPINION))
							 | 
						|||
| 
								 | 
							
								                        throw new Exception("第【" + i + "】行责任人意见不能未空!");
							 | 
						|||
| 
								 | 
							
								                    else if (item.OPINION.Length > 500)
							 | 
						|||
| 
								 | 
							
								                        throw new Exception("第【" + i + "】行责任人意见不能超过500个字符!");
							 | 
						|||
| 
								 | 
							
								                    if (string.IsNullOrEmpty(item.DEALBACK))
							 | 
						|||
| 
								 | 
							
								                        throw new Exception("第【" + i + "】行落实情况反馈不能未空!");
							 | 
						|||
| 
								 | 
							
								                    else if (item.DEALBACK.Length > 500)
							 | 
						|||
| 
								 | 
							
								                        throw new Exception("第【" + i + "】行落实情况反馈不能超过500个字符!");
							 | 
						|||
| 
								 | 
							
								                    i++;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //如果 所有人都 填写了 发给 主持人
							 | 
						|||
| 
								 | 
							
								                List<T_SC_MT_MEETING_MINUTES_DETAIL_FILE> files = null;
							 | 
						|||
| 
								 | 
							
								                foreach (var item in ListMinutesDetail)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (item.Nav_Files != null)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (files == null)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            files = new List<T_SC_MT_MEETING_MINUTES_DETAIL_FILE>();
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        files.AddRange(item.Nav_Files.ToList());
							 | 
						|||
| 
								 | 
							
								                        item.Nav_Files = null;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (dealType == MINUTES_DETAIL_STATUS.Deal)//责任人 保存
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (ListMinutesDetail != null && ListMinutesDetail.Any())//纪要落实
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(ListMinutesDetail);
							 | 
						|||
| 
								 | 
							
								                        if (files != null && files.Any())
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(files);
							 | 
						|||
| 
								 | 
							
								                    });
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else if (dealType == MINUTES_DETAIL_STATUS.Host)//责任人 保存并发送
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    //获取待办信息
							 | 
						|||
| 
								 | 
							
								                    var task = FMNotificActionTaskService.GetEntityTask(entity.TaskID, "SC030_SHOWPRINTPER");
							 | 
						|||
| 
								 | 
							
								                    List<Guid> listDetailID = ListMinutesDetail.Select(e => e.ID).ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var listDetail = GetEntity<T_SC_MT_MEETING_MINUTES>(e => e.ID == entity.ID, new string[] { "Nav_ListMinutesDetail" }).Nav_ListMinutesDetail.Where(e => e.ISNEEDDEAL && !listDetailID.Contains(e.ID) && (e.STATUS == MINUTES_DETAIL_STATUS.Temp_Record || e.STATUS == MINUTES_DETAIL_STATUS.Deal)).Select(e => e.Nav_MeetingMinutes.Nav_ListMinutesDetail);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (listDetail == null || !listDetail.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var meeting = GetEntity<T_SC_MT_MEETING>(entity.MEETING_ID, new string[] { "Nav_UserHost" });
							 | 
						|||
| 
								 | 
							
								                        //落实整改人 都填写了整改情况
							 | 
						|||
| 
								 | 
							
								                        //给主持人 发送待办填写 落实效果
							 | 
						|||
| 
								 | 
							
								                        T_FM_NOTIFICATION_TASK taskHost = NotificationTaskService.InsertUserNoticeTaskModel("会议决议落实效果", entity.ID, entity.ORG_ID, meeting.USER_ID_HOST.Value, meeting.Nav_UserHost.NAME, DateTime.Now, (int)FMNoticeTypeEnum.消息, "SC030_2", FMTASKTYPE.MT_MINUTES_DETAIL_CHECK);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (task != null)//待办
							 | 
						|||
| 
								 | 
							
								                                UpdateEntityNoCommit(task);
							 | 
						|||
| 
								 | 
							
								                            if (ListMinutesDetail != null && ListMinutesDetail.Any())//纪要评估 反馈
							 | 
						|||
| 
								 | 
							
								                                BantchSaveEntityNoCommit(ListMinutesDetail);
							 | 
						|||
| 
								 | 
							
								                            AddEntityNoCommit(taskHost);//给主持人发送待办
							 | 
						|||
| 
								 | 
							
								                            if (files != null && files.Any())
							 | 
						|||
| 
								 | 
							
								                                BantchSaveEntityNoCommit(files);
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        //还有 未落实的会议决议 保存信息
							 | 
						|||
| 
								 | 
							
								                        this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (task != null)//待办
							 | 
						|||
| 
								 | 
							
								                                UpdateEntityNoCommit(task);
							 | 
						|||
| 
								 | 
							
								                            if (ListMinutesDetail != null && ListMinutesDetail.Any())//纪要评估 反馈
							 | 
						|||
| 
								 | 
							
								                                BantchSaveEntityNoCommit(ListMinutesDetail);
							 | 
						|||
| 
								 | 
							
								                            if (files != null && files.Any())
							 | 
						|||
| 
								 | 
							
								                                BantchSaveEntityNoCommit(files);
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 主持人  填写落实效果  走审批流
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="entity"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("UpdateDealEffect")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> UpdateDealEffect([FromBody] T_SC_MT_MEETING_MINUTES entity)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            //var sysFilter = new SystemCodeFilter();
							 | 
						|||
| 
								 | 
							
								            //sysFilter.CodeType = (int)PFCodeRuleType.会议通知;
							 | 
						|||
| 
								 | 
							
								            //sysFilter.Count = 2;
							 | 
						|||
| 
								 | 
							
								            //sysFilter.OrgId = entity.ORG_ID;
							 | 
						|||
| 
								 | 
							
								            //var serialCode = CodeRuleService.NewGenSerial(sysFilter);
							 | 
						|||
| 
								 | 
							
								            //List<string> listCode = serialCode.Split(",").ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                //责任人意见 落实情况反馈
							 | 
						|||
| 
								 | 
							
								                if (entity.Nav_ListMinutesDetail == null || !entity.Nav_ListMinutesDetail.Any())
							 | 
						|||
| 
								 | 
							
								                    throw new Exception("未获取到纪要落实信息,操作失败!");
							 | 
						|||
| 
								 | 
							
								                var ListMinutesDetail = entity.Nav_ListMinutesDetail;
							 | 
						|||
| 
								 | 
							
								                if (entity.STATUS == PFStandardStatus.Sign)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in ListMinutesDetail)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        item.STATUS = MINUTES_DETAIL_STATUS.Host;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    //保存
							 | 
						|||
| 
								 | 
							
								                    this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        UpdateEntityNoCommit(entity);
							 | 
						|||
| 
								 | 
							
								                        if (ListMinutesDetail != null && ListMinutesDetail.Any())//落实效果
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(ListMinutesDetail);
							 | 
						|||
| 
								 | 
							
								                    });
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else if (entity.STATUS == PFStandardStatus.Approving)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    //保存并发送
							 | 
						|||
| 
								 | 
							
								                    int i = 0;
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in ListMinutesDetail)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        i++;
							 | 
						|||
| 
								 | 
							
								                        item.STATUS = MINUTES_DETAIL_STATUS.End;
							 | 
						|||
| 
								 | 
							
								                        if (item.DEALEFFECT == 0)
							 | 
						|||
| 
								 | 
							
								                            throw new Exception("请选择第【" + i + "】行的落实效果!");
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    entity.APPROVE_ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								                    var meeting = GetEntity<T_SC_MT_MEETING>(entity.MEETING_ID);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    ////公司级 3   部门级 0   车间级 1    班组级 2
							 | 
						|||
| 
								 | 
							
								                    ////只有明确是车间 走车间级 否则走部门级
							 | 
						|||
| 
								 | 
							
								                    string param = meeting.LEVELVALUE.Value.ToString();
							 | 
						|||
| 
								 | 
							
								                    //安全生产委员会 审批到总经理  基层安全会 到对应车间/ 部门 其他到部门级
							 | 
						|||
| 
								 | 
							
								                    //会议通知就处理了 下句代码应该可以不用
							 | 
						|||
| 
								 | 
							
								                    if (meeting.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard)
							 | 
						|||
| 
								 | 
							
								                        param = "3";
							 | 
						|||
| 
								 | 
							
								                    List<string> listCode = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    listCode.Add(meeting.CODE + "1");
							 | 
						|||
| 
								 | 
							
								                    listCode.Add(meeting.CODE + "2");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    MFlowPermitService.InsertApprove(listCode[0], "SC030", param, entity.ID, "SC030_SHOWPRINT", entity.TaskID, true, () =>
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (entity != null) //保存会议纪要主表  进入审批流
							 | 
						|||
| 
								 | 
							
								                            UpdateEntityNoCommit(entity);
							 | 
						|||
| 
								 | 
							
								                        if (ListMinutesDetail != null && ListMinutesDetail.Any())//落实效果
							 | 
						|||
| 
								 | 
							
								                            BantchSaveEntityNoCommit(ListMinutesDetail);
							 | 
						|||
| 
								 | 
							
								                    }, entity.APPROVE_ID, meeting.USER_ID_ORIGINATOR, null, null, listCode[1], "SC030_SHOWPRINT", null, null, FMTASKTYPE.MT_MINUTES_DEAL_Audit);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 会议纪要 参会人员 签到
							 | 
						|||
| 
								 | 
							
								        /// 最后一个人审批 添加审批流
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filter"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("MeetingMinutesSign")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> MeetingMinutesSign([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            //var sysFilter = new SystemCodeFilter();
							 | 
						|||
| 
								 | 
							
								            //sysFilter.CodeType = (int)PFCodeRuleType.会议通知;
							 | 
						|||
| 
								 | 
							
								            //sysFilter.Count = 2;
							 | 
						|||
| 
								 | 
							
								            //sysFilter.OrgId = filter.OrgId;
							 | 
						|||
| 
								 | 
							
								            //var serialCode = CodeRuleService.NewGenSerial(sysFilter);
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var TaskID = new Guid(filter.Parameter1);
							 | 
						|||
| 
								 | 
							
								                if (TaskID == Guid.Empty)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    throw new Exception("获取数据【待办ID】传参失败!");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                var task = FMNotificActionTaskService.GetEntityTask(TaskID);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (task.SOURCE_DATA_ID != new Guid(filter.Keyword))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    throw new Exception("传参有误!");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var entity = GetEntity<T_SC_MT_MEETING_MINUTES>(task.SOURCE_DATA_ID.Value);//,  "Nav_ListPJoin", "Nav_ListPReview" 
							 | 
						|||
| 
								 | 
							
								                int NOTICE_STATUS = (int)FMNoticeStatusEnum.未处理;
							 | 
						|||
| 
								 | 
							
								                var listNotDeal = GetEntities<T_FM_NOTIFICATION_TASK>(e => e.SOURCE_DATA_ID == task.SOURCE_DATA_ID && e.NOTICE_STATUS == NOTICE_STATUS && e.ID != TaskID && e.SOURCE_FORMCODE == task.SOURCE_FORMCODE, null, null).Count();
							 | 
						|||
| 
								 | 
							
								                var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var listModelJoin = GetEntities<T_SC_MT_MEETING_PJOIN>(e => e.MEETING_MINUTES_ID == entity.ID && e.USER_ID == LoginID, null, null);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //var listModelJoin = entity.Nav_ListPJoin.Where(e => e.USER_ID == LoginID);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                T_SC_MT_MINUTES_PREVIEW modelReview = null;
							 | 
						|||
| 
								 | 
							
								                if (listModelJoin == null || listModelJoin.Count() < 1)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    throw new Exception("您未参加该会议,操作失败!");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                foreach (var item in listModelJoin)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    item.ISRECORDRED = true;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                modelReview = GetEntity<T_SC_MT_MINUTES_PREVIEW>(e => e.MEETING_MINUTES_ID == entity.ID && e.USER_ID == LoginID && !e.IS_DELETED);
							 | 
						|||
| 
								 | 
							
								                if (modelReview != null && modelReview.ID != Guid.Empty)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    modelReview.ISRECORDRED = true;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                //if (entity.Nav_ListPReview != null && entity.Nav_ListPReview.Any())
							 | 
						|||
| 
								 | 
							
								                //{
							 | 
						|||
| 
								 | 
							
								                //    modelReview = entity.Nav_ListPReview.FirstOrDefault(e => e.USER_ID == LoginID && !e.IS_DELETED);
							 | 
						|||
| 
								 | 
							
								                //    if (modelReview != null)
							 | 
						|||
| 
								 | 
							
								                //    {
							 | 
						|||
| 
								 | 
							
								                //        modelReview.ISRECORDRED = true;
							 | 
						|||
| 
								 | 
							
								                //    }
							 | 
						|||
| 
								 | 
							
								                //}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                //if (listNotDeal == null || !listNotDeal.Any())
							 | 
						|||
| 
								 | 
							
								                if (listNotDeal < 1)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    entity.Nav_Meeting = GetEntity<T_SC_MT_MEETING>(entity.MEETING_ID);
							 | 
						|||
| 
								 | 
							
								                    entity.Nav_ListMinutesDetail = GetEntities<T_SC_MT_MEETING_MINUTES_DETAIL>(e => e.MEETING_MINUTES_ID == entity.ID, null, "Nav_UserDeal").ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    bool isApprove = true;//是否直接审批
							 | 
						|||
| 
								 | 
							
								                    if (entity.Nav_ListMinutesDetail != null && entity.Nav_ListMinutesDetail.Any())
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var listDeal = entity.Nav_ListMinutesDetail.Where(e => e.ISNEEDDEAL);
							 | 
						|||
| 
								 | 
							
								                        if (listDeal != null && listDeal.Any())
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            isApprove = false;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    if (isApprove)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        List<string> listCode = new List<string>() { "HY" + DateTime.Now.ToString("yyyyMMddHHmmss") + "1", "HY" + DateTime.Now.ToString("yyyyMMddHHmmss") + "2" };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        //最后一个阅读 
							 | 
						|||
| 
								 | 
							
								                        entity.STATUS = PFStandardStatus.Approving;
							 | 
						|||
| 
								 | 
							
								                        entity.APPROVE_ID = Guid.NewGuid();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        ////公司级 3   部门级 0   车间级 1    班组级 2
							 | 
						|||
| 
								 | 
							
								                        ////只有明确是车间 走车间级 否则走部门级
							 | 
						|||
| 
								 | 
							
								                        string param = entity.Nav_Meeting.LEVELVALUE.Value.ToString();
							 | 
						|||
| 
								 | 
							
								                        //安全生产委员会 审批到总经理  基层安全会 到对应车间/ 部门 其他到部门级
							 | 
						|||
| 
								 | 
							
								                        //会议通知就处理了 下句代码应该可以不用
							 | 
						|||
| 
								 | 
							
								                        if (entity.Nav_Meeting.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard)
							 | 
						|||
| 
								 | 
							
								                            param = "3";
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        MFlowPermitService.InsertApprove(listCode[0], "SC030", param, entity.ID, "SC030_SHOWPRINT", entity.TaskID, true, () =>
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (entity != null) //保存会议纪要主表  进入审批流
							 | 
						|||
| 
								 | 
							
								                                UpdateEntityNoCommit(entity);
							 | 
						|||
| 
								 | 
							
								                            if (task != null)//待办
							 | 
						|||
| 
								 | 
							
								                                UpdateEntityNoCommit(task);
							 | 
						|||
| 
								 | 
							
								                            if (listModelJoin != null && listModelJoin.Count() > 0)//参会人 是否阅读会议纪要
							 | 
						|||
| 
								 | 
							
								                                BantchUpdateEntityNoCommit(listModelJoin);
							 | 
						|||
| 
								 | 
							
								                            //UpdateEntityNoCommit(modelJoin);
							 | 
						|||
| 
								 | 
							
								                        }, entity.APPROVE_ID, entity.Nav_Meeting.USER_ID_ORIGINATOR, null, null, listCode[1], null, null, null, FMTASKTYPE.MT_MINUTES_Audit);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        List<T_FM_NOTIFICATION_TASK> listTaskRread = new List<T_FM_NOTIFICATION_TASK>();//每条有时间期限
							 | 
						|||
| 
								 | 
							
								                        // 给落实责任人 发送落实待办 
							 | 
						|||
| 
								 | 
							
								                        List<Guid> ListNoticeAll = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                        //List<string> ListNoticeAllNAME = new List<string>();
							 | 
						|||
| 
								 | 
							
								                        foreach (var item in entity.Nav_ListMinutesDetail)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (!item.ISNEEDDEAL)
							 | 
						|||
| 
								 | 
							
								                                continue;
							 | 
						|||
| 
								 | 
							
								                            if (ListNoticeAll.Contains(item.Nav_UserDeal.ID))
							 | 
						|||
| 
								 | 
							
								                                continue;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                            ListNoticeAll.Add(item.Nav_UserDeal.ID);
							 | 
						|||
| 
								 | 
							
								                            //ListNoticeAllNAME.Add(item.Nav_UserDeal.NAME);
							 | 
						|||
| 
								 | 
							
								                            listTaskRread.Add(NotificationTaskService.InsertUserNoticeTaskModel("会议纪要落实", entity.ID, entity.ORG_ID, item.Nav_UserDeal.ID, item.Nav_UserDeal.NAME, DateTime.Now, item.LIMITDATETIME.Value, (int)FMNoticeTypeEnum.消息, "SC030_1"));
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        //List<T_FM_NOTIFICATION_TASK> listTaskRread = NotificationTaskService.InsertUserNoticeTaskModels("会议纪要落实", entity.ID, entity.ORG_ID, ListNoticeAll, ListNoticeAllNAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SC030_1");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (task != null)//待办
							 | 
						|||
| 
								 | 
							
								                                UpdateEntityNoCommit(task);
							 | 
						|||
| 
								 | 
							
								                            if (listModelJoin != null && listModelJoin.Count() > 0)//参会人 是否阅读会议纪要
							 | 
						|||
| 
								 | 
							
								                                BantchUpdateEntityNoCommit(listModelJoin);
							 | 
						|||
| 
								 | 
							
								                            //UpdateEntityNoCommit(modelJoin);
							 | 
						|||
| 
								 | 
							
								                            if (listTaskRread != null && listTaskRread.Any())//落实责任人 填写信息
							 | 
						|||
| 
								 | 
							
								                                BantchSaveEntityNoCommit(listTaskRread);
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (task != null)//待办
							 | 
						|||
| 
								 | 
							
								                            UpdateEntityNoCommit(task);
							 | 
						|||
| 
								 | 
							
								                        //if (modelJoin != null)//参会人 是否阅读会议纪要
							 | 
						|||
| 
								 | 
							
								                        //    UpdateEntityNoCommit(modelJoin);
							 | 
						|||
| 
								 | 
							
								                        if (listModelJoin != null && listModelJoin.Count() > 0)//参会人 是否阅读会议纪要
							 | 
						|||
| 
								 | 
							
								                            BantchUpdateEntityNoCommit(listModelJoin);
							 | 
						|||
| 
								 | 
							
								                        //UpdateEntityNoCommit(modelJoin);
							 | 
						|||
| 
								 | 
							
								                        if (modelReview != null)//参会人 是否阅读会议纪要
							 | 
						|||
| 
								 | 
							
								                            UpdateEntityNoCommit(modelReview);
							 | 
						|||
| 
								 | 
							
								                    });
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 获取 纪要中只包含登陆者的明细信息
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filter">过滤实体</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("GetByDetailDeal")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<T_SC_MT_MEETING_MINUTES> GetByDetailDeal([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<T_SC_MT_MEETING_MINUTES>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Guid LoginId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
							 | 
						|||
| 
								 | 
							
								                var result = GetEntity<T_SC_MT_MEETING_MINUTES>(null, filter);
							 | 
						|||
| 
								 | 
							
								                if (result.Nav_ListPJoin != null && result.Nav_ListPJoin.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListPJoin = result.Nav_ListPJoin.Where(e => e.PERSONTYPE == SCMEETINGPERSONTYPE.JOIN).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (result.Nav_ListMinutesDetail != null && result.Nav_ListMinutesDetail.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var detail = result.Nav_ListMinutesDetail.Where(e => e.ISNEEDDEAL && e.DEAL_USER_ID.HasValue && e.DEAL_USER_ID == LoginId);
							 | 
						|||
| 
								 | 
							
								                    if (detail != null && detail.Any())
							 | 
						|||
| 
								 | 
							
								                        result.Nav_ListMinutesDetail = detail.ToList();
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                        result.Nav_ListMinutesDetail = null;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return result;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 获取纪要 主持人 落实效果 填写
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filter">过滤实体</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("GetDetailEffect")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<T_SC_MT_MEETING_MINUTES> GetDetailEffect([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<T_SC_MT_MEETING_MINUTES>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Guid LoginId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
							 | 
						|||
| 
								 | 
							
								                var result = GetEntity<T_SC_MT_MEETING_MINUTES>(null, filter);
							 | 
						|||
| 
								 | 
							
								                if (result.Nav_ListPJoin != null && result.Nav_ListPJoin.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    result.Nav_ListPJoin = result.Nav_ListPJoin.Where(e => e.PERSONTYPE == SCMEETINGPERSONTYPE.JOIN).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (result.Nav_ListMinutesDetail != null && result.Nav_ListMinutesDetail.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var check = result.Nav_ListMinutesDetail.Where(e => e.ISNEEDDEAL && e.STATUS < MINUTES_DETAIL_STATUS.Host);
							 | 
						|||
| 
								 | 
							
								                    if (check != null && check.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        throw new Exception("会议决议中所有整改责任人都提交了整改信息后,才能填写落实结果!");
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    else
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        result.Nav_ListMinutesDetail = result.Nav_ListMinutesDetail.Where(e => e.ISNEEDDEAL).ToList();
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return result;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 会议纪要审批回调
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="id"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpGet, Route("MeetingMinutesBack")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> MeetingMinutesBack(string id)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                return ApproveCallBackService.CallBack("SC/SCMtMeetingMinutes/MeetingMinutesBack", id);
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 排序分页查询数据
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="pageFilter">分页过滤实体</param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("OrderPaged")]
							 | 
						|||
| 
								 | 
							
								        public PagedActionResult<T_SC_MT_MEETING_MINUTES> OrderPaged([FromBody] KeywordPageFilter pageFilter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            PagedActionResult<T_SC_MT_MEETING_MINUTES> result = null;
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(pageFilter.MenuParameter))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                if (pageFilter.MenuParameter == "40")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    result = WitOrderPaged(e => e.MEETINGTYPE == SCMEETINGTYPE.SafetyBoard || e.MEETINGTYPE == SCMEETINGTYPE.BasicSecurity, pageFilter);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    result = WitOrderPaged(e => e.MEETINGTYPE == SCMEETINGTYPE.Ordinary || e.MEETINGTYPE == SCMEETINGTYPE.FileAudit || e.MEETINGTYPE == SCMEETINGTYPE.FileReView, pageFilter);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            else
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                result = WitOrderPaged(null, pageFilter);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            if (result.Data != null && result.Data.Any() && DataHelper.GetRequestType(Request.Headers) == 2)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                foreach (var item in result.Data)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    item.STATUSSHOW = item.STATUS.GetDescription();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            return result;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |