259 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			259 lines
		
	
	
		
			12 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.CM;
							 | 
						|||
| 
								 | 
							
								using APT.MS.Domain.Enums;
							 | 
						|||
| 
								 | 
							
								using APT.Utility;
							 | 
						|||
| 
								 | 
							
								using Microsoft.AspNetCore.Mvc;
							 | 
						|||
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Linq.Expressions;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace APT.SC.WebApi.Controllers.Api.CM
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    [Route("api/CM/CMEquipmentDemandSurveyMaster")]
							 | 
						|||
| 
								 | 
							
								    public class CMEquipmentDemandSurveyMasterController : AuthorizeApiController<T_CM_EQUIPMENT_DEMAND_SURVEY_MASTER>
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        IFMFlowPermitService MFlowPermitService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IPFApproveCallBackService ApproveCallBackService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IFMNotificationTaskService NotificationTaskService { get; set; }
							 | 
						|||
| 
								 | 
							
								        IFMUserService UserService { get; set; }
							 | 
						|||
| 
								 | 
							
								        public CMEquipmentDemandSurveyMasterController(IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService,  IFMNotificationTaskService notificationTaskService, IFMUserService userService)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            MFlowPermitService = mFlowPermitService;
							 | 
						|||
| 
								 | 
							
								            ApproveCallBackService = approveCallBackService;
							 | 
						|||
| 
								 | 
							
								            NotificationTaskService = notificationTaskService;
							 | 
						|||
| 
								 | 
							
								            UserService = userService;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filter"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("GetOrder")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<T_CM_EQUIPMENT_DEMAND_SURVEY_MASTER> GetOrder([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var SurveyMaster = GetEntity<T_CM_EQUIPMENT_DEMAND_SURVEY_MASTER>(null, filter, null);
							 | 
						|||
| 
								 | 
							
								                if (SurveyMaster.Nav_ListDetail != null && SurveyMaster.Nav_ListDetail.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    SurveyMaster.Nav_ListDetail = SurveyMaster.Nav_ListDetail.OrderBy(e => e.Nav_EQDSurvey.DEPARTMENT_ID).ThenBy(e => e.TYPE_ID).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                return SurveyMaster;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 体检周期表 修改
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="entity"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("FullUpdate")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> FullUpdate([FromBody] T_CM_EQUIPMENT_DEMAND_SURVEY_MASTER entity)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var LoginID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
							 | 
						|||
| 
								 | 
							
								                if (entity.USER_ID.HasValue && entity.USER_ID.Value != LoginID)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    throw new Exception("您没有权限操作此表单!");
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                var ListDetail = entity.Nav_ListDetail;
							 | 
						|||
| 
								 | 
							
								                entity.Nav_ListDetail = null;
							 | 
						|||
| 
								 | 
							
								                var Files = entity.Nav_Files;
							 | 
						|||
| 
								 | 
							
								                entity.Nav_Files = null;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                T_FM_NOTIFICATION_TASK taskEnd = null;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                List<T_FM_NOTIFICATION_TASK> listTaskRed = null;//待办 阅
							 | 
						|||
| 
								 | 
							
								                //List<T_FM_NOTIFICATION_TASK> listTaskDay = null;//今日提醒  跟踪设备采买过程,购买后更新“应急物资库"
							 | 
						|||
| 
								 | 
							
								                List<T_CM_EQUIPMENT_DEMAND_SURVEY> listSurvey = null;
							 | 
						|||
| 
								 | 
							
								                List<T_FM_NOTIFICATION_TASK> listTaskLib = null;//物资管理员 待办
							 | 
						|||
| 
								 | 
							
								                List<T_FM_NOTIFICATION_TASK> listTaskLibPer = null;//物资管理员 待办
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (entity.STATUS == PFStandardStatus.Sign)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (entity.TaskID != Guid.Empty)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        taskEnd = NotificationTaskService.GetEntityTask(entity.TaskID, "CM032_SHOWPRINT");
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    int RowIndex = 1;
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in ListDetail)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (item.NEED_COUNT == 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            throw new Exception("需求数量不能为空【行:" + RowIndex + "】!");
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        RowIndex++;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //安环部负责人待办事项收到应急装备需求评估表,对需求数量进行编辑,编辑完成后点击通知,触发一个待办事项和一个今日提醒给需求部门安全员
							 | 
						|||
| 
								 | 
							
								                    //待办事项:需求部门安全员待办事项收到应急装备需求评估表打印界面,点击已阅
							 | 
						|||
| 
								 | 
							
								                    //今日提醒:需求部门安全员收到今日提醒,消息类型:其他,信息内容:跟踪设备采买过程,购买后更新“应急物资库"的信息
							 | 
						|||
| 
								 | 
							
								                    var listSurveyID = ListDetail.Select(e => e.DEMAND_SURVEY_ID).Distinct();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    listSurvey = GetEntities<T_CM_EQUIPMENT_DEMAND_SURVEY>(e => listSurveyID.Contains(e.ID), null, "Nav_User").ToList();
							 | 
						|||
| 
								 | 
							
								                    List<string> Title = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    //List<string> TitleRed = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    List<string> userName = new List<string>();
							 | 
						|||
| 
								 | 
							
								                    List<Guid> UserId = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                    List<Guid> DataId = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in listSurvey)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        Title.Add("应急装备需求确认");
							 | 
						|||
| 
								 | 
							
								                        //TitleRed.Add("跟踪应急装备采买过程,购买后更新“应急物资库”的信息");
							 | 
						|||
| 
								 | 
							
								                        userName.Add(item.Nav_User.NAME);
							 | 
						|||
| 
								 | 
							
								                        UserId.Add(item.USER_ID.Value);
							 | 
						|||
| 
								 | 
							
								                        DataId.Add(item.ID);
							 | 
						|||
| 
								 | 
							
								                        item.STATUS = PFStandardStatus.Archived;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    listTaskRed = NotificationTaskService.InsertUserNoticeTaskModels(Title, DataId, entity.ORG_ID, UserId, userName, DateTime.Now, DateTime.Now.AddDays(1), 1, "CM030_SHOWPRINT");
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #region    应急物资对应管理人 收到管理物品对应的确认
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var listThingId = ListDetail.Select(e => e.LIBRARY_ID).Distinct();
							 | 
						|||
| 
								 | 
							
								                    var listThings = GetEntities<T_CM_MATERIAL_LIBRARY>(e => listThingId.Contains(e.ID), null, "Nav_User");
							 | 
						|||
| 
								 | 
							
								                    List<Guid> listUserID = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                    List<string> listUserName = new List<string>();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    foreach (var item in listThings)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        if (!listUserID.Contains(item.USER_ID))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            listUserID.Add(item.USER_ID);
							 | 
						|||
| 
								 | 
							
								                            listUserName.Add(item.Nav_User.NAME);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    listTaskLib = NotificationTaskService.InsertUserNoticeTaskModels("应急物资数量需求通知", entity.ID, entity.ORG_ID, listUserID, listUserName, DateTime.Now, 0, "CM031_SHOWPRINT", FMTASKTYPE.CM_LIBRARY_MANAGE_CHECK);//默认确认先不做    FMNoticeTypeEnum.消息
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    if (LoginID.HasValue && listUserID.Contains(LoginID.Value))
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        listTaskLibPer = new List<T_FM_NOTIFICATION_TASK>();
							 | 
						|||
| 
								 | 
							
								                        List<Guid> listThingTaskId = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                        foreach (var item in listTaskLib)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if (item.USER_ID == LoginID)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                item.NOTICE_STATUS = 1;
							 | 
						|||
| 
								 | 
							
								                                item.TASK_DT = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                                listThingTaskId = listThings.Where(e => e.USER_ID == LoginID).Select(e => e.ID).Distinct().ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                                listTaskLibPer.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("物资库存更新", listThingTaskId, item.ORG_ID, item.USER_ID, item.USER_NAME, DateTime.Now, 0, "CM028", FMTASKTYPE.CM_LIBRARY_CHANGECOUNT));
							 | 
						|||
| 
								 | 
							
								                                break;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #endregion
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (entity != null)
							 | 
						|||
| 
								 | 
							
								                        UpdateEntityNoCommit(entity);
							 | 
						|||
| 
								 | 
							
								                    if (Files != null && Files.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(Files);
							 | 
						|||
| 
								 | 
							
								                    if (ListDetail != null && ListDetail.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(ListDetail);
							 | 
						|||
| 
								 | 
							
								                    if (taskEnd != null)
							 | 
						|||
| 
								 | 
							
								                        UpdateEntityNoCommit(taskEnd);
							 | 
						|||
| 
								 | 
							
								                    //if (listTaskDay != null && listTaskDay.Any())
							 | 
						|||
| 
								 | 
							
								                    //    BantchSaveEntityNoCommit(listTaskDay);
							 | 
						|||
| 
								 | 
							
								                    if (listTaskRed != null && listTaskRed.Any())
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(listTaskRed);
							 | 
						|||
| 
								 | 
							
								                    if (listSurvey != null && listSurvey.Any())//保存并发送变成已归档
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(listSurvey);
							 | 
						|||
| 
								 | 
							
								                    if (listTaskLib != null && listTaskLib.Any())//物资管理员 收到待办
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(listTaskLib);
							 | 
						|||
| 
								 | 
							
								                    if (listTaskLibPer != null && listTaskLibPer.Any())//物资管理员(为登陆者) 收到物资库存修改待办
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(listTaskLibPer);
							 | 
						|||
| 
								 | 
							
								                });
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 获取装备需求汇总中某个物资管理员的物资信息
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filter"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("GetManageOrder")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<T_CM_EQUIPMENT_DEMAND_SURVEY_MASTER> GetManageOrder([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                var SurveyMaster = GetEntity<T_CM_EQUIPMENT_DEMAND_SURVEY_MASTER>(null, filter, null);
							 | 
						|||
| 
								 | 
							
								                var detail = GetEntities<T_CM_EQUIPMENT_DEMAND_SURVEY_DETAIL>(e => e.SURVEY_MASTER_ID == SurveyMaster.ID && e.Nav_MaterialLibrary.USER_ID == APT.Infrastructure.Api.AppContext.CurrentSession.UserID, null, "Nav_EQDSurvey.Nav_Department", "Nav_MaterialType").OrderBy(e => e.TYPE_ID).ToList();
							 | 
						|||
| 
								 | 
							
								                SurveyMaster.Nav_ListDetail = detail;
							 | 
						|||
| 
								 | 
							
								                return SurveyMaster;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 物资库管理员确认 
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="filter"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        [HttpPost, Route("Check")]
							 | 
						|||
| 
								 | 
							
								        public JsonActionResult<bool> Check([FromBody] KeywordFilter filter)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return SafeExecute<bool>(() =>
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                T_FM_NOTIFICATION_TASK task = null;
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(filter.Parameter1))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    task = NotificationTaskService.GetEntityTask(new Guid(filter.Parameter1));
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                var Keyword = filter.Parameter2;
							 | 
						|||
| 
								 | 
							
								                var LoginId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
							 | 
						|||
| 
								 | 
							
								                List<Guid> listIDS = new List<Guid>();
							 | 
						|||
| 
								 | 
							
								                List<Guid> listThingTaskId = null;
							 | 
						|||
| 
								 | 
							
								                List<T_FM_NOTIFICATION_TASK> listTask = null;
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrEmpty(Keyword))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    List<string> listID = Keyword.Split('_', StringSplitOptions.RemoveEmptyEntries).ToList();
							 | 
						|||
| 
								 | 
							
								                    listID.ForEach(e => { listIDS.Add(new Guid(e)); });
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                #region    验证
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (listIDS.Count > 0)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var listLibs = GetEntities<T_CM_MATERIAL_LIBRARY>(e => e.USER_ID == LoginId && listIDS.Contains(e.ID), null, null);
							 | 
						|||
| 
								 | 
							
								                    listThingTaskId = listLibs.Select(e => e.ID).ToList();
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                if (listThingTaskId != null && listThingTaskId.Any())
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    listTask = NotificationTaskService.InsertUserNoticeTaskModels("物资库存更新", listThingTaskId, filter.OrgId, LoginId.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, DateTime.Now, 0, "CM028", FMTASKTYPE.CM_LIBRARY_CHANGECOUNT);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                this.UnifiedCommit(() =>
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    if (task != null)
							 | 
						|||
| 
								 | 
							
								                        UpdateEntityNoCommit(task);
							 | 
						|||
| 
								 | 
							
								                    if (listTask != null && listTask.Any())//新待办
							 | 
						|||
| 
								 | 
							
								                        BantchSaveEntityNoCommit(listTask);
							 | 
						|||
| 
								 | 
							
								                });
							 | 
						|||
| 
								 | 
							
								                return true;
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |