mh_sms/APT.MicroApi/APT.SC.WebApi/Controllers/Api/CMController/CMUrgentEventController.cs
2024-01-22 09:17:01 +08:00

244 lines
10 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.AE;
using APT.BaseData.Domain.IServices.FM;
using APT.Infrastructure.Core;
using APT.MS.Domain.Entities.CM;
using APT.MS.Domain.Entities.TI;
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/CMUrgentEvent")]
public class CMUrgentEventController : AuthorizeApiController<T_CM_URGENT_EVENT>
{
IFMFlowPermitService MFlowPermitService { get; set; }
IPFApproveCallBackService ApproveCallBackService { get; set; }
IAEAccidentEventReportService AccidentEventReportService { get; set; }
IFMNotificationTaskService NotificationTaskService { get; set; }
IFMUserService UserService { get; set; }
public CMUrgentEventController(IFMFlowPermitService mFlowPermitService, IPFApproveCallBackService approveCallBackService, IAEAccidentEventReportService accidentEventReportService, IFMNotificationTaskService notificationTaskService, IFMUserService userService)
{
MFlowPermitService = mFlowPermitService;
ApproveCallBackService = approveCallBackService;
AccidentEventReportService = accidentEventReportService;
NotificationTaskService = notificationTaskService;
UserService = userService;
}
/// <summary>
/// 体检周期表 修改
/// </summary>
/// <param name="entity"></param>
/// <returns></returns>
[HttpPost, Route("FullUpdate")]
public JsonActionResult<bool> FullUpdate([FromBody] T_CM_URGENT_EVENT entity)
{
return SafeExecute<bool>(() =>
{
#region
var ListArearInfluence = entity.Nav_ListArearInfluence;
entity.Nav_ListArearInfluence = null;
if (ListArearInfluence == null || !ListArearInfluence.Any())
{
throw new Exception("请选择预计影响范围!");
}
else
{
foreach (var item in ListArearInfluence)
{
if (item.URGENT_EVENT_ID == Guid.Empty)
{
item.URGENT_EVENT_ID = entity.ID; //自动触发 没 ID
}
}
}
var ListEventRiskType = entity.Nav_ListEventRiskType;
entity.Nav_ListEventRiskType = null;
if (ListEventRiskType == null || !ListEventRiskType.Any())
{
throw new Exception("请选择风险类别!");
}
else
{
foreach (var item in ListEventRiskType)
{
if (item.URGENT_EVENT_ID == Guid.Empty)
{
item.URGENT_EVENT_ID = entity.ID;//item.ORG_ID = entity.ORG_ID;
}
}
}
var ListEventContingencyPlan = entity.Nav_ListEventContingencyPlan;
entity.Nav_ListEventContingencyPlan = null;
if (ListEventContingencyPlan == null || !ListEventContingencyPlan.Any())
{
throw new Exception("请填写预案信息!");
}
else
{
foreach (var item in ListEventContingencyPlan)
{
if (item.URGENT_EVENT_ID == Guid.Empty)
{
item.URGENT_EVENT_ID = entity.ID; //item.ORG_ID = entity.ORG_ID;
}
//if (item.COMPLETE_TIME<DateTime.Now)
//{
// throw 有的修改其中的
//}
}
}
#endregion
foreach (var item in ListArearInfluence)
{
item.Nav_CoverageInfluence = null;
}
foreach (var item in ListEventRiskType)
{
item.Nav_RiskType = null;
}
T_FM_NOTIFICATION_TASK taskEnd = null;
if (entity.TaskID != Guid.Empty)
taskEnd = NotificationTaskService.GetEntityTask(entity.TaskID, "CM018_SHOWPRINT");
if (entity.ENABLE_STATUS == FMEnableStatusEnum.)
{
foreach (var item in ListEventContingencyPlan)
{
item.ENABLE_STATUS = entity.ENABLE_STATUS;
}
}
this.UnifiedCommit(() =>
{
if (entity != null)
UpdateEntityNoCommit(entity);
if (ListArearInfluence != null && ListArearInfluence.Any())//预计影响范围
BantchSaveEntityNoCommit(ListArearInfluence);
if (ListEventRiskType != null && ListEventRiskType.Any())//风险类别
BantchSaveEntityNoCommit(ListEventRiskType);
if (ListEventContingencyPlan != null && ListEventContingencyPlan.Any())//预案类型
BantchSaveEntityNoCommit(ListEventContingencyPlan);
if (taskEnd != null)
UpdateEntityNoCommit(taskEnd);
});
return true;
});
}
/// <summary>
/// 排序分页查询数据
/// </summary>
/// <param name="pageFilter">分页过滤实体</param>
/// <returns></returns>
[HttpPost, Route("OrderPagedReport")]
public PagedActionResult<T_CM_URGENT_EVENT_CONTINGENCY_PLAN> OrderPagedReport([FromBody] KeywordPageFilter pageFilter)
{
return SafeGetPagedData(delegate (PagedActionResult<T_CM_URGENT_EVENT_CONTINGENCY_PLAN> result)
{
pageFilter.Include.Remove("Nav_UrgentEvent");
pageFilter.Include.Remove("Nav_UrgentEvent.Nav_EventType");
PagedActionResult<T_CM_URGENT_EVENT_CONTINGENCY_PLAN> orderPageEntities = GetOrderPageEntities<T_CM_URGENT_EVENT_CONTINGENCY_PLAN>(null, pageFilter, null);
if (orderPageEntities.Data != null && orderPageEntities.Data.Any())
{
List<Guid> listPlanID = orderPageEntities.Data.Select(e => e.URGENT_EVENT_ID).Distinct().ToList();
List<T_CM_URGENT_EVENT> listEvent = GetEntities<T_CM_URGENT_EVENT>(e => listPlanID.Contains(e.ID), null, new string[] { "Nav_EventType", "Nav_ListArearInfluence.Nav_CoverageInfluence", "Nav_ListEventRiskType.Nav_RiskType" }).ToList();
foreach (var item in listEvent)
{
if (item.Nav_ListArearInfluence != null && item.Nav_ListArearInfluence.Any())
{
foreach (var itemInf in item.Nav_ListArearInfluence)
{
item.AREARINFLUENCE += "" + itemInf.Nav_CoverageInfluence.NAME;
}
item.AREARINFLUENCE = item.AREARINFLUENCE.Substring(1);
}
if (item.Nav_ListEventRiskType != null && item.Nav_ListEventRiskType.Any())
{
foreach (var itemRisk in item.Nav_ListEventRiskType)
{
item.RISKTYPE += "" + itemRisk.Nav_RiskType.NAME;
}
item.RISKTYPE = item.RISKTYPE.Substring(1);
}
}
T_CM_URGENT_EVENT temp = null;
foreach (var item in orderPageEntities.Data)
{
temp = listEvent.FirstOrDefault(e => e.ID == item.URGENT_EVENT_ID);
if (temp != null)
{
item.Nav_UrgentEvent = temp;
}
}
orderPageEntities.Data = orderPageEntities.Data.OrderBy(e => e.Nav_UrgentEvent.Nav_EventType.NAME).ThenBy(e => e.URGENT_EVENT_ID);
}
result.Data = orderPageEntities.Data;
result.TotalCount = orderPageEntities.TotalCount;
});
}
/// <summary>
/// 应急事件 或者应急库中查看
/// </summary>
/// <param name="filter">过滤实体</param>
/// <returns></returns>
[HttpPost, Route("GetShowPrint")]
public JsonActionResult<T_CM_URGENT_EVENT> GetShowPrint([FromBody] KeywordFilter filter)
{
Guid ID = Guid.Empty;
Guid PlanID = Guid.Empty;
if (filter.FilterGroup.Rules.Count > 0)
{
foreach (var item in filter.FilterGroup.Rules)
{
if (item.Field == "ID")
{
ID = new Guid(item.Value.ToString());
}
else if (item.Field == "PLANID")
{
PlanID = new Guid(item.Value.ToString());
}
}
}
if (PlanID == Guid.Empty)
{
return WitEntity(null, filter);
}
else
{
filter.FilterGroup.Rules.Clear();
var plan = GetEntity<T_CM_URGENT_EVENT_CONTINGENCY_PLAN>(PlanID);
ID = plan.URGENT_EVENT_ID;
return WitEntity(e => e.ID == ID, filter);
}
}
}
}