15390 lines
885 KiB
C#
15390 lines
885 KiB
C#
using AlibabaCloud.OpenApiClient.Models;
|
||
using APT.BaseData.Domain.ApiModel;
|
||
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.BS;
|
||
using APT.BaseData.Domain.IServices.FM;
|
||
using APT.BaseData.Services.Services.FM;
|
||
using APT.Infrastructure.Api;
|
||
using APT.Infrastructure.Core;
|
||
using APT.MS.Data.Mapping;
|
||
using APT.MS.Domain.Entities.BS;
|
||
using APT.MS.Domain.Entities.DM;
|
||
using APT.MS.Domain.Entities.FO;
|
||
using APT.MS.Domain.Entities.HM;
|
||
using APT.MS.Domain.Entities.LR;
|
||
using APT.MS.Domain.Entities.PF;
|
||
using APT.MS.Domain.Entities.SC;
|
||
using APT.MS.Domain.Entities.SC.DM;
|
||
using APT.MS.Domain.Entities.SC.PE;
|
||
using APT.MS.Domain.Entities.SC.PR;
|
||
using APT.MS.Domain.Entities.SC.PT;
|
||
using APT.MS.Domain.Entities.SC.SC;
|
||
using APT.MS.Domain.Entities.SE;
|
||
using APT.MS.Domain.Entities.SK;
|
||
using APT.MS.Domain.Entities.TL;
|
||
using APT.MS.Domain.Entities.WB;
|
||
using APT.MS.Domain.Enums;
|
||
using APT.MS.Domain.Enums.SK;
|
||
using APT.Utility;
|
||
using Autofac.Core;
|
||
using InfluxData.Net.InfluxDb.Models.Responses;
|
||
using Microsoft.AspNetCore.Mvc;
|
||
using Microsoft.EntityFrameworkCore.ChangeTracking;
|
||
using Microsoft.Extensions.DependencyModel;
|
||
using MySqlX.XDevAPI.Common;
|
||
using Newtonsoft.Json;
|
||
using NPOI.POIFS.Properties;
|
||
using NPOI.SS.Formula.Functions;
|
||
using Org.BouncyCastle.Utilities;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.ComponentModel;
|
||
using System.ComponentModel.Design.Serialization;
|
||
using System.Diagnostics;
|
||
using System.Linq;
|
||
using System.Linq.Expressions;
|
||
using System.Numerics;
|
||
using System.Reflection;
|
||
using System.Security.Cryptography;
|
||
using static Google.Protobuf.WireFormat;
|
||
using static IdentityModel.OidcConstants;
|
||
|
||
namespace APT.BaseData.Services.DomainServices
|
||
{
|
||
/// <summary>
|
||
/// 审批流回调
|
||
/// 代码规范 每个模块的代码 写在对应 代码块中
|
||
/// 多添加一个审批流回调 1、写方法 2、完善 CallBack 方法
|
||
/// 原有的api继续提供 审批调用
|
||
/// </summary>
|
||
public class PFApproveCallBackService : CommonService, IPFApproveCallBackService
|
||
{
|
||
IPFCodeRuleService CodeRuleService { get; set; }
|
||
IFMNotificationTaskService NotificationTaskService { get; set; }
|
||
IPFSysLogService SysLogService { get; set; }
|
||
IPFApproveCallBackMTService PFApproveCallBackMTService { get; set; }
|
||
IPFApproveCallBackSEService PFApproveCallBackSEService { get; set; }
|
||
IFMDepartmentService DepartmentService { get; set; }
|
||
IBSSafeCheckService SafeCheckService { get; set; }
|
||
//IFMFlowPermitService MFlowPermitService { get; set; }
|
||
public PFApproveCallBackService(IRepository repository, IPFCodeRuleService codeRuleService, IFMNotificationTaskService notificationTaskService, IPFSysLogService sysLogService, IPFApproveCallBackMTService pFApproveCallBackMTService, IPFApproveCallBackSEService pFApproveCallBackSEService, IFMDepartmentService departmentService, IBSSafeCheckService safeCheckService)
|
||
: base(repository)
|
||
{
|
||
CodeRuleService = codeRuleService;
|
||
NotificationTaskService = notificationTaskService;
|
||
SysLogService = sysLogService;
|
||
PFApproveCallBackMTService = pFApproveCallBackMTService;
|
||
PFApproveCallBackSEService = pFApproveCallBackSEService;
|
||
DepartmentService = departmentService;
|
||
SafeCheckService = safeCheckService;
|
||
//MFlowPermitService = mFlowPermitService;
|
||
}
|
||
|
||
public string RejectContent(Guid id)
|
||
{
|
||
var result = string.Empty;
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
var newFilter = new BaseFilter(orgId);
|
||
newFilter.SelectField = new List<string> { "Nav_ApproveDetails" };
|
||
var approveInfo = this.GetEntities<T_PF_APPROVE>(t => t.DATA_ID == id, newFilter).OrderByDescending(m => m.CREATE_TIME).FirstOrDefault();
|
||
if (approveInfo != null && approveInfo.Nav_ApproveDetails.Any())
|
||
{
|
||
var detail = approveInfo.Nav_ApproveDetails.FirstOrDefault(t => t.NODE_APPROVE_STATUS == 20);
|
||
if (detail != null)
|
||
{
|
||
var userInfo = this.GetEntity<T_FM_USER>(t => t.ID == detail.APPROVE_USER_ID && t.ENABLE_STATUS == 0);
|
||
result = userInfo?.NAME + "驳回,内容:" + detail.CONTEXT;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
/// <summary>
|
||
/// 添加审批流
|
||
/// </summary>
|
||
/// <param name="CALLBACK_INTERFACE"></param>
|
||
/// <param name="listDATA_ID"></param>
|
||
/// <returns></returns>
|
||
public bool CallBack(string CALLBACK_INTERFACE, string DATA_ID)
|
||
{
|
||
bool result = false;
|
||
if (!string.IsNullOrEmpty(CALLBACK_INTERFACE))
|
||
{
|
||
switch (CALLBACK_INTERFACE)
|
||
{
|
||
case "HM/HMEvaluationPlan/PersonalApprove":
|
||
result = PersonalApprove(DATA_ID);
|
||
break;
|
||
case "HM/HMRiskTask/PersonalApprove":
|
||
result = PersonalApprove_HMRiskTask(DATA_ID);
|
||
break;
|
||
case "HM/HMRiskRecord/PersonalApprove":
|
||
result = PersonalApprove_HMRiskRecord(DATA_ID);
|
||
break;
|
||
case "HM/HMHazardTask/PersonalApprove":
|
||
result = PersonalApprove_HMHazardTask(DATA_ID);
|
||
break;
|
||
case "HM/HMHazardRecord/PersonalApprove":
|
||
result = PersonalApprove_HMHazardRecord(DATA_ID);
|
||
break;
|
||
case "HM/HMEvaluateResult/PersonalApprove1":
|
||
result = PersonalApprove1(DATA_ID);
|
||
break;
|
||
case "HM/HMEvaluateResult/PersonalApprove2":
|
||
result = PersonalApprove2(DATA_ID);
|
||
break;
|
||
case "BS/BSRiskSubmit/DealEnd":
|
||
result = DealEnd(DATA_ID);
|
||
break;
|
||
case "BS/BSRiskSubmit/Notice":
|
||
result = Notice(DATA_ID);
|
||
break;
|
||
case "BS/BSRiskSubmitContentTemp/ApproveBackBS048":
|
||
result = ApproveBackBS048(DATA_ID);
|
||
break;
|
||
case "BS/BSRiskSubmitDelayApply/DealEnd":
|
||
result = DealEnd_BS_DelayApply(DATA_ID);
|
||
break;
|
||
case "BS/BSSafeCheck/CheckAuditEnd":
|
||
result = CheckAuditEnd(DATA_ID);
|
||
break;
|
||
case "BS/BSSafeCheck/CheckPlanAuditEnd":
|
||
result = CheckPlanAuditEnd(DATA_ID);
|
||
break;
|
||
case "FO/FOCrucialLicenseJob/BackUpdate":
|
||
result = BackUpdate(DATA_ID);
|
||
break;
|
||
case "FO/FOCrucialLicenseJobOutsource/BackUpdate":
|
||
result = BackUpdate_FOCrucialLicenseJobOutsource(DATA_ID);
|
||
break;
|
||
case "HM/HMCrucialTaskAnalysis/BackUpdate":
|
||
result = BackUpdate_HMCrucialTaskAnalysis(DATA_ID);
|
||
break;
|
||
case "HM/HMJobtaskIdentify/BackUpdate":
|
||
result = BackUpdate_HMJobtaskIdentify(DATA_ID);
|
||
break;
|
||
case "HM/HMLicenseAnalysis/BackUpdate":
|
||
result = BackUpdate_HMLicenseAnalysis(DATA_ID);
|
||
break;
|
||
case "HM/HMOperationTaskDistinguishAnalyze/BackUpdate":
|
||
result = BackUpdate_HMOperationTaskDistinguishAnalyze(DATA_ID);
|
||
break;
|
||
case "HM/HMOrdinaryTaskAnalysis/BackUpdate":
|
||
result = BackUpdate_HMOrdinaryTaskAnalysis(DATA_ID);
|
||
break;
|
||
case "SC/SCMTMeeting/MeetingNoticeBack"://会议通知回调
|
||
result = PFApproveCallBackMTService.MeetingNoticeBack(DATA_ID);
|
||
break;
|
||
case "SC/SCMtMeetingMinutes/MeetingMinutesBack"://会议纪要回调
|
||
result = PFApproveCallBackMTService.MeetingMinutesBack(DATA_ID);
|
||
break;
|
||
case "SE/SEDepTrainPlan/departmentTrainPlanAgree"://安全教育模块部门培训计划通过
|
||
result = PFApproveCallBackSEService.departmentTrainPlanAgree(DATA_ID);
|
||
break;
|
||
case "SE/SEYearTrainPlan/yearTrainPlanAgree"://安全教育模块年度培训计划通过
|
||
result = PFApproveCallBackSEService.yearTrainPlanAgree(DATA_ID);
|
||
break;
|
||
case "OG/OGApproveRewardPunishmentReport/approveAndRewardAgree"://认可与奖励
|
||
result = PFApproveCallBackSEService.approveAndRewardAgree(DATA_ID);
|
||
break;
|
||
case "OG/OGSafePdtAssessPlanCheck/BackUpdate"://责任制考核方案审核
|
||
result = PFApproveCallBackSEService.safePdtAssessPlanCheck(DATA_ID);
|
||
break;
|
||
case "PT/PTIndicatorFormulation/BackUpdate"://方针与目标管理
|
||
result = BackUpdate_PTIndicatorFormulation(DATA_ID);
|
||
break;
|
||
case "PT/PTIndicatorFormulationDepartment/BackUpdate"://方针与目标管理
|
||
result = BackUpdate_PTIndicatorFormulationDepartment(DATA_ID);
|
||
break;
|
||
case "PT/PTIndicatorFormulationDepartment/BackUpdateYL"://方针与目标管理
|
||
result = BackUpdate_PTIndicatorFormulationDepartmentYL(DATA_ID);
|
||
break;
|
||
case "TI/TISafePdtCostRecord/RecordBack"://安全生产费用使用记录回调
|
||
result = PFApproveCallBackMTService.RecordBack(DATA_ID);
|
||
break;
|
||
case "AE/AEAccidentEventReport/EventBack"://安全生产费用使用记录回调
|
||
result = PFApproveCallBackMTService.EventBack(DATA_ID);
|
||
break;
|
||
case "AE/AEInvestigationRecord/LeaderCheck"://勘察记录组长审批完成后回调
|
||
result = PFApproveCallBackMTService.LeaderCheck(DATA_ID);
|
||
break;
|
||
case "AE/AEAccidentEventSurveyResult/EventResultBack"://事故事件调查结果审批回调
|
||
result = PFApproveCallBackMTService.EventResultBack(DATA_ID);
|
||
break;
|
||
case "PT/PTAssessmentPlanAudit/BackUpdate"://方针与目标管理
|
||
result = BackUpdate_PTAssessmentPlanAudit(DATA_ID);
|
||
break;
|
||
case "PT/PTAssessmentPlanAudit/BackUpdateYL"://方针与目标管理
|
||
result = BackUpdate_PTAssessmentPlanAuditYL(DATA_ID);
|
||
break;
|
||
case "PT/PTMonitorAssessment/BackUpdate"://方针与目标管理
|
||
result = BackUpdate_PTMonitorAssessment(DATA_ID);
|
||
break;
|
||
case "PE/PECorrectivePreventive/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PECorrectivePreventive(DATA_ID);
|
||
break;
|
||
case "PE/PECorrectivePreventiveProcess/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PECorrectivePreventiveProcess(DATA_ID);
|
||
break;
|
||
case "PE/PECorrectivePreventiveEvaluation/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PECorrectivePreventiveEvaluation(DATA_ID);
|
||
break;
|
||
case "PE/PESafetyMonitorPlan/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PESafetyMonitorPlan(DATA_ID);
|
||
break;
|
||
case "PE/PESafetyMonitorRecord/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PESafetyMonitorRecord(DATA_ID);
|
||
break;
|
||
case "PE/PESafetyEvaluationRecord/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PESafetyEvaluationRecord(DATA_ID);
|
||
break;
|
||
case "SC/SCStandardCreate/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_SCStandardCreate(DATA_ID);
|
||
break;
|
||
case "PR/PRDesignDocumentReview/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PRDesignDocumentReview(DATA_ID);
|
||
break;
|
||
case "PR/PRLandslideRollstoneMonitor/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PRLandslideRollstoneMonitor(DATA_ID);
|
||
break;
|
||
case "PR/PRExternalAssistanceApplication/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PRExternalAssistanceApplication(DATA_ID);
|
||
break;
|
||
case "PR/PRExternalAcceptanceRecord/BackUpdate"://绩效测量与评估
|
||
result = BackUpdate_PRExternalAcceptanceRecord(DATA_ID);
|
||
break;
|
||
case "PR/PRMapProcessRecord/BackUpdate":
|
||
result = BackUpdate_PRMapProcessRecord(DATA_ID);
|
||
break;
|
||
case "PR/PRSurveyRecord/BackUpdate":
|
||
result = BackUpdate_PRSurveyRecord(DATA_ID);
|
||
break;
|
||
case "PR/PRChangeTaskImplement/BackUpdate":
|
||
result = BackUpdate_PRChangeTaskImplement(DATA_ID);
|
||
break;
|
||
case "DM/DMDetectionInspectionRecord/BackUpdate":
|
||
result = BackUpdate_DMDetectionInspectionRecord(DATA_ID);
|
||
break;
|
||
case "DM/DMDeviceApply/BackUpdate":
|
||
result = BackUpdate_DMDeviceApply(DATA_ID);
|
||
break;
|
||
case "DM/DMDeviceScrap/BackUpdate":
|
||
result = BackUpdate_DMDeviceScrap(DATA_ID);
|
||
break;
|
||
case "DM/DMDeviceIssue/BackUpdate":
|
||
result = BackUpdate_DMDeviceIssue(DATA_ID);
|
||
break;
|
||
case "DM/DMDeviceCheck/BackUpdate":
|
||
result = BackUpdate_DMDeviceCheck(DATA_ID);
|
||
break;
|
||
case "DM/DMDeviceRepair/BackUpdate":
|
||
result = BackUpdate_DMDeviceRepair(DATA_ID);
|
||
break;
|
||
case "FO/FOJobEventRecord/BackUpdate":
|
||
result = BackUpdate_FOJobEventRecord(DATA_ID);
|
||
break;
|
||
case "PE/PESafetyEvaluationPlan/BackUpdate":
|
||
result = BackUpdate_PESafetyEvaluationPlan(DATA_ID);
|
||
break;
|
||
#region 职业卫生
|
||
|
||
case "OH/OHHealthExamPlan/PlanMasterBack"://绩效测量与评估
|
||
result = PFApproveCallBackMTService.PlanMasterBack(DATA_ID);
|
||
break;
|
||
|
||
#endregion
|
||
|
||
#region 应急管理
|
||
|
||
case "CM/CMRspEstimate/EstimateBack"://绩效测量与评估
|
||
result = PFApproveCallBackMTService.EstimateBack(DATA_ID);
|
||
break;
|
||
case "CM/CMDrillPlan/DrillPlanEnd"://绩效测量与评估
|
||
result = PFApproveCallBackMTService.DrillPlanEnd(DATA_ID);
|
||
break;
|
||
case "CM/CMDrillPlan/DrillRecordEnd"://应急演练活动记录表
|
||
result = PFApproveCallBackMTService.DrillRecordEnd(DATA_ID);
|
||
break;
|
||
#endregion
|
||
|
||
#region 机电管理
|
||
case "DM/DMDeviceMaintenanceCheck/Audit"://设备设施 维保
|
||
result = PFApproveCallBackMTService.Audit(DATA_ID);
|
||
break;
|
||
#endregion
|
||
default:
|
||
SysLogService.AddLog(APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, PFSysLogTypeEnum.CommonApproveCallBack, "PF119", "审批流回调方法未完善", "PFApproveCallBackService=>CallBack: " + CALLBACK_INTERFACE, DATA_ID);
|
||
break;
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 添加审批流 (默认审批直接回调这个方法)
|
||
/// </summary>
|
||
/// <param name="CALLBACK_INTERFACE"></param>
|
||
/// <param name="listDATA_ID"></param>
|
||
/// <returns></returns>
|
||
public bool CallBack(string CALLBACK_INTERFACE, List<string> listDATA_ID)
|
||
{
|
||
bool result = false;
|
||
if (!string.IsNullOrEmpty(CALLBACK_INTERFACE))
|
||
{
|
||
switch (CALLBACK_INTERFACE)
|
||
{
|
||
case "BS/BSRiskSubmit/DealEnd":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
DealEnd(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "BS/BSRiskSubmit/Notice":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
Notice(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "BS/BSRiskSubmitContentTemp/ApproveBackBS048":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
ApproveBackBS048(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "BS/BSRiskSubmitDelayApply/DealEnd":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
DealEnd_BS_DelayApply(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "BS/BSSafeCheck/CheckAuditEnd":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
CheckAuditEnd(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "BS/BSSafeCheck/CheckPlanAuditEnd":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
CheckPlanAuditEnd(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "FO/FOCrucialLicenseJob/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "FO/FOCrucialLicenseJobOutsource/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_FOCrucialLicenseJobOutsource(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "HM/HMCrucialTaskAnalysis/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_HMCrucialTaskAnalysis(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "HM/HMEvaluateResult/PersonalApprove1":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PersonalApprove1(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "HM/HMEvaluateResult/PersonalApprove2":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PersonalApprove2(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "HM/HMEvaluationPlan/PersonalApprove":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PersonalApprove(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "HM/HMHazardRecord/PersonalApprove":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PersonalApprove_HMHazardRecord(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "HM/HMHazardTask/PersonalApprove":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PersonalApprove_HMHazardTask(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
|
||
case "HM/HMJobtaskIdentify/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_HMJobtaskIdentify(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
|
||
case "HM/HMLicenseAnalysis/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_HMLicenseAnalysis(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
|
||
case "HM/HMOperationTaskDistinguishAnalyze/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_HMOperationTaskDistinguishAnalyze(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "HM/HMOrdinaryTaskAnalysis/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_HMOrdinaryTaskAnalysis(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "HM/HMRiskRecord/PersonalApprove":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PersonalApprove_HMRiskRecord(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "HM/HMRiskTask/PersonalApprove":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PersonalApprove_HMRiskTask(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "SC/SCMTMeeting/MeetingNoticeBack"://会议通知回调
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.MeetingNoticeBack(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "SC/SCMtMeetingMinutes/MeetingMinutesBack"://会议纪要回调
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.MeetingMinutesBack(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "TI/TISafePdtCostRecord/RecordBack"://安全生产费用使用记录回调
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.RecordBack(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "AE/AEAccidentEventReport/EventBack"://安全生产费用使用记录回调
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.EventBack(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "AE/AEInvestigationRecord/LeaderCheck"://勘察记录组长审批完成后回调
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.LeaderCheck(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "AE/AEAccidentEventSurveyResult/EventResultBack"://事故事件调查结果审批回调回调
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.EventResultBack(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PT/PTIndicatorFormulation/BackUpdate"://方针与目标管理
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PTIndicatorFormulation(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PT/PTIndicatorFormulationDepartment/BackUpdate"://方针与目标管理
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PTIndicatorFormulationDepartment(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PT/PTAssessmentPlanAudit/BackUpdate"://方针与目标管理
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PTAssessmentPlanAudit(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PT/PTMonitorAssessment/BackUpdate"://方针与目标管理
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PTMonitorAssessment(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PE/PECorrectivePreventive/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PECorrectivePreventive(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PE/PECorrectivePreventiveProcess/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PECorrectivePreventiveProcess(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PE/PECorrectivePreventiveEvaluation/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PECorrectivePreventiveEvaluation(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PE/PESafetyMonitorPlan/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PESafetyMonitorPlan(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PE/PESafetyMonitorRecord/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PESafetyMonitorRecord(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PE/PESafetyEvaluationRecord/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PESafetyEvaluationRecord(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "SC/SCStandardCreate/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_SCStandardCreate(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PR/PRDesignDocumentReview/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PRDesignDocumentReview(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PR/PRLandslideRollstoneMonitor/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PRLandslideRollstoneMonitor(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PR/PRExternalAssistanceApplication/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PRExternalAssistanceApplication(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PR/PRExternalAcceptanceRecord/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PRExternalAcceptanceRecord(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PR/PRMapProcessRecord/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PRMapProcessRecord(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PR/PRSurveyRecord/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PRSurveyRecord(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PR/PRChangeTaskImplement/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PRChangeTaskImplement(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PE/PESafetyEvaluationPlan/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PESafetyEvaluationPlan(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "DM/DMDetectionInspectionRecord/BackUpdate"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_DMDetectionInspectionRecord(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "DM/DMDeviceApply/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_DMDeviceApply(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "DM/DMDeviceScrap/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_DMDeviceScrap(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "DM/DMDeviceIssue/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_DMDeviceIssue(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "DM/DMDeviceCheck/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_DMDeviceCheck(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "DM/DMDeviceRepair/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_DMDeviceRepair(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "FO/FOJobEventRecord/BackUpdate":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_FOJobEventRecord(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PT/PTIndicatorFormulationDepartment/BackUpdateYL":
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PTIndicatorFormulationDepartmentYL(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "PT/PTAssessmentPlanAudit/BackUpdateYL"://方针与目标管理
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
BackUpdate_PTAssessmentPlanAuditYL(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
#region 职业卫生
|
||
|
||
case "OH/OHHealthExamPlan/PlanMasterBack"://职业卫生 体检计划 人事部经理审批
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.PlanMasterBack(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
|
||
#endregion
|
||
|
||
#region 应急管理
|
||
|
||
case "CM/CMRspEstimate/EstimateBack"://绩效测量与评估
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.EstimateBack(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
case "CM/CMDrillPlan/DrillPlanEnd"://年度应急演练计划表 审批结束
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.DrillPlanEnd(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
#endregion
|
||
|
||
#region 机电管理
|
||
case "DM/DMDeviceMaintenanceCheck/Audit"://设备设施 维保
|
||
for (int i = 0; i < listDATA_ID.Count; i++)
|
||
{
|
||
PFApproveCallBackMTService.Audit(listDATA_ID[i]);
|
||
}
|
||
break;
|
||
#endregion
|
||
default:
|
||
SysLogService.AddLog(APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, PFSysLogTypeEnum.CommonApproveCallBack, "PF119", "审批流回调方法未完善", "PFApproveCallBackService=> list CallBack: " + CALLBACK_INTERFACE, String.Join(',', listDATA_ID));
|
||
|
||
break;
|
||
}
|
||
|
||
//判断执行回调方法
|
||
|
||
|
||
}
|
||
return result;
|
||
}
|
||
|
||
#region BS
|
||
|
||
/// <summary>
|
||
/// 隐患上报 审核通过 给每个通知负责人发送通知
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool Notice(string id)
|
||
{
|
||
//给对应通知责任人发送待办
|
||
T_BS_RISK_SUBMIT_NOTICE entity = this.GetEntity<T_BS_RISK_SUBMIT_NOTICE>(id, new string[] { "Nav_ListRiskSubmitContent.Nav_SafeCheckDetail", "Nav_ListRiskSubmitContent.Nav_User" });
|
||
|
||
List<T_BS_CHECK_MAIN> listMainConbinAdd = new List<T_BS_CHECK_MAIN>();
|
||
List<T_BS_CHECK_QUESTION> listMainConbinQuestionAdd = new List<T_BS_CHECK_QUESTION>();
|
||
List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT> listMainConbinDepAdd = new List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT>();
|
||
//更新对应的检查问题
|
||
List<T_BS_SAFE_CHECK_DETAIL> listSafecheckDetail = new List<T_BS_SAFE_CHECK_DETAIL>();
|
||
|
||
T_BS_SAFE_CHECK safeCheck = null;
|
||
T_FM_DEPARTMENT depMainCheck = null;
|
||
List<T_FM_DEPARTMENT> listDepMainCheck = new List<T_FM_DEPARTMENT>();
|
||
|
||
int delayDays = 0;
|
||
var delays = GetEntity<T_BS_RISK_LEVEL_DELAY_DAYS>(e => e.QUESTION_LEVEL == entity.QUESTION_LEVEL);
|
||
if (delays != null)
|
||
{
|
||
delayDays = delays.MAX_DELAY_DAYS;
|
||
}
|
||
else
|
||
{
|
||
switch (entity.QUESTION_LEVEL)
|
||
{
|
||
case (int)BSQuestionLevelEnum.重大:
|
||
delayDays = (int)BSDelayDaysEnum.重大;
|
||
break;
|
||
case (int)BSQuestionLevelEnum.A:
|
||
delayDays = (int)BSDelayDaysEnum.A;
|
||
break;
|
||
case (int)BSQuestionLevelEnum.B:
|
||
delayDays = (int)BSDelayDaysEnum.B;
|
||
break;
|
||
case (int)BSQuestionLevelEnum.C:
|
||
delayDays = (int)BSDelayDaysEnum.C;
|
||
break;
|
||
case (int)BSQuestionLevelEnum.D:
|
||
delayDays = (int)BSDelayDaysEnum.D;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listContent = entity.Nav_ListRiskSubmitContent;
|
||
|
||
//var sysFilter = new SystemCodeFilter();
|
||
//sysFilter.CodeType = (int)PFCodeRuleType.消息通知;
|
||
//sysFilter.Count = listContent.Count;
|
||
//sysFilter.OrgId = entity.ORG_ID;
|
||
//var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
//var codeList = codes.Split(new char[] { ',' });
|
||
|
||
string[] codeList = new string[listContent.Count];
|
||
string codeTemp = "YHTZ" + DateTime.Now.ToString("yyyyMMddHHmmss");
|
||
for (int j = 0; j < listContent.Count; j++)
|
||
{
|
||
codeList[j] = codeTemp + j;
|
||
}
|
||
|
||
//T_BS_RISK_SUBMIT entityMain = this.GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value);
|
||
|
||
T_BS_RISK_SUBMIT entityMain = null;
|
||
var listContentID = listContent.Select(e => e.ID);
|
||
|
||
var listConts = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_ID == entity.RISK_SUBMIT_ID.Value && !listContentID.Contains(e.ID) && !e.USER_ID.HasValue && e.NOTICEDATE.HasValue);//除了这单 别的都有分配通知责任人通知时间
|
||
if (listConts == null || !listConts.Any())
|
||
{
|
||
entityMain = GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value);
|
||
entityMain.SUBMITFINISHTIME = DateTime.Now;
|
||
if (!entityMain.STARTTIME.HasValue)
|
||
{
|
||
entityMain.STARTTIME = entityMain.CREATE_TIME;
|
||
}
|
||
if (entityMain.STARTTIME.HasValue || entityMain.STARTTIME.Value.AddDays(1) > entityMain.SUBMITFINISHTIME)
|
||
entityMain.ISSUBMITFINISHINTTIME = true;
|
||
else
|
||
entityMain.ISSUBMITFINISHINTTIME = false;
|
||
}
|
||
|
||
List<T_FM_NOTIFICATION_TASK> listNotice = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<T_BS_RISK_SUBMIT_NOTICE_PERSON> listNoticePerson = new List<T_BS_RISK_SUBMIT_NOTICE_PERSON>();
|
||
T_BS_RISK_SUBMIT_NOTICE_PERSON temp = null;
|
||
|
||
List<Guid> listDataID = new List<Guid>();
|
||
List<Guid> listUserID = new List<Guid>();
|
||
List<string> listUserName = new List<string>();
|
||
List<string> listName = new List<string>();
|
||
int i = 0;
|
||
foreach (var item in listContent)
|
||
{
|
||
i++;
|
||
item.CODE = entity.CODE + "_" + i.ToString();
|
||
item.NAME = "隐患整改通知:" + entity.NAME;
|
||
|
||
|
||
item.LastDateSystem = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")).AddDays(delayDays);
|
||
item.NOTICEDATE = DateTime.Now;
|
||
item.RiskContentState = (int)RiskContentState.Notice;
|
||
|
||
//隐患上报 问题 通知责任人 相同 同一个通知 (后续分配整改信息)
|
||
temp = listNoticePerson.FirstOrDefault(x => x.USER_ID == item.USER_ID);
|
||
if (temp == null)
|
||
{
|
||
temp = new T_BS_RISK_SUBMIT_NOTICE_PERSON();
|
||
temp.ID = Guid.NewGuid();
|
||
temp.USER_ID = item.USER_ID.Value;
|
||
temp.ORG_ID = item.ORG_ID;
|
||
temp.NAME = item.NAME;
|
||
temp.CODE = item.CODE;
|
||
temp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID;
|
||
temp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID;
|
||
temp.QUESTION_LEVEL = item.QUESTION_LEVEL;
|
||
|
||
listNoticePerson.Add(temp);
|
||
listDataID.Add(temp.ID);
|
||
listUserID.Add(temp.USER_ID);
|
||
listUserName.Add(item.Nav_User.NAME);
|
||
listName.Add(temp.NAME);
|
||
}
|
||
|
||
item.RISK_SUBMIT_NOTICE_PERSON_ID = temp.ID;//个人通知ID绑定明细
|
||
if (item.Nav_SafeCheckDetail != null)
|
||
{
|
||
if (item.Nav_SafeCheckDetail.CHECKRESULT.HasValue && item.Nav_SafeCheckDetail.CHECKRESULT == 30)
|
||
{
|
||
//添加安全检查库信息
|
||
|
||
#region MyRegion
|
||
if (safeCheck == null)
|
||
{
|
||
safeCheck = GetEntity<T_BS_SAFE_CHECK>(item.Nav_SafeCheckDetail.SAFE_CHECK_ID);
|
||
}
|
||
T_BS_CHECK_QUESTION ques = new T_BS_CHECK_QUESTION();
|
||
ques.ID = Guid.NewGuid();
|
||
ques.ORG_ID = item.ORG_ID;
|
||
ques.DESCREPTION = item.DESCREPTION;
|
||
ques.DEMAND = item.DEMAND;
|
||
ques.IS_DELETED = false;
|
||
ques.ENABLE_STATUS = 0;
|
||
|
||
ques.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
|
||
ques.QUESTION_LEVEL = (BSQuestionLevelEnum)(item.Nav_SafeCheckDetail.QUESTION_LEVEL.HasValue ? item.Nav_SafeCheckDetail.QUESTION_LEVEL.Value : 20);
|
||
|
||
listMainConbinQuestionAdd.Add(ques);
|
||
|
||
|
||
//添加隐患库
|
||
//检查问题 手动输入 没有 整改建议与措施 不能入库
|
||
T_BS_CHECK_MAIN modelAdd = new T_BS_CHECK_MAIN();
|
||
modelAdd.ID = Guid.NewGuid();
|
||
modelAdd.ISRISK = true;
|
||
|
||
modelAdd.CHECKOBJECT = safeCheck.CHECKOBJECT.Value;
|
||
modelAdd.CHECK_PROJECT_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_ID;
|
||
modelAdd.CHECK_QUESTION_ID = ques.ID;
|
||
modelAdd.CHECKCONTENT = item.CHECKCONTENT;
|
||
modelAdd.CHECKPROOF = item.Nav_SafeCheckDetail.CHECKPROOF;
|
||
|
||
modelAdd.QUESTION_LEVEL = item.Nav_SafeCheckDetail.QUESTION_LEVEL.HasValue ? item.Nav_SafeCheckDetail.QUESTION_LEVEL.Value : 20;
|
||
if (modelAdd.QUESTION_LEVEL == 10)
|
||
modelAdd.SERIOUS_RISK = 1;
|
||
else
|
||
modelAdd.SERIOUS_RISK = 0;
|
||
|
||
modelAdd.CHECK_TYPE_ID = safeCheck.CHECK_TYPE_ID;
|
||
modelAdd.CHECK_TYPE_LEVEL_ID = safeCheck.CHECK_TYPE_LEVEL_ID;
|
||
modelAdd.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
modelAdd.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
modelAdd.NUM = 0;
|
||
modelAdd.IS_DELETED = false;
|
||
modelAdd.ORG_ID = item.ORG_ID;
|
||
//modelAdd.FORM_ID = item.FORM_ID;
|
||
modelAdd.CREATE_TIME = DateTime.Now;
|
||
modelAdd.CREATER_ID = safeCheck.USERID_DOPLAN.Value;
|
||
|
||
//modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
//modelAdd.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
modelAdd.CHECK_PROJECT_CATEGORY_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
depMainCheck = listDepMainCheck.FirstOrDefault(e => e.ID == item.Nav_SafeCheckDetail.DEPARTMENT_ID);
|
||
if (depMainCheck == null)
|
||
{
|
||
depMainCheck = GetEntity<T_FM_DEPARTMENT>(item.Nav_SafeCheckDetail.DEPARTMENT_ID.Value);
|
||
listDepMainCheck.Add(depMainCheck);
|
||
}
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
//wyw1114-1
|
||
//modelAdd.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
if (item.CREATER_ID == depMainCheck.USER_ID)
|
||
{
|
||
if (depMainCheck.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
listMainConbinDepAdd.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelAdd.ID,
|
||
ORG_ID = modelAdd.ORG_ID,
|
||
DEPARTMENT_ID = item.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
});
|
||
|
||
listMainConbinAdd.Add(modelAdd);
|
||
//更新对应的检查问题
|
||
item.Nav_SafeCheckDetail.CHECK_MAIN_ID = modelAdd.ID;
|
||
listSafecheckDetail.Add(item.Nav_SafeCheckDetail);
|
||
|
||
#endregion
|
||
|
||
}
|
||
else if (!item.Nav_SafeCheckDetail.CHECK_MAIN_ID.HasValue && !item.Nav_SafeCheckDetail.CHECK_QUESTION_ID.HasValue)
|
||
{
|
||
#region MyRegion
|
||
if (safeCheck == null)
|
||
{
|
||
safeCheck = GetEntity<T_BS_SAFE_CHECK>(item.Nav_SafeCheckDetail.SAFE_CHECK_ID);
|
||
}
|
||
//添加隐患库
|
||
//检查问题 手动输入 没有 整改建议与措施 不能入库
|
||
T_BS_CHECK_MAIN modelAdd = new T_BS_CHECK_MAIN();
|
||
modelAdd.ID = Guid.NewGuid();
|
||
modelAdd.ISRISK = true;
|
||
|
||
modelAdd.CHECKOBJECT = safeCheck.CHECKOBJECT.Value;
|
||
modelAdd.CHECK_PROJECT_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_ID;
|
||
modelAdd.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
|
||
modelAdd.CHECKCONTENT = item.CHECKCONTENT;
|
||
modelAdd.CHECKPROOF = item.Nav_SafeCheckDetail.CHECKPROOF;
|
||
|
||
modelAdd.QUESTION_LEVEL = item.Nav_SafeCheckDetail.QUESTION_LEVEL.HasValue ? item.Nav_SafeCheckDetail.QUESTION_LEVEL.Value : 20;
|
||
if (modelAdd.QUESTION_LEVEL == 10)
|
||
modelAdd.SERIOUS_RISK = 1;
|
||
else
|
||
modelAdd.SERIOUS_RISK = 0;
|
||
|
||
modelAdd.CHECK_TYPE_ID = safeCheck.CHECK_TYPE_ID;
|
||
modelAdd.CHECK_TYPE_LEVEL_ID = safeCheck.CHECK_TYPE_LEVEL_ID;
|
||
modelAdd.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
modelAdd.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
modelAdd.NUM = 0;
|
||
modelAdd.IS_DELETED = false;
|
||
modelAdd.ORG_ID = item.ORG_ID;
|
||
//modelAdd.FORM_ID = item.FORM_ID;
|
||
modelAdd.CREATE_TIME = DateTime.Now;
|
||
modelAdd.CREATER_ID = safeCheck.USERID_DOPLAN.Value;
|
||
|
||
//modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
//modelAdd.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
modelAdd.CHECK_PROJECT_CATEGORY_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
depMainCheck = listDepMainCheck.FirstOrDefault(e => e.ID == item.Nav_SafeCheckDetail.DEPARTMENT_ID);
|
||
if (depMainCheck == null)
|
||
{
|
||
depMainCheck = GetEntity<T_FM_DEPARTMENT>(item.Nav_SafeCheckDetail.DEPARTMENT_ID.Value);
|
||
listDepMainCheck.Add(depMainCheck);
|
||
}
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
//wyw1114-1
|
||
//modelAdd.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
if (item.CREATER_ID == depMainCheck.USER_ID)
|
||
{
|
||
if (depMainCheck.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
listMainConbinDepAdd.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelAdd.ID,
|
||
ORG_ID = modelAdd.ORG_ID,
|
||
DEPARTMENT_ID = item.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
});
|
||
|
||
listMainConbinAdd.Add(modelAdd);
|
||
//更新对应的检查问题
|
||
item.Nav_SafeCheckDetail.CHECK_MAIN_ID = modelAdd.ID;
|
||
listSafecheckDetail.Add(item.Nav_SafeCheckDetail);
|
||
|
||
#endregion
|
||
}
|
||
|
||
}
|
||
|
||
#region MyRegion
|
||
|
||
//if (item.Nav_SafeCheckDetail != null && !item.Nav_SafeCheckDetail.CHECK_MAIN_ID.HasValue && !item.Nav_SafeCheckDetail.CHECK_QUESTION_ID.HasValue)
|
||
//{
|
||
// //组合的安全检查 完善数据库
|
||
|
||
// #region MyRegion
|
||
// if (safeCheck == null)
|
||
// {
|
||
// safeCheck = GetEntity<T_BS_SAFE_CHECK>(item.Nav_SafeCheckDetail.SAFE_CHECK_ID);
|
||
// }
|
||
// //添加隐患库
|
||
// //检查问题 手动输入 没有 整改建议与措施 不能入库
|
||
// T_BS_CHECK_MAIN modelAdd = new T_BS_CHECK_MAIN();
|
||
// modelAdd.ID = Guid.NewGuid();
|
||
// modelAdd.ISRISK = true;
|
||
|
||
// modelAdd.CHECKOBJECT = safeCheck.CHECKOBJECT.Value;
|
||
// modelAdd.CHECK_PROJECT_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_ID;
|
||
// modelAdd.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
|
||
// modelAdd.CHECKCONTENT = item.CHECKCONTENT;
|
||
// modelAdd.CHECKPROOF = item.Nav_SafeCheckDetail.CHECKPROOF;
|
||
|
||
// modelAdd.QUESTION_LEVEL = item.Nav_SafeCheckDetail.QUESTION_LEVEL.HasValue ? item.Nav_SafeCheckDetail.QUESTION_LEVEL.Value : 20;
|
||
// if (modelAdd.QUESTION_LEVEL == 10)
|
||
// modelAdd.SERIOUS_RISK = 1;
|
||
// else
|
||
// modelAdd.SERIOUS_RISK = 0;
|
||
|
||
// modelAdd.CHECK_TYPE_ID = safeCheck.CHECK_TYPE_ID;
|
||
// modelAdd.CHECK_TYPE_LEVEL_ID = safeCheck.CHECK_TYPE_LEVEL_ID;
|
||
// modelAdd.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
// modelAdd.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
// modelAdd.NUM = 0;
|
||
// modelAdd.IS_DELETED = false;
|
||
// modelAdd.ORG_ID = item.ORG_ID;
|
||
// //modelAdd.FORM_ID = item.FORM_ID;
|
||
// modelAdd.CREATE_TIME = DateTime.Now;
|
||
// modelAdd.CREATER_ID = safeCheck.USERID_DOPLAN.Value;
|
||
|
||
// //modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
// //modelAdd.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
// modelAdd.CHECK_PROJECT_CATEGORY_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
// depMainCheck = listDepMainCheck.FirstOrDefault(e => e.ID == item.Nav_SafeCheckDetail.DEPARTMENT_ID);
|
||
// if (depMainCheck == null)
|
||
// {
|
||
// depMainCheck = GetEntity<T_FM_DEPARTMENT>(item.Nav_SafeCheckDetail.DEPARTMENT_ID.Value);
|
||
// listDepMainCheck.Add(depMainCheck);
|
||
// }
|
||
// BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
// //wyw1114-1
|
||
// //modelAdd.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
// if (item.CREATER_ID == depMainCheck.USER_ID)
|
||
// {
|
||
// if (depMainCheck.DEPARTMENT_TYPE == 2)
|
||
// {
|
||
// RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
// }
|
||
// else
|
||
// {
|
||
// RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
// }
|
||
// }
|
||
// else
|
||
// {
|
||
// RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
// }
|
||
|
||
// listMainConbinDepAdd.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
// {
|
||
// ID = Guid.NewGuid(),
|
||
// MAIN_ID = modelAdd.ID,
|
||
// ORG_ID = modelAdd.ORG_ID,
|
||
// DEPARTMENT_ID = item.DEPARTMENT_ID,
|
||
// RESPONOBJECT = RESPONOBJECT
|
||
// });
|
||
|
||
// listMainConbinAdd.Add(modelAdd);
|
||
// //更新对应的检查问题
|
||
// item.Nav_SafeCheckDetail.CHECK_MAIN_ID = modelAdd.ID;
|
||
// listSafecheckDetail.Add(item.Nav_SafeCheckDetail);
|
||
|
||
// #endregion
|
||
|
||
//}
|
||
#endregion
|
||
}
|
||
|
||
//更新日期
|
||
//给隐患上报隐患通知责任人 发送待办
|
||
listNotice = NotificationTaskService.InsertUserNoticeTaskModels(codeList, listName, listDataID, entity.ORG_ID, listUserID, listUserName, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS042");
|
||
//if (listNoticePerson != null && listNoticePerson.Count > 0)
|
||
//{
|
||
// foreach (var item in listNoticePerson)
|
||
// {
|
||
// item.Nav_User = null;
|
||
// }
|
||
//}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entityMain != null)//审批结束 如果隐患上报 全部明细都审批完成 登记完成时间
|
||
UpdateEntityNoCommit(entityMain);
|
||
if (listNoticePerson.Count > 0)
|
||
BantchSaveEntityNoCommit(listNoticePerson);
|
||
if (listContent.Count > 0)
|
||
BantchUpdateEntityNoCommit(listContent);
|
||
if (listNotice.Count > 0)
|
||
BantchSaveEntityNoCommit(listNotice);
|
||
|
||
if (listMainConbinAdd.Count > 0)//确定检查问题 添加安全检查记录
|
||
BantchSaveEntityNoCommit(listMainConbinAdd);
|
||
if (listMainConbinDepAdd.Count > 0)//确定检查问题 添加安全检查记录
|
||
BantchSaveEntityNoCommit(listMainConbinDepAdd);
|
||
if (listMainConbinQuestionAdd.Count > 0)//确定检查问题 添加检查问题
|
||
BantchSaveEntityNoCommit(listMainConbinQuestionAdd);
|
||
if (listSafecheckDetail.Count > 0)//确定检查问题 添加安全检查记录
|
||
BantchUpdateEntityNoCommit(listSafecheckDetail);
|
||
});
|
||
|
||
return true;
|
||
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 隐患上报 完成 修改各种状态 完善隐患库
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool DealEnd(string id)
|
||
{
|
||
var deal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(id, new string[] { "Nav_Submit.Nav_ListRiskSubmitContent", "Nav_Submit.Nav_ListRiskSubmitContent.Nav_SafeCheck", "Nav_SubmitContent.Nav_SafeCheckDetail", "Nav_SubmitContent.Nav_CheckMain", "Nav_SubmitContent.Nav_Question", "Nav_SubmitContent.Nav_Contents" });
|
||
|
||
deal.DEALSITUATION = (int)DealSituation.End;//结束
|
||
|
||
T_BS_RISK_SUBMIT subModel = deal.Nav_Submit;
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listContent = subModel.Nav_ListRiskSubmitContent;
|
||
|
||
//如果是手动上报 都是选择检查问题 不存在隐患入库
|
||
|
||
var content = deal.Nav_SubmitContent;
|
||
//deal.Nav_SubmitContent = null;//不能清空 否则RISK_SUBMIT_CONTENT_ID 会被清空
|
||
|
||
var modelNoOK = listContent.FirstOrDefault(e => e.ID != content.ID && (!e.ISBACK.HasValue || !e.ISBACK.Value) && e.RiskContentState.HasValue && e.RiskContentState != (int)RiskContentState.OK && e.RiskContentState != (int)RiskContentState.BackOK);
|
||
if (modelNoOK == null)
|
||
{
|
||
subModel.ISORDEREND = true;
|
||
}
|
||
|
||
content.OKDATE = DateTime.Now;
|
||
content.RiskContentState = (int)RiskContentState.OK;
|
||
|
||
if (!content.LastDateUser.HasValue || content.LastDateUser.Value > content.OKDATE)
|
||
content.ISFINISHINTTIME = true;
|
||
else
|
||
content.ISFINISHINTTIME = false;
|
||
|
||
var check = content.Nav_CheckMain;
|
||
|
||
//根据隐患上报中检查结果
|
||
//未发现此问题 无需隐患上报
|
||
//以问题描述一致 无需完善隐患库
|
||
|
||
//其他 手动填写 需要完善隐患库
|
||
//书写 隐患待上报 内容 发送给安环部对应的人 标准化描述 再审批流 入库
|
||
|
||
//检查问题
|
||
T_BS_CHECK_QUESTION modelQues = null;
|
||
T_BS_CHECK_MAIN modelCheck = null;
|
||
T_BS_CHECK_CONTENT_MAIN_DEPARTMENT mainDep = null;
|
||
if (content.Nav_SafeCheckDetail == null)
|
||
{
|
||
if (content.CHECK_MAIN_ID.HasValue)
|
||
{
|
||
#region 旧版
|
||
|
||
var checkMain = GetEntity<T_BS_CHECK_MAIN>(content.CHECK_MAIN_ID.Value);
|
||
|
||
if (checkMain.CHECK_TYPE_ID == subModel.CHECK_TYPE_ID && checkMain.CHECK_TYPE_LEVEL_ID == subModel.CHECK_TYPE_LEVEL_ID && checkMain.CHECK_QUESTION_ID == content.CHECK_QUESTION_ID && checkMain.RISK_AREA_ID == content.RISK_AREA_ID)
|
||
{
|
||
//全部都一样
|
||
}
|
||
else
|
||
{
|
||
//手动隐患上报
|
||
//选择 检查问题
|
||
//填写检查依据、检查区域
|
||
|
||
modelCheck = new T_BS_CHECK_MAIN();
|
||
modelCheck.ID = Guid.NewGuid();
|
||
modelCheck.CHECK_QUESTION_ID = content.CHECK_QUESTION_ID;
|
||
modelCheck.CHECKPROOF = content.PROOF;//检查依据
|
||
modelCheck.QUESTION_LEVEL = content.QUESTION_LEVEL;
|
||
modelCheck.SERIOUS_RISK = (content.QUESTION_LEVEL == (int)BSQuestionLevelEnum.重大) ? 1 : 0;
|
||
modelCheck.CHECK_TYPE_ID = subModel.CHECK_TYPE_ID;
|
||
modelCheck.CHECK_TYPE_LEVEL_ID = subModel.CHECK_TYPE_LEVEL_ID;
|
||
modelCheck.RISK_AREA_ID = content.RISK_AREA_ID;
|
||
modelCheck.CHECKOBJECT = content.Nav_SafeCheck.CHECKOBJECT.Value;
|
||
modelCheck.CHECK_PROJECT_ID = content.CHECK_PROJECT_ID;
|
||
modelCheck.CHECKCONTENT = content.CHECKCONTENT;
|
||
|
||
modelCheck.CHECK_PROJECT_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
modelCheck.NUM = content.CHECK_MAIN_ID != null ? content.Nav_CheckMain.NUM : 0;
|
||
|
||
modelCheck.ENABLE_STATUS = (int)FMEnableStatusEnum.启用;
|
||
modelCheck.IS_DELETED = false;
|
||
modelCheck.ORG_ID = deal.ORG_ID;
|
||
|
||
//modelCheck.ENTITY_ORG_TPYE = content.Nav_CheckMain.ENTITY_ORG_TPYE;
|
||
//modelCheck.FORM_ID = content.Nav_CheckMain.FORM_ID;
|
||
//modelCheck.FLOW_STATUS = content.Nav_CheckMain.FLOW_STATUS;
|
||
//modelCheck.FLOW_SEND_STATUS = content.Nav_CheckMain.FLOW_SEND_STATUS;
|
||
//modelCheck.FLOW_ID = content.Nav_CheckMain.FLOW_ID;
|
||
|
||
modelCheck.CREATE_TIME = DateTime.Now;
|
||
modelCheck.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
//modelCheck.MODIFY_TIME = content.Nav_CheckMain.MODIFY_TIME;
|
||
//modelCheck.MODIFIER_ID = content.Nav_CheckMain.MODIFIER_ID;
|
||
modelCheck.ISRISK = true;
|
||
modelCheck.CHECK_CONTENTS_ID = content.CHECK_CONTENTS_ID;
|
||
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(content.DEPARTMENT_ID.Value);
|
||
if (dep.USER_ID == content.USER_ID)
|
||
{
|
||
if (dep.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
mainDep = new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelCheck.ID,
|
||
ORG_ID = modelCheck.ORG_ID,
|
||
DEPARTMENT_ID = content.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
};
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
else
|
||
{
|
||
#region 新版 BS060
|
||
//检查内容 检查问题 整改建议与措施
|
||
|
||
modelCheck = new T_BS_CHECK_MAIN();
|
||
modelCheck.ID = Guid.NewGuid();
|
||
modelCheck.CHECK_QUESTION_ID = content.CHECK_QUESTION_ID;
|
||
modelCheck.CHECKPROOF = content.PROOF;//检查依据
|
||
modelCheck.QUESTION_LEVEL = content.QUESTION_LEVEL;
|
||
modelCheck.SERIOUS_RISK = (content.QUESTION_LEVEL == (int)BSQuestionLevelEnum.重大) ? 1 : 0;
|
||
modelCheck.CHECK_TYPE_ID = subModel.CHECK_TYPE_ID;
|
||
modelCheck.CHECK_TYPE_LEVEL_ID = subModel.CHECK_TYPE_LEVEL_ID;
|
||
modelCheck.RISK_AREA_ID = content.RISK_AREA_ID;
|
||
modelCheck.CHECKOBJECT = (int)content.Nav_Contents.CHECKOBJECT;//.Nav_SafeCheck.CHECKOBJECT.Value;
|
||
modelCheck.CHECK_PROJECT_ID = content.CHECK_PROJECT_ID;
|
||
modelCheck.CHECKCONTENT = content.CHECKCONTENT;
|
||
|
||
modelCheck.CHECK_PROJECT_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
modelCheck.NUM = 1;
|
||
|
||
modelCheck.ENABLE_STATUS = (int)FMEnableStatusEnum.启用;
|
||
modelCheck.IS_DELETED = false;
|
||
modelCheck.ORG_ID = deal.ORG_ID;
|
||
modelCheck.CREATE_TIME = DateTime.Now;
|
||
modelCheck.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
modelCheck.ISRISK = true;
|
||
modelCheck.CHECK_CONTENTS_ID = content.CHECK_CONTENTS_ID;
|
||
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(content.DEPARTMENT_ID.Value);
|
||
if (dep.USER_ID == content.USER_ID)
|
||
{
|
||
if (dep.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
mainDep = new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelCheck.ID,
|
||
ORG_ID = modelCheck.ORG_ID,
|
||
DEPARTMENT_ID = content.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
};
|
||
|
||
|
||
#endregion
|
||
}
|
||
}
|
||
else if (content.Nav_SafeCheckDetail.CHECKRESULT == (int)CHECKRESULTEnum.Same)
|
||
{
|
||
//安全检查 如果是 与问题描述一致 也不存在此问题
|
||
//无需 完善检查问题
|
||
}
|
||
else
|
||
{
|
||
|
||
//安全检查 结果 其他 隐患上报 隐患入库
|
||
|
||
//检查问题描述 检查依据 检查等级 是否重大隐患 根据页面数据赖
|
||
//检查区域等 根据检查问题来
|
||
|
||
//检查问题
|
||
modelQues = new T_BS_CHECK_QUESTION();
|
||
modelQues.ID = Guid.NewGuid();
|
||
modelQues.ORG_ID = deal.ORG_ID;
|
||
modelQues.DESCREPTION = content.DESCREPTION;//问题描述
|
||
modelQues.DEMAND = content.Nav_Question.DEMAND;//整改建议与措施
|
||
modelQues.CHECK_CONTENTS_ID = content.CHECK_CONTENTS_ID;
|
||
modelQues.QUESTION_LEVEL = (BSQuestionLevelEnum)content.QUESTION_LEVEL;
|
||
|
||
|
||
modelCheck = new T_BS_CHECK_MAIN();
|
||
modelCheck.ID = Guid.NewGuid();
|
||
modelCheck.CHECK_QUESTION_ID = modelQues.ID;
|
||
modelCheck.CHECKPROOF = content.PROOF;//检查依据
|
||
modelCheck.QUESTION_LEVEL = content.QUESTION_LEVEL;
|
||
modelCheck.SERIOUS_RISK = (content.QUESTION_LEVEL == (int)BSQuestionLevelEnum.重大) ? 1 : 0;
|
||
|
||
//var deal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(id, new string[] { "Nav_Submit.Nav_ListRiskSubmitContent", "Nav_SubmitContent.Nav_SafeCheckDetail.Nav_CheckMain", "Nav_SubmitContent.Nav_Question" });
|
||
|
||
modelCheck.CHECKOBJECT = content.Nav_SafeCheck.CHECKOBJECT.Value;
|
||
modelCheck.CHECK_PROJECT_ID = content.CHECK_PROJECT_ID;
|
||
modelCheck.CHECKCONTENT = content.CHECKCONTENT;
|
||
modelCheck.CHECK_TYPE_ID = content.Nav_SafeCheck.CHECK_TYPE_ID;
|
||
modelCheck.CHECK_TYPE_LEVEL_ID = content.Nav_SafeCheck.CHECK_TYPE_LEVEL_ID;
|
||
modelCheck.RISK_AREA_ID = content.RISK_AREA_ID;
|
||
modelCheck.ENABLE_STATUS = (int)FMEnableStatusEnum.启用;
|
||
modelCheck.NUM = content.CHECK_MAIN_ID != null ? content.Nav_CheckMain.NUM : 0;
|
||
modelCheck.IS_DELETED = false;
|
||
modelCheck.ORG_ID = deal.ORG_ID;
|
||
|
||
//modelCheck.ENTITY_ORG_TPYE = content.Nav_CheckMain.ENTITY_ORG_TPYE;
|
||
//modelCheck.FORM_ID = content.Nav_CheckMain.FORM_ID;
|
||
//modelCheck.FLOW_STATUS = content.Nav_CheckMain.FLOW_STATUS;
|
||
//modelCheck.FLOW_SEND_STATUS = content.Nav_CheckMain.FLOW_SEND_STATUS;
|
||
//modelCheck.FLOW_ID = content.Nav_CheckMain.FLOW_ID;
|
||
|
||
modelCheck.CREATE_TIME = DateTime.Now;
|
||
modelCheck.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
//modelCheck.MODIFY_TIME = content.Nav_CheckMain.MODIFY_TIME;
|
||
//modelCheck.MODIFIER_ID = content.Nav_CheckMain.MODIFIER_ID;
|
||
modelCheck.CHECK_PROJECT_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
modelCheck.ISRISK = true;
|
||
modelCheck.CHECK_CONTENTS_ID = content.CHECK_CONTENTS_ID;
|
||
|
||
//wyw1114-1
|
||
//modelCheck.DEPARTMENT_ID = content.DEPARTMENT_ID;
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(content.DEPARTMENT_ID.Value);
|
||
if (dep.USER_ID == content.USER_ID)
|
||
{
|
||
if (dep.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
mainDep = new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelCheck.ID,
|
||
ORG_ID = modelCheck.ORG_ID,
|
||
DEPARTMENT_ID = content.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
};
|
||
}
|
||
if (modelCheck != null && modelCheck.CHECKOBJECT == 0 && deal.Nav_Submit != null && deal.Nav_Submit.CHECKOBJECT.HasValue)
|
||
{
|
||
modelCheck.CHECKOBJECT = (int)deal.Nav_Submit.CHECKOBJECT.Value;
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(deal);//修改状态 审批结束
|
||
if (subModel.ISORDEREND)//隐患上报单 是否完成
|
||
UpdateEntityNoCommit(subModel);
|
||
UpdateEntityNoCommit(content);//隐患上报内容明细
|
||
if (modelQues != null)
|
||
UpdateEntityNoCommit(modelQues);
|
||
if (modelCheck != null)
|
||
UpdateEntityNoCommit(modelCheck);
|
||
if (mainDep != null)
|
||
UpdateEntityNoCommit(mainDep);
|
||
});
|
||
return true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 隐患上报详情待入库 审批回调
|
||
/// api/BS/BSRiskSubmit/DealEnd
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool ApproveBackBS048(string id)
|
||
{
|
||
//问题ID 判断检查问题描述 整改建议与措施
|
||
//如果不完全一致 添加问题 修改问题ID
|
||
//入库
|
||
Guid idGuid = new Guid(id);
|
||
T_BS_RISK_SUBMIT_CONTENT_TEMP model = GetEntity<T_BS_RISK_SUBMIT_CONTENT_TEMP>(idGuid, new string[] { "Nav_CheckQuestion" });
|
||
|
||
T_BS_CHECK_QUESTION modelQ = GetEntity<T_BS_CHECK_QUESTION>(e => e.DEMAND == model.DEMAND && e.DESCREPTION == model.DESCREPTION);
|
||
bool isNeedInsertQuestion = false;
|
||
bool isNeedInsertMain = false;
|
||
if (modelQ == null)
|
||
{
|
||
isNeedInsertQuestion = true;
|
||
//添加 问题
|
||
modelQ = new T_BS_CHECK_QUESTION();
|
||
modelQ.DEMAND = model.DEMAND;
|
||
modelQ.DESCREPTION = model.DESCREPTION;
|
||
modelQ.IS_DELETED = false;
|
||
modelQ.ID = Guid.NewGuid();
|
||
modelQ.NUM = 0;
|
||
modelQ.ORG_ID = model.ORG_ID;
|
||
modelQ.ENABLE_STATUS = (int)FMEnableStatusEnum.启用;
|
||
|
||
model.CHECK_QUESTION_ID = modelQ.ID;
|
||
}
|
||
else if (modelQ.IS_DELETED)
|
||
{
|
||
modelQ.IS_DELETED = false;
|
||
model.CHECK_QUESTION_ID = modelQ.ID;
|
||
}
|
||
|
||
T_BS_CHECK_MAIN modelInsert = new T_BS_CHECK_MAIN();
|
||
|
||
if (isNeedInsertQuestion)
|
||
{
|
||
isNeedInsertMain = true;
|
||
}
|
||
else
|
||
{
|
||
var CheckMain = GetEntity<T_BS_CHECK_MAIN>(e => e.CHECKCONTENT == model.CHECKCONTENT && e.CHECKCONTENT == model.CHECKCONTENT && e.CHECK_QUESTION_ID == model.CHECK_QUESTION_ID);
|
||
if (CheckMain == null)
|
||
isNeedInsertMain = true;
|
||
}
|
||
|
||
|
||
|
||
if (isNeedInsertMain)
|
||
{
|
||
modelInsert.ID = model.ID;
|
||
modelInsert.CHECKOBJECT = model.CHECKOBJECT;
|
||
modelInsert.CHECK_PROJECT_ID = model.CHECK_PROJECT_ID;
|
||
modelInsert.CHECK_QUESTION_ID = isNeedInsertQuestion ? modelQ.ID : model.CHECK_QUESTION_ID; //如果有添加问题
|
||
modelInsert.CHECKCONTENT = model.CHECKCONTENT;
|
||
modelInsert.CHECKPROOF = model.CHECKPROOF;
|
||
modelInsert.QUESTION_LEVEL = model.QUESTION_LEVEL;
|
||
modelInsert.SERIOUS_RISK = model.SERIOUS_RISK;
|
||
modelInsert.CHECK_TYPE_ID = model.CHECK_TYPE_ID;
|
||
modelInsert.CHECK_TYPE_LEVEL_ID = model.CHECK_TYPE_LEVEL_ID;
|
||
modelInsert.RISK_AREA_ID = model.RISK_AREA_ID;
|
||
modelInsert.ENABLE_STATUS = (int)FMEnableStatusEnum.启用;
|
||
modelInsert.NUM = 0;
|
||
modelInsert.IS_DELETED = false;
|
||
modelInsert.ORG_ID = model.ORG_ID;
|
||
//modelInsert.ENTITY_ORG_TPYE =model. ;
|
||
//modelInsert.FORM_ID =model. ;
|
||
//modelInsert.FLOW_STATUS=model. ;
|
||
//modelInsert.FLOW_SEND_STATUS=model. ;
|
||
//modelInsert.FLOW_ID =model. ;
|
||
//modelInsert.CREATE_TIME =model. ;
|
||
//modelInsert.MODIFY_TIME =model. ;
|
||
//modelInsert.CREATER_ID =model. ;
|
||
//modelInsert.MODIFIER_ID =model. ;
|
||
modelInsert.CHECK_PROJECT_PROJECT_CATEGORY_ID = model.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelInsert.ISRISK = true;
|
||
}
|
||
|
||
model.ISINSERT = true;//反正都入库
|
||
model.ORDERTYPE = OrderType.end;
|
||
|
||
model.Nav_CheckQuestion = null;
|
||
UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(model);//更新中间信息
|
||
if (isNeedInsertQuestion)
|
||
UpdateEntityNoCommit(modelQ);//添加问题
|
||
if (isNeedInsertMain)
|
||
UpdateEntityNoCommit(modelInsert);//隐患入库
|
||
});
|
||
return true;
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 延期申请 完成 修改状态、最后完成时间 给验收人发送通知
|
||
/// api/BS/BSRiskSubmit/DealEnd
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool DealEnd_BS_DelayApply(string id)
|
||
{
|
||
|
||
var entity = GetEntity<T_BS_RISK_SUBMIT_DELAY_APPLY>(id, new string[] { "Nav_ListApplyDetail.Nav_SubmitContent.Nav_UserCheck" });
|
||
entity.OPERARTETYPE = (int)OperateType.Check;
|
||
//修改记录信息 状态 最后完成时间
|
||
//给验收人发送通知
|
||
|
||
var listContent = entity.Nav_ListApplyDetail;
|
||
List<T_FM_NOTIFICATION_TASK> listNotice = new List<T_FM_NOTIFICATION_TASK>();
|
||
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listBackAll = new List<T_BS_RISK_SUBMIT_CONTENT>();
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listRiskContent = new List<T_BS_RISK_SUBMIT_CONTENT>();
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listBack = null;
|
||
List<Guid> listCheckUserID = new List<Guid>();
|
||
foreach (var item in listContent)
|
||
{
|
||
if (item.IS_DELETED)
|
||
{
|
||
continue;
|
||
}
|
||
|
||
T_BS_RISK_SUBMIT_CONTENT subContent = item.Nav_SubmitContent;
|
||
|
||
//自动生成的
|
||
if (subContent.RiskContentState == (int)RiskContentState.OKNotBack || subContent.RiskContentState == (int)RiskContentState.ReportedDelay)
|
||
{
|
||
BaseFilter filter = null;
|
||
//如果是审批退回
|
||
//同时修改 退回自动新增的隐患上报
|
||
//审批退回 自动生成的单 状态为 【已修改落实整改人 ActualDealChange = 32】
|
||
listBack = this.GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.PARENTID.HasValue && e.PARENTID.Value == subContent.ID && e.RiskContentState.HasValue && e.RiskContentState == (int)RiskContentState.ActualDealChange && e.ACTUAL_DEAL_USER_ID.HasValue && e.ACTUAL_DEAL_USER_ID.Value == subContent.ACTUAL_DEAL_USER_ID, filter, null).ToList();
|
||
|
||
|
||
|
||
if (listBack != null && listBack.Count > 0)
|
||
{
|
||
foreach (var item2 in listBack)
|
||
{
|
||
item2.LastDateUser = subContent.LastDateSystem;
|
||
}
|
||
listBackAll.AddRange(listBack);
|
||
}
|
||
}
|
||
|
||
subContent.RiskContentState = (int)RiskContentState.ReportedDelay;
|
||
subContent.LastDateUser = item.LastDateApply;
|
||
listRiskContent.Add(subContent);
|
||
|
||
item.CHCEKUSERID = subContent.CHECK_USER_ID;//指定验收人
|
||
|
||
if (!listCheckUserID.Contains(subContent.CHECK_USER_ID.Value))
|
||
{
|
||
var notice = NotificationTaskService.InsertUserNoticeTaskModel("延期整改通知单:" + entity.NAME.Replace("延期申请:", ""), entity.ID, entity.ORG_ID, subContent.CHECK_USER_ID.Value, subContent.Nav_UserCheck.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS046_SHOWPRINT");
|
||
listNotice.Add(notice);
|
||
}
|
||
}
|
||
|
||
//修改 model
|
||
UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(entity);//修改状态
|
||
BantchUpdateEntityNoCommit(listContent);//修改整改落实人
|
||
BantchUpdateEntityNoCommit(listRiskContent);//修改上报详情整改期限、状态
|
||
if (listBackAll != null && listBackAll.Count > 0)
|
||
BantchUpdateEntityNoCommit(listBackAll);//修改 自动生成的整改单
|
||
|
||
//if (notice != null)//发送通知
|
||
// UpdateEntityNoCommit(notice);
|
||
if (listNotice.Count > 0)//发送通知
|
||
{
|
||
BantchSaveEntityNoCommit(listNotice);
|
||
}
|
||
});
|
||
|
||
return true;
|
||
|
||
}
|
||
|
||
/// <summary>
|
||
/// 安全检查线下完成后进入审批 审批流回调
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool CheckAuditEnd(string id)
|
||
{
|
||
//弃用具体看 CheckAuditEndNwe
|
||
|
||
var entity = GetEntity<T_BS_SAFE_CHECK>(id, new string[] { "Nav_ListSafeCheckDetail" });
|
||
|
||
if (!entity.PLAN_SET_ID.HasValue || !entity.CHECKTIME.HasValue || entity.CHECKTIME.Value.Date == DateTime.Now.Date) //同一天
|
||
{
|
||
entity.ISFINISHINTTIME = true;
|
||
}
|
||
else
|
||
{
|
||
var modelPlanset = GetEntity<T_BS_PLAN_SET>(entity.PLAN_SET_ID.Value);
|
||
if (modelPlanset == null)
|
||
{
|
||
entity.ISFINISHINTTIME = true;
|
||
}
|
||
else
|
||
{
|
||
DateTime dtLast = SafeCheckService.GetEndTime((BSPLANCHECKFREQUENCYEnum)modelPlanset.PLANCHECKFREQUENCY, modelPlanset.CHECKTIME);//最迟时间
|
||
if (!entity.ISFINISHINTTIME && DateTime.Now <= dtLast)
|
||
{
|
||
entity.ISFINISHINTTIME = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
// 1、审批记录单 判断审批结果 修改安全检查表制定的单审批状态
|
||
T_PF_APPROVE modelApprove = this.GetEntity<T_PF_APPROVE>(e => e.DATA_ID == Guid.Parse(id) && e.APPROVE_CODE == "BS034_SHOWPRINT");
|
||
if (modelApprove.APPROVE_STATUS == 10)
|
||
entity.STATUCHECK = (int)HMAuditStatusEnmu.归档; //已完成
|
||
else if (modelApprove.APPROVE_STATUS == 20)
|
||
entity.STATUCHECK = (int)HMAuditStatusEnmu.审批驳回; //已驳回
|
||
|
||
//组合库
|
||
List<T_BS_CHECK_MAIN> listCheckMain = new List<T_BS_CHECK_MAIN>();
|
||
List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT> listCheckMainDep = new List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT>();
|
||
List<T_BS_SAFE_CHECK_DETAIL> listCheckDetail = new List<T_BS_SAFE_CHECK_DETAIL>();
|
||
|
||
List<T_BS_CHECK_MAIN> listUpdateMain = new List<T_BS_CHECK_MAIN>();
|
||
|
||
List<T_BS_CHECK_MAIN> checkMainChangeAll = new List<T_BS_CHECK_MAIN>();//所有被修改的检查库
|
||
var checkMainChange = entity.Nav_ListSafeCheckDetail.Where(e => e.CHECK_MAIN_ID.HasValue && e.ISMAINCHANGE);
|
||
if (checkMainChange != null && checkMainChange.Any())
|
||
{
|
||
List<Guid> listMainID = checkMainChange.Select(e => e.CHECK_MAIN_ID.Value).ToList();
|
||
checkMainChangeAll = GetEntities<T_BS_CHECK_MAIN>(e => listMainID.Contains(e.ID), null, new string[] { "Nav_ListMainDep" }).ToList();
|
||
}
|
||
|
||
List<T_FM_DEPARTMENT> listDepMainCheck = new List<T_FM_DEPARTMENT>();
|
||
T_FM_DEPARTMENT depMainCheck = null;
|
||
|
||
T_FM_DEPARTMENT depMade = null;//制表人 所在组织
|
||
//可能和安全隐患对接
|
||
foreach (var item in entity.Nav_ListSafeCheckDetail)
|
||
{
|
||
if (entity.RISKSTATE == 0 && item.CHECKRESULT.HasValue && (item.CHECKRESULT.Value == 20 || item.CHECKRESULT.Value == 30))
|
||
{
|
||
//检查有问题 待安全隐患上报 20 与描述一致 30 其他
|
||
entity.RISKSTATE = 10;
|
||
}
|
||
|
||
#region 如果 不是检查库 需要添加组合库 同时修改检查信息中的ID
|
||
|
||
if ((item.CHECK_MAIN_ID == null || item.CHECK_MAIN_ID == Guid.Empty) && item.CHECKRESULT == 20 && item.QUESTION_LEVEL.HasValue)
|
||
{
|
||
|
||
#region 检查制定 手动添加 记录
|
||
//添加隐患库
|
||
//检查问题 手动输入 没有 整改建议与措施 不能入库
|
||
T_BS_CHECK_MAIN modelAdd = new T_BS_CHECK_MAIN();
|
||
modelAdd.ID = Guid.NewGuid();
|
||
modelAdd.ISRISK = true;
|
||
|
||
modelAdd.CHECKOBJECT = entity.CHECKOBJECT.Value;
|
||
modelAdd.CHECK_PROJECT_ID = item.CHECK_PROJECT_ID;
|
||
//modelAdd.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
|
||
modelAdd.CHECK_QUESTION_ID = GetEntity<T_BS_SAFE_CHECK_DETAIL_QUESTION>(e => e.SAFE_CHECK_DETAIL_ID == item.ID).SAFE_CHECK_QUESTION_ID;
|
||
|
||
modelAdd.CHECKCONTENT = item.CHECKCONTENT;
|
||
modelAdd.CHECKPROOF = item.CHECKPROOF;
|
||
|
||
modelAdd.QUESTION_LEVEL = item.QUESTION_LEVEL.Value;
|
||
|
||
if (modelAdd.QUESTION_LEVEL == 10)
|
||
modelAdd.SERIOUS_RISK = 1;
|
||
else
|
||
modelAdd.SERIOUS_RISK = 0;
|
||
|
||
modelAdd.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
modelAdd.CHECK_TYPE_LEVEL_ID = entity.CHECK_TYPE_LEVEL_ID;
|
||
modelAdd.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
modelAdd.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
modelAdd.NUM = 0;
|
||
modelAdd.IS_DELETED = false;
|
||
modelAdd.ORG_ID = item.ORG_ID;
|
||
//modelAdd.FORM_ID = item.FORM_ID;
|
||
modelAdd.CREATE_TIME = DateTime.Now;
|
||
modelAdd.CREATER_ID = entity.USERID_DOPLAN.Value;
|
||
|
||
//modelAdd.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
depMainCheck = listDepMainCheck.FirstOrDefault(e => e.ID == item.DEPARTMENT_ID);
|
||
if (depMainCheck == null)
|
||
{
|
||
depMainCheck = GetEntity<T_FM_DEPARTMENT>(item.DEPARTMENT_ID.Value);
|
||
listDepMainCheck.Add(depMainCheck);
|
||
}
|
||
//if (item.CREATER_ID == depMainCheck.USER_ID)
|
||
//{
|
||
// if (depMainCheck.DEPARTMENT_TYPE == 2)
|
||
// {
|
||
// modelAdd.RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
// }
|
||
// else
|
||
// {
|
||
// modelAdd.RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
// }
|
||
//}
|
||
//else
|
||
//{
|
||
// modelAdd.RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
//}
|
||
|
||
|
||
//modelAdd.ENTITY_ORG_TPYE = item.ENTITY_ORG_TPYE;
|
||
//modelAdd.FLOW_STATUS = item.FLOW_STATUS;
|
||
//modelAdd.FLOW_SEND_STATUS = item.FLOW_SEND_STATUS;
|
||
//modelAdd.FLOW_ID = item.FLOW_ID;
|
||
//modelAdd.MODIFY_TIME = item.MODIFY_TIME;
|
||
//modelAdd.MODIFIER_ID = item.MODIFIER_ID;
|
||
|
||
modelAdd.CHECK_PROJECT_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelAdd.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID;
|
||
listCheckMain.Add(modelAdd);//不判断去重了,按理有就直接选择了,不会删除自己再手动选
|
||
|
||
//会写到检查信息
|
||
item.CHECK_MAIN_ID = modelAdd.ID;
|
||
if (depMade == null)
|
||
{
|
||
depMade = GetEntity<T_FM_USER>(entity.USERID_DOPLAN.Value, "Nav_Department").Nav_Department;
|
||
}
|
||
|
||
//组织范围
|
||
listCheckMainDep.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelAdd.ID,
|
||
IS_DELETED = false,
|
||
ORG_ID = modelAdd.ORG_ID,
|
||
//ENTITY_ORG_TPYE = ,
|
||
//FORM_ID = ,
|
||
//FLOW_STATUS = ,
|
||
//FLOW_SEND_STATUS = ,
|
||
//FLOW_ID = ,
|
||
CREATE_TIME = modelAdd.CREATE_TIME,
|
||
MODIFY_TIME = modelAdd.CREATE_TIME,
|
||
CREATER_ID = modelAdd.CREATER_ID,
|
||
MODIFIER_ID = modelAdd.CREATER_ID,
|
||
DEPARTMENT_ID = depMade.ID,//制表人 所在组织
|
||
//RESPONOBJECT = modelAdd.RESPONOBJECT,
|
||
});
|
||
|
||
listCheckDetail.Add(item);
|
||
|
||
#endregion
|
||
}
|
||
else if (item.ISMAINCHANGE && item.CHECK_MAIN_ID.HasValue && checkMainChangeAll != null && checkMainChangeAll.Count > 0)
|
||
{
|
||
#region 安全检查 修改 添加隐患库 或者 修改 隐患库安全检查可修改的字段 修改 标志符
|
||
|
||
var main = checkMainChangeAll.FirstOrDefault(e => e.ID == item.CHECK_MAIN_ID.Value);
|
||
if (main == null)
|
||
continue;
|
||
if (main.CHECK_PROJECT_ID != item.CHECK_PROJECT_ID || main.CHECK_PROJECT_PROJECT_CATEGORY_ID != item.CHECK_PROJECT_PROJECT_CATEGORY_ID || main.CHECKCONTENT != item.CHECKCONTENT || main.CHECKPROOF != item.CHECKPROOF || main.RISK_AREA_ID != item.RISK_AREA_ID || (item.QUESTION_LEVEL.HasValue && main.QUESTION_LEVEL != item.QUESTION_LEVEL))
|
||
{
|
||
//有修改
|
||
if (!main.ISRISK)
|
||
{
|
||
//安全库 被修改
|
||
main.ENABLE_STATUS = 1;// FMEnableStatusEnum.禁用;
|
||
listUpdateMain.Add(main);
|
||
//隐患库被修改
|
||
//修改 修改的信息 更新到 库中 删除新增的库信息
|
||
T_BS_CHECK_MAIN modelMain = new T_BS_CHECK_MAIN();
|
||
modelMain.ID = Guid.NewGuid();
|
||
modelMain.CHECKOBJECT = main.CHECKOBJECT;
|
||
modelMain.NUM = main.NUM;
|
||
modelMain.CHECK_PROJECT_ID = item.CHECK_PROJECT_ID;
|
||
modelMain.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID == null ? main.CHECK_QUESTION_ID : item.CHECK_QUESTION_ID;
|
||
modelMain.CHECKCONTENT = item.CHECKCONTENT;
|
||
modelMain.CHECKPROOF = item.CHECKPROOF;
|
||
modelMain.QUESTION_LEVEL = item.QUESTION_LEVEL.HasValue ? item.QUESTION_LEVEL.Value : main.QUESTION_LEVEL;
|
||
modelMain.SERIOUS_RISK = modelMain.QUESTION_LEVEL == 10 ? 1 : 0;// (int)item.SERIOUS_RISK;
|
||
modelMain.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
modelMain.CHECK_TYPE_LEVEL_ID = entity.CHECK_TYPE_LEVEL_ID;
|
||
modelMain.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
modelMain.ORG_ID = item.ORG_ID;
|
||
modelMain.ENTITY_ORG_TPYE = item.ENTITY_ORG_TPYE;
|
||
modelMain.FORM_ID = item.FORM_ID;
|
||
modelMain.FLOW_STATUS = item.FLOW_STATUS;
|
||
modelMain.FLOW_SEND_STATUS = item.FLOW_SEND_STATUS;
|
||
modelMain.FLOW_ID = item.FLOW_ID;
|
||
modelMain.CREATE_TIME = DateTime.Now;
|
||
modelMain.MODIFY_TIME = DateTime.Now;
|
||
modelMain.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
modelMain.MODIFIER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
modelMain.CHECK_PROJECT_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelMain.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID;
|
||
modelMain.ISRISK = true;
|
||
modelMain.IS_DELETED = false;
|
||
modelMain.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
|
||
modelMain.CHECK_CONTENTS_ID = main.CHECK_CONTENTS_ID;//改不到检查内容
|
||
|
||
listCheckMain.Add(modelMain);//添加待添加的信息 和 手动添加的一起
|
||
foreach (var itemDe in main.Nav_ListMainDep)
|
||
{
|
||
listCheckMainDep.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelMain.ID,
|
||
IS_DELETED = false,
|
||
ORG_ID = modelMain.ORG_ID,
|
||
//ENTITY_ORG_TPYE = ,
|
||
//FORM_ID = ,
|
||
//FLOW_STATUS = ,
|
||
//FLOW_SEND_STATUS = ,
|
||
//FLOW_ID = ,
|
||
CREATE_TIME = modelMain.CREATE_TIME,
|
||
MODIFY_TIME = modelMain.CREATE_TIME,
|
||
CREATER_ID = modelMain.CREATER_ID,
|
||
MODIFIER_ID = modelMain.CREATER_ID,
|
||
DEPARTMENT_ID = itemDe.DEPARTMENT_ID,
|
||
RESPONOBJECT = itemDe.RESPONOBJECT,
|
||
});
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//隐患库 修改 安全检查可修改到的信息
|
||
main.MODIFIER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
main.MODIFY_TIME = DateTime.Now;
|
||
main.CHECK_PROJECT_ID = item.CHECK_PROJECT_ID;
|
||
main.CHECK_PROJECT_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
main.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID;
|
||
main.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
|
||
main.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
main.QUESTION_LEVEL = item.QUESTION_LEVEL.HasValue ? item.QUESTION_LEVEL.Value : main.QUESTION_LEVEL;
|
||
main.SERIOUS_RISK = main.QUESTION_LEVEL == 10 ? 1 : 0;
|
||
main.CHECKCONTENT = item.CHECKCONTENT;
|
||
main.CHECKPROOF = item.CHECKPROOF;
|
||
listUpdateMain.Add(main);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//手动修改 并未实际修改
|
||
item.ISMAINCHANGE = false;
|
||
listCheckDetail.Add(item);//实质没有修改
|
||
}
|
||
#endregion
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
entity.STATECHECK = STATECHECK.Archived;
|
||
//给制表人发送待办
|
||
if (entity.RISKSTATE == 10 && entity.USERID_DOPLAN.HasValue)
|
||
{
|
||
//检查发现问题问题 走隐患上报
|
||
//最后时间是今天
|
||
DateTime dtTimeOut = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
|
||
if (entity.Nav_User == null)
|
||
entity.Nav_User = GetEntity<T_FM_USER>(entity.USERID_DOPLAN.Value);
|
||
|
||
//给 表单制定人 添加待办
|
||
//NotificationTaskService.SendNotificationTask("隐患待上报:" + entity.NAME, modelSub.ID, entity.ORG_ID, entity.USERID_DOPLAN.Value, entity.Nav_User.NAME, DateTime.Now, dtTimeOut, 0, "BS006", () =>
|
||
// {
|
||
// UpdateEntityNoCommit(entity);//修改隐患
|
||
// UpdateEntity(modelSub);//添加隐患上报
|
||
// });
|
||
NotificationTaskService.SendNotificationTask("隐患待上报:" + entity.NAME.Replace("安全检查:", ""), entity.ID, entity.ORG_ID, entity.USERID_DOPLAN.Value, entity.Nav_User.NAME, DateTime.Now, dtTimeOut, 0, "BS006", () =>
|
||
{
|
||
UpdateEntityNoCommit(entity);//修改隐患 //UpdateEntity(modelSub);//添加隐患上报
|
||
if (listCheckMain.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listCheckMain);
|
||
if (listCheckMainDep.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listCheckMainDep);
|
||
if (listCheckDetail != null && listCheckDetail.Any())//修改检查明细 MainID ISMAINCHANGE
|
||
BantchUpdateEntityNoCommit(listCheckDetail);
|
||
if (listUpdateMain != null && listUpdateMain.Any())//安全检查库修改不可用
|
||
BantchUpdateEntityNoCommit(listUpdateMain);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
//检查没问题 直接结束 安全检查
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
UpdateEntityNoCommit(entity); //保存主表
|
||
if (listCheckMain.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listCheckMain);
|
||
if (listCheckMainDep.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listCheckMainDep);
|
||
if (listCheckDetail != null && listCheckDetail.Any())//修改检查明细 MainID ISMAINCHANGE
|
||
BantchUpdateEntityNoCommit(listCheckDetail);
|
||
if (listUpdateMain != null && listUpdateMain.Any())//安全检查库修改不可用
|
||
BantchUpdateEntityNoCommit(listUpdateMain);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 审批流回调
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool CheckPlanAuditEnd(string id)
|
||
{
|
||
var entity = GetEntity<T_BS_SAFE_CHECK>(id);
|
||
// 1、审批记录单 判断审批结果 修改安全检查表制定的单审批状态
|
||
T_PF_APPROVE modelApprove = this.GetEntity<T_PF_APPROVE>(e => e.DATA_ID == Guid.Parse(id) && e.APPROVE_CODE == "BS032_SHOWPRINT");
|
||
entity.APPROVE_ID = modelApprove.ID;
|
||
if (modelApprove.APPROVE_STATUS == 10)
|
||
{
|
||
//已完成
|
||
entity.STATUSPLAN = (int)HMAuditStatusEnmu.归档;
|
||
}
|
||
else if (modelApprove.APPROVE_STATUS == 20)
|
||
{
|
||
//已驳回 修改审核ID信息 和处理状态
|
||
entity.STATUSPLAN = (int)HMAuditStatusEnmu.审批驳回;
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
UpdateEntityNoCommit(entity); //保存主表
|
||
});
|
||
return true;
|
||
}
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
|
||
//2、添加安全检查填写表单(配置) BS034
|
||
//3、给被安排检查的人去添加 代办事项 通知去安检
|
||
|
||
//查找所有本次安检的人员
|
||
var CheckUser = this.GetEntities<T_BS_SAFE_CHECK_DETAIL_USER>(e => !e.IS_DELETED && e.SAFE_CHECK_ID == entity.ID, null, new string[] { "Nav_User" }).Select(e => e.Nav_User).Distinct(e => e.ID).ToList();
|
||
List<Guid> listUserId = new List<Guid>();
|
||
List<string> listUserName = new List<string>();
|
||
for (int i = 0; i < CheckUser.Count; i++)
|
||
{
|
||
listUserId.Add(CheckUser[i].ID);
|
||
listUserName.Add(CheckUser[i].NAME);
|
||
}
|
||
|
||
//直接发送检查记录
|
||
//修改为 发送检查通知 检查人 查看后 再收到检查记录表
|
||
|
||
entity.CHECKFINISHINTTIME = DateTime.Now;
|
||
|
||
if (!entity.CHECKTIME.HasValue || !entity.PLAN_SET_ID.HasValue || entity.CHECKTIME.Value.Date == DateTime.Now.Date)
|
||
{
|
||
entity.ISCHECKFINISHINTTIME = true;
|
||
}
|
||
else
|
||
{
|
||
var plan = GetEntity<T_BS_PLAN_SET>(entity.PLAN_SET_ID.Value);
|
||
//查询 时间频率对应最后时间
|
||
DateTime dtEnd = SafeCheckService.GetEndTime((BSPLANCHECKFREQUENCYEnum)plan.PLANCHECKFREQUENCY, entity.CHECKTIME.Value);
|
||
|
||
if (dtEnd >= DateTime.Now)
|
||
entity.ISCHECKFINISHINTTIME = true;
|
||
else
|
||
entity.ISCHECKFINISHINTTIME = false;
|
||
}
|
||
|
||
if (listUserId.Count > 0)
|
||
{
|
||
entity.STATUCHECK = (int)HMAuditStatusEnmu.确认中;//给验收人 发送确认通知
|
||
|
||
DateTime dtTimeOut = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_SafeCheck_Make_Check, entity.ORG_ID.Value, DateTime.Now, null, entity.CHECKTIME);// entity.LIMITDATETIME
|
||
|
||
//最后时间是今天
|
||
//DateTime dtTimeOut = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
|
||
//Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
|
||
////给 T_FM_NOTIFICATION_TASK 添加实体
|
||
////只是通知,不需要表单
|
||
//NotificationTaskService.SendNotificationTask(entity.NAME, entity.ID, orgId, listUserId, listUserName, DateTime.Now, dtTimeOut, 0, "BS034", () =>
|
||
//{
|
||
// UpdateEntityNoCommit(entity);
|
||
//});
|
||
List<Guid> listUserIDDone = new List<Guid>();//需要默认处理的待办
|
||
#region 制表确认 默认处理
|
||
|
||
if (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue)
|
||
{
|
||
listUserIDDone.Add(APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value);
|
||
}
|
||
|
||
if (entity.USERID_DOPLAN.HasValue)
|
||
{
|
||
if (!listUserIDDone.Contains(entity.USERID_DOPLAN.Value))
|
||
{
|
||
listUserIDDone.Add(entity.USERID_DOPLAN.Value);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
List<T_BS_SAFE_CHECK_DETAIL_USER> listUserCheck = null;
|
||
if (entity.USERID_DOPLAN.HasValue && listUserId.Contains(entity.USERID_DOPLAN.Value))
|
||
{
|
||
#region 旧方法
|
||
////如果检查人员 包含 制表人
|
||
//listUserCheck = this.GetEntities<T_BS_SAFE_CHECK_DETAIL_USER>(e => !e.IS_DELETED && e.SAFE_CHECK_ID == entity.ID && e.USER_ID == entity.USERID_DOPLAN.Value); //如果是主要检查人 修改为已 确认
|
||
//if (listUserCheck != null && listUserCheck.Any())
|
||
//{
|
||
// foreach (var item in listUserCheck)
|
||
// {
|
||
// item.SAFECHECKSTATE = (int)SAFECHECKSTATEEnum.viewDoneSign;
|
||
// if (item.ISMAINCHECK)
|
||
// {
|
||
// item.ISCHECK = true;//检查结果确认
|
||
// item.CHECKTIME = DateTime.Now;
|
||
// }
|
||
// }
|
||
//}
|
||
#endregion
|
||
|
||
#region 新方法 主要处理 默认 【制表确认】
|
||
|
||
//如果检查人员 包含 制表人
|
||
var listUserAll = this.GetEntities<T_BS_SAFE_CHECK_DETAIL_USER>(e => !e.IS_DELETED && e.SAFE_CHECK_ID == entity.ID); //如果是主要检查人 修改为已 确认
|
||
|
||
foreach (var item in listUserAll)
|
||
{
|
||
if (item.SAFECHECKSTATE.HasValue && item.SAFECHECKSTATE == 80)//已经检查过了 待办消息默认审批通过
|
||
{
|
||
listUserIDDone.Add(item.USER_ID);
|
||
}
|
||
}
|
||
|
||
if (listUserAll != null && listUserAll.Any())
|
||
{
|
||
foreach (var item in listUserAll)
|
||
{
|
||
//if (item.USER_ID == entity.USERID_DOPLAN.Value)
|
||
if (listUserIDDone.Contains(item.USER_ID))
|
||
{
|
||
if (item.SAFECHECKSTATE < (int)SAFECHECKSTATEEnum.viewDoneSign)
|
||
{
|
||
item.SAFECHECKSTATE = (int)SAFECHECKSTATEEnum.viewDoneSign;
|
||
}
|
||
//item.SAFECHECKSTATE = (int)SAFECHECKSTATEEnum.viewDoneSign;
|
||
if (item.ISMAINCHECK)
|
||
{
|
||
item.ISCHECK = true;//检查结果确认
|
||
item.CHECKTIME = DateTime.Now;
|
||
}
|
||
if (listUserCheck == null)
|
||
{
|
||
listUserCheck = new List<T_BS_SAFE_CHECK_DETAIL_USER>();
|
||
}
|
||
listUserCheck.Add(item);
|
||
}
|
||
//else
|
||
//{
|
||
// //判断处理待办
|
||
// if (item.ISCHECK && !listUserIDDone.Contains(item.USER_ID))
|
||
// {
|
||
// listUserIDDone.Add(item.USER_ID);
|
||
// }
|
||
//}
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
|
||
//BS034_SHOWPRINT=> BS032_SHOWPRINT
|
||
NotificationTaskService.SendNotificationTask((entity.NAME + "-确认"), entity.ID, orgId, listUserId, listUserName, DateTime.Now, dtTimeOut, 0, "BS032_SHOWPRINT", () =>
|
||
{
|
||
UpdateEntityNoCommit(entity);
|
||
if (listUserCheck != null && listUserCheck.Any())
|
||
{
|
||
BantchSaveEntityNoCommit(listUserCheck);
|
||
}
|
||
}, "", listUserIDDone);
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region FO
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_FOCrucialLicenseJobOutsource(string id)
|
||
{
|
||
//var entity = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(id, false, "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson");
|
||
var entity = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB_OUTSOURCE>(id, new string[] { "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson" });// wyw
|
||
|
||
entity.IS_PUBLISH = (int)FOPreMeetingStatusEnum.归档;
|
||
//触发技术交底表
|
||
var tech = new T_FO_TECH_DISCLOSURE_FROM();
|
||
var techUsers = new List<T_FO_TECH_DISCLOSURE_PERSON>();
|
||
var notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var techForm = this.GetEntity<T_FO_TECH_DISCLOSURE_FROM>(t => t.JOB_NAME_OUTSOURCE_ID == entity.ID);
|
||
if (techForm == null)
|
||
{
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.技术交底表编号;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
//主表
|
||
tech.CODE = codeList[0];
|
||
tech.ORG_ID = entity.ORG_ID;
|
||
tech.OPERATION_STEP_ID = entity.OPERATION_STEP_ID;
|
||
tech.JOB_NAME_OUTSOURCE_ID = entity.ID;
|
||
tech.JOB_LOCATION = entity.JOB_LOCATION;
|
||
tech.DISCLOSURE_PERSON_ID = entity.APPLY_USER_ID;
|
||
tech.IS_AUTO = (int)ISImportantEnum.是;
|
||
tech.IS_OUTSOURCE = true;
|
||
tech.RELATED_ID = entity.RELATED_ID;
|
||
//if (entity.MONITOR_USER_ID != null)
|
||
//{
|
||
// T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
|
||
// person.ORG_ID = entity.ORG_ID;
|
||
// person.USER_ID = entity.MONITOR_USER_ID;
|
||
// person.TECH_DISCLOSURE_FROM_ID = tech.ID;
|
||
// person.CREATER_ID = entity.CREATER_ID;
|
||
// techUsers.Add(person);
|
||
//}
|
||
if (entity.Nav_CrucialLicensePerson != null && entity.Nav_CrucialLicensePerson.Any())
|
||
{
|
||
entity.Nav_CrucialLicensePerson.ForEach(t =>
|
||
{
|
||
T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
|
||
person.ORG_ID = t.ORG_ID;
|
||
person.RELATED_USER_ID = t.USER_ID;
|
||
person.TECH_DISCLOSURE_FROM_ID = tech.ID;
|
||
person.CREATER_ID = t.CREATER_ID;
|
||
techUsers.Add(person);
|
||
});
|
||
}
|
||
|
||
var user = this.GetEntity<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && t.ID == entity.APPLY_USER_ID);
|
||
//发消息
|
||
//DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.JobSite, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("安全技术交底表(外包)", tech.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
entity.JOB_DATE.Value, (int)FMNoticeTypeEnum.消息, "FO019"));
|
||
}
|
||
else
|
||
{
|
||
tech = null; techUsers = null; notices = null;
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (tech != null)
|
||
this.UpdateEntityNoCommit(tech);
|
||
if (techUsers != null && techUsers.Any())
|
||
this.BantchSaveEntityNoCommit(techUsers);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate(string id)
|
||
{
|
||
//var entity = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(id, false, "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson");
|
||
var entity = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(id, new string[] { "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson" });// wyw
|
||
entity.IS_PUBLISH = (int)FOPreMeetingStatusEnum.签到中;
|
||
//触发技术交底表
|
||
var tech = new T_FO_TECH_DISCLOSURE_FROM();
|
||
var techUsers = new List<T_FO_TECH_DISCLOSURE_PERSON>();
|
||
var notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var techForm = this.GetEntity<T_FO_TECH_DISCLOSURE_FROM>(t => t.JOB_NAME_ID == entity.ID);
|
||
if (techForm == null)
|
||
{
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.技术交底表编号;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
//主表
|
||
tech.CODE = codeList[0];
|
||
tech.ORG_ID = entity.ORG_ID;
|
||
tech.OPERATION_STEP_ID = entity.OPERATION_STEP_ID;
|
||
tech.JOB_NAME_ID = entity.ID;
|
||
tech.JOB_LOCATION = entity.JOB_LOCATION;
|
||
tech.DISCLOSURE_PERSON_ID = entity.APPLY_USER_ID;
|
||
tech.IS_AUTO = (int)ISImportantEnum.是;
|
||
tech.IS_OUTSOURCE = false;
|
||
tech.RELATED_ID = null;
|
||
if (entity.MONITOR_USER_ID != null)
|
||
{
|
||
T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
|
||
person.ORG_ID = entity.ORG_ID;
|
||
person.USER_ID = entity.MONITOR_USER_ID;
|
||
person.TECH_DISCLOSURE_FROM_ID = tech.ID;
|
||
person.CREATER_ID = entity.CREATER_ID;
|
||
techUsers.Add(person);
|
||
}
|
||
if (entity.Nav_CrucialLicensePerson != null && entity.Nav_CrucialLicensePerson.Any())
|
||
{
|
||
entity.Nav_CrucialLicensePerson.ForEach(t =>
|
||
{
|
||
T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
|
||
person.ORG_ID = t.ORG_ID;
|
||
person.USER_ID = t.USER_ID;
|
||
person.TECH_DISCLOSURE_FROM_ID = tech.ID;
|
||
person.CREATER_ID = t.CREATER_ID;
|
||
techUsers.Add(person);
|
||
});
|
||
}
|
||
techUsers = techUsers.Where(m => m.USER_ID != null).Distinct(t => t.USER_ID).ToList();
|
||
var userIds = entity.Nav_CrucialLicensePerson.Select(t => (Guid)t.USER_ID).Distinct().ToList();
|
||
//if (!userIds.Contains((Guid)entity.MONITOR_USER_ID))
|
||
//{
|
||
// techUsers.Where(t => t.USER_ID == entity.MONITOR_USER_ID).ForEach(m => m.DEAL_STATUS = FOUserShiftStatusEnum.已处理);
|
||
//}
|
||
var UserNames = new List<string>();
|
||
var user = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && (userIds.Contains(t.ID) || t.ID == entity.APPLY_USER_ID), new BaseFilter(entity.ORG_ID));
|
||
var userFirst = user.FirstOrDefault(t => t.ID == entity.APPLY_USER_ID);
|
||
foreach (var u in userIds)
|
||
{
|
||
var current = user.FirstOrDefault(t => t.ID == u);
|
||
UserNames.Add(current?.NAME);
|
||
}
|
||
//DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.JobSite, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
if (userFirst != null)
|
||
{
|
||
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("安全技术交底表(" + entity.JOB_DATE.Value.ToShortDateString().Replace("/", "") + ")", tech.ID, entity.ORG_ID, entity.APPLY_USER_ID.Value, userFirst?.NAME, DateTime.Now,
|
||
entity.JOB_DATE.Value, (int)FMNoticeTypeEnum.消息, "FO019"));
|
||
}
|
||
if (userIds != null && userIds.Any())
|
||
{
|
||
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("关键作业/许可作业工作票确认(" + entity.JOB_DATE.Value.ToShortDateString().Replace("/", "") + ")", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
entity.JOB_DATE.Value, (int)FMNoticeTypeEnum.消息, "FO017_SHOWPRINT"));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
entity.IS_PUBLISH = (int)FOPreMeetingStatusEnum.归档;
|
||
tech = null; techUsers = null; notices = null;
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (tech != null)
|
||
this.UpdateEntityNoCommit(tech);
|
||
if (techUsers != null && techUsers.Any())
|
||
this.BantchSaveEntityNoCommit(techUsers);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 关键许可工作票
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdateNew_FOCrucialLicenseJob(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB>(modelApp.DATA_ID, new string[] { "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson" });// wyw
|
||
entity.IS_PUBLISH = (int)FOPreMeetingStatusEnum.签到中;
|
||
//触发技术交底表
|
||
var tech = new T_FO_TECH_DISCLOSURE_FROM();
|
||
var techUsers = new List<T_FO_TECH_DISCLOSURE_PERSON>();
|
||
var notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var techForm = this.GetEntity<T_FO_TECH_DISCLOSURE_FROM>(t => t.JOB_NAME_ID == entity.ID);
|
||
if (techForm == null)
|
||
{
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.技术交底表编号;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
//主表
|
||
tech.CODE = codeList[0];
|
||
tech.ORG_ID = entity.ORG_ID;
|
||
tech.OPERATION_STEP_ID = entity.OPERATION_STEP_ID;
|
||
tech.JOB_NAME_ID = entity.ID;
|
||
tech.JOB_LOCATION = entity.JOB_LOCATION;
|
||
tech.DISCLOSURE_PERSON_ID = entity.APPLY_USER_ID;
|
||
tech.IS_AUTO = (int)ISImportantEnum.是;
|
||
tech.IS_OUTSOURCE = false;
|
||
tech.RELATED_ID = null;
|
||
if (entity.MONITOR_USER_ID != null)
|
||
{
|
||
T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
|
||
person.ORG_ID = entity.ORG_ID;
|
||
person.USER_ID = entity.MONITOR_USER_ID;
|
||
person.TECH_DISCLOSURE_FROM_ID = tech.ID;
|
||
person.CREATER_ID = entity.CREATER_ID;
|
||
techUsers.Add(person);
|
||
}
|
||
if (entity.Nav_CrucialLicensePerson != null && entity.Nav_CrucialLicensePerson.Any())
|
||
{
|
||
entity.Nav_CrucialLicensePerson.ForEach(t =>
|
||
{
|
||
T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
|
||
person.ORG_ID = t.ORG_ID;
|
||
person.USER_ID = t.USER_ID;
|
||
person.TECH_DISCLOSURE_FROM_ID = tech.ID;
|
||
person.CREATER_ID = t.CREATER_ID;
|
||
techUsers.Add(person);
|
||
});
|
||
}
|
||
techUsers = techUsers.Where(m => m.USER_ID != null).Distinct(t => t.USER_ID).ToList();
|
||
var userIds = entity.Nav_CrucialLicensePerson.Select(t => (Guid)t.USER_ID).Distinct().ToList();
|
||
//if (!userIds.Contains((Guid)entity.MONITOR_USER_ID))
|
||
//{
|
||
// techUsers.Where(t => t.USER_ID == entity.MONITOR_USER_ID).ForEach(m => m.DEAL_STATUS = FOUserShiftStatusEnum.已处理);
|
||
//}
|
||
var UserNames = new List<string>();
|
||
var user = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && (userIds.Contains(t.ID) || t.ID == entity.APPLY_USER_ID), new BaseFilter(entity.ORG_ID));
|
||
var userFirst = user.FirstOrDefault(t => t.ID == entity.APPLY_USER_ID);
|
||
foreach (var u in userIds)
|
||
{
|
||
var current = user.FirstOrDefault(t => t.ID == u);
|
||
UserNames.Add(current?.NAME);
|
||
}
|
||
//DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.JobSite, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
if (userFirst != null)
|
||
{
|
||
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("安全技术交底表(" + entity.JOB_DATE.Value.ToShortDateString().Replace("/", "") + ")", tech.ID, entity.ORG_ID, entity.APPLY_USER_ID.Value, userFirst?.NAME, DateTime.Now,
|
||
entity.JOB_DATE.Value, (int)FMNoticeTypeEnum.消息, "FO019"));
|
||
}
|
||
if (userIds != null && userIds.Any())
|
||
{
|
||
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("关键作业/许可作业工作票确认(" + entity.JOB_DATE.Value.ToShortDateString().Replace("/", "") + ")", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
entity.JOB_DATE.Value, (int)FMNoticeTypeEnum.消息, "FO017_SHOWPRINT"));
|
||
}
|
||
}
|
||
else
|
||
{
|
||
entity.IS_PUBLISH = (int)FOPreMeetingStatusEnum.归档;
|
||
tech = null; techUsers = null; notices = null;
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (tech != null)
|
||
this.UpdateEntityNoCommit(tech);
|
||
if (techUsers != null && techUsers.Any())
|
||
this.BantchSaveEntityNoCommit(techUsers);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 关键许可工作票外包
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdateNew_FOCrucialLicenseJobOutsource(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_FO_CRUCIAL_LICENSE_JOB_OUTSOURCE>(modelApp.DATA_ID, new string[] { "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson" });// wyw
|
||
entity.IS_PUBLISH = (int)FOPreMeetingStatusEnum.归档;
|
||
//触发技术交底表
|
||
var tech = new T_FO_TECH_DISCLOSURE_FROM();
|
||
var techUsers = new List<T_FO_TECH_DISCLOSURE_PERSON>();
|
||
var notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var techForm = this.GetEntity<T_FO_TECH_DISCLOSURE_FROM>(t => t.JOB_NAME_OUTSOURCE_ID == entity.ID);
|
||
if (techForm == null)
|
||
{
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.技术交底表编号;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
//主表
|
||
tech.CODE = codeList[0];
|
||
tech.ORG_ID = entity.ORG_ID;
|
||
tech.OPERATION_STEP_ID = entity.OPERATION_STEP_ID;
|
||
tech.JOB_NAME_OUTSOURCE_ID = entity.ID;
|
||
tech.JOB_LOCATION = entity.JOB_LOCATION;
|
||
tech.DISCLOSURE_PERSON_ID = entity.APPLY_USER_ID;
|
||
tech.IS_AUTO = (int)ISImportantEnum.是;
|
||
tech.IS_OUTSOURCE = true;
|
||
tech.RELATED_ID = entity.RELATED_ID;
|
||
//if (entity.MONITOR_USER_ID != null)
|
||
//{
|
||
// T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
|
||
// person.ORG_ID = entity.ORG_ID;
|
||
// person.USER_ID = entity.MONITOR_USER_ID;
|
||
// person.TECH_DISCLOSURE_FROM_ID = tech.ID;
|
||
// person.CREATER_ID = entity.CREATER_ID;
|
||
// techUsers.Add(person);
|
||
//}
|
||
if (entity.Nav_CrucialLicensePerson != null && entity.Nav_CrucialLicensePerson.Any())
|
||
{
|
||
entity.Nav_CrucialLicensePerson.ForEach(t =>
|
||
{
|
||
T_FO_TECH_DISCLOSURE_PERSON person = new T_FO_TECH_DISCLOSURE_PERSON();
|
||
person.ORG_ID = t.ORG_ID;
|
||
person.RELATED_USER_ID = t.USER_ID;
|
||
person.TECH_DISCLOSURE_FROM_ID = tech.ID;
|
||
person.CREATER_ID = t.CREATER_ID;
|
||
techUsers.Add(person);
|
||
});
|
||
}
|
||
//techUsers = techUsers.Distinct(t => t.USER_ID).ToList();
|
||
//var userIds = techUsers.Where(u => u.USER_ID != entity.MONITOR_USER_ID).Select(t => (Guid)t.USER_ID).ToList();
|
||
//userIds.Add((Guid)entity.APPLY_USER_ID);
|
||
var UserNames = new List<string>();
|
||
var user = this.GetEntity<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && t.ID == entity.APPLY_USER_ID);
|
||
//var userFirst = user.FirstOrDefault(t => t.ID == entity.APPLY_USER_ID);
|
||
//var identUserIds = userIds.Where(t => t != entity.APPLY_USER_ID).Distinct().ToList();
|
||
//foreach (var u in identUserIds)
|
||
//{
|
||
// var current = user.FirstOrDefault(t => t.ID == u);
|
||
// UserNames.Add(current?.NAME);
|
||
//}
|
||
//DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.JobSite, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
if (user != null)
|
||
{
|
||
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("安全技术交底表外包(" + entity.JOB_DATE.Value.ToShortDateString().Replace("/", "") + ")", tech.ID, entity.ORG_ID, entity.APPLY_USER_ID.Value, user?.NAME, DateTime.Now,
|
||
entity.JOB_DATE.Value, (int)FMNoticeTypeEnum.消息, "FO019"));
|
||
}
|
||
//if (identUserIds != null && identUserIds.Any())
|
||
//{
|
||
// notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("关键作业/许可作业工作票确认(" + entity.JOB_DATE.Value.ToShortDateString().Replace("/", "") + ")", entity.ID, entity.ORG_ID, identUserIds, UserNames, DateTime.Now,
|
||
// entity.JOB_DATE.Value, (int)FMNoticeTypeEnum.消息, "FO017_SHOWPRINT"));
|
||
//}
|
||
}
|
||
else
|
||
{
|
||
tech = null; techUsers = null; notices = null;
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (tech != null)
|
||
this.UpdateEntityNoCommit(tech);
|
||
if (techUsers != null && techUsers.Any())
|
||
this.BantchSaveEntityNoCommit(techUsers);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 一般作业活动记录
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdateNew_FOJobEventRecord(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_FO_JOB_EVENT_RECORD>(modelApp.DATA_ID, "Nav_Details");
|
||
entity.FORM_STATUS = (int)FOTeamActivityState.已归档;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
#endregion
|
||
|
||
|
||
#region HM && PT && PE && PR && DM
|
||
|
||
#region HMR
|
||
private bool BackUpdate_DMDeviceMaintenancePlan(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_DM_DEVICE_MAINTENANCE_PLAN>(modelApp.DATA_ID);
|
||
entity.STATUS_APPROVE = PFStandardStatus.Archived;
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_DMDeviceBasePurchase(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_DM_DEVICE_BASE_PURCHASE>(modelApp.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
//T_FM_NOTIFICATION_TASK sendNotice = null;
|
||
////发给采购负责人指定采购专员
|
||
//var userId = this.GetEntity<T_FM_PARAM_SET>(t => t.NAME == "采购部负责人")?.USER_ID;
|
||
//if (userId != null)
|
||
//{
|
||
// var DMUser = this.GetEntity<T_FM_USER>(t => t.ID == userId && t.ENABLE_STATUS == 0);
|
||
// if (DMUser != null)
|
||
// {
|
||
// sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("设备设施申购表待指定采购专员", entity.ID, entity.ORG_ID, DMUser.ID, DMUser.NAME, DateTime.Now,
|
||
// DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.消息, "DM035");
|
||
// }
|
||
//}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_DMDevicePurchase(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_DM_DEVICE_PURCHASE>(modelApp.DATA_ID, "Nav_Details.Nav_Files", "Nav_Details.Nav_ReceiptFiles");
|
||
entity.STATUS = PFStandardStatus.Reading;
|
||
//发给部门级负责人审阅
|
||
T_FM_NOTIFICATION_TASK sendNotice = null;
|
||
var dep = DepartmentService.GetDEPARTMENTLevel(entity.DEPARTMENT_ID.Value);
|
||
if (dep != null)
|
||
{
|
||
var department = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == dep.ID && t.USER_ID.HasValue, "Nav_User");
|
||
if (department != null)
|
||
{
|
||
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("设备设施申购表采购记录待审阅", entity.ID, entity.ORG_ID, (Guid)department.USER_ID, department?.Nav_User?.NAME, DateTime.Now,
|
||
DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.消息, "DM036_SHOWPRINT");
|
||
}
|
||
else
|
||
throw new Exception("请先到组织架构配置部门级负责人");
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (sendNotice != null)
|
||
this.UpdateEntityNoCommit(sendNotice);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_DMDeviceCheck(string id)
|
||
{
|
||
var entity = this.GetEntity<T_DM_DEVICE_CHECK>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_DMDeviceRepair(string id)
|
||
{
|
||
var entity = this.GetEntity<T_DM_DEVICE_REPAIR>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
T_FM_NOTIFICATION_TASK sendNotice = null;
|
||
T_DM_DEVICE_OVERHAUL overhaul = null;
|
||
overhaul = new T_DM_DEVICE_OVERHAUL
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
OVERHAUL_TIME = DateTime.Now,
|
||
CODE = DateTime.Now.ToString("yyyyMMddHHmmss"),
|
||
USER_ID = entity.REPAIR_USER_ID,
|
||
DEVICE_BASE_ID = entity.DEVICE_BASE_ID,
|
||
MACHINE_NAME = entity.MACHINE_NAME,
|
||
SPEC = entity.SPEC,
|
||
MACHINE_CODE = entity.MACHINE_CODE,
|
||
POSITION = entity.POSITION,
|
||
MALFUCTION = entity.DESCRPTION,
|
||
REPAIR_ID = entity.ID,
|
||
ORG_ID = entity.ORG_ID,
|
||
IS_HELP = entity.IS_HELP,
|
||
MineType = entity.MineType,
|
||
};
|
||
if (entity.IS_HELP == true)
|
||
{
|
||
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("设备设施检修记录-" + entity.MACHINE_NAME, overhaul.ID, entity.ORG_ID, (Guid)userId, GetEntity<T_FM_USER>(userId.Value).NAME, DateTime.Now, DateTime.Now.AddDays(1), 0, "DM022");
|
||
}
|
||
else
|
||
{
|
||
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("设备设施检修记录-" + entity.MACHINE_NAME, overhaul.ID, entity.ORG_ID, (Guid)entity.REPAIR_USER_ID, GetEntity<T_FM_USER>(entity.REPAIR_USER_ID.Value).NAME, DateTime.Now, DateTime.Now.AddDays(1), 0, "DM022");
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (overhaul != null)
|
||
AddEntityNoCommit(overhaul);
|
||
if (sendNotice != null)
|
||
AddEntityNoCommit(sendNotice);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_FOJobEventRecord(string id)
|
||
{
|
||
var entity = this.GetEntity<T_FO_JOB_EVENT_RECORD>(id, "Nav_Details");
|
||
entity.FORM_STATUS = (int)FOTeamActivityState.已归档;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_DMDeviceScrap(string id)
|
||
{
|
||
var entity = this.GetEntity<T_DM_DEVICE_SCRAP>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
T_DM_DEVICE_BASE deviceBase = new T_DM_DEVICE_BASE();
|
||
if (entity.DEVICEBASE_ID != null)
|
||
{
|
||
deviceBase = this.GetEntity<T_DM_DEVICE_BASE>(t => t.ID == entity.DEVICEBASE_ID);
|
||
if (deviceBase != null)
|
||
{
|
||
//更新设备设施库
|
||
deviceBase.DEVICE_STATUS = DMDeviceStatusEnum.已报废;
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (deviceBase != null)
|
||
this.UpdateEntityNoCommit(deviceBase);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_DMDeviceApply(string id)
|
||
{
|
||
var entity = this.GetEntity<T_DM_DEVICE_APPLY>(id, "Nav_Details");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<T_DM_DEVICE_ISSUE> issues = new List<T_DM_DEVICE_ISSUE>();
|
||
List<T_DM_DEVICE_ISSUE_DETAIL> details = new List<T_DM_DEVICE_ISSUE_DETAIL>();
|
||
List<T_DM_DEVICE_BASE> deviceBases = new List<T_DM_DEVICE_BASE>();
|
||
if (entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
{
|
||
var deviseBaseIds = entity.Nav_Details.Select(t => t.DEVICE_BASE_ID).Distinct().ToList();
|
||
var deviseBaseInfos = this.GetEntities<T_DM_DEVICE_BASE>(t => deviseBaseIds.Contains(t.ID) && t.DEVICE_STATUS == DMDeviceStatusEnum.库存品);
|
||
var useIds = deviseBaseInfos.Select(t => t.USER_ID).Distinct().ToList();
|
||
var userInfos = this.GetEntities<T_FM_USER>(t => useIds.Contains(t.ID) && t.ENABLE_STATUS == 0, "Nav_Person");
|
||
if (useIds != null && useIds.Any())
|
||
{
|
||
foreach (var userId in useIds)
|
||
{
|
||
var user = userInfos.FirstOrDefault(t => t.ID == userId);
|
||
if (user != null)
|
||
{
|
||
var issue = new T_DM_DEVICE_ISSUE();
|
||
issue.ORG_ID = entity.ORG_ID;
|
||
issue.CODE = DateTime.Now.Year.ToString().PadLeft(4, '0') + DateTime.Now.Month.ToString().PadLeft(2, '0') + DateTime.Now.Day.ToString().PadLeft(2, '0') + new Random().Next().ToString();
|
||
issue.TIME = DateTime.Now;
|
||
issue.STATUS = PFStandardStatus.Draft;
|
||
issue.USER_ID = user.ID;
|
||
issue.DEPARTMENT_ID = user?.DEPARTMENT_ID;
|
||
issue.USER_POST_ID = user?.Nav_Person?.POST_ID;
|
||
issue.APPLY_ID = entity.ID;
|
||
issue.DEVICE_PURCHASE_ID = entity.DEVICE_PURCHASE_ID;
|
||
issue.MineType = entity.MineType;
|
||
issues.Add(issue);
|
||
var deviceBaseIds = deviseBaseInfos.Where(t => t.USER_ID == userId).Select(m => m.ID).ToList();
|
||
var applyDetails = entity.Nav_Details.Where(t => deviceBaseIds.Contains((Guid)t.DEVICE_BASE_ID)).ToList();
|
||
if (applyDetails != null && applyDetails.Any())
|
||
{
|
||
foreach (var item in applyDetails)
|
||
{
|
||
T_DM_DEVICE_ISSUE_DETAIL detail = new T_DM_DEVICE_ISSUE_DETAIL();
|
||
detail.ORG_ID = item.ORG_ID;
|
||
detail.DEVICE_ISSUE_ID = issue.ID;
|
||
detail.DEVICE_BASE_ID = item.DEVICE_BASE_ID;
|
||
detail.SPEC = item.SPEC;
|
||
detail.QTY = item.QTY;
|
||
detail.UNIT = item.UNIT;
|
||
detail.USE = item.USE;
|
||
detail.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
detail.USER_ID = item.USER_ID;
|
||
detail.USE_USER_POST_ID = item.USER_POST_ID;
|
||
detail.RETURN_TIME = item.RETURN_TIME;
|
||
detail.POSITION = item.POSITION;
|
||
details.Add(detail);
|
||
}
|
||
}
|
||
var userName = userInfos.FirstOrDefault(t => t.ID == user.ID)?.NAME;
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("设备设施发放表", issue.ID, entity.ORG_ID, user.ID, userName, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum.消息, "DM016");
|
||
sendNotices.Add(sendNotice);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (issues != null && issues.Any())
|
||
BantchSaveEntityNoCommit(issues);
|
||
if (details != null && details.Any())
|
||
BantchSaveEntityNoCommit(details);
|
||
if (sendNotices != null && sendNotices.Any())
|
||
BantchSaveEntityNoCommit(sendNotices);
|
||
if (deviceBases != null && deviceBases.Any())
|
||
BantchSaveEntityNoCommit(deviceBases);
|
||
});
|
||
return true;
|
||
}
|
||
|
||
private bool BackUpdate_DMDeviceIssue(string id)
|
||
{
|
||
var entity = this.GetEntity<T_DM_DEVICE_ISSUE>(id, "Nav_Details");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
List<T_DM_DEVICE_BASE> deviceBases = new List<T_DM_DEVICE_BASE>();
|
||
//if (entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
//{
|
||
// var deviceIds = entity.Nav_Details.Select(t => t.DEVICE_BASE_ID).Distinct().ToList();
|
||
// deviceBases = this.GetEntities<T_DM_DEVICE_BASE>(t => deviceIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
// foreach (var detail in entity.Nav_Details)
|
||
// {
|
||
// //更新设备设施库
|
||
// deviceBases.Where(t => t.ID == detail.DEVICE_BASE_ID).ForEach(m => { m.DEVICE_STATUS = DMDeviceStatusEnum.使用中; });
|
||
// }
|
||
//}
|
||
var apply = this.GetEntity<T_DM_DEVICE_APPLY>(t => t.ID == entity.APPLY_ID, "Nav_Details");
|
||
if (apply != null && apply.Nav_Details != null && apply.Nav_Details.Any())
|
||
{
|
||
var deviceIds = apply.Nav_Details.Select(t => t.DEVICE_BASE_ID).Distinct().ToList();
|
||
deviceBases = this.GetEntities<T_DM_DEVICE_BASE>(t => deviceIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
foreach (var detail in apply.Nav_Details)
|
||
{
|
||
//更新设备设施库
|
||
deviceBases.Where(t => t.ID == detail.DEVICE_BASE_ID).ForEach(m => { m.PURPOSE = detail.USE; m.USE_USER_POST_ID = detail.USER_POST_ID; m.USE_DEPARTMENT_ID = detail.DEPARTMENT_ID; m.USE_USER_ID = detail.USER_ID; m.POSITION = detail.POSITION; m.DEVICE_STATUS = DMDeviceStatusEnum.使用中; });
|
||
//device.USE_USER_ID = item.USER_ID;
|
||
//device.USE_DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
//device.USE_USER_POST_ID = item.USE_USER_POST_ID;
|
||
}
|
||
}
|
||
//List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
||
//if (entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
//{
|
||
// //发给领用人审阅
|
||
// var userIds = entity.Nav_Details.Select(t => t.USER_ID).Distinct().ToList();
|
||
// var userInfos = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0);
|
||
// if (userIds != null && userIds.Any())
|
||
// {
|
||
// foreach (var userId in userIds)
|
||
// {
|
||
// var userName = userInfos.FirstOrDefault(t => t.ID == userId)?.NAME;
|
||
// var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("设备设施发放表审阅", entity.ID, entity.ORG_ID, userId.Value, userName, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum.消息, "DM016_SHOWPRINT");
|
||
// sendNotices.Add(sendNotice);
|
||
// }
|
||
// }
|
||
//}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (deviceBases != null && deviceBases.Any())
|
||
BantchSaveEntityNoCommit(deviceBases);
|
||
//if (sendNotices != null && sendNotices.Any())
|
||
// BantchSaveEntityNoCommit(sendNotices);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_DMDetectionInspectionRecord(string id)
|
||
{
|
||
var entity = this.GetEntity<T_DM_DETECTION_INSPECTION_RECORD>(id);//"Nav_DeviceBase", "Nav_Files"
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
//T_DM_DEVICE_BASE_INSPECTION inspec = null;
|
||
//List<T_DM_DEVICE_BASE_INSPECTION_FILE> files = new List<T_DM_DEVICE_BASE_INSPECTION_FILE>();
|
||
//if (entity.DEVICE_BASE_ID != null && entity.Nav_DeviceBase != null)
|
||
//{
|
||
// var deviceBase = this.GetEntity<T_DM_DEVICE_BASE>(t => t.NAME == entity.Nav_DeviceBase.NAME && t.SPEC == entity.SPEC && t.MACHINE_CODE == entity.MACHINE_CODE && t.POSITION == entity.POSITION);
|
||
// if (deviceBase != null)
|
||
// {
|
||
// var cycle = this.GetEntity<T_PT_TIME_SET>(t => t.SET_TYPE == PTSetTypeEnum.Inspection);
|
||
// inspec = new T_DM_DEVICE_BASE_INSPECTION();
|
||
// inspec.ORG_ID = entity.ORG_ID;
|
||
// inspec.DEVICE_BASE_ID = deviceBase.ID;
|
||
// inspec.TIME = entity.TIME.Value;
|
||
// inspec.CYCLE = cycle == null ? 0 : cycle.PLANCHECKFREQUENCY;
|
||
// inspec.DEPARTMENT_ID = entity.DEPARTMENT_ID;
|
||
// inspec.USER_ID = entity.USER_ID;
|
||
// inspec.MECHANISM = entity.MECHANISM;
|
||
// inspec.RESULT = entity.RESULT;
|
||
// if (entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
// {
|
||
// foreach (var item in entity.Nav_Files)
|
||
// {
|
||
// T_DM_DEVICE_BASE_INSPECTION_FILE file = new T_DM_DEVICE_BASE_INSPECTION_FILE();
|
||
// file.ORG_ID = item.ORG_ID;
|
||
// file.PARENT_ID = inspec.ID;
|
||
// file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
// files.Add(file);
|
||
// }
|
||
// }
|
||
// }
|
||
//}
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
//if (inspec != null)
|
||
// this.UpdateEntityNoCommit(inspec);
|
||
//if (files != null && files.Any())
|
||
// this.BantchSaveEntityNoCommit(files);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_PRChangeTaskImplement(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PR_CHANGE_TASK_IMPLEMENT>(id, "Nav_Change");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
var implements = this.GetEntities<T_PR_CHANGE_TASK_IMPLEMENT>(t => t.ID != entity.ID && t.CHANGE_IDENTIFY_EVALUATION_ID == entity.CHANGE_IDENTIFY_EVALUATION_ID, new BaseFilter(entity.ORG_ID));
|
||
var isSend = true;
|
||
T_PR_CHANGE_ACCEPTANCE acceptance = null;
|
||
T_FM_NOTIFICATION_TASK notice = null;
|
||
T_PR_CHANGE_ACCEPTANCE accept = null;
|
||
foreach (var item in implements)
|
||
{
|
||
if (item.STATUS != PFStandardStatus.Archived)
|
||
isSend = false;
|
||
}
|
||
if (isSend)
|
||
{
|
||
accept = this.GetEntity<T_PR_CHANGE_ACCEPTANCE>(t => t.CHANGE_IDENTIFY_EVALUATION_ID == entity.CHANGE_IDENTIFY_EVALUATION_ID, "Nav_User");
|
||
if (accept != null)
|
||
{
|
||
accept.STATUS = PFStandardStatus.Rejected;
|
||
notice = NotificationTaskService.InsertUserNoticeTaskModel("变化管理验收表", accept.ID, entity.ORG_ID, accept.USER_ID.Value, accept.Nav_User.NAME, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PR028");
|
||
}
|
||
else
|
||
{
|
||
var dep = DepartmentService.GetDEPARTMENTLevel(entity.Nav_Change.DEPARTMENT_ID.Value);
|
||
if (dep != null)
|
||
{
|
||
var department = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == dep.ID && t.USER_ID.HasValue, "Nav_User");
|
||
if (department != null)
|
||
{
|
||
acceptance = new T_PR_CHANGE_ACCEPTANCE();
|
||
acceptance.ORG_ID = entity.ORG_ID;
|
||
acceptance.TIME = DateTime.Now;
|
||
acceptance.STATUS = PFStandardStatus.Draft;
|
||
acceptance.CHANGE_IDENTIFY_EVALUATION_ID = entity.CHANGE_IDENTIFY_EVALUATION_ID;
|
||
acceptance.USER_ID = department.USER_ID;
|
||
acceptance.DEPARTMENT_ID = department.ID;
|
||
notice = NotificationTaskService.InsertUserNoticeTaskModel("变化管理验收表", acceptance.ID, entity.ORG_ID, department.USER_ID.Value, department.Nav_User.NAME, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PR028");
|
||
}
|
||
else
|
||
throw new Exception("请先到组织架构配置部门级负责人");
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (accept != null)
|
||
this.UpdateEntityNoCommit(accept);
|
||
if (notice != null)
|
||
this.UpdateEntityNoCommit(notice);
|
||
if (acceptance != null)
|
||
this.UpdateEntityNoCommit(acceptance);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_PRSurveyRecord(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PR_SURVEY_RECORD>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_PESafetyEvaluationPlan(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PE_SAFETY_EVALUATION_PLAN>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_PRMapProcessRecord(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PR_MAP_PROCESS_RECORD>(id, "Nav_Files");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
if (entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
var fileIds = entity.Nav_Files.Select(t => t.IMG_FILE_ID).Distinct().ToList();
|
||
DepartmentService.AddDocument("生产工艺", "测绘处理记录", "测绘处理记录", "测绘记录", "勘察文件", DateTime.Now.AddYears(99), entity.ID, fileIds, entity.CREATER_ID);
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_PRExternalAcceptanceRecord(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PR_EXTERNAL_ACCEPTANCE_RECORD>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_PRExternalAssistanceApplication(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PR_EXTERNAL_ASSISTANCE_APPLICATION>(id, "Nav_User");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
//触发滑坡滚石处理外部验收记录表
|
||
T_PR_EXTERNAL_ACCEPTANCE_RECORD record = new T_PR_EXTERNAL_ACCEPTANCE_RECORD();
|
||
record.ORG_ID = entity.ORG_ID;
|
||
record.UNIT = entity.UNIT;
|
||
record.DESCRIPTION = entity.DESCRIPTION;
|
||
record.STATUS = PFStandardStatus.Draft;
|
||
record.APPLICATION_ID = entity.ID;
|
||
T_FM_NOTIFICATION_TASK notice = NotificationTaskService.InsertUserNoticeTaskModel("滑坡滚石处理外部验收记录表", record.ID, entity.ORG_ID, entity.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PR011");
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (record != null)
|
||
this.UpdateEntityNoCommit(record);
|
||
if (notice != null)
|
||
this.UpdateEntityNoCommit(notice);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_PRLandslideRollstoneMonitor(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PR_LANDSLIDE_ROLLSTONE_MONITOR>(id, "Nav_User");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
//触发外部协助申请表
|
||
T_PR_EXTERNAL_ASSISTANCE_APPLICATION help = null;
|
||
T_FM_NOTIFICATION_TASK notice = null;
|
||
if (entity.IS_HELP == DisableStatusEnum.是)
|
||
{
|
||
help = new T_PR_EXTERNAL_ASSISTANCE_APPLICATION();
|
||
help.ORG_ID = entity.ORG_ID;
|
||
help.USER_ID = entity.USER_ID;
|
||
help.DESCRIPTION = entity.DESCRIPTION;
|
||
var department = this.GetEntity<T_FM_USER>(t => t.ID == entity.USER_ID && t.ENABLE_STATUS == 0);
|
||
help.DEPARTMENT_ID = department?.DEPARTMENT_ID;
|
||
help.STATUS = PFStandardStatus.Draft;
|
||
help.MONITOR_ID = entity.ID;
|
||
notice = NotificationTaskService.InsertUserNoticeTaskModel("滑坡滚石处理外部协助申请表", help.ID, entity.ORG_ID, entity.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PR009");
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (help != null)
|
||
this.UpdateEntityNoCommit(help);
|
||
if (notice != null)
|
||
this.UpdateEntityNoCommit(notice);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 返回所有上级部门节点
|
||
/// </summary>
|
||
/// <param name="orgId"></param>
|
||
/// <param name="listDepIDInt"></param>
|
||
/// <param name="departmentIdPs"></param>
|
||
public void GetParentDepartmentIds(Guid orgId, List<Guid> listDepIDInt, ref List<Guid> departmentIdPs)
|
||
{
|
||
var listDep = GetEntities<T_FM_DEPARTMENT>(e => e.ORG_ID == orgId && !e.IS_DELETED && listDepIDInt.Contains(e.ID));
|
||
if (listDep != null && listDep.Any())
|
||
{
|
||
listDepIDInt = listDep.Where(t => t.PARENT_ID.HasValue).Select(e => e.PARENT_ID.Value).ToList();
|
||
departmentIdPs.AddRange(listDepIDInt);
|
||
GetParentDepartmentIds(orgId, listDepIDInt, ref departmentIdPs);
|
||
}
|
||
}
|
||
private bool BackUpdate_PRDesignDocumentReview(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PR_DESIGN_DOCUMENT_REVIEW>(id, "Nav_Files");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
if (entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
var fileIds = entity.Nav_Files.Select(t => t.IMG_FILE_ID).Distinct().ToList();
|
||
DepartmentService.AddDocument("生产工艺", "内部设计文件审核表", entity.NAME, "附件", "设计文件", DateTime.Now.AddYears(99), entity.ID, fileIds, entity.CREATER_ID);
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_SCStandardCreate(string id)
|
||
{
|
||
var content = "";
|
||
T_SC_STANDARD_CREATE oldEntity = null;
|
||
var entity = this.GetEntity<T_SC_STANDARD_CREATE>(id, "Nav_User");
|
||
if (entity.FILE_STATUS == SCSystemFileStatus.废除中)
|
||
{
|
||
content = "已废除";
|
||
entity.STATUS = SCSystemEditStatus.已废除;
|
||
entity.FILE_STATUS = SCSystemFileStatus.已废除;
|
||
oldEntity = this.GetEntity<T_SC_STANDARD_CREATE>(t => t.ID != entity.ID && t.CODE == entity.CODE && t.FILE_STATUS == SCSystemFileStatus.有效);
|
||
if (oldEntity != null)
|
||
oldEntity.FILE_STATUS = SCSystemFileStatus.失效;
|
||
}
|
||
else
|
||
{
|
||
entity.STATUS = SCSystemEditStatus.已归档;
|
||
entity.FILE_STATUS = SCSystemFileStatus.有效;
|
||
if (entity.VERSION == 1)
|
||
{
|
||
content = "已创建";
|
||
}
|
||
else
|
||
{
|
||
content = "已修订";
|
||
oldEntity = this.GetEntity<T_SC_STANDARD_CREATE>(t => t.ID != entity.ID && t.CODE == entity.CODE && t.FILE_STATUS == SCSystemFileStatus.有效);
|
||
if (oldEntity != null)
|
||
oldEntity.FILE_STATUS = SCSystemFileStatus.失效;
|
||
}
|
||
}
|
||
|
||
T_FM_NOTIFICATION_TASK sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("“" + entity.NAME + "”" + content + ",请召开相关培训", entity.ID, entity.ORG_ID, entity.USER_ID.Value, entity.Nav_User.NAME, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum.今日提醒, "PF135");
|
||
if (content == "已废除")
|
||
{
|
||
sendNotice = null;
|
||
}
|
||
T_LR_LAW_SC_SYSTEM sys = null;
|
||
if (!string.IsNullOrEmpty(entity.LAW_NAME))
|
||
{
|
||
var law = this.GetEntity<T_LR_LAW>(t => t.NAME == entity.LAW_NAME && t.ID == entity.LAW_ID);
|
||
if (law != null)
|
||
{
|
||
sys = new T_LR_LAW_SC_SYSTEM();
|
||
sys.LAW_ID = law.ID;
|
||
sys.SC_SYSTEM_ID = entity.ID;
|
||
sys.ORG_ID = entity.ORG_ID;
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (oldEntity != null)
|
||
this.UpdateEntityNoCommit(oldEntity);
|
||
if (sendNotice != null)
|
||
this.UpdateEntityNoCommit(sendNotice);
|
||
if (sys != null)
|
||
this.UpdateEntityNoCommit(sys);
|
||
});
|
||
return true;
|
||
}
|
||
private bool BackUpdate_PESafetyEvaluationRecord(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PE_SAFETY_EVALUATION_RECORD>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
T_FM_NOTIFICATION_TASK sendNotice = null;
|
||
var userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部负责人" && t.ENABLE_STATUS == 0);
|
||
if (userInfo == null && entity.ORG_ID.ToString() == "3efd5276-632b-e379-9ff3-7a7546591fca")
|
||
{
|
||
userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
|
||
}
|
||
if (userInfo != null)
|
||
{
|
||
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("请上传安全标准化自评报告", entity.ID, entity.ORG_ID, userInfo.ID, userInfo.NAME, DateTime.Now, DateTime.Now.AddDays(30), (int)FMNoticeTypeEnum.今日提醒, "PF135");
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (sendNotice != null)
|
||
this.UpdateEntityNoCommit(sendNotice);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PESafetyMonitorRecord(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PE_SAFETY_MONITOR_RECORD>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PESafetyMonitorPlan(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PE_SAFETY_MONITOR_PLAN>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PECorrectivePreventiveEvaluation(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PE_CORRECTIVE_PREVENTIVE_EVALUATION>(id);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PECorrectivePreventiveProcess(string id)
|
||
{
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var entity = this.GetEntity<T_PE_CORRECTIVE_PREVENTIVE_PROCESS>(id, "Nav_Details", "Nav_Details.Nav_Files", "Nav_Corrective", "Nav_Corrective.Nav_Details");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
T_PE_CORRECTIVE_PREVENTIVE_EVALUATION evaluation = null;
|
||
List<T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL> details = new List<T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL>();
|
||
List<T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL_FILE> files = new List<T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL_FILE>();
|
||
List<Guid> deleteDetailIds = new List<Guid>();
|
||
List<Guid> deleteFileIds = new List<Guid>();
|
||
if (entity != null && entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
{
|
||
var evaluationIsExist = this.GetEntity<T_PE_CORRECTIVE_PREVENTIVE_EVALUATION>(t => t.CORRECTIVE_PREVENTIVE_PROCESS_ID == entity.ID, new string[] { "Nav_Details.Nav_Files" });
|
||
if (evaluationIsExist != null)
|
||
{
|
||
if (evaluationIsExist.Nav_Details != null && evaluationIsExist.Nav_Details.Any())
|
||
{
|
||
var detailTemps = evaluationIsExist.Nav_Details.Where(m => m.EVALUATE_RESULT == PEEvaluateResultEnum.NG).ToList();
|
||
var detailIds = detailTemps.Select(t => t.ID).ToList();
|
||
deleteDetailIds.AddRange(detailIds);
|
||
detailTemps.ForEach(t =>
|
||
{
|
||
if (t.Nav_Files != null && t.Nav_Files.Any())
|
||
{
|
||
var ids = t.Nav_Files.Select(t => t.ID).ToList();
|
||
deleteFileIds.AddRange(ids);
|
||
}
|
||
t.Nav_Files = null;
|
||
});
|
||
if (entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
{
|
||
var existContent = detailTemps.Select(m => m.CONTENTS).ToList();
|
||
var existPrevent = detailTemps.Select(m => m.CORRECTIVE_PREVENTIVE).ToList();
|
||
var entityDetails = entity.Nav_Details.Where(m => existContent.Contains(m.CONTENTS) && existPrevent.Contains(m.CORRECTIVE_PREVENTIVE)).ToList();
|
||
foreach (var detail in entityDetails)
|
||
{
|
||
T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL de = new T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL();
|
||
de.ORG_ID = detail.ORG_ID;
|
||
de.CORRECTIVE_PREVENTIVE_EVALUATION_ID = evaluationIsExist.ID;
|
||
de.CONTENTS = detail.CONTENTS;
|
||
de.CORRECTIVE_PREVENTIVE = detail.CORRECTIVE_PREVENTIVE;
|
||
de.SITUATION = detail.SITUATION;
|
||
de.NOT_CARRY_OUT = detail.NOT_CARRY_OUT;
|
||
details.Add(de);
|
||
if (detail.Nav_Files != null && detail.Nav_Files.Any())
|
||
{
|
||
foreach (var file in detail.Nav_Files)
|
||
{
|
||
T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL_FILE fe = new T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL_FILE();
|
||
fe.ORG_ID = file.ORG_ID;
|
||
fe.CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL_ID = de.ID;
|
||
fe.IMG_FILE_ID = file.IMG_FILE_ID;
|
||
files.Add(fe);
|
||
}
|
||
}
|
||
}
|
||
if (entity.Nav_Corrective != null && entity.Nav_Corrective.Nav_Details != null && entity.Nav_Corrective.Nav_Details.Any())
|
||
{
|
||
details.ForEach(t =>
|
||
{
|
||
var first = entity.Nav_Corrective.Nav_Details.FirstOrDefault(m => m.CONTENTS == t.CONTENTS);
|
||
if (first != null)
|
||
t.USER_ID = first.USER_ID;
|
||
});
|
||
}
|
||
var userIds = entity.Nav_Corrective.Nav_Details.Where(m => existContent.Contains(m.CONTENTS)).Select(t => t.USER_ID.Value).Distinct().ToList();// && m.DEPARTMENT_ID == entity.DEPARTMENT_ID
|
||
var users = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID)).Distinct().ToList();
|
||
List<string> userNames = new List<string>();
|
||
foreach (var user in users)
|
||
{
|
||
userNames.Add(user.NAME);
|
||
}
|
||
//发消息
|
||
notices = NotificationTaskService.InsertUserNoticeTaskModels("纠正与预防措施评估表", evaluationIsExist.ID, evaluationIsExist.ORG_ID, userIds, userNames, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PE013");
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
evaluation = new T_PE_CORRECTIVE_PREVENTIVE_EVALUATION();
|
||
evaluation.ORG_ID = entity.ORG_ID;
|
||
evaluation.USER_ID = entity.USER_ID;
|
||
evaluation.DEPARTMENT_ID = entity.DEPARTMENT_ID;
|
||
evaluation.STATUS = PFStandardStatus.Sign;
|
||
evaluation.CORRECTIVE_PREVENTIVE_PROCESS_ID = entity.ID;
|
||
foreach (var detail in entity.Nav_Details)
|
||
{
|
||
T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL de = new T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL();
|
||
de.ORG_ID = detail.ORG_ID;
|
||
de.CORRECTIVE_PREVENTIVE_EVALUATION_ID = evaluation.ID;
|
||
de.CONTENTS = detail.CONTENTS;
|
||
de.CORRECTIVE_PREVENTIVE = detail.CORRECTIVE_PREVENTIVE;
|
||
de.SITUATION = detail.SITUATION;
|
||
de.NOT_CARRY_OUT = detail.NOT_CARRY_OUT;
|
||
details.Add(de);
|
||
if (detail.Nav_Files != null && detail.Nav_Files.Any())
|
||
{
|
||
foreach (var file in detail.Nav_Files)
|
||
{
|
||
T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL_FILE fe = new T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL_FILE();
|
||
fe.ORG_ID = file.ORG_ID;
|
||
fe.CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL_ID = de.ID;
|
||
fe.IMG_FILE_ID = file.IMG_FILE_ID;
|
||
files.Add(fe);
|
||
}
|
||
}
|
||
}
|
||
if (entity.Nav_Corrective != null && entity.Nav_Corrective.Nav_Details != null && entity.Nav_Corrective.Nav_Details.Any())
|
||
{
|
||
details.ForEach(t =>
|
||
{
|
||
var first = entity.Nav_Corrective.Nav_Details.FirstOrDefault(m => m.CONTENTS == t.CONTENTS);
|
||
if (first != null)
|
||
t.USER_ID = first.USER_ID;
|
||
});
|
||
var contents = entity.Nav_Details.Select(t => t.CONTENTS).Distinct().ToList();
|
||
var userIds = entity.Nav_Corrective.Nav_Details.Where(m => contents.Contains(m.CONTENTS)).Select(t => t.USER_ID.Value).Distinct().ToList();// && m.DEPARTMENT_ID == entity.DEPARTMENT_ID
|
||
var users = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID)).Distinct().ToList();
|
||
List<string> userNames = new List<string>();
|
||
foreach (var user in users)
|
||
{
|
||
userNames.Add(user.NAME);
|
||
}
|
||
//发消息
|
||
notices = NotificationTaskService.InsertUserNoticeTaskModels("纠正与预防措施评估表", evaluation.ID, evaluation.ORG_ID, userIds, userNames, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PE013");
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (evaluation != null)
|
||
this.UpdateEntityNoCommit(evaluation);
|
||
if (deleteDetailIds != null && deleteDetailIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL>(deleteDetailIds);
|
||
if (details != null && details.Any())
|
||
this.BantchSaveEntityNoCommit(details);
|
||
if (deleteFileIds != null && deleteFileIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_PE_CORRECTIVE_PREVENTIVE_EVALUATION_DETAIL_FILE>(deleteFileIds);
|
||
if (files != null && files.Any())
|
||
this.BantchSaveEntityNoCommit(files);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PECorrectivePreventive(string id)
|
||
{
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var entity = this.GetEntity<T_PE_CORRECTIVE_PREVENTIVE>(id, "Nav_Details");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
//List<string> userNames = new List<string>();
|
||
//List<T_PE_CORRECTIVE_PREVENTIVE_PROCESS> processList = new List<T_PE_CORRECTIVE_PREVENTIVE_PROCESS>();
|
||
//List<T_PE_CORRECTIVE_PREVENTIVE_PROCESS_DETAIL> processDetailList = new List<T_PE_CORRECTIVE_PREVENTIVE_PROCESS_DETAIL>();
|
||
var departmentIds = entity.Nav_Details.Where(m => m.DEPARTMENT_ID != null).Select(t => t.DEPARTMENT_ID.Value).Distinct().ToList();
|
||
var detailUserIds = entity.Nav_Details.Where(m => m.USER_ID != null).Select(t => t.USER_ID).Distinct().ToList();
|
||
var departmentIdUsers = this.GetEntities<T_FM_DEPARTMENT>(t => departmentIds.Contains(t.ID) && t.USER_ID != null && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, new BaseFilter(entity.ORG_ID)).ToList();
|
||
var userIds = departmentIdUsers.Where(x => x.USER_ID != null).Select(t => t.USER_ID).Distinct().ToList();
|
||
var users = this.GetEntities<T_FM_USER>(t => (userIds.Contains(t.ID) || detailUserIds.Contains(t.ID)) && t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID)).Distinct().ToList();
|
||
if (departmentIds != null && departmentIds.Any())
|
||
{
|
||
foreach (var departmentId in departmentIds)
|
||
{
|
||
var departmentUser = departmentIdUsers.FirstOrDefault(t => t.ID == departmentId);
|
||
if (departmentUser != null && departmentUser.USER_ID != null)
|
||
{
|
||
var user = users.FirstOrDefault(t => t.ID == departmentUser.USER_ID);
|
||
//T_PE_CORRECTIVE_PREVENTIVE_PROCESS process = new T_PE_CORRECTIVE_PREVENTIVE_PROCESS();
|
||
//process.USER_ID = departmentUser.USER_ID;
|
||
//process.DEPARTMENT_ID = departmentId;
|
||
//process.STATUS = PFStandardStatus.Draft;
|
||
//process.CORRECTIVE_PREVENTIVE_ID = entity.ID;
|
||
//process.ORG_ID = departmentUser.ORG_ID;
|
||
//processList.Add(process);
|
||
//userNames.Add(user.NAME);
|
||
//var details = entity.Nav_Details.Where(t => t.DEPARTMENT_ID == departmentId).ToList();
|
||
//if (details != null && details.Any())
|
||
//{
|
||
// foreach (var detail in details)
|
||
// {
|
||
// T_PE_CORRECTIVE_PREVENTIVE_PROCESS_DETAIL processDetail = new T_PE_CORRECTIVE_PREVENTIVE_PROCESS_DETAIL();
|
||
// processDetail.ORG_ID = detail.ORG_ID;
|
||
// processDetail.CORRECTIVE_PREVENTIVE_PROCESS_ID = process.ID;
|
||
// processDetail.CONTENTS = detail.CONTENTS;
|
||
// processDetail.SITUATION = PESituationEnum.NotCarryOut;
|
||
// processDetail.RECTIFICATION_TIME = detail.RECTIFICATION_TIME;
|
||
// processDetail.PRODUCTION_UNIT_ID = detail.PRODUCTION_UNIT_ID;
|
||
// processDetail.STANDARDIZED_ID = detail.STANDARDIZED_ID;
|
||
// processDetailList.Add(processDetail);
|
||
// }
|
||
//}
|
||
//发消息
|
||
T_FM_NOTIFICATION_TASK noticeView = NotificationTaskService.InsertUserNoticeTaskModel("纠正与预防措施通知单", entity.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PE005_SHOWPRINT");
|
||
//发消息
|
||
//T_FM_NOTIFICATION_TASK notice = NotificationTaskService.InsertUserNoticeTaskModel("纠正与预防措施处理单", process.ID, process.ORG_ID, user.ID, user.NAME, DateTime.Now.AddHours(1),
|
||
//DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PE007");
|
||
//发消息
|
||
notices.Add(noticeView);
|
||
//notices.Add(notice);
|
||
}
|
||
}
|
||
}
|
||
var tempUser = detailUserIds.Where(t => !userIds.Contains(t.Value)).ToList();
|
||
if (tempUser != null && tempUser.Any())
|
||
{
|
||
foreach (var user in tempUser)
|
||
{
|
||
var first = users.FirstOrDefault(t => t.ID == user.Value);
|
||
if (first != null)
|
||
{
|
||
T_FM_NOTIFICATION_TASK noticeView = NotificationTaskService.InsertUserNoticeTaskModel("纠正与预防措施通知单", entity.ID, entity.ORG_ID, first.ID, first.NAME, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PE005_SHOWPRINT");
|
||
notices.Add(noticeView);
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
//if (processList != null && processList.Any())
|
||
// this.BantchSaveEntityNoCommit(processList);
|
||
//if (processDetailList != null && processDetailList.Any())
|
||
// this.BantchSaveEntityNoCommit(processDetailList);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PTMonitorAssessment(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PT_MONITOR_ASSESSMENT>(id, "Nav_Details.Nav_Contents");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
List<T_FM_NOTIFICATION_TASK> notices = null;
|
||
if (entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
{
|
||
var userIds = entity.Nav_Details.Where(m => m.USER_ID != null).Select(t => (Guid)t.USER_ID).Distinct().ToList();
|
||
var newFilter = new BaseFilter(entity.ORG_ID);
|
||
newFilter.SelectField = new List<string> { "ID", "NAME" };
|
||
var userNames = new List<string>();
|
||
var user = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, newFilter);
|
||
if (userIds != null && userIds.Any())
|
||
{
|
||
userIds.ForEach(t =>
|
||
{
|
||
var name = user.FirstOrDefault(m => m.ID == t);
|
||
if (name != null)
|
||
userNames.Add(name.NAME);
|
||
});
|
||
var cycleName = entity.ASSESSMENT_CYCLE.GetDescription();
|
||
//发消息
|
||
notices = NotificationTaskService.InsertUserNoticeTaskModels("(" + cycleName + ")" + "个人监测与考核记录-查阅", entity.ID, entity.ORG_ID, userIds, userNames, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PT029_SHOWPRINT");
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PTAssessmentPlanAudit(string id)
|
||
{
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var entity = this.GetEntity<T_PT_ASSESSMENT_PLAN_AUDIT>(id, "Nav_Files");
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
var entityDetails = this.GetEntities<T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL>(t => t.ASSESSMENT_PLAN_ID == Guid.Parse(id), new BaseFilter(orgId), "Nav_Contents").ToList();
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
var departmentIds = entityDetails.Where(m => m.DEPARTMENT_ID != null).Select(t => t.DEPARTMENT_ID.Value).Distinct().ToList();
|
||
//userIds = this.GetEntities<T_FM_DEPARTMENT>(t => departmentIds.Contains(t.ID) && t.USER_ID != null && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, new BaseFilter(entity.ORG_ID)).Select(t => t.USER_ID.Value).Distinct().ToList();
|
||
var userIdss = entityDetails.Where(m => m.USER_ID != null).Select(t => t.USER_ID.Value).Distinct().ToList();
|
||
//if (userIdss != null && userIdss.Any())
|
||
// userIds.AddRange(userIdss);
|
||
//userIds = userIds.Distinct().ToList();
|
||
//var users = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).Distinct().ToList();
|
||
//foreach (var user in users)
|
||
//{
|
||
// userNames.Add(user.NAME);
|
||
//}
|
||
var users = this.GetEntities<T_FM_USER>(t => (t.DEPARTMENT_ID != null && departmentIds.Contains(t.DEPARTMENT_ID.Value) && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人") && t.ENABLE_STATUS == 0) || userIdss.Contains(t.ID), new BaseFilter(entity.ORG_ID), "Nav_ApproveRole");
|
||
var sendUsers = users.Distinct().ToList();
|
||
switch (entity.DEPARTMENT_TYPE)
|
||
{
|
||
case FMDepartmentType.Company:
|
||
sendUsers = users.Where(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "部门负责人" || t.Nav_ApproveRole.NAME == "安环部负责人").ToList();
|
||
var userInfoFirst = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部负责人");
|
||
if (userInfoFirst == null && entity.ORG_ID.ToString() == "3efd5276-632b-e379-9ff3-7a7546591fca")
|
||
{
|
||
var userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
|
||
sendUsers.Add(userInfo);
|
||
}
|
||
break;
|
||
case FMDepartmentType.Department:
|
||
sendUsers = users.Where(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "车间负责人").ToList();
|
||
break;
|
||
case FMDepartmentType.Workshop:
|
||
sendUsers = users.Where(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "班组负责人").ToList();
|
||
break;
|
||
case FMDepartmentType.Class:
|
||
sendUsers = null;
|
||
//entity.STATUS = PFStandardStatus.Archived;
|
||
break;
|
||
default:
|
||
sendUsers = null;
|
||
//entity.STATUS = PFStandardStatus.Archived;
|
||
break;
|
||
}
|
||
var name = Enum.GetName(typeof(FMDepartmentType), entity.DEPARTMENT_TYPE);
|
||
if (sendUsers != null && sendUsers.Any())
|
||
{
|
||
List<Guid> userIds = new List<Guid>();
|
||
List<string> userNames = new List<string>();
|
||
foreach (var user in sendUsers)
|
||
{
|
||
userIds.Add(user.ID);
|
||
userNames.Add(user.NAME);
|
||
}
|
||
//发消息
|
||
notices = NotificationTaskService.InsertUserNoticeTaskModels(name + "考核方案审阅", entity.ID, entity.ORG_ID, userIds, userNames, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PT024_SHOWPRINT");
|
||
}
|
||
if (entity != null && entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
var fileIds = entity.Nav_Files.Select(t => t.IMG_FILE_ID).Distinct().ToList();
|
||
DepartmentService.AddDocument("安全生产方针与目标", "考核方案审核表", name + "安全生产目标与指标考核方案", "附件", "计划文件", DateTime.Now.AddYears(1), entity.ID, fileIds, entity.CREATER_ID);
|
||
}
|
||
List<Guid> deleteContentId = new List<Guid>();
|
||
List<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL> details = new List<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL>();
|
||
List<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT> contents = new List<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT>();
|
||
if (entityDetails != null && entityDetails.Any())
|
||
{
|
||
var tempDetails = this.GetEntities<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL>(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID)).ToList();
|
||
var tempDetailContents = this.GetEntities<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT>(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID)).ToList();
|
||
foreach (var item in entityDetails)
|
||
{
|
||
var temps = tempDetails.Where(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.USER_ID == item.USER_ID).ToList();
|
||
if (temps != null && temps.Any())
|
||
{
|
||
if (item.Nav_Contents != null && item.Nav_Contents.Any())
|
||
{
|
||
var tempIds = temps.Select(t => t.ID).ToList();
|
||
var detailContentIds = tempDetailContents.Where(t => tempIds.Contains(t.PLAN_AUDIT_DETAIL_ID)).Select(m => m.ID).ToList();
|
||
deleteContentId.AddRange(detailContentIds);
|
||
foreach (var temp in temps)
|
||
{
|
||
foreach (var content in item.Nav_Contents)
|
||
{
|
||
T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT contentTemp = new T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT();
|
||
contentTemp.PLAN_AUDIT_DETAIL_ID = temp.ID;
|
||
contentTemp.ROW_NO = content.ROW_NO;
|
||
contentTemp.NAME = content.NAME;
|
||
contentTemp.SCORE = content.SCORE;
|
||
contentTemp.METHOD = content.METHOD;
|
||
contentTemp.ORG_ID = orgId;
|
||
contents.Add(contentTemp);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL de = new T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL();
|
||
de.ORG_ID = orgId;
|
||
de.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
de.USER_ID = item.USER_ID;
|
||
de.YEAR = item.YEAR;
|
||
de.ASSESSMENT_CYCLE = item.ASSESSMENT_CYCLE;
|
||
details.Add(de);
|
||
if (item.Nav_Contents != null && item.Nav_Contents.Any())
|
||
{
|
||
foreach (var content in item.Nav_Contents)
|
||
{
|
||
T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT contentTemp = new T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT();
|
||
contentTemp.PLAN_AUDIT_DETAIL_ID = de.ID;
|
||
contentTemp.ROW_NO = content.ROW_NO;
|
||
contentTemp.NAME = content.NAME;
|
||
contentTemp.SCORE = content.SCORE;
|
||
contentTemp.METHOD = content.METHOD;
|
||
contentTemp.ORG_ID = orgId;
|
||
contents.Add(contentTemp);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//entity.Nav_Details = null;
|
||
entity.Nav_Files = null;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (deleteContentId != null && deleteContentId.Any())
|
||
this.BantchDeleteEntityNoCommit<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT>(deleteContentId);
|
||
if (details != null && details.Any())
|
||
this.BantchSaveEntityNoCommit(details);
|
||
if (contents != null && contents.Any())
|
||
this.BantchSaveEntityNoCommit(contents);
|
||
});
|
||
return true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PTAssessmentPlanAuditYL(string id)
|
||
{
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var entity = this.GetEntity<T_PT_ASSESSMENT_PLAN_AUDIT>(id, "Nav_Files");
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
var entityDetails = this.GetEntities<T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL>(t => t.ASSESSMENT_PLAN_ID == Guid.Parse(id), new BaseFilter(orgId), "Nav_Contents").ToList();
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
var departmentIds = entityDetails.Where(m => m.DEPARTMENT_ID != null).Select(t => t.DEPARTMENT_ID.Value).Distinct().ToList();
|
||
var userIdss = entityDetails.Where(m => m.USER_ID != null).Select(t => t.USER_ID.Value).Distinct().ToList();
|
||
var users = this.GetEntities<T_FM_USER>(t => (t.DEPARTMENT_ID != null && departmentIds.Contains(t.DEPARTMENT_ID.Value) && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人") && t.ENABLE_STATUS == 0) || userIdss.Contains(t.ID), new BaseFilter(entity.ORG_ID), "Nav_ApproveRole");
|
||
var sendUsers = users.Distinct().ToList();
|
||
switch (entity.DEPARTMENT_TYPE)
|
||
{
|
||
case FMDepartmentType.Company:
|
||
sendUsers = users.Where(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "部门负责人" || t.Nav_ApproveRole.NAME == "安环部负责人").ToList();
|
||
var userInfoFirst = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部负责人");
|
||
if (userInfoFirst == null && entity.ORG_ID.ToString() == "3efd5276-632b-e379-9ff3-7a7546591fca")
|
||
{
|
||
var userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
|
||
sendUsers.Add(userInfo);
|
||
}
|
||
break;
|
||
case FMDepartmentType.Department:
|
||
sendUsers = users.Where(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "班组负责人").ToList();
|
||
break;
|
||
case FMDepartmentType.Class:
|
||
sendUsers = null;
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
break;
|
||
default:
|
||
sendUsers = null;
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
break;
|
||
}
|
||
var name = Enum.GetName(typeof(FMDepartmentType), entity.DEPARTMENT_TYPE);
|
||
if (sendUsers != null && sendUsers.Any())
|
||
{
|
||
List<Guid> userIds = new List<Guid>();
|
||
List<string> userNames = new List<string>();
|
||
foreach (var user in sendUsers)
|
||
{
|
||
userIds.Add(user.ID);
|
||
userNames.Add(user.NAME);
|
||
}
|
||
//发消息
|
||
notices = NotificationTaskService.InsertUserNoticeTaskModels(name + "考核方案审阅", entity.ID, entity.ORG_ID, userIds, userNames, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PT024_SHOWPRINT");
|
||
}
|
||
if (entity != null && entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
var fileIds = entity.Nav_Files.Select(t => t.IMG_FILE_ID).Distinct().ToList();
|
||
DepartmentService.AddDocument("安全生产方针与目标", "考核方案审核表", name + "安全生产目标与指标考核方案", "附件", "计划文件", DateTime.Now.AddYears(1), entity.ID, fileIds, entity.CREATER_ID);
|
||
}
|
||
List<Guid> deleteContentId = new List<Guid>();
|
||
List<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL> details = new List<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL>();
|
||
List<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT> contents = new List<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT>();
|
||
if (entityDetails != null && entityDetails.Any())
|
||
{
|
||
var tempDetails = this.GetEntities<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL>(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID)).ToList();
|
||
var tempDetailContents = this.GetEntities<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT>(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID)).ToList();
|
||
foreach (var item in entityDetails)
|
||
{
|
||
var temps = tempDetails.Where(t => t.DEPARTMENT_ID == item.DEPARTMENT_ID && t.USER_ID == item.USER_ID).ToList();
|
||
if (temps != null && temps.Any())
|
||
{
|
||
if (item.Nav_Contents != null && item.Nav_Contents.Any())
|
||
{
|
||
var tempIds = temps.Select(t => t.ID).ToList();
|
||
var detailContentIds = tempDetailContents.Where(t => tempIds.Contains(t.PLAN_AUDIT_DETAIL_ID)).Select(m => m.ID).ToList();
|
||
deleteContentId.AddRange(detailContentIds);
|
||
foreach (var temp in temps)
|
||
{
|
||
foreach (var content in item.Nav_Contents)
|
||
{
|
||
T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT contentTemp = new T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT();
|
||
contentTemp.PLAN_AUDIT_DETAIL_ID = temp.ID;
|
||
contentTemp.ROW_NO = content.ROW_NO;
|
||
contentTemp.NAME = content.NAME;
|
||
contentTemp.SCORE = content.SCORE;
|
||
contentTemp.METHOD = content.METHOD;
|
||
contentTemp.ORG_ID = orgId;
|
||
contents.Add(contentTemp);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL de = new T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL();
|
||
de.ORG_ID = orgId;
|
||
de.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
de.USER_ID = item.USER_ID;
|
||
de.YEAR = item.YEAR;
|
||
de.ASSESSMENT_CYCLE = item.ASSESSMENT_CYCLE;
|
||
details.Add(de);
|
||
if (item.Nav_Contents != null && item.Nav_Contents.Any())
|
||
{
|
||
foreach (var content in item.Nav_Contents)
|
||
{
|
||
T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT contentTemp = new T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT();
|
||
contentTemp.PLAN_AUDIT_DETAIL_ID = de.ID;
|
||
contentTemp.ROW_NO = content.ROW_NO;
|
||
contentTemp.NAME = content.NAME;
|
||
contentTemp.SCORE = content.SCORE;
|
||
contentTemp.METHOD = content.METHOD;
|
||
contentTemp.ORG_ID = orgId;
|
||
contents.Add(contentTemp);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
entity.Nav_Details = null;
|
||
entity.Nav_Files = null;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity, "STATUS");
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (deleteContentId != null && deleteContentId.Any())
|
||
this.BantchDeleteEntityNoCommit<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL_CONTENT>(deleteContentId);
|
||
if (details != null && details.Any())
|
||
this.BantchSaveEntityNoCommit(details);
|
||
if (contents != null && contents.Any())
|
||
this.BantchSaveEntityNoCommit(contents);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PTIndicatorFormulationDepartment(string id)
|
||
{
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var entity = this.GetEntity<T_PT_INDICATOR_FORMULATION_DEPARTMENT>(id, "Nav_TeamDetail", "Nav_DepartmentDetail", "Nav_Files");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
List<string> userNames = new List<string>();
|
||
var userIds = entity.Nav_TeamDetail.Select(t => t.USER_ID.Value).Distinct().ToList();
|
||
if (entity.DEPARTMENT_TYPE != FMDepartmentType.Class)
|
||
{
|
||
var departmentIds = entity.Nav_DepartmentDetail.Select(t => t.DEPARTMENT_ID.Value).Distinct().ToList();
|
||
var userIdTemps = this.GetEntities<T_FM_DEPARTMENT>(t => departmentIds.Contains(t.ID) && t.USER_ID != null && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, new BaseFilter(entity.ORG_ID)).Select(t => t.USER_ID.Value).Distinct().ToList();
|
||
userIds.AddRange(userIdTemps);
|
||
userIds = userIds.Distinct().ToList();
|
||
}
|
||
var users = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID), new BaseFilter(entity.ORG_ID));//&& t.ID != loginUserId
|
||
foreach (var user in users)
|
||
{
|
||
userNames.Add(user.NAME);
|
||
}
|
||
var name = "";
|
||
switch (entity.DEPARTMENT_TYPE)
|
||
{
|
||
case FMDepartmentType.Company:
|
||
name = "部门";
|
||
break;
|
||
case FMDepartmentType.Department:
|
||
name = "车间";
|
||
break;
|
||
case FMDepartmentType.Workshop:
|
||
name = "班组";
|
||
break;
|
||
case FMDepartmentType.Class:
|
||
name = "个人";
|
||
break;
|
||
default:
|
||
name = "";
|
||
break;
|
||
}
|
||
//var name = Enum.GetName(typeof(FMDepartmentType), entity.DEPARTMENT_TYPE);
|
||
//发消息
|
||
notices = NotificationTaskService.InsertUserNoticeTaskModels(name + "安全生产目标与指标审阅", entity.ID, entity.ORG_ID, userIds, userNames, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PT020_SHOWPRINT");
|
||
if (entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
var fileIds = entity.Nav_Files.Select(t => t.IMG_FILE_ID).Distinct().ToList();
|
||
DepartmentService.AddDocument("安全生产方针与目标", "安全生产目标与指标制定", name + "安全生产目标与指标实施计划", "实施计划附件", "计划文件", DateTime.Now.AddYears(1), entity.ID, fileIds, entity.CREATER_ID);
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
});
|
||
return true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PTIndicatorFormulationDepartmentYL(string id)
|
||
{
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var entity = this.GetEntity<T_PT_INDICATOR_FORMULATION_DEPARTMENT>(id, "Nav_TeamDetail", "Nav_DepartmentDetail", "Nav_Files");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
List<string> userNames = new List<string>();
|
||
var userIds = entity.Nav_TeamDetail.Select(t => t.USER_ID.Value).Distinct().ToList();
|
||
if (entity.DEPARTMENT_TYPE != FMDepartmentType.Class)
|
||
{
|
||
var departmentIds = entity.Nav_DepartmentDetail.Select(t => t.DEPARTMENT_ID.Value).Distinct().ToList();
|
||
var userIdTemps = this.GetEntities<T_FM_DEPARTMENT>(t => departmentIds.Contains(t.ID) && t.USER_ID != null && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, new BaseFilter(entity.ORG_ID)).Select(t => t.USER_ID.Value).Distinct().ToList();
|
||
userIds.AddRange(userIdTemps);
|
||
userIds = userIds.Distinct().ToList();
|
||
}
|
||
var users = this.GetEntities<T_FM_USER>(t => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID));//&& t.ID != loginUserId
|
||
foreach (var user in users)
|
||
{
|
||
userNames.Add(user.NAME);
|
||
}
|
||
var name = "";
|
||
switch (entity.DEPARTMENT_TYPE)
|
||
{
|
||
case FMDepartmentType.Company:
|
||
name = "部门";
|
||
break;
|
||
case FMDepartmentType.Department:
|
||
name = "班组";
|
||
break;
|
||
case FMDepartmentType.Class:
|
||
name = "个人";
|
||
break;
|
||
default:
|
||
name = "";
|
||
break;
|
||
}
|
||
//var name = Enum.GetName(typeof(FMDepartmentType), entity.DEPARTMENT_TYPE);
|
||
//发消息
|
||
notices = NotificationTaskService.InsertUserNoticeTaskModels(name + "安全生产目标与指标审阅", entity.ID, entity.ORG_ID, userIds, userNames, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "PT020_SHOWPRINT");
|
||
if (entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
var fileIds = entity.Nav_Files.Select(t => t.IMG_FILE_ID).Distinct().ToList();
|
||
DepartmentService.AddDocument("安全生产方针与目标", "安全生产目标与指标制定", name + "安全生产目标与指标实施计划", "实施计划附件", "计划文件", DateTime.Now.AddYears(1), entity.ID, fileIds, entity.CREATER_ID);
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_PTIndicatorFormulation(string id)
|
||
{
|
||
var entity = this.GetEntity<T_PT_INDICATOR_FORMULATION>(id, "Nav_User", "Nav_Files", "Nav_Goals");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
if (entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
var fileIds = entity.Nav_Files.Select(t => t.IMG_FILE_ID).Distinct().ToList();
|
||
DepartmentService.AddDocument("安全生产方针与目标", "安全生产目标与指标制定", "安全生产目标与指标", "年度安全生产目标与指标附件", "计划文件", DateTime.Now.AddYears(1), entity.ID, fileIds, entity.CREATER_ID);
|
||
}
|
||
//触发部门安全生产目标与指标
|
||
T_PT_INDICATOR_FORMULATION_DEPARTMENT formulationDepartment = null;
|
||
List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL> departmentDetails = new List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL>();
|
||
List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM> teamDetails = new List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM>();
|
||
List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT> departmentContents = new List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT>();
|
||
List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT> teamContents = new List<T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT>();
|
||
//触发考核方案审核表
|
||
T_PT_ASSESSMENT_PLAN_AUDIT audit = null;
|
||
List<T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL> auditDetails = new List<T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL>();
|
||
List<T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT> contents = new List<T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT>();
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部负责人" && t.ENABLE_STATUS == 0);
|
||
if (userInfo == null && entity.ORG_ID.ToString() == "3efd5276-632b-e379-9ff3-7a7546591fca")
|
||
{
|
||
userInfo = this.GetEntity<T_FM_USER>(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
|
||
}
|
||
if (userInfo != null)
|
||
{
|
||
formulationDepartment = new T_PT_INDICATOR_FORMULATION_DEPARTMENT();
|
||
formulationDepartment.ORG_ID = entity.ORG_ID;
|
||
formulationDepartment.DEPARTMENT_TYPE = FMDepartmentType.Company;
|
||
formulationDepartment.STATUS = PFStandardStatus.Draft;
|
||
formulationDepartment.YEAR = entity.YEAR;
|
||
formulationDepartment.USER_ID = userInfo.ID;
|
||
formulationDepartment.DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
|
||
formulationDepartment.SET_TIME = DateTime.Now;
|
||
formulationDepartment.INDICATOR_FORMULATION_ID = entity.ID;
|
||
audit = new T_PT_ASSESSMENT_PLAN_AUDIT();
|
||
audit.ORG_ID = entity.ORG_ID;
|
||
audit.DEPARTMENT_TYPE = FMDepartmentType.Company;
|
||
audit.STATUS = PFStandardStatus.Draft;
|
||
audit.YEAR = entity.YEAR;
|
||
audit.USER_ID = userInfo.ID;
|
||
audit.DEPARTMENT_ID = userInfo.DEPARTMENT_ID;
|
||
audit.SET_TIME = DateTime.Now;
|
||
audit.INDICATOR_FORMULATION_ID = entity.ID;
|
||
var departmentInfos = this.GetEntities<T_FM_DEPARTMENT>(t => t.DEPARTMENT_TYPE == (int)FMDepartmentType.Department && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用, new BaseFilter(entity.ORG_ID));
|
||
var departmentIds = departmentInfos.Select(m => m.ID).Distinct().ToList();
|
||
if (departmentIds.Any())
|
||
{
|
||
foreach (var department in departmentIds)
|
||
{
|
||
//细表
|
||
T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL detail = new T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL();
|
||
detail.ORG_ID = entity.ORG_ID;
|
||
detail.DEPARTMENT_ID = department;
|
||
detail.INDICATOR_FORMULATION_DEPARTMENT_ID = formulationDepartment.ID;
|
||
departmentDetails.Add(detail);
|
||
//细表
|
||
T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL auditDetail = new T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL();
|
||
auditDetail.ORG_ID = entity.ORG_ID;
|
||
auditDetail.DEPARTMENT_ID = department;
|
||
auditDetail.ASSESSMENT_PLAN_ID = audit.ID;
|
||
auditDetail.YEAR = DateTime.Now.Year.ToString();
|
||
auditDetail.ASSESSMENT_CYCLE = PTAssessmentCycleEnums.Year;
|
||
auditDetails.Add(auditDetail);
|
||
}
|
||
}
|
||
var chargeIds = departmentInfos.Select(t => t.USER_ID).Distinct().ToList();
|
||
//var chargeAnotherIds = departmentInfos.Where(t=>t.USER_ID ==null).Select(t => t.CHARGEUSER_ID).Distinct().ToList();
|
||
//chargeIds.AddRange(chargeAnotherIds);
|
||
var userInfos = this.GetEntities<T_FM_USER>(t => (t.Nav_Department != null && (t.Nav_Department.DEPARTMENT_TYPE == (int)FMDepartmentType.Company || t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("副总")) && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && !t.NAME.Contains("管理员")) || chargeIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
if (userInfos != null && userInfos.Any())
|
||
{
|
||
foreach (var info in userInfos)
|
||
{
|
||
//细表
|
||
T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM team = new T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM();
|
||
team.ORG_ID = entity.ORG_ID;
|
||
team.USER_ID = info.ID;
|
||
team.INDICATOR_FORMULATION_DEPARTMENT_ID = formulationDepartment.ID;
|
||
teamDetails.Add(team);
|
||
//细表
|
||
T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL auditDetail = new T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL();
|
||
auditDetail.ORG_ID = entity.ORG_ID;
|
||
auditDetail.DEPARTMENT_ID = info.DEPARTMENT_ID;
|
||
auditDetail.USER_ID = info.ID;
|
||
auditDetail.ASSESSMENT_PLAN_ID = audit.ID;
|
||
auditDetail.YEAR = DateTime.Now.Year.ToString();
|
||
auditDetail.ASSESSMENT_CYCLE = PTAssessmentCycleEnums.Year;
|
||
auditDetails.Add(auditDetail);
|
||
}
|
||
}
|
||
var userIds = userInfos.Select(t => t.ID).ToList();
|
||
var tempDetails = this.GetEntities<T_PT_ASSESSMENT_PLAN_AUDIT_TEMP_DETAIL>(t => (departmentIds.Contains(t.DEPARTMENT_ID.Value) || userIds.Contains(t.USER_ID.Value)), new BaseFilter(entity.ORG_ID), new string[] { "Nav_Contents" }).ToList();
|
||
if (departmentDetails != null && departmentDetails.Any())
|
||
{
|
||
foreach (var auditDs in departmentDetails)
|
||
{
|
||
if (entity.Nav_Goals != null && entity.Nav_Goals.Any())
|
||
{
|
||
entity.Nav_Goals.ForEach(t =>
|
||
{
|
||
T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT content = new T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT();
|
||
content.ORG_ID = t.ORG_ID;
|
||
content.INDICATOR_FORMULATION_DEPARTMENT_DETAIL_ID = auditDs.ID;
|
||
content.NAME = t.NAME;
|
||
content.ROW_NO = t.ROW_NO;
|
||
departmentContents.Add(content);
|
||
});
|
||
}
|
||
}
|
||
}
|
||
if (teamDetails != null && teamDetails.Any())
|
||
{
|
||
foreach (var auditDs in teamDetails)
|
||
{
|
||
if (entity.Nav_Goals != null && entity.Nav_Goals.Any())
|
||
{
|
||
entity.Nav_Goals.ForEach(t =>
|
||
{
|
||
T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT content = new T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT();
|
||
content.ORG_ID = t.ORG_ID;
|
||
content.INDICATOR_FORMULATION_DEPARTMENT_TEAM_ID = auditDs.ID;
|
||
content.NAME = t.NAME;
|
||
content.ROW_NO = t.ROW_NO;
|
||
teamContents.Add(content);
|
||
});
|
||
}
|
||
}
|
||
}
|
||
if (auditDetails != null && auditDetails.Any())
|
||
{
|
||
foreach (var auditDs in auditDetails)
|
||
{
|
||
var tempCurrent = tempDetails.FirstOrDefault(t => t.DEPARTMENT_ID == auditDs.DEPARTMENT_ID && t.USER_ID == auditDs.USER_ID);
|
||
if (tempCurrent == null)
|
||
tempCurrent = tempDetails.FirstOrDefault(t => t.USER_ID != null && t.USER_ID == auditDs.USER_ID);
|
||
if (tempCurrent != null)
|
||
{
|
||
auditDs.ASSESSMENT_CYCLE = tempCurrent.ASSESSMENT_CYCLE != 0 ? tempCurrent.ASSESSMENT_CYCLE : PTAssessmentCycleEnums.Year;
|
||
if (tempCurrent.Nav_Contents != null && tempCurrent.Nav_Contents.Any())
|
||
{
|
||
tempCurrent.Nav_Contents.ForEach(t =>
|
||
{
|
||
T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT content = new T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT();
|
||
content.ORG_ID = t.ORG_ID;
|
||
content.PLAN_AUDIT_DETAIL_ID = auditDs.ID;
|
||
content.NAME = t.NAME;
|
||
content.SCORE = t.SCORE;
|
||
content.METHOD = t.METHOD;
|
||
contents.Add(content);
|
||
});
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//if (departmentDetails != null && departmentDetails.Any())
|
||
//{
|
||
// foreach (var auditDs in departmentDetails)
|
||
// {
|
||
// var tempCurrent = tempDetails.FirstOrDefault(t => t.DEPARTMENT_ID == auditDs.DEPARTMENT_ID && t.USER_ID == null);
|
||
// if (tempCurrent != null)
|
||
// {
|
||
// if (tempCurrent.Nav_Contents != null && tempCurrent.Nav_Contents.Any())
|
||
// {
|
||
// tempCurrent.Nav_Contents.ForEach(t =>
|
||
// {
|
||
// T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT content = new T_PT_INDICATOR_FORMULATION_DEPARTMENT_DETAIL_CONTENT();
|
||
// content.ORG_ID = t.ORG_ID;
|
||
// content.INDICATOR_FORMULATION_DEPARTMENT_DETAIL_ID = auditDs.ID;
|
||
// content.NAME = t.NAME;
|
||
// content.ROW_NO = t.ROW_NO;
|
||
// departmentContents.Add(content);
|
||
// });
|
||
// }
|
||
// }
|
||
// }
|
||
//}
|
||
//if (teamDetails != null && teamDetails.Any())
|
||
//{
|
||
// foreach (var auditDs in teamDetails)
|
||
// {
|
||
// var tempCurrent = tempDetails.FirstOrDefault(t => t.USER_ID == auditDs.USER_ID);
|
||
// if (tempCurrent != null)
|
||
// {
|
||
// if (tempCurrent.Nav_Contents != null && tempCurrent.Nav_Contents.Any())
|
||
// {
|
||
// tempCurrent.Nav_Contents.ForEach(t =>
|
||
// {
|
||
// T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT content = new T_PT_INDICATOR_FORMULATION_DEPARTMENT_TEAM_CONTENT();
|
||
// content.ORG_ID = t.ORG_ID;
|
||
// content.INDICATOR_FORMULATION_DEPARTMENT_TEAM_ID = auditDs.ID;
|
||
// content.NAME = t.NAME;
|
||
// content.ROW_NO = t.ROW_NO;
|
||
// teamContents.Add(content);
|
||
// });
|
||
// }
|
||
// }
|
||
// }
|
||
//}
|
||
//if (auditDetails != null && auditDetails.Any())
|
||
//{
|
||
// foreach (var auditDs in auditDetails)
|
||
// {
|
||
// var tempCurrent = tempDetails.FirstOrDefault(t => t.DEPARTMENT_ID == auditDs.DEPARTMENT_ID && t.USER_ID == auditDs.USER_ID);
|
||
// if (tempCurrent != null)
|
||
// {
|
||
// auditDs.ASSESSMENT_CYCLE = tempCurrent.ASSESSMENT_CYCLE != 0 ? tempCurrent.ASSESSMENT_CYCLE : PTAssessmentCycleEnums.Year;
|
||
// if (tempCurrent.Nav_Contents != null && tempCurrent.Nav_Contents.Any())
|
||
// {
|
||
// tempCurrent.Nav_Contents.ForEach(t =>
|
||
// {
|
||
// T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT content = new T_PT_ASSESSMENT_PLAN_AUDIT_DETAIL_CONTENT();
|
||
// content.ORG_ID = t.ORG_ID;
|
||
// content.PLAN_AUDIT_DETAIL_ID = auditDs.ID;
|
||
// content.NAME = t.NAME;
|
||
// content.SCORE = t.SCORE;
|
||
// content.METHOD = t.METHOD;
|
||
// contents.Add(content);
|
||
// });
|
||
// }
|
||
// }
|
||
// }
|
||
//}
|
||
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("部门目标与指标分解", formulationDepartment.ID, entity.ORG_ID, userInfo.ID, userInfo.NAME, DateTime.Now,
|
||
DateTime.Now.AddDays(5), (int)FMNoticeTypeEnum.消息, "PT020"));
|
||
notices.Add(NotificationTaskService.InsertUserNoticeTaskModel("公司考核方案审核", audit.ID, entity.ORG_ID, userInfo.ID, userInfo.NAME, DateTime.Now,
|
||
DateTime.Now.AddDays(5), (int)FMNoticeTypeEnum.消息, "PT024"));
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (formulationDepartment != null)
|
||
this.UpdateEntityNoCommit(formulationDepartment);
|
||
if (departmentDetails != null && departmentDetails.Any())
|
||
this.BantchSaveEntityNoCommit(departmentDetails);
|
||
if (departmentContents != null && departmentContents.Any())
|
||
this.BantchSaveEntityNoCommit(departmentContents);
|
||
if (teamDetails != null && teamDetails.Any())
|
||
this.BantchSaveEntityNoCommit(teamDetails);
|
||
if (teamContents != null && teamContents.Any())
|
||
this.BantchSaveEntityNoCommit(teamContents);
|
||
if (audit != null)
|
||
this.UpdateEntityNoCommit(audit);
|
||
if (auditDetails != null && auditDetails.Any())
|
||
this.BantchSaveEntityNoCommit(auditDetails);
|
||
if (contents != null && contents.Any())
|
||
this.BantchSaveEntityNoCommit(contents);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_HMCrucialTaskAnalysis(string id)
|
||
{
|
||
//var entity = this.GetEntity<T_HM_CRUCIAL_TASK_ANALYSIS>(id, false, "Nav_OperationAnalyze", "Nav_Details", "Nav_Details.Nav_OperationStep", "Nav_Details.Nav_EvaluateRisk");
|
||
var entity = this.GetEntity<T_HM_CRUCIAL_TASK_ANALYSIS>(id, new string[] { "Nav_OperationAnalyze", "Nav_Details", "Nav_Details.Nav_OperationStep" });
|
||
entity.IS_PUBLISH = FOPreMeetingStatusEnum.归档;
|
||
entity.COMPLETE_DATE = DateTime.Now;
|
||
//写入作业任务库
|
||
List<T_HM_OPERATION_LINK> addOperations = new List<T_HM_OPERATION_LINK>();
|
||
List<T_HM_OPERATION_TASK_SAFE_CONFIRM> safeConfs = new List<T_HM_OPERATION_TASK_SAFE_CONFIRM>();
|
||
List<T_HM_OPERATION_TASK_SAFE_MEASURE> safeMeas = new List<T_HM_OPERATION_TASK_SAFE_MEASURE>();
|
||
List<T_HM_OPERATION_TASK_DEAL_MEASURE> dealMeas = new List<T_HM_OPERATION_TASK_DEAL_MEASURE>();
|
||
List<T_HM_OPERATION_LINK_POST> posts = new List<T_HM_OPERATION_LINK_POST>();
|
||
//List<T_HM_OPERATION_LINK_AREA> areas = new List<T_HM_OPERATION_LINK_AREA>();
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<Guid> confIds = new List<Guid>();
|
||
List<Guid> measIds = new List<Guid>();
|
||
List<Guid> dealIds = new List<Guid>();
|
||
List<Guid> postIds = new List<Guid>();
|
||
if (entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
{
|
||
List<T_HM_JOBTASK_IDENTIFY_DETAIL> jobDetails = null;
|
||
var stepIds = entity.Nav_Details.Select(t => t.OPERATION_STEP_ID).Distinct().ToList();
|
||
if (entity.Nav_OperationAnalyze != null && entity.Nav_OperationAnalyze.JOBTASK_IDENTIFY_ID != null)
|
||
{
|
||
jobDetails = this.GetEntities<T_HM_JOBTASK_IDENTIFY_DETAIL>(t => t.JOBTASK_IDENTIFY_ID == entity.Nav_OperationAnalyze.JOBTASK_IDENTIFY_ID && stepIds.Contains(t.OPERATION_STEP_ID), new BaseFilter(entity.ORG_ID), "Nav_DetailPost").ToList();
|
||
}
|
||
var links = this.GetEntities<T_HM_OPERATION_LINK>(t => stepIds.Contains(t.OPERATION_STEP_ID) && t.STATUS == (int)STATUSEnum.启用 && t.IS_RUN == DisableStatusEnum.是, new BaseFilter(entity.ORG_ID), new string[] { "Nav_LinkPost", "Nav_SafeConfirms", "Nav_SafeMeasures", "Nav_DealMeasures" });
|
||
entity.Nav_Details.ForEach(t =>
|
||
{
|
||
T_HM_OPERATION_LINK operation = new T_HM_OPERATION_LINK();
|
||
var current = links.FirstOrDefault(x => x.OPERATION_STEP_ID == t.OPERATION_STEP_ID);//OrderByDescending(t => t.CREATE_TIME).
|
||
if (current != null)
|
||
{
|
||
current.CODE = entity.CODE;
|
||
current.NAME = "关键任务分析表回写";
|
||
current.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
current.TASK_LEVEL = (int)HMTaskLevelEnum.关键任务非许可作业;
|
||
current.ORG_ID = entity.ORG_ID;
|
||
current.IS_IMPORTANT = (int)ISImportantEnum.是;
|
||
current.SafeConfirmsStr = t.SafeConfirmsStr;
|
||
current.SafeMeasuresStr = t.SafeMeasuresStr;
|
||
current.DealMeasuresStr = t.DealMeasuresStr;
|
||
current.STATUS = (int)STATUSEnum.启用;
|
||
current.CREATER_ID = entity.CREATER_ID;
|
||
current.MODIFY_TYPE = HMModifyEnum.修改;
|
||
current.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
current.AUDIT_LEVEL = (int)t.AUDIT_LEVEL;
|
||
operation = current;
|
||
if (current.Nav_SafeConfirms != null && current.Nav_SafeConfirms.Any())
|
||
{
|
||
var ids = current.Nav_SafeConfirms.Select(t => t.ID).ToList();
|
||
confIds.AddRange(ids);
|
||
}
|
||
if (current.Nav_SafeMeasures != null && current.Nav_SafeMeasures.Any())
|
||
{
|
||
var ids = current.Nav_SafeMeasures.Select(t => t.ID).ToList();
|
||
measIds.AddRange(ids);
|
||
}
|
||
if (current.Nav_DealMeasures != null && current.Nav_DealMeasures.Any())
|
||
{
|
||
var ids = current.Nav_DealMeasures.Select(t => t.ID).ToList();
|
||
dealIds.AddRange(ids);
|
||
}
|
||
if (current.Nav_LinkPost != null && current.Nav_LinkPost.Any())
|
||
{
|
||
var ids = current.Nav_LinkPost.Select(t => t.ID).ToList();
|
||
postIds.AddRange(ids);
|
||
}
|
||
//if (t.AREA_ID != null && current.Nav_LinkArea != null && current.Nav_LinkArea.Any())
|
||
//{
|
||
// var linkArea = current.Nav_LinkArea.FirstOrDefault(t => t.AREA_ID == t.AREA_ID);
|
||
// if (linkArea == null)
|
||
// {
|
||
// T_HM_OPERATION_LINK_AREA area = new T_HM_OPERATION_LINK_AREA();
|
||
// area.ORG_ID = entity.ORG_ID;
|
||
// area.OPERATION_LINK_ID = current.ID;
|
||
// area.AREA_ID = t.AREA_ID;
|
||
// areas.Add(area);
|
||
// }
|
||
//}
|
||
}
|
||
else
|
||
{
|
||
//主表
|
||
operation.CODE = entity.CODE;
|
||
operation.NAME = "关键任务分析表新增";
|
||
operation.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
operation.TASK_LEVEL = (int)HMTaskLevelEnum.关键任务非许可作业;
|
||
operation.ORG_ID = entity.ORG_ID;
|
||
operation.IS_IMPORTANT = (int)ISImportantEnum.是;
|
||
operation.SafeConfirmsStr = t.SafeConfirmsStr;
|
||
operation.SafeMeasuresStr = t.SafeMeasuresStr;
|
||
operation.DealMeasuresStr = t.DealMeasuresStr;
|
||
operation.STATUS = (int)STATUSEnum.启用;
|
||
operation.CREATER_ID = entity.CREATER_ID;
|
||
operation.MODIFY_TYPE = HMModifyEnum.新增;
|
||
operation.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
operation.AUDIT_LEVEL = (int)t.AUDIT_LEVEL;
|
||
var mineType = APT.Infrastructure.Api.AppContext.CurrentSession.MineType;
|
||
if (!string.IsNullOrEmpty(mineType))
|
||
{
|
||
operation.MineType = int.Parse(mineType.Split(",")[0]);
|
||
}
|
||
//if (t.AREA_ID != null)
|
||
//{
|
||
// T_HM_OPERATION_LINK_AREA area = new T_HM_OPERATION_LINK_AREA();
|
||
// area.ORG_ID = entity.ORG_ID;
|
||
// area.OPERATION_LINK_ID = operation.ID;
|
||
// area.AREA_ID = t.AREA_ID;
|
||
// areas.Add(area);
|
||
//}
|
||
}
|
||
addOperations.Add(operation);
|
||
var newPostIds = jobDetails.FirstOrDefault(t => t.OPERATION_STEP_ID == operation.OPERATION_STEP_ID);
|
||
if (newPostIds != null && newPostIds.Nav_DetailPost != null && newPostIds.Nav_DetailPost.Any())
|
||
{
|
||
foreach (var item in newPostIds.Nav_DetailPost)
|
||
{
|
||
T_HM_OPERATION_LINK_POST post = new T_HM_OPERATION_LINK_POST();
|
||
post.ORG_ID = entity.ORG_ID;
|
||
post.OPERATION_LINK_ID = operation.ID;
|
||
post.POST_ID = item.POST_ID;
|
||
posts.Add(post);
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(t.SafeConfirmsStr))
|
||
{
|
||
var conf = t.SafeConfirmsStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (conf.Length > 0)
|
||
{
|
||
foreach (var c in conf)
|
||
{
|
||
T_HM_OPERATION_TASK_SAFE_CONFIRM safeConf = new T_HM_OPERATION_TASK_SAFE_CONFIRM();
|
||
safeConf.ORG_ID = entity.ORG_ID;
|
||
safeConf.OPERATION_LINK_ID = operation.ID;
|
||
if (c.Contains("、"))
|
||
{
|
||
var co = c.Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (co.Length > 0)
|
||
{
|
||
safeConf.NAME = co[1];
|
||
safeConf.NUM = int.Parse(co[0]);
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
safeConfs.Add(safeConf);
|
||
}
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(t.SafeMeasuresStr))
|
||
{
|
||
var conf = t.SafeMeasuresStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (conf.Length > 0)
|
||
{
|
||
foreach (var c in conf)
|
||
{
|
||
T_HM_OPERATION_TASK_SAFE_MEASURE safeConf = new T_HM_OPERATION_TASK_SAFE_MEASURE();
|
||
safeConf.ORG_ID = entity.ORG_ID;
|
||
safeConf.OPERATION_LINK_ID = operation.ID;
|
||
if (c.Contains("、"))
|
||
{
|
||
var co = c.Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (co.Length > 0)
|
||
{
|
||
safeConf.NAME = co[1];
|
||
safeConf.NUM = int.Parse(co[0]);
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
safeMeas.Add(safeConf);
|
||
}
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(t.DealMeasuresStr))
|
||
{
|
||
var conf = t.DealMeasuresStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (conf.Length > 0)
|
||
{
|
||
foreach (var c in conf)
|
||
{
|
||
T_HM_OPERATION_TASK_DEAL_MEASURE safeConf = new T_HM_OPERATION_TASK_DEAL_MEASURE();
|
||
safeConf.ORG_ID = entity.ORG_ID;
|
||
safeConf.OPERATION_LINK_ID = operation.ID;
|
||
if (c.Contains("、"))
|
||
{
|
||
var co = c.Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (co.Length > 0)
|
||
{
|
||
safeConf.NAME = co[1];
|
||
safeConf.NUM = int.Parse(co[0]);
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
dealMeas.Add(safeConf);
|
||
}
|
||
}
|
||
}
|
||
operation.IS_RUN = DisableStatusEnum.是;
|
||
});
|
||
}
|
||
//自动触发文件发布
|
||
List<Guid> dataIds = new List<Guid>();
|
||
T_HM_FILE_PUBLISH publish = null;
|
||
dataIds.Add(entity.ID);
|
||
var license = this.GetEntity<T_HM_LICENSE_ANALYSIS>(t => t.OPERATION_ANALYZE_ID == entity.OPERATION_ANALYZE_ID);
|
||
if (license != null)
|
||
dataIds.Add(license.ID);
|
||
var ordinary = this.GetEntity<T_HM_ORDINARY_TASK_ANALYSIS>(t => t.OPERATION_ANALYZE_ID == entity.OPERATION_ANALYZE_ID);
|
||
if (ordinary != null)
|
||
dataIds.Add(ordinary.ID);
|
||
var approve = this.GetEntities<T_PF_APPROVE>(t => dataIds.Contains(t.DATA_ID), new BaseFilter(entity.ORG_ID));
|
||
if (approve != null && approve.Any())
|
||
{
|
||
bool isEnd = true;
|
||
approve.ForEach(t =>
|
||
{
|
||
if (t.APPROVE_STATUS != (int)ApproveStatus.Done)
|
||
isEnd = false;
|
||
});
|
||
if (isEnd)
|
||
{
|
||
var nextCode = "";
|
||
var nextCodeInfo = this.GetEntities<T_HM_FILE_PUBLISH>(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID)).OrderByDescending(t => t.CREATE_TIME).FirstOrDefault();
|
||
var year = DateTime.Now.Year;
|
||
var month = DateTime.Now.Month.PadLeft(2, '0');
|
||
var day = DateTime.Now.Day.PadLeft(2, '0');
|
||
if (nextCodeInfo == null)
|
||
{
|
||
nextCode = "RWFX" + year + month + day + "00001";
|
||
}
|
||
else
|
||
{
|
||
//取最后五位序列号
|
||
var serial = nextCodeInfo.CODE.Substring(nextCodeInfo.CODE.Length - 5);
|
||
//序列号+1,不足五位补0
|
||
var num = (int.Parse(serial) + 1).ToString().PadLeft(5, '0');
|
||
nextCode = "RWFX" + year + month + day + num;
|
||
}
|
||
var userId = this.GetEntity<T_FM_PARAM_SET>(t => t.NAME == "办公室负责人")?.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//文件发布表
|
||
publish = new T_HM_FILE_PUBLISH();
|
||
publish.NAME = "";
|
||
publish.CODE = nextCode;
|
||
publish.LICENSE_ANALYSIS_ID = license?.ID;
|
||
publish.CRUCIAL_TASK_ANALYSIS_ID = entity.ID;
|
||
publish.ORDINARY_TASK_ANALYSIS_ID = ordinary?.ID;
|
||
publish.PUBLISH_DATE = DateTime.Now;
|
||
publish.Nav_Area = null;
|
||
publish.ORG_ID = entity.ORG_ID;
|
||
publish.IS_AUTO = ISImportantEnum.是;
|
||
publish.USER_ID = userId;
|
||
//消息通知部门负责人
|
||
var userIds = new List<Guid>();
|
||
userIds.Add((Guid)userId);
|
||
//userIds.Add((Guid)chargeUserId);
|
||
var UserNames = new List<string>();
|
||
var user = this.GetEntity<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && userIds.Contains(t.ID));
|
||
UserNames.Add(user?.NAME);
|
||
//发消息
|
||
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("作业任务分析文件发布表", publish.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
dtEnd, (int)FMNoticeTypeEnum.消息, "HM124"));
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (addOperations != null && addOperations.Any())
|
||
this.BantchSaveEntityNoCommit(addOperations);
|
||
if (confIds != null && confIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_TASK_SAFE_CONFIRM>(confIds);
|
||
if (measIds != null && measIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_TASK_SAFE_MEASURE>(measIds);
|
||
if (dealIds != null && dealIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_TASK_DEAL_MEASURE>(dealIds);
|
||
if (postIds != null && postIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_LINK_POST>(postIds);
|
||
if (safeConfs != null && safeConfs.Any())
|
||
this.BantchSaveEntityNoCommit(safeConfs);
|
||
if (safeMeas != null && safeMeas.Any())
|
||
this.BantchSaveEntityNoCommit(safeMeas);
|
||
if (dealMeas != null && dealMeas.Any())
|
||
this.BantchSaveEntityNoCommit(dealMeas);
|
||
if (posts != null && posts.Any())
|
||
this.BantchSaveEntityNoCommit(posts);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (publish != null)
|
||
this.UpdateEntityNoCommit(publish);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_HMJobtaskIdentify(string id)
|
||
{
|
||
//var entity = this.GetEntity<T_HM_JOBTASK_IDENTIFY>(id, false, "Nav_Details", "Nav_Details.Nav_OperationStep", "Nav_Details.Nav_DetailRisk");
|
||
|
||
var entity = this.GetEntity<T_HM_JOBTASK_IDENTIFY>(id, new string[] { "Nav_IdentifyUser", "Nav_Details", "Nav_Details.Nav_OperationStep", "Nav_Details.Nav_DetailRisk" });
|
||
entity.IS_PUBLISH = FOPreMeetingStatusEnum.归档;
|
||
entity.COMPLETE_DATE = DateTime.Now;
|
||
//自动生成作业任务分析表
|
||
T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE operation = new T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE();
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.作业任务分析表编号;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
//主表
|
||
operation.CODE = codeList[0];
|
||
operation.COMPLETION_TIME = DateTime.Now;
|
||
operation.DEPARTMENT_ID = entity.DEPARTMENT_ID;
|
||
operation.JOBTASK_IDENTIFY_ID = entity.ID;
|
||
operation.ORG_ID = entity.ORG_ID;
|
||
operation.Nav_AnalyzeDetails = null;
|
||
operation.Nav_AnalyzeFiles = null;
|
||
operation.Nav_Users = null;
|
||
operation.IS_AUTO = ISImportantEnum.是;
|
||
operation.CREATER_ID = entity.CREATER_ID;
|
||
operation.USER_ID = entity.CREATER_ID;
|
||
//明细表
|
||
List<T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE_DETAIL> analyzeDetails = new List<T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE_DETAIL>();
|
||
List<T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE_RISK> riskList = new List<T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE_RISK>();
|
||
var details = entity.Nav_Details;
|
||
if (details != null && details.Any())
|
||
{
|
||
details.ForEach(t =>
|
||
{
|
||
T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE_DETAIL detail = new T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE_DETAIL();
|
||
detail.AREA_ID = t.AREA_ID;
|
||
detail.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
detail.OPERATION_TASK_DISTINGUISH_ANALYZE_ID = operation.ID;
|
||
detail.ORG_ID = t.ORG_ID;
|
||
detail.CREATER_ID = t.CREATER_ID;
|
||
detail.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
if (t.Nav_DetailRisk != null && t.Nav_DetailRisk.Any())
|
||
{
|
||
t.Nav_DetailRisk.ForEach(x =>
|
||
{
|
||
T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE_RISK risk = new T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE_RISK();
|
||
risk.EVALUATE_RISK_ID = x.EVALUATE_RISK_ID.Value;
|
||
risk.OPERATION_TASK_DISTINGUISH_ANALYZE_DETAIL_ID = detail.ID;
|
||
risk.ORG_ID = t.ORG_ID;
|
||
riskList.Add(risk);
|
||
});
|
||
}
|
||
detail.Nav_DetailRisk = null;// riskList.Distinct(m=>m.EVALUATE_RISK_ID).ToList();
|
||
analyzeDetails.Add(detail);
|
||
});
|
||
}
|
||
//
|
||
KeywordFilter filter = new KeywordFilter();
|
||
filter.Keyword = entity.CREATER_ID.ToString();
|
||
|
||
var detailTemp = FullGet(filter);
|
||
int count = 0;
|
||
if (detailTemp != null && detailTemp.Nav_Details != null)
|
||
{
|
||
count = detailTemp.Nav_Details.Count();
|
||
}
|
||
|
||
//发消息通知负责人
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
T_HM_RISK_RECORD riskRecord = null;
|
||
List<T_HM_RISK_RECORD_USER> recordUser = new List<T_HM_RISK_RECORD_USER>();
|
||
List<T_HM_RISK_RECORD_DETAIL> recordDetail = new List<T_HM_RISK_RECORD_DETAIL>();
|
||
T_HM_RISK_RECORD_IDENTIFYING recordObj = null;
|
||
var chargeUserId = GetChargeUserId(entity.CREATER_ID);
|
||
if (chargeUserId != null)
|
||
{
|
||
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
var userIds = new List<Guid>();
|
||
userIds.Add((Guid)chargeUserId);
|
||
var UserNames = new List<string>();
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && userIds.Contains(t.ID), new BaseFilter(entity.ORG_ID));
|
||
foreach (var user in userIds)
|
||
{
|
||
var current = users.FirstOrDefault(t => t.ID == user);
|
||
UserNames.Add(current?.NAME);
|
||
}
|
||
//发消息
|
||
notices = NotificationTaskService.InsertUserNoticeTaskModels("作业任务分析表", operation.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
dtEnd, (int)FMNoticeTypeEnum.消息, "HM088");
|
||
if (count != 0 && details.Count() > count)
|
||
{
|
||
var request = this.GetEntity<T_HM_REQUEST>(t => t.ORG_ID == entity.ORG_ID);
|
||
var obj = this.GetEntity<T_HM_IDENTIFYING>(t => t.NAME == "作业过程");
|
||
riskRecord = new T_HM_RISK_RECORD();
|
||
riskRecord.START_TIME = DateTime.Now;
|
||
riskRecord.ORG_ID = entity.ORG_ID;
|
||
riskRecord.STATUS = (int)FOPreMeetingStatusEnum.草稿;
|
||
riskRecord.LEVEL = FMDepartmentType.Department;
|
||
riskRecord.REQUEST_ID = request.ID;
|
||
riskRecord.NOTE_TAKER_ID = chargeUserId;
|
||
riskRecord.INITIATING_DEPARTMENT = entity.DEPARTMENT_ID;
|
||
riskRecord.CREATER_ID = entity.CREATER_ID;
|
||
if (obj != null)
|
||
{
|
||
recordObj = new T_HM_RISK_RECORD_IDENTIFYING();
|
||
recordObj.ORG_ID = entity.ORG_ID;
|
||
recordObj.RECORD_ID = riskRecord.ID;
|
||
recordObj.IDENTIFYING_ID = obj.ID;
|
||
}
|
||
details.ForEach(t =>
|
||
{
|
||
T_HM_RISK_RECORD_DETAIL detail = new T_HM_RISK_RECORD_DETAIL();
|
||
detail.ORG_ID = entity.ORG_ID;
|
||
detail.RECORD_ID = riskRecord.ID;
|
||
detail.AREA_ID = t.AREA_ID;
|
||
detail.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
detail.IDENTIFYING_ID = obj?.ID;
|
||
recordDetail.Add(detail);
|
||
});
|
||
if (entity.Nav_IdentifyUser != null && entity.Nav_IdentifyUser.Any())
|
||
{
|
||
entity.Nav_IdentifyUser.ForEach(t =>
|
||
{
|
||
recordDetail.ForEach(t1 =>
|
||
{
|
||
T_HM_RISK_RECORD_USER user = new T_HM_RISK_RECORD_USER();
|
||
user.ORG_ID = t.ORG_ID;
|
||
user.RECORD_ID = riskRecord.ID;
|
||
user.USER_ID = t.USER_ID.Value;
|
||
user.AREA_ID = (Guid)t1.AREA_ID;
|
||
recordUser.Add(user);
|
||
});
|
||
});
|
||
}
|
||
//如果识别细表有新增数据,则触发风险辨识任务制定表
|
||
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("危险源/风险辨识记录(作业任务识别触发)", riskRecord.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
dtEnd, (int)FMNoticeTypeEnum.消息, "HM064"));
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (operation != null)
|
||
this.UpdateEntityNoCommit(operation);
|
||
if (analyzeDetails != null && analyzeDetails.Any())
|
||
this.BantchSaveEntityNoCommit(analyzeDetails);
|
||
if (riskList != null && riskList.Any())
|
||
this.BantchSaveEntityNoCommit(riskList);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (riskRecord != null)
|
||
this.UpdateEntityNoCommit(riskRecord);
|
||
if (recordObj != null)
|
||
this.UpdateEntityNoCommit(recordObj);
|
||
if (recordUser != null && recordUser.Any())
|
||
this.BantchSaveEntityNoCommit(recordUser);
|
||
if (recordDetail != null && recordDetail.Any())
|
||
this.BantchSaveEntityNoCommit(recordDetail);
|
||
});
|
||
return true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取单条
|
||
/// </summary>
|
||
/// <param name="filter"></param>
|
||
/// <returns></returns>
|
||
private T_HM_JOBTASK_IDENTIFY FullGet(KeywordFilter filter)
|
||
{
|
||
|
||
T_HM_JOBTASK_IDENTIFY iDENTIFY = new T_HM_JOBTASK_IDENTIFY();
|
||
List<T_HM_JOBTASK_IDENTIFY_DETAIL> detailList = new List<T_HM_JOBTASK_IDENTIFY_DETAIL>();
|
||
if (string.IsNullOrEmpty(filter.Keyword))
|
||
filter.Keyword = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.ToString();
|
||
//取人员部门对应的部门层级:公司级、部门级、车间级、班组级
|
||
var user = GetEntity<T_FM_USER>(t => t.ID == Guid.Parse(filter.Keyword) && t.ENABLE_STATUS == 0, new string[] { "Nav_Department" });
|
||
var type = user.Nav_Department.DEPARTMENT_TYPE;
|
||
//主表部门自动赋值
|
||
iDENTIFY.ORG_ID = user.ORG_ID;
|
||
iDENTIFY.DEPARTMENT_ID = user.DEPARTMENT_ID;
|
||
List<Guid> departmentIds = new List<Guid>() { user.DEPARTMENT_ID.Value };
|
||
DepartmentService.GetDepartmentIds(user.ORG_ID.Value, new List<Guid>() { user.DEPARTMENT_ID.Value }, ref departmentIds);
|
||
//根据辨识区域和部门层级到风险库获取作业任务、岗位、风险信息typeList.Contains((int)t.LEVEL) && areaIds.Contains((Guid)t.AREA_ID)
|
||
var stepIds = GetEntities<T_HM_EVALUATE_RISK>(t => departmentIds.Contains(t.DEPARTMENT_LIABLE_ID.Value) && t.OPERATION_STEP_ID != null && t.STATUS == (int)HMOperationStepEnum.有效 && (int)t.LEVEL == type, new BaseFilter(user.ORG_ID)).Select(t => t.OPERATION_STEP_ID).Distinct().ToList();
|
||
var links = GetEntities<T_HM_OPERATION_LINK>(t => stepIds.Contains(t.OPERATION_STEP_ID), new BaseFilter(user.ORG_ID), new string[] { "Nav_LinkPost", "Nav_LinkPost.Nav_Post", "Nav_OperationStep" });
|
||
if (links != null && links.Any())
|
||
{
|
||
links.ForEach(t =>
|
||
{
|
||
List<T_HM_JOBTASK_IDENTIFY_DETAIL_POST> postList = new List<T_HM_JOBTASK_IDENTIFY_DETAIL_POST>();
|
||
List<string> detailPost = new List<string>(); var postName = "";
|
||
T_HM_JOBTASK_IDENTIFY_DETAIL detail = new T_HM_JOBTASK_IDENTIFY_DETAIL();
|
||
//List<T_HM_JOBTASK_IDENTIFY_DETAIL_RISK> riskList = new List<T_HM_JOBTASK_IDENTIFY_DETAIL_RISK>();
|
||
detail.ORG_ID = user.ORG_ID;
|
||
detail.JOBTASK_IDENTIFY_ID = iDENTIFY.ID;
|
||
//detail.AREA_ID = t.AREA_ID;
|
||
//detail.Nav_Area = t.Nav_Area;
|
||
//var link = links.FirstOrDefault(m => m.OPERATION_STEP_ID == t.OPERATION_STEP_ID);
|
||
if (t.Nav_LinkPost != null && t.Nav_LinkPost.Any())
|
||
{
|
||
t.Nav_LinkPost.ForEach(x =>
|
||
{
|
||
T_HM_JOBTASK_IDENTIFY_DETAIL_POST post = new T_HM_JOBTASK_IDENTIFY_DETAIL_POST();
|
||
post.ORG_ID = t.ORG_ID;
|
||
post.JOBTASK_IDENTIFY_DETAIL_ID = detail.ID;
|
||
post.POST_ID = x.POST_ID;
|
||
post.Nav_Post = x.Nav_Post;
|
||
postName = x.Nav_Post?.NAME;
|
||
detailPost.Add(postName);
|
||
postList.Add(post);
|
||
});
|
||
}
|
||
//风险表
|
||
//var risks = links.Where(m => m.OPERATION_STEP_ID == t.OPERATION_STEP_ID).ToList();
|
||
//if (risks != null && risks.Any())
|
||
//{
|
||
// risks.ForEach(x =>
|
||
// {
|
||
// T_HM_JOBTASK_IDENTIFY_DETAIL_RISK risk = new T_HM_JOBTASK_IDENTIFY_DETAIL_RISK();
|
||
// risk.ORG_ID = t.ORG_ID;
|
||
// risk.JOBTASK_IDENTIFY_DETAIL_ID = detail.ID;
|
||
// risk.EVALUATE_RISK_ID = x.ID;
|
||
// risk.Nav_EvaluateRisk = x;
|
||
// riskList.Add(risk);
|
||
// });
|
||
//}
|
||
//detail.Nav_DetailRisk = riskList.Distinct(m => m.EVALUATE_RISK_ID).ToList();
|
||
detail.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
detail.Nav_OperationStep = t.Nav_OperationStep;
|
||
detail.Nav_DetailPost = postList.Distinct(m => m.POST_ID).ToList();
|
||
detail.DetailPost = string.Join(",", detailPost);
|
||
detail.OperationStepName = t.Nav_OperationStep?.NAME;
|
||
detail.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
detailList.Add(detail);
|
||
});
|
||
}
|
||
iDENTIFY.Nav_Details = detailList.OrderBy(t => t.Nav_OperationStep.NAME).ToList();
|
||
return iDENTIFY;
|
||
}
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_HMLicenseAnalysis(string id)
|
||
{
|
||
//var entity = this.GetEntity<T_HM_LICENSE_ANALYSIS>( id, false,"Nav_OperationAnalyze", "Nav_Details", "Nav_Details.Nav_OperationStep", "Nav_Details.Nav_DetailRisk");
|
||
var entity = this.GetEntity<T_HM_LICENSE_ANALYSIS>(id, new string[] { "Nav_OperationAnalyze", "Nav_Details", "Nav_Details.Nav_OperationStep" });
|
||
entity.IS_PUBLISH = FOPreMeetingStatusEnum.归档;
|
||
entity.COMPLETE_DATE = DateTime.Now;
|
||
//写入作业任务库
|
||
List<T_HM_OPERATION_LINK> operations = new List<T_HM_OPERATION_LINK>();
|
||
List<T_HM_OPERATION_TASK_SAFE_CONFIRM> safeConfs = new List<T_HM_OPERATION_TASK_SAFE_CONFIRM>();
|
||
List<T_HM_OPERATION_TASK_SAFE_MEASURE> safeMeas = new List<T_HM_OPERATION_TASK_SAFE_MEASURE>();
|
||
List<T_HM_OPERATION_TASK_DEAL_MEASURE> dealMeas = new List<T_HM_OPERATION_TASK_DEAL_MEASURE>();
|
||
List<T_HM_OPERATION_LINK_POST> posts = new List<T_HM_OPERATION_LINK_POST>();
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<Guid> confIds = new List<Guid>();
|
||
List<Guid> measIds = new List<Guid>();
|
||
List<Guid> dealIds = new List<Guid>();
|
||
List<Guid> postIds = new List<Guid>();
|
||
if (entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
{
|
||
List<T_HM_JOBTASK_IDENTIFY_DETAIL> jobDetails = null;
|
||
var stepIds = entity.Nav_Details.Select(t => t.OPERATION_STEP_ID).Distinct().ToList();
|
||
if (entity.Nav_OperationAnalyze != null && entity.Nav_OperationAnalyze.JOBTASK_IDENTIFY_ID != null)
|
||
{
|
||
jobDetails = this.GetEntities<T_HM_JOBTASK_IDENTIFY_DETAIL>(t => t.JOBTASK_IDENTIFY_ID == entity.Nav_OperationAnalyze.JOBTASK_IDENTIFY_ID && stepIds.Contains(t.OPERATION_STEP_ID), new BaseFilter(entity.ORG_ID), "Nav_DetailPost").ToList();
|
||
}
|
||
var links = this.GetEntities<T_HM_OPERATION_LINK>(t => stepIds.Contains(t.OPERATION_STEP_ID) && t.STATUS == (int)STATUSEnum.启用 && t.IS_RUN == DisableStatusEnum.是, new BaseFilter(entity.ORG_ID), new string[] { "Nav_LinkPost", "Nav_SafeConfirms", "Nav_SafeMeasures", "Nav_DealMeasures" });
|
||
entity.Nav_Details.ForEach(t =>
|
||
{
|
||
T_HM_OPERATION_LINK operation = new T_HM_OPERATION_LINK();
|
||
var current = links.FirstOrDefault(x => x.OPERATION_STEP_ID == t.OPERATION_STEP_ID);//OrderByDescending(t => t.CREATE_TIME).
|
||
if (current != null)
|
||
{
|
||
current.CODE = entity.CODE;
|
||
current.NAME = "许可作业分析表回写";
|
||
current.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
current.TASK_LEVEL = (int)HMTaskLevelEnum.许可作业;
|
||
current.ORG_ID = entity.ORG_ID;
|
||
current.IS_IMPORTANT = (int)ISImportantEnum.是;
|
||
current.SafeConfirmsStr = t.SafeConfirmsStr;
|
||
current.SafeMeasuresStr = t.SafeMeasuresStr;
|
||
current.DealMeasuresStr = t.DealMeasuresStr;
|
||
current.STATUS = (int)STATUSEnum.启用;
|
||
current.CREATER_ID = entity.CREATER_ID;
|
||
current.MODIFY_TYPE = HMModifyEnum.修改;
|
||
current.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
current.WORK_PERMIT_TYPE_ID = t.WORK_PERMIT_TYPE_ID;
|
||
current.AUDIT_LEVEL = (int)t.AUDIT_LEVEL;
|
||
operation = current;
|
||
if (current.Nav_SafeConfirms != null && current.Nav_SafeConfirms.Any())
|
||
{
|
||
var ids = current.Nav_SafeConfirms.Select(t => t.ID).ToList();
|
||
confIds.AddRange(ids);
|
||
}
|
||
if (current.Nav_SafeMeasures != null && current.Nav_SafeMeasures.Any())
|
||
{
|
||
var ids = current.Nav_SafeMeasures.Select(t => t.ID).ToList();
|
||
measIds.AddRange(ids);
|
||
}
|
||
if (current.Nav_DealMeasures != null && current.Nav_DealMeasures.Any())
|
||
{
|
||
var ids = current.Nav_DealMeasures.Select(t => t.ID).ToList();
|
||
dealIds.AddRange(ids);
|
||
}
|
||
if (current.Nav_LinkPost != null && current.Nav_LinkPost.Any())
|
||
{
|
||
var ids = current.Nav_LinkPost.Select(t => t.ID).ToList();
|
||
postIds.AddRange(ids);
|
||
}
|
||
//if (t.AREA_ID != null && current.Nav_LinkArea != null && current.Nav_LinkArea.Any())
|
||
//{
|
||
// var linkArea = current.Nav_LinkArea.FirstOrDefault(t => t.AREA_ID == t.AREA_ID);
|
||
// if (linkArea == null)
|
||
// {
|
||
// T_HM_OPERATION_LINK_AREA area = new T_HM_OPERATION_LINK_AREA();
|
||
// area.ORG_ID = entity.ORG_ID;
|
||
// area.OPERATION_LINK_ID = current.ID;
|
||
// area.AREA_ID = t.AREA_ID;
|
||
// areas.Add(area);
|
||
// }
|
||
//}
|
||
}
|
||
else
|
||
{
|
||
//主表
|
||
operation.CODE = entity.CODE;
|
||
operation.NAME = "许可作业分析表新增";
|
||
operation.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
operation.TASK_LEVEL = (int)HMTaskLevelEnum.许可作业;
|
||
operation.ORG_ID = entity.ORG_ID;
|
||
operation.IS_IMPORTANT = (int)ISImportantEnum.是;
|
||
operation.SafeConfirmsStr = t.SafeConfirmsStr;
|
||
operation.SafeMeasuresStr = t.SafeMeasuresStr;
|
||
operation.DealMeasuresStr = t.DealMeasuresStr;
|
||
operation.STATUS = (int)STATUSEnum.启用;
|
||
operation.CREATER_ID = entity.CREATER_ID;
|
||
operation.MODIFY_TYPE = HMModifyEnum.新增;
|
||
operation.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
operation.WORK_PERMIT_TYPE_ID = t.WORK_PERMIT_TYPE_ID;
|
||
operation.AUDIT_LEVEL = (int)t.AUDIT_LEVEL;
|
||
var mineType = APT.Infrastructure.Api.AppContext.CurrentSession.MineType;
|
||
if (!string.IsNullOrEmpty(mineType))
|
||
{
|
||
operation.MineType = int.Parse(mineType.Split(",")[0]);
|
||
}
|
||
//if (t.AREA_ID != null)
|
||
//{
|
||
// T_HM_OPERATION_LINK_AREA area = new T_HM_OPERATION_LINK_AREA();
|
||
// area.ORG_ID = entity.ORG_ID;
|
||
// area.OPERATION_LINK_ID = operation.ID;
|
||
// area.AREA_ID = t.AREA_ID;
|
||
// areas.Add(area);
|
||
//}
|
||
}
|
||
var newPostIds = jobDetails.FirstOrDefault(t => t.OPERATION_STEP_ID == operation.OPERATION_STEP_ID);
|
||
if (newPostIds != null && newPostIds.Nav_DetailPost != null && newPostIds.Nav_DetailPost.Any())
|
||
{
|
||
foreach (var item in newPostIds.Nav_DetailPost)
|
||
{
|
||
T_HM_OPERATION_LINK_POST post = new T_HM_OPERATION_LINK_POST();
|
||
post.ORG_ID = entity.ORG_ID;
|
||
post.OPERATION_LINK_ID = operation.ID;
|
||
post.POST_ID = item.POST_ID;
|
||
posts.Add(post);
|
||
}
|
||
}
|
||
|
||
if (!string.IsNullOrEmpty(t.SafeConfirmsStr))
|
||
{
|
||
var conf = t.SafeConfirmsStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (conf.Length > 0)
|
||
{
|
||
foreach (var c in conf)
|
||
{
|
||
T_HM_OPERATION_TASK_SAFE_CONFIRM safeConf = new T_HM_OPERATION_TASK_SAFE_CONFIRM();
|
||
safeConf.ORG_ID = entity.ORG_ID;
|
||
safeConf.OPERATION_LINK_ID = operation.ID;
|
||
if (c.Contains("、"))
|
||
{
|
||
var co = c.Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (co.Length > 0)
|
||
{
|
||
safeConf.NAME = co[1];
|
||
safeConf.NUM = int.Parse(co[0]);
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
safeConfs.Add(safeConf);
|
||
}
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(t.SafeMeasuresStr))
|
||
{
|
||
var conf = t.SafeMeasuresStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (conf.Length > 0)
|
||
{
|
||
foreach (var c in conf)
|
||
{
|
||
T_HM_OPERATION_TASK_SAFE_MEASURE safeConf = new T_HM_OPERATION_TASK_SAFE_MEASURE();
|
||
safeConf.ORG_ID = entity.ORG_ID;
|
||
safeConf.OPERATION_LINK_ID = operation.ID;
|
||
if (c.Contains("、"))
|
||
{
|
||
var co = c.Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (co.Length > 0)
|
||
{
|
||
safeConf.NAME = co[1];
|
||
safeConf.NUM = int.Parse(co[0]);
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
safeMeas.Add(safeConf);
|
||
}
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(t.DealMeasuresStr))
|
||
{
|
||
var conf = t.DealMeasuresStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (conf.Length > 0)
|
||
{
|
||
foreach (var c in conf)
|
||
{
|
||
T_HM_OPERATION_TASK_DEAL_MEASURE safeConf = new T_HM_OPERATION_TASK_DEAL_MEASURE();
|
||
safeConf.ORG_ID = entity.ORG_ID;
|
||
safeConf.OPERATION_LINK_ID = operation.ID;
|
||
if (c.Contains("、"))
|
||
{
|
||
var co = c.Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (co.Length > 0)
|
||
{
|
||
safeConf.NAME = co[1];
|
||
safeConf.NUM = int.Parse(co[0]);
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
dealMeas.Add(safeConf);
|
||
}
|
||
}
|
||
}
|
||
operation.IS_RUN = DisableStatusEnum.是;
|
||
operations.Add(operation);
|
||
});
|
||
}
|
||
//自动触发文件发布
|
||
List<Guid> dataIds = new List<Guid>();
|
||
T_HM_FILE_PUBLISH publish = null;
|
||
dataIds.Add(entity.ID);
|
||
var crucial = this.GetEntity<T_HM_CRUCIAL_TASK_ANALYSIS>(t => t.OPERATION_ANALYZE_ID == entity.OPERATION_ANALYZE_ID);
|
||
if (crucial != null)
|
||
dataIds.Add(crucial.ID);
|
||
var ordinary = this.GetEntity<T_HM_ORDINARY_TASK_ANALYSIS>(t => t.OPERATION_ANALYZE_ID == entity.OPERATION_ANALYZE_ID);
|
||
if (ordinary != null)
|
||
dataIds.Add(ordinary.ID);
|
||
var approve = this.GetEntities<T_PF_APPROVE>(t => dataIds.Contains(t.DATA_ID), new BaseFilter(entity.ORG_ID));
|
||
if (approve != null && approve.Any())
|
||
{
|
||
bool isEnd = true;
|
||
approve.ForEach(t =>
|
||
{
|
||
if (t.APPROVE_STATUS != (int)ApproveStatus.Done)
|
||
isEnd = false;
|
||
});
|
||
if (isEnd)
|
||
{
|
||
var nextCode = "";
|
||
var nextCodeInfo = this.GetEntities<T_HM_FILE_PUBLISH>(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID)).OrderByDescending(t => t.CREATE_TIME).FirstOrDefault();
|
||
var year = DateTime.Now.Year;
|
||
var month = DateTime.Now.Month.PadLeft(2, '0');
|
||
var day = DateTime.Now.Day.PadLeft(2, '0');
|
||
if (nextCodeInfo == null)
|
||
{
|
||
nextCode = "RWFX" + year + month + day + "00001";
|
||
}
|
||
else
|
||
{
|
||
//取最后五位序列号
|
||
var serial = nextCodeInfo.CODE.Substring(nextCodeInfo.CODE.Length - 5);
|
||
//序列号+1,不足五位补0
|
||
var num = (int.Parse(serial) + 1).ToString().PadLeft(5, '0');
|
||
nextCode = "RWFX" + year + month + day + num;
|
||
}
|
||
var userId = this.GetEntity<T_FM_PARAM_SET>(t => t.NAME == "办公室负责人")?.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//文件发布表
|
||
publish = new T_HM_FILE_PUBLISH();
|
||
publish.NAME = "";
|
||
publish.CODE = nextCode;
|
||
publish.LICENSE_ANALYSIS_ID = entity.ID;
|
||
publish.CRUCIAL_TASK_ANALYSIS_ID = crucial?.ID;
|
||
publish.ORDINARY_TASK_ANALYSIS_ID = ordinary?.ID;
|
||
publish.PUBLISH_DATE = DateTime.Now;
|
||
publish.Nav_Area = null;
|
||
publish.ORG_ID = entity.ORG_ID;
|
||
publish.IS_AUTO = ISImportantEnum.是;
|
||
publish.USER_ID = userId;
|
||
//消息通知辦公室负责人李忠松
|
||
var userIds = new List<Guid>();
|
||
userIds.Add((Guid)userId);
|
||
//userIds.Add((Guid)chargeUserId);
|
||
var UserNames = new List<string>();
|
||
var user = this.GetEntity<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && userIds.Contains(t.ID));
|
||
UserNames.Add(user?.NAME);
|
||
//发消息
|
||
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("作业任务分析文件发布表", publish.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
dtEnd, (int)FMNoticeTypeEnum.消息, "HM124"));
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (operations != null && operations.Any())
|
||
this.BantchSaveEntityNoCommit(operations);
|
||
if (confIds != null && confIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_TASK_SAFE_CONFIRM>(confIds);
|
||
if (measIds != null && measIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_TASK_SAFE_MEASURE>(measIds);
|
||
if (dealIds != null && dealIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_TASK_DEAL_MEASURE>(dealIds);
|
||
if (postIds != null && postIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_LINK_POST>(postIds);
|
||
if (safeConfs != null && safeConfs.Any())
|
||
this.BantchSaveEntityNoCommit(safeConfs);
|
||
if (safeMeas != null && safeMeas.Any())
|
||
this.BantchSaveEntityNoCommit(safeMeas);
|
||
if (dealMeas != null && dealMeas.Any())
|
||
this.BantchSaveEntityNoCommit(dealMeas);
|
||
if (posts != null && posts.Any())
|
||
this.BantchSaveEntityNoCommit(posts);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (publish != null)
|
||
this.UpdateEntityNoCommit(publish);
|
||
});
|
||
return true;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_HMOperationTaskDistinguishAnalyze(string id)
|
||
{
|
||
//var entity = this.GetEntity<T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE>(id, false, "Nav_AnalyzeDetails", "Nav_AnalyzeDetails.Nav_WorkPermitType", "Nav_AnalyzeDetails.Nav_OperationStep", "Nav_AnalyzeDetails.Nav_EvaluateRisk", "Nav_Users");
|
||
var entity = this.GetEntity<T_HM_OPERATION_TASK_DISTINGUISH_ANALYZE>(id, new string[] { "Nav_JobtaskIdentify", "Nav_AnalyzeDetails", "Nav_AnalyzeDetails.Nav_WorkPermitType", "Nav_AnalyzeDetails.Nav_OperationStep", "Nav_AnalyzeDetails.Nav_DetailRisk", "Nav_Users" });
|
||
entity.IS_PUBLISH = FOPreMeetingStatusEnum.归档;
|
||
entity.COMPLETION_TIME = DateTime.Now;
|
||
//自动生成许可、非许可的关键任务、一般任务分析表
|
||
T_HM_LICENSE_ANALYSIS license = null;
|
||
List<T_HM_LICENSE_ANALYSIS_DETAIL> licenseDetails = new List<T_HM_LICENSE_ANALYSIS_DETAIL>();
|
||
List<T_HM_ANALYSIS_PERSON> licenseUsers = new List<T_HM_ANALYSIS_PERSON>();
|
||
T_HM_CRUCIAL_TASK_ANALYSIS crucial = null;
|
||
List<T_HM_CRUCIAL_TASK_DETAIL> crucialDetails = new List<T_HM_CRUCIAL_TASK_DETAIL>();
|
||
List<T_HM_CRUCIAL_ANALYSIS_PERSON> crucialUsers = new List<T_HM_CRUCIAL_ANALYSIS_PERSON>();
|
||
T_HM_ORDINARY_TASK_ANALYSIS ordinary = null;
|
||
List<T_HM_ORDINARY_TASK_DETAIL> ordinaryDetails = new List<T_HM_ORDINARY_TASK_DETAIL>();
|
||
List<T_HM_ORDINARY_ANALYSIS_PERSON> ordinaryUsers = new List<T_HM_ORDINARY_ANALYSIS_PERSON>();
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<T_FM_USER> userInfos = new List<T_FM_USER>();
|
||
if (entity.Nav_Users != null && entity.Nav_Users.Any())
|
||
{
|
||
var userAllIds = entity.Nav_Users.Select(t => t.USER_ID).Distinct().ToList();
|
||
userInfos = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && userAllIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
}
|
||
if (entity.Nav_AnalyzeDetails != null && entity.Nav_AnalyzeDetails.Any())
|
||
{
|
||
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.JobtaskIdentify, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
var stepIds = entity.Nav_AnalyzeDetails.Select(t => t.OPERATION_STEP_ID).Distinct().ToList();
|
||
//var areaIds = entity.Nav_AnalyzeDetails.Select(t => t.AREA_ID).Distinct().ToList();
|
||
var operations = this.GetEntities<T_HM_OPERATION_STEP>(t => stepIds.Contains(t.ID) && t.STATUS == (int)STATUSEnum.启用, new BaseFilter(entity.ORG_ID), new string[] { "Nav_SafeConfirms", "Nav_SafeMeasures", "Nav_DealMeasures" }).ToList();
|
||
//许可作业
|
||
var licenses = entity.Nav_AnalyzeDetails.Where(t => t.Nav_WorkPermitType != null && t.Nav_WorkPermitType.NAME != "无").ToList();
|
||
//非许可的关键任务
|
||
var crucials = entity.Nav_AnalyzeDetails.Where(t => (t.Nav_WorkPermitType == null || (t.Nav_WorkPermitType != null && t.Nav_WorkPermitType.NAME == "无")) && t.IS_MAINTASK == WFDisableStatusEnum.是).ToList();
|
||
//非许可非关键的一般任务
|
||
var ordinarys = entity.Nav_AnalyzeDetails.Where(t => (t.Nav_WorkPermitType == null || (t.Nav_WorkPermitType != null && t.Nav_WorkPermitType.NAME == "无")) && t.IS_MAINTASK == (int)WFDisableStatusEnum.否).ToList();
|
||
//触发许可作业
|
||
if (licenses.Count() > 0)
|
||
{
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.许可作业分析表编号;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
//主表
|
||
license = new T_HM_LICENSE_ANALYSIS();
|
||
license.CODE = codeList[0];
|
||
license.COMPLETE_DATE = DateTime.Now;
|
||
license.DEPARTMENT_ID = entity.DEPARTMENT_ID;
|
||
license.OPERATION_ANALYZE_ID = entity.ID;
|
||
license.ORG_ID = entity.ORG_ID;
|
||
license.Nav_Details = null;
|
||
license.Nav_AnalysisPerson = null;
|
||
license.IS_AUTO = ISImportantEnum.是;
|
||
license.IS_PUBLISH = FOPreMeetingStatusEnum.分析中;
|
||
//license.USER_ID = entity.Nav_JobtaskIdentify.CREATER_ID;
|
||
licenses.ForEach(t =>
|
||
{
|
||
//var operation = operations.FirstOrDefault(m => m.AREA_ID == t.AREA_ID && m.OPERATION_STEP_ID == t.OPERATION_STEP_ID);
|
||
var confirms = operations.FirstOrDefault(m => m.ID == t.OPERATION_STEP_ID && m.Nav_SafeConfirms.Count > 0);
|
||
var measures = operations.FirstOrDefault(m => m.ID == t.OPERATION_STEP_ID && m.Nav_SafeMeasures.Count > 0);
|
||
var dealMeasures = operations.FirstOrDefault(m => m.ID == t.OPERATION_STEP_ID && m.Nav_DealMeasures.Count > 0);
|
||
var safeConfirms = "";
|
||
if (confirms != null && confirms.Nav_SafeConfirms != null && confirms.Nav_SafeConfirms.Any())
|
||
{
|
||
var i = 1;
|
||
confirms.Nav_SafeConfirms.ForEach(m =>
|
||
{
|
||
safeConfirms = safeConfirms + i + "、" + m.NAME + ";";
|
||
i++;
|
||
});
|
||
}
|
||
var safeMeasures = "";
|
||
if (measures != null && measures.Nav_SafeMeasures != null && measures.Nav_SafeMeasures.Any())
|
||
{
|
||
var i = 1;
|
||
measures.Nav_SafeMeasures.ForEach(m =>
|
||
{
|
||
safeMeasures = safeMeasures + i + "、" + m.NAME + ";";
|
||
i++;
|
||
});
|
||
}
|
||
var dealMeasurestr = "";
|
||
if (dealMeasures != null && dealMeasures.Nav_DealMeasures != null && dealMeasures.Nav_DealMeasures.Any())
|
||
{
|
||
var i = 1;
|
||
dealMeasures.Nav_DealMeasures.ForEach(m =>
|
||
{
|
||
dealMeasurestr = dealMeasurestr + i + "、" + m.NAME + ";";
|
||
i++;
|
||
});
|
||
}
|
||
T_HM_LICENSE_ANALYSIS_DETAIL detail = new T_HM_LICENSE_ANALYSIS_DETAIL();
|
||
detail.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
detail.LICENSE_ANALYSIS_ID = license.ID;
|
||
detail.ORG_ID = t.ORG_ID;
|
||
detail.CREATER_ID = t.CREATER_ID;
|
||
detail.SafeConfirmsStr = safeConfirms;
|
||
detail.SafeMeasuresStr = safeMeasures;
|
||
detail.DealMeasuresStr = dealMeasurestr;
|
||
detail.WORK_PERMIT_TYPE_ID = t.WORK_PERMIT_TYPE_ID;
|
||
detail.AREA_ID = t.AREA_ID;
|
||
detail.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
licenseDetails.Add(detail);
|
||
});
|
||
if (entity.Nav_Users != null && entity.Nav_Users.Any())
|
||
{
|
||
entity.Nav_Users.ForEach(t =>
|
||
{
|
||
T_HM_ANALYSIS_PERSON person = new T_HM_ANALYSIS_PERSON();
|
||
person.ORG_ID = t.ORG_ID;
|
||
person.USER_ID = t.USER_ID;
|
||
person.LICENSE_ANALYSIS_ID = license.ID;
|
||
person.CREATER_ID = t.CREATER_ID;
|
||
person.IS_FIRST = t.IS_FIRST;
|
||
licenseUsers.Add(person);
|
||
});
|
||
//发消息通知第一个分析人
|
||
var firstUserId = entity.Nav_Users.FirstOrDefault(t => t.IS_FIRST == true).USER_ID;
|
||
license.USER_ID = firstUserId;
|
||
var userIds = new List<Guid>();
|
||
userIds.Add(firstUserId);
|
||
var UserNames = new List<string>();
|
||
var user = userInfos.FirstOrDefault(t => userIds.Contains(t.ID));
|
||
UserNames.Add(user?.NAME);
|
||
license.CREATER_ID = firstUserId;
|
||
//发消息
|
||
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("许可作业分析表", license.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
dtEnd, (int)FMNoticeTypeEnum.消息, "HM108"));
|
||
}
|
||
}
|
||
//触发关键任务
|
||
if (crucials.Count() > 0)
|
||
{
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.关键任务分析表编号;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
//主表
|
||
crucial = new T_HM_CRUCIAL_TASK_ANALYSIS();
|
||
crucial.CODE = codeList[0];
|
||
crucial.COMPLETE_DATE = DateTime.Now;
|
||
crucial.DEPARTMENT_ID = entity.DEPARTMENT_ID;
|
||
crucial.OPERATION_ANALYZE_ID = entity.ID;
|
||
crucial.ORG_ID = entity.ORG_ID;
|
||
crucial.Nav_Details = null;
|
||
crucial.Nav_CrucialAnalysisPerson = null;
|
||
crucial.IS_AUTO = ISImportantEnum.是;
|
||
crucial.IS_PUBLISH = FOPreMeetingStatusEnum.分析中;
|
||
//crucial.USER_ID = entity.Nav_JobtaskIdentify.CREATER_ID;
|
||
crucials.ForEach(t =>
|
||
{
|
||
//var operation = operations.FirstOrDefault(m => m.AREA_ID == t.AREA_ID && m.OPERATION_STEP_ID == t.OPERATION_STEP_ID);
|
||
var confirms = operations.FirstOrDefault(m => m.ID == t.OPERATION_STEP_ID && m.Nav_SafeConfirms.Count > 0);
|
||
var measures = operations.FirstOrDefault(m => m.ID == t.OPERATION_STEP_ID && m.Nav_SafeMeasures.Count > 0);
|
||
var dealMeasures = operations.FirstOrDefault(m => m.ID == t.OPERATION_STEP_ID && m.Nav_DealMeasures.Count > 0);
|
||
var safeConfirms = "";
|
||
if (confirms != null && confirms.Nav_SafeConfirms != null && confirms.Nav_SafeConfirms.Any())
|
||
{
|
||
var i = 1;
|
||
confirms.Nav_SafeConfirms.ForEach(m =>
|
||
{
|
||
safeConfirms = safeConfirms + i + "、" + m.NAME + ";";
|
||
i++;
|
||
});
|
||
}
|
||
var safeMeasures = "";
|
||
if (measures != null && measures.Nav_SafeMeasures != null && measures.Nav_SafeMeasures.Any())
|
||
{
|
||
var i = 1;
|
||
measures.Nav_SafeMeasures.ForEach(m =>
|
||
{
|
||
safeMeasures = safeMeasures + i + "、" + m.NAME + ";";
|
||
i++;
|
||
});
|
||
}
|
||
var dealMeasurestr = "";
|
||
if (dealMeasures != null && dealMeasures.Nav_DealMeasures != null && dealMeasures.Nav_DealMeasures.Any())
|
||
{
|
||
var i = 1;
|
||
dealMeasures.Nav_DealMeasures.ForEach(m =>
|
||
{
|
||
dealMeasurestr = dealMeasurestr + i + "、" + m.NAME + ";";
|
||
i++;
|
||
});
|
||
}
|
||
T_HM_CRUCIAL_TASK_DETAIL detail = new T_HM_CRUCIAL_TASK_DETAIL();
|
||
detail.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
detail.CRUCIAL_TASK_ANALYSIS_ID = crucial.ID;
|
||
detail.ORG_ID = t.ORG_ID;
|
||
detail.CREATER_ID = t.CREATER_ID;
|
||
detail.SafeConfirmsStr = safeConfirms;
|
||
detail.SafeMeasuresStr = safeMeasures;
|
||
detail.DealMeasuresStr = dealMeasurestr;
|
||
detail.AREA_ID = t.AREA_ID;
|
||
detail.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
crucialDetails.Add(detail);
|
||
});
|
||
if (entity.Nav_Users != null && entity.Nav_Users.Any())
|
||
{
|
||
entity.Nav_Users.ForEach(t =>
|
||
{
|
||
T_HM_CRUCIAL_ANALYSIS_PERSON person = new T_HM_CRUCIAL_ANALYSIS_PERSON();
|
||
person.ORG_ID = t.ORG_ID;
|
||
person.USER_ID = t.USER_ID;
|
||
person.CRUCIAL_TASK_ANALYSIS_ID = crucial.ID;
|
||
person.CREATER_ID = t.CREATER_ID;
|
||
person.IS_FIRST = t.IS_FIRST;
|
||
crucialUsers.Add(person);
|
||
});
|
||
//发消息通知第一个分析人
|
||
var firstUserId = entity.Nav_Users.FirstOrDefault(t => t.IS_FIRST == true).USER_ID;
|
||
crucial.USER_ID = firstUserId;
|
||
var userIds = new List<Guid>();
|
||
userIds.Add(firstUserId);
|
||
var UserNames = new List<string>();
|
||
var user = userInfos.FirstOrDefault(t => userIds.Contains(t.ID));
|
||
UserNames.Add(user?.NAME);
|
||
crucial.CREATER_ID = firstUserId;
|
||
//发消息
|
||
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("关键任务分析表", crucial.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
dtEnd, (int)FMNoticeTypeEnum.消息, "HM110"));
|
||
}
|
||
}
|
||
//触发一般任务
|
||
if (ordinarys.Count() > 0)
|
||
{
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.一般任务分析表编号;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
//主表
|
||
ordinary = new T_HM_ORDINARY_TASK_ANALYSIS();
|
||
ordinary.CODE = codeList[0];
|
||
ordinary.COMPLETE_DATE = DateTime.Now;
|
||
ordinary.DEPARTMENT_ID = entity.DEPARTMENT_ID;
|
||
ordinary.OPERATION_ANALYZE_ID = entity.ID;
|
||
ordinary.ORG_ID = entity.ORG_ID;
|
||
ordinary.Nav_Details = null;
|
||
ordinary.Nav_OrdinaryAnalysisPerson = null;
|
||
ordinary.IS_AUTO = ISImportantEnum.是;
|
||
ordinary.IS_PUBLISH = FOPreMeetingStatusEnum.分析中;
|
||
//ordinary.USER_ID = entity.Nav_JobtaskIdentify.CREATER_ID;
|
||
ordinarys.ForEach(t =>
|
||
{
|
||
//var operation = operations.FirstOrDefault(m => m.AREA_ID == t.AREA_ID && m.OPERATION_STEP_ID == t.OPERATION_STEP_ID);
|
||
var confirms = operations.FirstOrDefault(m => m.ID == t.OPERATION_STEP_ID && m.Nav_SafeConfirms.Count > 0);
|
||
var measures = operations.FirstOrDefault(m => m.ID == t.OPERATION_STEP_ID && m.Nav_SafeMeasures.Count > 0);
|
||
var dealMeasures = operations.FirstOrDefault(m => m.ID == t.OPERATION_STEP_ID && m.Nav_DealMeasures.Count > 0);
|
||
var safeConfirms = "";
|
||
if (confirms != null && confirms.Nav_SafeConfirms != null && confirms.Nav_SafeConfirms.Any())
|
||
{
|
||
var i = 1;
|
||
confirms.Nav_SafeConfirms.ForEach(m =>
|
||
{
|
||
safeConfirms = safeConfirms + i + "、" + m.NAME + ";";
|
||
i++;
|
||
});
|
||
}
|
||
var safeMeasures = "";
|
||
if (measures != null && measures.Nav_SafeMeasures != null && measures.Nav_SafeMeasures.Any())
|
||
{
|
||
var i = 1;
|
||
measures.Nav_SafeMeasures.ForEach(m =>
|
||
{
|
||
safeMeasures = safeMeasures + i + "、" + m.NAME + ";";
|
||
i++;
|
||
});
|
||
}
|
||
var dealMeasurestr = "";
|
||
if (dealMeasures != null && dealMeasures.Nav_DealMeasures != null && dealMeasures.Nav_DealMeasures.Any())
|
||
{
|
||
var i = 1;
|
||
dealMeasures.Nav_DealMeasures.ForEach(m =>
|
||
{
|
||
dealMeasurestr = dealMeasurestr + i + "、" + m.NAME + ";";
|
||
i++;
|
||
});
|
||
}
|
||
T_HM_ORDINARY_TASK_DETAIL detail = new T_HM_ORDINARY_TASK_DETAIL();
|
||
detail.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
detail.ORDINARY_TASK_ANALYSIS_ID = ordinary.ID;
|
||
detail.ORG_ID = t.ORG_ID;
|
||
detail.CREATER_ID = t.CREATER_ID;
|
||
detail.SafeConfirmsStr = safeConfirms;
|
||
detail.SafeMeasuresStr = safeMeasures;
|
||
detail.DealMeasuresStr = dealMeasurestr;
|
||
detail.AREA_ID = t.AREA_ID;
|
||
detail.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
ordinaryDetails.Add(detail);
|
||
});
|
||
if (entity.Nav_Users != null && entity.Nav_Users.Any())
|
||
{
|
||
entity.Nav_Users.ForEach(t =>
|
||
{
|
||
T_HM_ORDINARY_ANALYSIS_PERSON person = new T_HM_ORDINARY_ANALYSIS_PERSON();
|
||
person.ORG_ID = t.ORG_ID;
|
||
person.USER_ID = t.USER_ID;
|
||
person.ORDINARY_TASK_ANALYSIS_ID = ordinary.ID;
|
||
person.CREATER_ID = t.CREATER_ID;
|
||
person.IS_FIRST = t.IS_FIRST;
|
||
ordinaryUsers.Add(person);
|
||
});
|
||
//发消息通知第一个分析人
|
||
var firstUserId = entity.Nav_Users.FirstOrDefault(t => t.IS_FIRST == true).USER_ID;
|
||
ordinary.USER_ID = firstUserId;
|
||
var userIds = new List<Guid>();
|
||
userIds.Add(firstUserId);
|
||
var UserNames = new List<string>();
|
||
var user = userInfos.FirstOrDefault(t => userIds.Contains(t.ID));
|
||
UserNames.Add(user?.NAME);
|
||
ordinary.CREATER_ID = firstUserId;
|
||
//发消息
|
||
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("一般任务分析表", ordinary.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
dtEnd, (int)FMNoticeTypeEnum.消息, "HM112"));
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (license != null)
|
||
this.UpdateEntityNoCommit(license);
|
||
if (crucial != null)
|
||
this.UpdateEntityNoCommit(crucial);
|
||
if (ordinary != null)
|
||
this.UpdateEntityNoCommit(ordinary);
|
||
if (licenseDetails != null && licenseDetails.Any())
|
||
this.BantchSaveEntityNoCommit(licenseDetails);
|
||
if (crucialDetails != null && crucialDetails.Any())
|
||
this.BantchSaveEntityNoCommit(crucialDetails);
|
||
if (ordinaryDetails != null && ordinaryDetails.Any())
|
||
this.BantchSaveEntityNoCommit(ordinaryDetails);
|
||
if (licenseUsers != null && licenseUsers.Any())
|
||
this.BantchSaveEntityNoCommit(licenseUsers);
|
||
if (crucialUsers != null && crucialUsers.Any())
|
||
this.BantchSaveEntityNoCommit(crucialUsers);
|
||
if (ordinaryUsers != null && ordinaryUsers.Any())
|
||
this.BantchSaveEntityNoCommit(ordinaryUsers);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
});
|
||
return true;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 回调函数
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool BackUpdate_HMOrdinaryTaskAnalysis(string id)
|
||
{
|
||
//var entity = this.GetEntity<T_HM_ORDINARY_TASK_ANALYSIS>(id, false, "Nav_OperationAnalyze", "Nav_Details", "Nav_Details.Nav_OperationStep", "Nav_Details.Nav_DetailRisk");
|
||
var entity = this.GetEntity<T_HM_ORDINARY_TASK_ANALYSIS>(id, new string[] { "Nav_OperationAnalyze", "Nav_Details", "Nav_Details.Nav_OperationStep" });
|
||
entity.IS_PUBLISH = FOPreMeetingStatusEnum.归档;
|
||
entity.COMPLETE_DATE = DateTime.Now;
|
||
//写入作业任务库
|
||
List<T_HM_OPERATION_LINK> operations = new List<T_HM_OPERATION_LINK>();
|
||
List<T_HM_OPERATION_TASK_SAFE_CONFIRM> safeConfs = new List<T_HM_OPERATION_TASK_SAFE_CONFIRM>();
|
||
List<T_HM_OPERATION_TASK_SAFE_MEASURE> safeMeas = new List<T_HM_OPERATION_TASK_SAFE_MEASURE>();
|
||
List<T_HM_OPERATION_TASK_DEAL_MEASURE> dealMeas = new List<T_HM_OPERATION_TASK_DEAL_MEASURE>();
|
||
List<T_HM_OPERATION_LINK_POST> posts = new List<T_HM_OPERATION_LINK_POST>();
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<Guid> confIds = new List<Guid>();
|
||
List<Guid> measIds = new List<Guid>();
|
||
List<Guid> dealIds = new List<Guid>();
|
||
List<Guid> postIds = new List<Guid>();
|
||
if (entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
{
|
||
List<T_HM_JOBTASK_IDENTIFY_DETAIL> jobDetails = null;
|
||
var stepIds = entity.Nav_Details.Select(t => t.OPERATION_STEP_ID).Distinct().ToList();
|
||
if (entity.Nav_OperationAnalyze != null && entity.Nav_OperationAnalyze.JOBTASK_IDENTIFY_ID != null)
|
||
{
|
||
jobDetails = this.GetEntities<T_HM_JOBTASK_IDENTIFY_DETAIL>(t => t.JOBTASK_IDENTIFY_ID == entity.Nav_OperationAnalyze.JOBTASK_IDENTIFY_ID && stepIds.Contains(t.OPERATION_STEP_ID), new BaseFilter(entity.ORG_ID), "Nav_DetailPost").ToList();
|
||
}
|
||
var links = this.GetEntities<T_HM_OPERATION_LINK>(t => stepIds.Contains(t.OPERATION_STEP_ID) && t.STATUS == (int)STATUSEnum.启用 && t.IS_RUN == DisableStatusEnum.是, new BaseFilter(entity.ORG_ID), new string[] { "Nav_LinkPost", "Nav_SafeConfirms", "Nav_SafeMeasures", "Nav_DealMeasures" });
|
||
entity.Nav_Details.ForEach(t =>
|
||
{
|
||
T_HM_OPERATION_LINK operation = new T_HM_OPERATION_LINK();
|
||
var current = links.FirstOrDefault(x => x.OPERATION_STEP_ID == t.OPERATION_STEP_ID);//OrderByDescending(t => t.CREATE_TIME).
|
||
if (current != null)
|
||
{
|
||
current.CODE = entity.CODE;
|
||
current.NAME = "一般任务分析表回写";
|
||
current.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
current.TASK_LEVEL = (int)HMTaskLevelEnum.一般任务;
|
||
current.ORG_ID = entity.ORG_ID;
|
||
current.IS_IMPORTANT = (int)ISImportantEnum.是;
|
||
current.SafeConfirmsStr = t.SafeConfirmsStr;
|
||
current.SafeMeasuresStr = t.SafeMeasuresStr;
|
||
current.DealMeasuresStr = t.DealMeasuresStr;
|
||
current.STATUS = (int)STATUSEnum.启用;
|
||
current.CREATER_ID = entity.CREATER_ID;
|
||
current.MODIFY_TYPE = HMModifyEnum.修改;
|
||
current.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
operation = current;
|
||
if (current.Nav_SafeConfirms != null && current.Nav_SafeConfirms.Any())
|
||
{
|
||
var ids = current.Nav_SafeConfirms.Select(t => t.ID).ToList();
|
||
confIds.AddRange(ids);
|
||
}
|
||
if (current.Nav_SafeMeasures != null && current.Nav_SafeMeasures.Any())
|
||
{
|
||
var ids = current.Nav_SafeMeasures.Select(t => t.ID).ToList();
|
||
measIds.AddRange(ids);
|
||
}
|
||
if (current.Nav_DealMeasures != null && current.Nav_DealMeasures.Any())
|
||
{
|
||
var ids = current.Nav_DealMeasures.Select(t => t.ID).ToList();
|
||
dealIds.AddRange(ids);
|
||
}
|
||
if (current.Nav_LinkPost != null && current.Nav_LinkPost.Any())
|
||
{
|
||
var ids = current.Nav_LinkPost.Select(t => t.ID).ToList();
|
||
postIds.AddRange(ids);
|
||
}
|
||
//if (t.AREA_ID != null && current.Nav_LinkArea != null && current.Nav_LinkArea.Any())
|
||
//{
|
||
// var linkArea = current.Nav_LinkArea.FirstOrDefault(t => t.AREA_ID == t.AREA_ID);
|
||
// if (linkArea == null)
|
||
// {
|
||
// T_HM_OPERATION_LINK_AREA area = new T_HM_OPERATION_LINK_AREA();
|
||
// area.ORG_ID = entity.ORG_ID;
|
||
// area.OPERATION_LINK_ID = current.ID;
|
||
// area.AREA_ID = t.AREA_ID;
|
||
// areas.Add(area);
|
||
// }
|
||
//}
|
||
}
|
||
else
|
||
{
|
||
//主表
|
||
operation.CODE = entity.CODE;
|
||
operation.NAME = "一般任务分析表新增";
|
||
operation.OPERATION_STEP_ID = t.OPERATION_STEP_ID;
|
||
operation.TASK_LEVEL = (int)HMTaskLevelEnum.一般任务;
|
||
operation.ORG_ID = entity.ORG_ID;
|
||
operation.IS_IMPORTANT = (int)ISImportantEnum.是;
|
||
operation.SafeConfirmsStr = t.SafeConfirmsStr;
|
||
operation.SafeMeasuresStr = t.SafeMeasuresStr;
|
||
operation.DealMeasuresStr = t.DealMeasuresStr;
|
||
operation.STATUS = (int)STATUSEnum.启用;
|
||
operation.CREATER_ID = entity.CREATER_ID;
|
||
operation.MODIFY_TYPE = HMModifyEnum.新增;
|
||
operation.CYCLE_TYPE = t.CYCLE_TYPE;
|
||
var mineType = APT.Infrastructure.Api.AppContext.CurrentSession.MineType;
|
||
if (!string.IsNullOrEmpty(mineType))
|
||
{
|
||
operation.MineType = int.Parse(mineType.Split(",")[0]);
|
||
}
|
||
//if (t.AREA_ID != null)
|
||
//{
|
||
// T_HM_OPERATION_LINK_AREA area = new T_HM_OPERATION_LINK_AREA();
|
||
// area.ORG_ID = entity.ORG_ID;
|
||
// area.OPERATION_LINK_ID = operation.ID;
|
||
// area.AREA_ID = t.AREA_ID;
|
||
// areas.Add(area);
|
||
//}
|
||
}
|
||
operations.Add(operation);
|
||
var newPostIds = jobDetails.FirstOrDefault(t => t.OPERATION_STEP_ID == operation.OPERATION_STEP_ID);
|
||
if (newPostIds != null && newPostIds.Nav_DetailPost != null && newPostIds.Nav_DetailPost.Any())
|
||
{
|
||
foreach (var item in newPostIds.Nav_DetailPost)
|
||
{
|
||
T_HM_OPERATION_LINK_POST post = new T_HM_OPERATION_LINK_POST();
|
||
post.ORG_ID = entity.ORG_ID;
|
||
post.OPERATION_LINK_ID = operation.ID;
|
||
post.POST_ID = item.POST_ID;
|
||
posts.Add(post);
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(t.SafeConfirmsStr))
|
||
{
|
||
var conf = t.SafeConfirmsStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (conf.Length > 0)
|
||
{
|
||
foreach (var c in conf)
|
||
{
|
||
T_HM_OPERATION_TASK_SAFE_CONFIRM safeConf = new T_HM_OPERATION_TASK_SAFE_CONFIRM();
|
||
safeConf.ORG_ID = entity.ORG_ID;
|
||
safeConf.OPERATION_LINK_ID = operation.ID;
|
||
if (c.Contains("、"))
|
||
{
|
||
var co = c.Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (co.Length > 0)
|
||
{
|
||
safeConf.NAME = co[1];
|
||
safeConf.NUM = int.Parse(co[0]);
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
safeConfs.Add(safeConf);
|
||
}
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(t.SafeMeasuresStr))
|
||
{
|
||
var conf = t.SafeMeasuresStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (conf.Length > 0)
|
||
{
|
||
foreach (var c in conf)
|
||
{
|
||
T_HM_OPERATION_TASK_SAFE_MEASURE safeConf = new T_HM_OPERATION_TASK_SAFE_MEASURE();
|
||
safeConf.ORG_ID = entity.ORG_ID;
|
||
safeConf.OPERATION_LINK_ID = operation.ID;
|
||
if (c.Contains("、"))
|
||
{
|
||
var co = c.Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (co.Length > 0)
|
||
{
|
||
safeConf.NAME = co[1];
|
||
safeConf.NUM = int.Parse(co[0]);
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
safeMeas.Add(safeConf);
|
||
}
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(t.DealMeasuresStr))
|
||
{
|
||
var conf = t.DealMeasuresStr.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (conf.Length > 0)
|
||
{
|
||
foreach (var c in conf)
|
||
{
|
||
T_HM_OPERATION_TASK_DEAL_MEASURE safeConf = new T_HM_OPERATION_TASK_DEAL_MEASURE();
|
||
safeConf.ORG_ID = entity.ORG_ID;
|
||
safeConf.OPERATION_LINK_ID = operation.ID;
|
||
if (c.Contains("、"))
|
||
{
|
||
var co = c.Split(new[] { '、' }, StringSplitOptions.RemoveEmptyEntries);
|
||
if (co.Length > 0)
|
||
{
|
||
safeConf.NAME = co[1];
|
||
safeConf.NUM = int.Parse(co[0]);
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
safeConf.NAME = c;
|
||
safeConf.NUM = 1;
|
||
}
|
||
dealMeas.Add(safeConf);
|
||
}
|
||
}
|
||
}
|
||
operation.IS_RUN = DisableStatusEnum.是;
|
||
});
|
||
}
|
||
//自动触发文件发布
|
||
List<Guid> dataIds = new List<Guid>();
|
||
T_HM_FILE_PUBLISH publish = null;
|
||
dataIds.Add(entity.ID);
|
||
var license = this.GetEntity<T_HM_LICENSE_ANALYSIS>(t => t.OPERATION_ANALYZE_ID == entity.OPERATION_ANALYZE_ID);
|
||
if (license != null)
|
||
dataIds.Add(license.ID);
|
||
var crucial = this.GetEntity<T_HM_CRUCIAL_TASK_ANALYSIS>(t => t.OPERATION_ANALYZE_ID == entity.OPERATION_ANALYZE_ID);
|
||
if (crucial != null)
|
||
dataIds.Add(crucial.ID);
|
||
var approve = this.GetEntities<T_PF_APPROVE>(t => dataIds.Contains(t.DATA_ID), new BaseFilter(entity.ORG_ID));
|
||
if (approve != null && approve.Any())
|
||
{
|
||
bool isEnd = true;
|
||
approve.ForEach(t =>
|
||
{
|
||
if (t.APPROVE_STATUS != (int)ApproveStatus.Done)
|
||
isEnd = false;
|
||
});
|
||
if (isEnd)
|
||
{
|
||
var nextCode = "";
|
||
var nextCodeInfo = this.GetEntities<T_HM_FILE_PUBLISH>(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID)).OrderByDescending(t => t.CREATE_TIME).FirstOrDefault();
|
||
var year = DateTime.Now.Year;
|
||
var month = DateTime.Now.Month.PadLeft(2, '0');
|
||
var day = DateTime.Now.Day.PadLeft(2, '0');
|
||
if (nextCodeInfo == null)
|
||
{
|
||
nextCode = "RWFX" + year + month + day + "00001";
|
||
}
|
||
else
|
||
{
|
||
//取最后五位序列号
|
||
var serial = nextCodeInfo.CODE.Substring(nextCodeInfo.CODE.Length - 5);
|
||
//序列号+1,不足五位补0
|
||
var num = (int.Parse(serial) + 1).ToString().PadLeft(5, '0');
|
||
nextCode = "RWFX" + year + month + day + num;
|
||
}
|
||
var userId = this.GetEntity<T_FM_PARAM_SET>(t => t.NAME == "办公室负责人")?.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//文件发布表
|
||
publish = new T_HM_FILE_PUBLISH();
|
||
publish.NAME = "";
|
||
publish.CODE = nextCode;
|
||
publish.LICENSE_ANALYSIS_ID = license?.ID;
|
||
publish.CRUCIAL_TASK_ANALYSIS_ID = crucial?.ID;
|
||
publish.ORDINARY_TASK_ANALYSIS_ID = entity.ID;
|
||
publish.PUBLISH_DATE = DateTime.Now;
|
||
publish.Nav_Area = null;
|
||
publish.ORG_ID = entity.ORG_ID;
|
||
publish.IS_AUTO = ISImportantEnum.是;
|
||
publish.USER_ID = userId;
|
||
//消息通知辦公室负责人李忠松
|
||
var userIds = new List<Guid>();
|
||
userIds.Add((Guid)userId);
|
||
//userIds.Add((Guid)chargeUserId);
|
||
var UserNames = new List<string>();
|
||
var user = this.GetEntity<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && userIds.Contains(t.ID));
|
||
UserNames.Add(user?.NAME);
|
||
//发消息
|
||
DateTime dtEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
notices.AddRange(NotificationTaskService.InsertUserNoticeTaskModels("作业任务分析文件发布表", publish.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
dtEnd, (int)FMNoticeTypeEnum.消息, "HM124"));
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (operations != null && operations.Any())
|
||
this.BantchSaveEntityNoCommit(operations);
|
||
if (confIds != null && confIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_TASK_SAFE_CONFIRM>(confIds);
|
||
if (measIds != null && measIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_TASK_SAFE_MEASURE>(measIds);
|
||
if (dealIds != null && dealIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_TASK_DEAL_MEASURE>(dealIds);
|
||
if (postIds != null && postIds.Any())
|
||
this.BantchDeleteEntityNoCommit<T_HM_OPERATION_LINK_POST>(postIds);
|
||
if (safeConfs != null && safeConfs.Any())
|
||
this.BantchSaveEntityNoCommit(safeConfs);
|
||
if (safeMeas != null && safeMeas.Any())
|
||
this.BantchSaveEntityNoCommit(safeMeas);
|
||
if (dealMeas != null && dealMeas.Any())
|
||
this.BantchSaveEntityNoCommit(dealMeas);
|
||
if (posts != null && posts.Any())
|
||
this.BantchSaveEntityNoCommit(posts);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (publish != null)
|
||
this.UpdateEntityNoCommit(publish);
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 获取创建人负责人ID
|
||
/// <returns></returns>
|
||
private Guid? GetChargeUserId(Guid? id)
|
||
{
|
||
var chargeId = id;
|
||
//var loginUserId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
var user = GetEntity<T_FM_USER>(t => t.ID == id && t.ENABLE_STATUS == 0, new string[] { "Nav_Department" });
|
||
if (user != null && user.Nav_Department != null && user.Nav_Department.USER_ID != null)//user.Nav_Department.DEPARTMENT_TYPE == (int)FMDepartmentType.部门
|
||
{
|
||
chargeId = user.Nav_Department.USER_ID;
|
||
}
|
||
//else
|
||
//{
|
||
// List<Guid?> departmentIds = new List<Guid?>();
|
||
// GetDepartmentId(user.DEPARTMENT_ID, ref departmentIds);
|
||
// var departInfo = this.GetEntity<T_FM_DEPARTMENT>(t => departmentIds.Contains(t.ID) && t.DEPARTMENT_TYPE == (int)FMDepartmentType.部门 && t.USER_ID != null);
|
||
// chargeId = departInfo?.USER_ID;
|
||
//}
|
||
return chargeId;
|
||
}
|
||
|
||
private void GetDepartmentId(Guid? departmentId, ref List<Guid?> departmentIds)
|
||
{
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
departmentIds.Add(departmentId);
|
||
var department = GetEntity<T_FM_DEPARTMENT>(t => t.ID == departmentId);
|
||
if (department != null && department.PARENT_ID != null)
|
||
{
|
||
GetDepartmentId(department.PARENT_ID, ref departmentIds);
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region WJN
|
||
/// <summary>
|
||
/// 审批流回调
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool PersonalApprove_HMRiskTask(string id)
|
||
{
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
Guid RiskId = Guid.Parse(id);
|
||
BaseFilter filter = new BaseFilter(orgId);
|
||
filter.Include = new string[] { "Nav_Detail.Nav_Users.Nav_User" };
|
||
var entity = GetEntity<T_HM_RISK_TASK>(t => t.ID == RiskId, filter);
|
||
if (entity != null)
|
||
{
|
||
entity.STATUS = FOPreMeetingStatusEnum.签到中;
|
||
var noticeUserIds = new List<Guid>();
|
||
var noticeUserNames = new List<string>();
|
||
var noticeTitles = new List<string>();
|
||
var noticeDataIds = new List<Guid>();
|
||
foreach (var detail in entity.Nav_Detail)
|
||
{
|
||
foreach (var users in detail.Nav_Users)
|
||
{
|
||
var count = noticeUserIds.Where(t => t == users.USER_ID).Count();
|
||
if (count == 0)
|
||
{
|
||
noticeUserIds.Add(users.USER_ID);
|
||
noticeUserNames.Add(users.Nav_User.NAME);
|
||
noticeTitles.Add("危险源辨识任务待确认");
|
||
noticeDataIds.Add(RiskId);
|
||
}
|
||
}
|
||
}
|
||
var sendNotices = NotificationTaskService.InsertUserNoticeTaskModels(noticeTitles, noticeDataIds, orgId, noticeUserIds, noticeUserNames, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(1).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, "HM061_SHOWPRINT");
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(entity, "STATUS");
|
||
if (sendNotices != null && sendNotices.Any())
|
||
BantchSaveEntityNoCommit(sendNotices);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 审批流回调
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool PersonalApprove_HMRiskRecord(string id)
|
||
{
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
var entity = GetEntity<T_HM_RISK_RECORD>(id, new string[] { "Nav_Files", "Nav_Details.Nav_EvaluateRiskRecordWorkduty", "Nav_Details.Nav_EvaluateRiskRecordEquipment", "Nav_Details.Nav_EvaluateRiskRecordFacilities" });
|
||
BaseFilter filter = new BaseFilter(orgId);
|
||
if (entity != null)
|
||
{
|
||
T_HM_EVALUATE_RESULT result = new T_HM_EVALUATE_RESULT();
|
||
List<T_HM_EVALUATE_RESULT_RISK> resultRisks = new List<T_HM_EVALUATE_RESULT_RISK>();
|
||
List<T_HM_EVALUATE_RESULT_FILE> resultRiskfiles = new List<T_HM_EVALUATE_RESULT_FILE>();
|
||
List<T_HM_EVALUATE_RESULT_RISK_WORKDUTY> resultRiskWorkdutys = new List<T_HM_EVALUATE_RESULT_RISK_WORKDUTY>();
|
||
List<T_HM_EVALUATE_RESULT_RISK_EQUIPMENT> resultEquipments = new List<T_HM_EVALUATE_RESULT_RISK_EQUIPMENT>();
|
||
List<T_HM_EVALUATE_RESULT_RISK_FACILITIES> resultRiskFacilitys = new List<T_HM_EVALUATE_RESULT_RISK_FACILITIES>();
|
||
List<T_HM_EVALUATE_RESULT_RISK_INDIVIDUAL_MEASURES> individuals = new List<T_HM_EVALUATE_RESULT_RISK_INDIVIDUAL_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_RISK_ENGINEERING_MEASURES> engineerings = new List<T_HM_EVALUATE_RESULT_RISK_ENGINEERING_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_RISK_MANAGEMENT_MEASURES> managements = new List<T_HM_EVALUATE_RESULT_RISK_MANAGEMENT_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_RISK_EDUCATION_MEASURES> educations = new List<T_HM_EVALUATE_RESULT_RISK_EDUCATION_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_RISK_EMERGENCY_MEASURES> emergencys = new List<T_HM_EVALUATE_RESULT_RISK_EMERGENCY_MEASURES>();
|
||
|
||
var details = entity.Nav_Details.Where(t => t.RISK_STATUS == HMOperationStepEnum.有效).Select(x => x.EVALUATE_RISK_ID);
|
||
var disableDetails = entity.Nav_Details.Where(t => t.RISK_STATUS == HMOperationStepEnum.作废 || t.MODIFY_TYPE == HMModifyEnum.修改).Select(x => x.EVALUATE_RISK_ID);
|
||
var disableEvaluates = GetEntities<T_HM_EVALUATE_RISK>(t => disableDetails.Contains(t.ID), new BaseFilter(orgId));
|
||
foreach (var disItem in disableEvaluates)
|
||
{
|
||
disItem.STATUS = (int)HMOperationStepEnum.作废;
|
||
}
|
||
|
||
filter.Include = new string[] { "Nav_EvaluateRiskIndividualMeasures", "Nav_EvaluateRiskEngineeringMeasures", "Nav_EvaluateRiskManagementMeasures", "Nav_EvaluateRiskEducationMeasures", "Nav_EvaluateRiskEmergencyMeasures" };
|
||
|
||
var evaluaterisks = GetEntities<T_HM_EVALUATE_RISK>(t => details.Contains(t.ID), filter);
|
||
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.评价结果表;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = orgId;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
result.CODE = codeList[0];
|
||
result.ID = Guid.NewGuid();
|
||
result.STATUS = FOPreMeetingStatusEnum.草稿;
|
||
result.EVALUATE_TYPE = HMRiskTypeEnmu.危险源辨识;
|
||
var RequireMent = GetEntity<T_HM_EVALUATE_REQUIREMENT>(t => t.IS_DELETED == false);
|
||
if (RequireMent != null)
|
||
{
|
||
result.REQUIREMENT_ID = RequireMent.ID;
|
||
}
|
||
result.INITIATING_DEPARTMENT = entity.INITIATING_DEPARTMENT;
|
||
result.ORG_ID = orgId;
|
||
result.LEVEL = entity.LEVEL;
|
||
result.START_TIME = entity.START_TIME;
|
||
result.END_TIME = entity.END_TIME;
|
||
result.PLAN_ID = entity.PLAN_ID;
|
||
Guid sendUserId = Guid.Empty;
|
||
string sendName = "";
|
||
var sendUser = new T_FM_USER();
|
||
|
||
if (entity.LEVEL == FMDepartmentType.Company)
|
||
{
|
||
var approveRole = GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部安全员").ID;
|
||
sendUser = GetEntity<T_FM_USER>(t => t.APPROVE_ROLE_ID == approveRole && t.ENABLE_STATUS == 0);
|
||
sendUserId = sendUser.ID;
|
||
sendName = sendUser.NAME;
|
||
if (sendUserId == Guid.Empty)
|
||
{
|
||
ThrowError("未找到安环部安全员");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var userDepartmentId = GetEntity<T_FM_USER>(t => t.ID == entity.NOTE_TAKER_ID && t.ENABLE_STATUS == 0).DEPARTMENT_ID;
|
||
var department = GetEntity<T_FM_DEPARTMENT>(userDepartmentId.ToString());
|
||
Guid departmentId = Guid.Empty;
|
||
if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.Class)
|
||
{
|
||
var tempDepartment = GetEntity<T_FM_DEPARTMENT>(t => t.ID == department.PARENT_ID).PARENT_ID;
|
||
departmentId = GetEntity<T_FM_DEPARTMENT>(t => t.ID == tempDepartment).ID;
|
||
}
|
||
else if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.Workshop)
|
||
{
|
||
departmentId = GetEntity<T_FM_DEPARTMENT>(t => t.ID == department.PARENT_ID).ID;
|
||
}
|
||
else
|
||
{
|
||
departmentId = department.ID;
|
||
}
|
||
sendUser = GetEntity<T_FM_USER>(t => t.DEPARTMENT_ID == departmentId && t.Nav_ApproveRole.NAME == "部门安全员" && t.ENABLE_STATUS == 0);
|
||
if (sendUser == null)
|
||
{
|
||
sendUser = GetEntity<T_FM_USER>(t => t.DEPARTMENT_ID == departmentId && t.Nav_ApproveRole.NAME == "部门负责人" && t.ENABLE_STATUS == 0);
|
||
if (sendUser == null)
|
||
{
|
||
sendUser = GetEntity<T_FM_USER>(t => t.DEPARTMENT_ID == departmentId && t.Nav_ApproveRole.NAME == "安环部安全员" && t.ENABLE_STATUS == 0);
|
||
sendUserId = sendUser.ID;
|
||
sendName = sendUser.NAME;
|
||
}
|
||
else
|
||
{
|
||
sendUserId = sendUser.ID;
|
||
sendName = sendUser.NAME;
|
||
}
|
||
|
||
if (sendUser == null)
|
||
{
|
||
throw new Exception("未找到部门安全员或部门负责人");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
sendUserId = sendUser.ID;
|
||
sendName = sendUser.NAME;
|
||
}
|
||
}
|
||
result.NOTE_TAKER_ID = sendUserId;//部门安全员
|
||
|
||
if (entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
foreach (var item in entity.Nav_Files)
|
||
{
|
||
T_HM_EVALUATE_RESULT_FILE resultRiskfile = new T_HM_EVALUATE_RESULT_FILE();
|
||
resultRiskfile.EVALUATE_RESULT_ID = result.ID;
|
||
resultRiskfile.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
resultRiskfile.ORG_ID = orgId;
|
||
resultRiskfiles.Add(resultRiskfile);
|
||
}
|
||
}
|
||
var enableDetails = entity.Nav_Details.Where(t => t.RISK_STATUS == HMOperationStepEnum.有效);
|
||
if (enableDetails != null && enableDetails.Any())
|
||
{
|
||
foreach (var item in enableDetails)
|
||
{
|
||
var evaluatierisk = evaluaterisks.Where(t => t.ID == item.EVALUATE_RISK_ID).FirstOrDefault();
|
||
T_HM_EVALUATE_RESULT_RISK resultRisk = new T_HM_EVALUATE_RESULT_RISK();
|
||
resultRisk.ID = Guid.NewGuid();
|
||
resultRisk.EVALUATE_RESULT_ID = result.ID;
|
||
resultRisk.NAME = item.RISK_NAME;
|
||
resultRisk.RISK_PLACE = item.RISK_PLACE;
|
||
resultRisk.AREA_ID = item.AREA_ID;
|
||
resultRisk.IDENTIFYING_ID = item.IDENTIFYING_ID;
|
||
resultRisk.TYPE_ID = item.TYPE_ID;
|
||
resultRisk.OPERATION_STEP_ID = item.OPERATION_STEP_ID;
|
||
resultRisk.ORG_ID = orgId;
|
||
resultRisk.DEPARTMENT_LIABLE_ID = item.DEPARTMENT_LIABLE_ID;
|
||
resultRisk.POST_LIABLE_ID = item.POST_LIABLE_ID;
|
||
if (item.LIABLE_USER_ID == null)
|
||
{
|
||
var user = GetEntity<T_FM_USER>(t => t.DEPARTMENT_ID == resultRisk.DEPARTMENT_LIABLE_ID && t.APPROVE_ROLE_ID == resultRisk.POST_LIABLE_ID && t.ENABLE_STATUS == 0);
|
||
if (user != null)
|
||
{
|
||
resultRisk.LIABLE_USER_ID = user.ID;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
resultRisk.LIABLE_USER_ID = item.LIABLE_USER_ID;
|
||
}
|
||
if (evaluatierisk != null)
|
||
{
|
||
resultRisk.EVALUATE_L = evaluatierisk.EVALUATE_L;
|
||
resultRisk.EVALUATE_E = evaluatierisk.EVALUATE_E;
|
||
resultRisk.EVALUATE_C = evaluatierisk.EVALUATE_C;
|
||
resultRisk.EVALUATE_SCORE = evaluatierisk.EVALUATE_SCORE;
|
||
resultRisk.EVALUATE_LEVEL = evaluatierisk.EVALUATE_LEVEL;
|
||
resultRisk.EVALUATE_RISK_ID = item.EVALUATE_RISK_ID;
|
||
}
|
||
else
|
||
{
|
||
resultRisk.EVALUATE_RISK_ID = null;
|
||
}
|
||
resultRisk.MODIFY_TYPE = item.MODIFY_TYPE;
|
||
resultRisks.Add(resultRisk);
|
||
foreach (var workduty in item.Nav_EvaluateRiskRecordWorkduty)
|
||
{
|
||
T_HM_EVALUATE_RESULT_RISK_WORKDUTY resultRiskWorkduty = new T_HM_EVALUATE_RESULT_RISK_WORKDUTY();
|
||
resultRiskWorkduty.EVALUATION_RESULT_RISK_ID = resultRisk.ID;
|
||
resultRiskWorkduty.WORKDUTY_ID = workduty.WORKDUTY_ID;
|
||
resultRiskWorkduty.ORG_ID = orgId;
|
||
resultRiskWorkdutys.Add(resultRiskWorkduty);
|
||
}
|
||
foreach (var equipment in item.Nav_EvaluateRiskRecordEquipment)
|
||
{
|
||
T_HM_EVALUATE_RESULT_RISK_EQUIPMENT resultEquipment = new T_HM_EVALUATE_RESULT_RISK_EQUIPMENT();
|
||
resultEquipment.EVALUATION_RESULT_RISK_ID = resultRisk.ID;
|
||
resultEquipment.EQUIPMENT_ID = equipment.EQUIPMENT_ID;
|
||
resultEquipment.ORG_ID = orgId;
|
||
resultEquipments.Add(resultEquipment);
|
||
}
|
||
foreach (var facility in item.Nav_EvaluateRiskRecordFacilities)
|
||
{
|
||
T_HM_EVALUATE_RESULT_RISK_FACILITIES resultRiskFacility = new T_HM_EVALUATE_RESULT_RISK_FACILITIES();
|
||
resultRiskFacility.EVALUATION_RESULT_RISK_ID = resultRisk.ID;
|
||
resultRiskFacility.FACILITIES_ID = facility.FACILITIES_ID;
|
||
resultRiskFacility.ORG_ID = orgId;
|
||
resultRiskFacilitys.Add(resultRiskFacility);
|
||
}
|
||
if (evaluatierisk != null)
|
||
{
|
||
foreach (var measure in evaluatierisk.Nav_EvaluateRiskIndividualMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_RISK_INDIVIDUAL_MEASURES model = new T_HM_EVALUATE_RESULT_RISK_INDIVIDUAL_MEASURES();
|
||
model.EVALUATION_RESULT_RISK_ID = resultRisk.ID;
|
||
model.INDIVIDUAL_MEASURES_ID = measure.INDIVIDUAL_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
individuals.Add(model);
|
||
}
|
||
foreach (var measure in evaluatierisk.Nav_EvaluateRiskEngineeringMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_RISK_ENGINEERING_MEASURES model = new T_HM_EVALUATE_RESULT_RISK_ENGINEERING_MEASURES();
|
||
model.EVALUATION_RESULT_RISK_ID = resultRisk.ID;
|
||
model.ENGINEERING_MEASURES_ID = measure.ENGINEERING_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
engineerings.Add(model);
|
||
}
|
||
foreach (var measure in evaluatierisk.Nav_EvaluateRiskManagementMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_RISK_MANAGEMENT_MEASURES model = new T_HM_EVALUATE_RESULT_RISK_MANAGEMENT_MEASURES();
|
||
model.EVALUATION_RESULT_RISK_ID = resultRisk.ID;
|
||
model.MANAGEMENT_MEASURES_ID = measure.MANAGEMENT_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
managements.Add(model);
|
||
}
|
||
foreach (var measure in evaluatierisk.Nav_EvaluateRiskEducationMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_RISK_EDUCATION_MEASURES model = new T_HM_EVALUATE_RESULT_RISK_EDUCATION_MEASURES();
|
||
model.EVALUATION_RESULT_RISK_ID = resultRisk.ID;
|
||
model.EDUCATION_MEASURES_ID = measure.EDUCATION_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
educations.Add(model);
|
||
}
|
||
foreach (var measure in evaluatierisk.Nav_EvaluateRiskEmergencyMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_RISK_EMERGENCY_MEASURES model = new T_HM_EVALUATE_RESULT_RISK_EMERGENCY_MEASURES();
|
||
model.EVALUATION_RESULT_RISK_ID = resultRisk.ID;
|
||
model.EMERGENCY_MEASURES_ID = measure.EMERGENCY_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
emergencys.Add(model);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
entity.STATUS = FOPreMeetingStatusEnum.归档;
|
||
NotificationTaskService.SendNotificationTask("危险源与风险辨识评价结果", result.ID, orgId, sendUserId, sendName,
|
||
DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(5).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, "HM122", () =>
|
||
{
|
||
if (entity != null)
|
||
UpdateEntityNoCommit(entity, "STATUS");
|
||
if (result != null)
|
||
AddEntityNoCommit(result);
|
||
if (resultRisks != null && resultRisks.Any())
|
||
BantchAddEntityNoCommit(resultRisks);
|
||
if (resultRiskfiles != null && resultRiskfiles.Any())
|
||
BantchAddEntityNoCommit(resultRiskfiles);
|
||
if (resultRiskWorkdutys != null && resultRiskWorkdutys.Any())
|
||
BantchAddEntityNoCommit(resultRiskWorkdutys);
|
||
if (resultEquipments != null && resultEquipments.Any())
|
||
BantchAddEntityNoCommit(resultEquipments);
|
||
if (resultRiskFacilitys != null && resultRiskFacilitys.Any())
|
||
BantchAddEntityNoCommit(resultRiskFacilitys);
|
||
if (individuals != null && individuals.Any())
|
||
BantchSaveEntityNoCommit(individuals); //保存子表
|
||
if (engineerings != null && engineerings.Any())
|
||
BantchSaveEntityNoCommit(engineerings); //保存子表
|
||
if (managements != null && managements.Any())
|
||
BantchSaveEntityNoCommit(managements); //保存子表
|
||
if (educations != null && educations.Any())
|
||
BantchSaveEntityNoCommit(educations); //保存子表
|
||
if (emergencys != null && emergencys.Any())
|
||
BantchSaveEntityNoCommit(emergencys); //保存子表
|
||
if (disableEvaluates != null && disableEvaluates.Any())
|
||
BantchUpdateEntityNoCommit(disableEvaluates, "STATUS"); //保存子表
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 审批流回调
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool PersonalApprove_HMHazardTask(string id)
|
||
{
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
Guid HazardId = Guid.Parse(id);
|
||
BaseFilter filter = new BaseFilter(orgId);
|
||
filter.Include = new string[] { "Nav_Detail.Nav_Users.Nav_User" };
|
||
var entity = GetEntity<T_HM_HAZARD_TASK>(t => t.ID == HazardId, filter);
|
||
if (entity != null)
|
||
{
|
||
entity.STATUS = FOPreMeetingStatusEnum.签到中;
|
||
var noticeUserIds = new List<Guid>();
|
||
var noticeUserNames = new List<string>();
|
||
var noticeTitles = new List<string>();
|
||
var noticeDataIds = new List<Guid>();
|
||
foreach (var detail in entity.Nav_Detail)
|
||
{
|
||
foreach (var users in detail.Nav_Users)
|
||
{
|
||
var count = noticeUserIds.Where(t => t == users.USER_ID).Count();
|
||
if (count == 0)
|
||
{
|
||
noticeUserIds.Add(users.USER_ID);
|
||
noticeUserNames.Add(users.Nav_User.NAME);
|
||
noticeTitles.Add("职业危害任务待确认");
|
||
noticeDataIds.Add(HazardId);
|
||
}
|
||
}
|
||
}
|
||
var sendNotices = NotificationTaskService.InsertUserNoticeTaskModels(noticeTitles, noticeDataIds, orgId, noticeUserIds, noticeUserNames, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(1).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, "HM101_SHOWPRINT");
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(entity, "STATUS");
|
||
if (sendNotices != null && sendNotices.Any())
|
||
BantchSaveEntityNoCommit(sendNotices);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 审批流回调
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool PersonalApprove_HMHazardRecord(string id)
|
||
{
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
Guid RiskId = Guid.Parse(id);
|
||
var entity = GetEntity<T_HM_HAZARD_RECORD>(RiskId, new string[] { "Nav_Files", "Nav_Details" });
|
||
if (entity != null)
|
||
{
|
||
T_HM_EVALUATE_RESULT result = new T_HM_EVALUATE_RESULT();
|
||
List<T_HM_EVALUATE_RESULT_HAZARD> resultHazards = new List<T_HM_EVALUATE_RESULT_HAZARD>();
|
||
List<T_HM_EVALUATE_RESULT_FILE> resultHazardFiles = new List<T_HM_EVALUATE_RESULT_FILE>();
|
||
List<T_HM_EVALUATE_RESULT_HAZARD_INDIVIDUAL_MEASURES> individuals = new List<T_HM_EVALUATE_RESULT_HAZARD_INDIVIDUAL_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_HAZARD_ENGINEERING_MEASURES> engineerings = new List<T_HM_EVALUATE_RESULT_HAZARD_ENGINEERING_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_HAZARD_MANAGEMENT_MEASURES> managements = new List<T_HM_EVALUATE_RESULT_HAZARD_MANAGEMENT_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_HAZARD_EDUCATION_MEASURES> educations = new List<T_HM_EVALUATE_RESULT_HAZARD_EDUCATION_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_HAZARD_EMERGENCY_MEASURES> emergencys = new List<T_HM_EVALUATE_RESULT_HAZARD_EMERGENCY_MEASURES>();
|
||
|
||
var details = entity.Nav_Details.Where(t => t.HAZARD_STATUS == HMOperationStepEnum.有效).Select(x => x.EVALUATE_HAZARD_ID);
|
||
var disableDetails = entity.Nav_Details.Where(t => t.HAZARD_STATUS == HMOperationStepEnum.作废).Select(x => x.EVALUATE_HAZARD_ID);
|
||
var disableEvaluates = GetEntities<T_HM_EVALUATE_HAZARD>(t => disableDetails.Contains(t.ID), new BaseFilter(orgId));
|
||
foreach (var disItem in disableEvaluates)
|
||
{
|
||
disItem.STATUS = (int)HMOperationStepEnum.作废;
|
||
}
|
||
BaseFilter filter = new BaseFilter(orgId);
|
||
filter.Include = new string[] { "Nav_EvaluateHazardIndividualMeasures", "Nav_EvaluateHazardEngineeringMeasures", "Nav_EvaluateHazardManagementMeasures", "Nav_EvaluateHazardEducationMeasures", "Nav_EvaluateHazardEmergencyMeasures" };
|
||
var evaluateHazards = GetEntities<T_HM_EVALUATE_HAZARD>(t => details.Contains(t.ID), filter);
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.评价结果表;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = orgId;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
result.CODE = codeList[0];
|
||
result.ID = Guid.NewGuid();
|
||
result.STATUS = FOPreMeetingStatusEnum.草稿;
|
||
result.EVALUATE_TYPE = HMRiskTypeEnmu.职业危害辨识;
|
||
result.START_TIME = entity.START_TIME;
|
||
result.END_TIME = entity.END_TIME;
|
||
result.PLAN_ID = entity.PLAN_ID;
|
||
var RequireMent = GetEntity<T_HM_EVALUATE_REQUIREMENT>(t => t.IS_DELETED == false);
|
||
if (RequireMent != null)
|
||
{
|
||
result.REQUIREMENT_ID = RequireMent.ID;
|
||
}
|
||
result.INITIATING_DEPARTMENT = entity.INITIATING_DEPARTMENT;
|
||
result.ORG_ID = orgId;
|
||
result.LEVEL = entity.LEVEL;
|
||
Guid sendUserId = Guid.Empty;
|
||
string sendName = "";
|
||
var sendUser = new T_FM_USER();
|
||
|
||
if (entity.LEVEL == FMDepartmentType.Company)
|
||
{
|
||
var approveRole = GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部安全员").ID;
|
||
sendUser = GetEntity<T_FM_USER>(t => t.APPROVE_ROLE_ID == approveRole && t.ENABLE_STATUS == 0);
|
||
sendUserId = sendUser.ID;
|
||
sendName = sendUser.NAME;
|
||
if (sendUserId == Guid.Empty)
|
||
{
|
||
ThrowError("未找到安环部安全员");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var userDepartmentId = GetEntity<T_FM_USER>(t => t.ID == entity.NOTE_TAKER_ID && t.ENABLE_STATUS == 0).DEPARTMENT_ID;
|
||
var department = GetEntity<T_FM_DEPARTMENT>(userDepartmentId.ToString());
|
||
Guid departmentId = Guid.Empty;
|
||
if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.Class)
|
||
{
|
||
var tempDepartment = GetEntity<T_FM_DEPARTMENT>(t => t.ID == department.PARENT_ID).PARENT_ID;
|
||
departmentId = GetEntity<T_FM_DEPARTMENT>(t => t.ID == tempDepartment).ID;
|
||
}
|
||
else if (department.DEPARTMENT_TYPE == (int)FMDepartmentType.Department)
|
||
{
|
||
departmentId = department.ID;
|
||
}
|
||
else
|
||
{
|
||
departmentId = GetEntity<T_FM_DEPARTMENT>(t => t.ID == department.PARENT_ID).ID;
|
||
}
|
||
sendUser = GetEntity<T_FM_USER>(t => t.DEPARTMENT_ID == departmentId && t.Nav_ApproveRole.NAME == "部门安全员" && t.ENABLE_STATUS == 0);
|
||
if (sendUser == null)
|
||
{
|
||
sendUser = GetEntity<T_FM_USER>(t => t.DEPARTMENT_ID == departmentId && t.Nav_ApproveRole.NAME == "部门负责人" && t.ENABLE_STATUS == 0);
|
||
if (sendUser == null)
|
||
{
|
||
throw new Exception("未找到部门安全员或部门负责人");
|
||
}
|
||
sendUserId = sendUser.ID;
|
||
sendName = sendUser.NAME;
|
||
}
|
||
else
|
||
{
|
||
sendUserId = sendUser.ID;
|
||
sendName = sendUser.NAME;
|
||
}
|
||
}
|
||
result.NOTE_TAKER_ID = sendUserId;//部门安全员
|
||
|
||
if (entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
foreach (var item in entity.Nav_Files)
|
||
{
|
||
T_HM_EVALUATE_RESULT_FILE resultHazardFile = new T_HM_EVALUATE_RESULT_FILE();
|
||
resultHazardFile.EVALUATE_RESULT_ID = result.ID;
|
||
resultHazardFile.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
resultHazardFile.ORG_ID = orgId;
|
||
resultHazardFiles.Add(resultHazardFile);
|
||
}
|
||
}
|
||
var enableDetail = entity.Nav_Details.Where(t => t.HAZARD_STATUS == HMOperationStepEnum.有效);
|
||
if (enableDetail != null && enableDetail.Any())
|
||
{
|
||
foreach (var item in enableDetail)
|
||
{
|
||
var evaluatieHazard = evaluateHazards.Where(t => t.ID == item.EVALUATE_HAZARD_ID).FirstOrDefault();
|
||
T_HM_EVALUATE_RESULT_HAZARD resultHazard = new T_HM_EVALUATE_RESULT_HAZARD();
|
||
resultHazard.ID = Guid.NewGuid();
|
||
resultHazard.EVALUATE_RESULT_ID = result.ID;
|
||
resultHazard.AREA_ID = item.AREA_ID;
|
||
resultHazard.ORG_ID = orgId;
|
||
resultHazard.HAZARD_POSITION = item.HAZARD_POSITION;
|
||
resultHazard.EXPOSURE_TIME = item.EXPOSURE_TIME;
|
||
resultHazard.EXPOSURE_LIMIT_VALUE = item.EXPOSURE_LIMIT_VALUE;
|
||
resultHazard.EXPOSURE_NUMBER = item.EXPOSURE_NUMBER;
|
||
resultHazard.OCCUPATIONALRISK_ID = item.OCCUPATIONALRISK_ID;
|
||
resultHazard.MODIFY_TYPE = item.MODIFY_TYPE;
|
||
resultHazard.IDENTIFYING_ID = item.IDENTIFYING_ID;
|
||
if (evaluatieHazard != null)
|
||
{
|
||
resultHazard.EVALUATE_HAZARD_ID = evaluatieHazard.ID;
|
||
resultHazard.POST_LIABLE_ID = evaluatieHazard.POST_LIABLE_ID;
|
||
resultHazard.DEPARTMENT_LIABLE_ID = evaluatieHazard.DEPARTMENT_LIABLE_ID;
|
||
resultHazard.MONITOR_MEASURES_ID = evaluatieHazard.MONITOR_MEASURES_ID;
|
||
resultHazard.HAZARD_LEVEL = evaluatieHazard.HAZARD_LEVEL;
|
||
}
|
||
else
|
||
{
|
||
resultHazard.EVALUATE_HAZARD_ID = null;
|
||
resultHazard.MONITOR_MEASURES_ID = null;
|
||
}
|
||
resultHazards.Add(resultHazard);
|
||
if (evaluatieHazard != null)
|
||
{
|
||
foreach (var measure in evaluatieHazard.Nav_EvaluateHazardIndividualMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_HAZARD_INDIVIDUAL_MEASURES model = new T_HM_EVALUATE_RESULT_HAZARD_INDIVIDUAL_MEASURES();
|
||
model.EVALUATE_RESULT_HAZARD_ID = resultHazard.ID;
|
||
model.INDIVIDUAL_MEASURES_ID = measure.INDIVIDUAL_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
individuals.Add(model);
|
||
}
|
||
foreach (var measure in evaluatieHazard.Nav_EvaluateHazardEngineeringMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_HAZARD_ENGINEERING_MEASURES model = new T_HM_EVALUATE_RESULT_HAZARD_ENGINEERING_MEASURES();
|
||
model.EVALUATE_RESULT_HAZARD_ID = resultHazard.ID;
|
||
model.ENGINEERING_MEASURES_ID = measure.ENGINEERING_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
engineerings.Add(model);
|
||
}
|
||
foreach (var measure in evaluatieHazard.Nav_EvaluateHazardManagementMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_HAZARD_MANAGEMENT_MEASURES model = new T_HM_EVALUATE_RESULT_HAZARD_MANAGEMENT_MEASURES();
|
||
model.EVALUATE_RESULT_HAZARD_ID = resultHazard.ID;
|
||
model.MANAGEMENT_MEASURES_ID = measure.MANAGEMENT_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
managements.Add(model);
|
||
}
|
||
foreach (var measure in evaluatieHazard.Nav_EvaluateHazardEducationMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_HAZARD_EDUCATION_MEASURES model = new T_HM_EVALUATE_RESULT_HAZARD_EDUCATION_MEASURES();
|
||
model.EVALUATE_RESULT_HAZARD_ID = resultHazard.ID;
|
||
model.EDUCATION_MEASURES_ID = measure.EDUCATION_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
educations.Add(model);
|
||
}
|
||
foreach (var measure in evaluatieHazard.Nav_EvaluateHazardEmergencyMeasures)
|
||
{
|
||
T_HM_EVALUATE_RESULT_HAZARD_EMERGENCY_MEASURES model = new T_HM_EVALUATE_RESULT_HAZARD_EMERGENCY_MEASURES();
|
||
model.EVALUATE_RESULT_HAZARD_ID = resultHazard.ID;
|
||
model.EMERGENCY_MEASURES_ID = measure.EMERGENCY_MEASURES_ID;
|
||
model.ORG_ID = orgId;
|
||
emergencys.Add(model);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
entity.STATUS = FOPreMeetingStatusEnum.归档;
|
||
NotificationTaskService.SendNotificationTask("职业危害辨识评价结果", result.ID, orgId, sendUserId, sendName,
|
||
DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(5).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, "HM122", () =>
|
||
{
|
||
if (entity != null)
|
||
UpdateEntityNoCommit(entity, "STATUS");
|
||
if (result != null)
|
||
AddEntityNoCommit(result);
|
||
if (resultHazards != null && resultHazards.Any())
|
||
BantchAddEntityNoCommit(resultHazards);
|
||
if (resultHazardFiles != null && resultHazardFiles.Any())
|
||
BantchAddEntityNoCommit(resultHazardFiles);
|
||
if (individuals != null && individuals.Any())
|
||
BantchSaveEntityNoCommit(individuals); //保存子表
|
||
if (engineerings != null && engineerings.Any())
|
||
BantchSaveEntityNoCommit(engineerings); //保存子表
|
||
if (managements != null && managements.Any())
|
||
BantchSaveEntityNoCommit(managements); //保存子表
|
||
if (educations != null && educations.Any())
|
||
BantchSaveEntityNoCommit(educations); //保存子表
|
||
if (emergencys != null && emergencys.Any())
|
||
BantchSaveEntityNoCommit(emergencys); //保存子表
|
||
if (disableEvaluates != null && disableEvaluates.Any())
|
||
BantchUpdateEntityNoCommit(disableEvaluates, "STATUS"); //保存子表
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 危险源及风险审批流回调
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool PersonalApprove1(string id)
|
||
{
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
Guid RiskId = Guid.Parse(id);
|
||
BaseFilter filter = new BaseFilter(orgId);
|
||
filter.Include = new string[] {
|
||
"Nav_Risks",
|
||
"Nav_Risks.Nav_EvaluateRiskWorkduty",
|
||
"Nav_Risks.Nav_EvaluateRiskEquipment",
|
||
"Nav_Risks.Nav_EvaluateRiskIndividualMeasures",
|
||
"Nav_Risks.Nav_EvaluateRiskEngineeringMeasures",
|
||
"Nav_Risks.Nav_EvaluateRiskManagementMeasures",
|
||
"Nav_Risks.Nav_EvaluateRiskEducationMeasures",
|
||
"Nav_Risks.Nav_EvaluateRiskEmergencyMeasures"
|
||
};
|
||
var entity = GetEntity<T_HM_EVALUATE_RESULT>(t => t.ID == RiskId, filter);
|
||
List<T_HM_EVALUATE_RISK> addEvaluateRisks = new List<T_HM_EVALUATE_RISK>();
|
||
List<T_HM_EVALUATE_RISK_WORKDUTY> addWorkdutys = new List<T_HM_EVALUATE_RISK_WORKDUTY>();
|
||
List<T_HM_EVALUATE_RISK_EQUIPMENT> addEquipments = new List<T_HM_EVALUATE_RISK_EQUIPMENT>();
|
||
//List<T_HM_EVALUATE_RISK_FACILITIES> addFacilities = new List<T_HM_EVALUATE_RISK_FACILITIES>();
|
||
List<T_HM_EVALUATE_RISK_INDIVIDUAL_MEASURES> addIndividuals = new List<T_HM_EVALUATE_RISK_INDIVIDUAL_MEASURES>();
|
||
List<T_HM_EVALUATE_RISK_ENGINEERING_MEASURES> addEngineerings = new List<T_HM_EVALUATE_RISK_ENGINEERING_MEASURES>();
|
||
List<T_HM_EVALUATE_RISK_MANAGEMENT_MEASURES> addManagements = new List<T_HM_EVALUATE_RISK_MANAGEMENT_MEASURES>();
|
||
List<T_HM_EVALUATE_RISK_EDUCATION_MEASURES> addEducations = new List<T_HM_EVALUATE_RISK_EDUCATION_MEASURES>();
|
||
List<T_HM_EVALUATE_RISK_EMERGENCY_MEASURES> addEmergencys = new List<T_HM_EVALUATE_RISK_EMERGENCY_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_RISK> updateRiskResult = new List<T_HM_EVALUATE_RESULT_RISK>();
|
||
|
||
List<T_FM_NOTIFICATION_TASK> newjobAdds1 = null;
|
||
List<T_FM_NOTIFICATION_TASK> newjobAdds2 = null;
|
||
|
||
T_HM_JOBTASK_IDENTIFY jobTask = null;
|
||
List<T_HM_JOBTASK_IDENTIFY_DETAIL> jobtaskDetailList = null;
|
||
List<T_HM_JOBTASK_IDENTIFY_DETAIL_POST> jobtaskDetailPostList = null;
|
||
List<T_HM_JOBTASK_IDENTIFY_DETAIL_RISK> jobtaskDetailRiskList = null;
|
||
|
||
|
||
List<T_BS_SAFE_CHECK> modelCheck = null;
|
||
List<T_BS_CHECK_PROJECT> listProject = null;
|
||
List<T_BS_SAFE_CHECK_DETAIL> listDetail = null;
|
||
|
||
if (entity.Nav_Risks != null && entity.Nav_Risks.Any())
|
||
{
|
||
entity.STATUS = FOPreMeetingStatusEnum.归档;
|
||
var updateRecord = entity.Nav_Risks.Where(t => t.MODIFY_TYPE != 0);
|
||
foreach (var update in updateRecord)
|
||
{
|
||
T_HM_EVALUATE_RISK risk = new T_HM_EVALUATE_RISK();
|
||
if (update.EVALUATE_RISK_ID != null)
|
||
{
|
||
risk.ID = (Guid)update.EVALUATE_RISK_ID;
|
||
}
|
||
else
|
||
{
|
||
risk.ID = Guid.NewGuid();
|
||
update.EVALUATE_RISK_ID = risk.ID;
|
||
updateRiskResult.Add(update);
|
||
}
|
||
risk.NAME = update.NAME;
|
||
risk.AREA_ID = update.AREA_ID;
|
||
risk.OPERATION_STEP_ID = update.OPERATION_STEP_ID;
|
||
risk.IDENTIFYING_ID = update.IDENTIFYING_ID;
|
||
risk.TYPE_ID = update.TYPE_ID;
|
||
risk.RISK_PLACE = update.RISK_PLACE;
|
||
risk.LEVEL = entity.LEVEL;
|
||
risk.ORG_ID = orgId;
|
||
risk.EVALUATE_L = update.EVALUATE_L;
|
||
risk.EVALUATE_E = update.EVALUATE_E;
|
||
risk.EVALUATE_C = update.EVALUATE_C;
|
||
risk.EVALUATE_SCORE = update.EVALUATE_SCORE;
|
||
risk.EVALUATE_LEVEL = update.EVALUATE_LEVEL;
|
||
risk.POST_LIABLE_ID = update.POST_LIABLE_ID;
|
||
risk.DEPARTMENT_LIABLE_ID = update.DEPARTMENT_LIABLE_ID;
|
||
risk.MODIFY_TYPE = HMModifyEnum.新增;
|
||
var minetype = int.Parse(APT.Infrastructure.Api.AppContext.CurrentSession.MineType.Split(',')[0]);
|
||
if (minetype != 0)
|
||
{
|
||
risk.MineType = minetype;
|
||
}
|
||
foreach (var item in update.Nav_EvaluateRiskWorkduty)
|
||
{
|
||
T_HM_EVALUATE_RISK_WORKDUTY addWorkduty = new T_HM_EVALUATE_RISK_WORKDUTY();
|
||
addWorkduty.EVALUATION_RISK_ID = risk.ID;
|
||
addWorkduty.POST_ID = item.WORKDUTY_ID;
|
||
addWorkduty.ORG_ID = orgId;
|
||
addWorkdutys.Add(addWorkduty);
|
||
}
|
||
foreach (var item in update.Nav_EvaluateRiskEquipment)
|
||
{
|
||
T_HM_EVALUATE_RISK_EQUIPMENT addEquipment = new T_HM_EVALUATE_RISK_EQUIPMENT();
|
||
addEquipment.EVALUATION_RISK_ID = risk.ID;
|
||
addEquipment.EQUIPMENT_ID = item.EQUIPMENT_ID;
|
||
addEquipment.ORG_ID = orgId;
|
||
addEquipments.Add(addEquipment);
|
||
}
|
||
//foreach (var item in update.Nav_EvaluateRiskFacilities)
|
||
//{
|
||
// T_HM_EVALUATE_RISK_FACILITIES addFacility = new T_HM_EVALUATE_RISK_FACILITIES();
|
||
// addFacility.EVALUATION_RISK_ID = risk.ID;
|
||
// addFacility.FACILITIES_ID = item.FACILITIES_ID;
|
||
// addFacility.ORG_ID = orgId;
|
||
// addFacilities.Add(addFacility);
|
||
//}
|
||
foreach (var item in update.Nav_EvaluateRiskIndividualMeasures)
|
||
{
|
||
T_HM_EVALUATE_RISK_INDIVIDUAL_MEASURES addItem = new T_HM_EVALUATE_RISK_INDIVIDUAL_MEASURES();
|
||
addItem.EVALUATION_RISK_ID = risk.ID;
|
||
addItem.INDIVIDUAL_MEASURES_ID = item.INDIVIDUAL_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addIndividuals.Add(addItem);
|
||
}
|
||
foreach (var item in update.Nav_EvaluateRiskEngineeringMeasures)
|
||
{
|
||
T_HM_EVALUATE_RISK_ENGINEERING_MEASURES addItem = new T_HM_EVALUATE_RISK_ENGINEERING_MEASURES();
|
||
addItem.EVALUATION_RISK_ID = risk.ID;
|
||
addItem.ENGINEERING_MEASURES_ID = item.ENGINEERING_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addEngineerings.Add(addItem);
|
||
}
|
||
foreach (var item in update.Nav_EvaluateRiskManagementMeasures)
|
||
{
|
||
T_HM_EVALUATE_RISK_MANAGEMENT_MEASURES addItem = new T_HM_EVALUATE_RISK_MANAGEMENT_MEASURES();
|
||
addItem.EVALUATION_RISK_ID = risk.ID;
|
||
addItem.MANAGEMENT_MEASURES_ID = item.MANAGEMENT_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addManagements.Add(addItem);
|
||
}
|
||
foreach (var item in update.Nav_EvaluateRiskEducationMeasures)
|
||
{
|
||
T_HM_EVALUATE_RISK_EDUCATION_MEASURES addItem = new T_HM_EVALUATE_RISK_EDUCATION_MEASURES();
|
||
addItem.EVALUATION_RISK_ID = risk.ID;
|
||
addItem.EDUCATION_MEASURES_ID = item.EDUCATION_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addEducations.Add(addItem);
|
||
}
|
||
foreach (var item in update.Nav_EvaluateRiskEmergencyMeasures)
|
||
{
|
||
T_HM_EVALUATE_RISK_EMERGENCY_MEASURES addItem = new T_HM_EVALUATE_RISK_EMERGENCY_MEASURES();
|
||
addItem.EVALUATION_RISK_ID = risk.ID;
|
||
addItem.EMERGENCY_MEASURES_ID = item.EMERGENCY_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addEmergencys.Add(addItem);
|
||
}
|
||
addEvaluateRisks.Add(risk);
|
||
}
|
||
var addDetails = entity.Nav_Risks.Where(t => t.MODIFY_TYPE == HMModifyEnum.新增);
|
||
var noticeTitles1 = new List<string>();
|
||
var noticeUserIds1 = new List<Guid>();
|
||
var noticeUserNames1 = new List<string>();
|
||
var noticeDataIds1 = new List<Guid>();
|
||
|
||
var noticeTitles2 = new List<string>();
|
||
var noticeUserIds2 = new List<Guid>();
|
||
var noticeUserNames2 = new List<string>();
|
||
var noticeDataIds2 = new List<Guid>();
|
||
if (addDetails != null && addDetails.Any())
|
||
{
|
||
jobtaskDetailList = new List<T_HM_JOBTASK_IDENTIFY_DETAIL>();
|
||
jobtaskDetailPostList = new List<T_HM_JOBTASK_IDENTIFY_DETAIL_POST>();
|
||
jobtaskDetailRiskList = new List<T_HM_JOBTASK_IDENTIFY_DETAIL_RISK>();
|
||
|
||
modelCheck = new List<T_BS_SAFE_CHECK>();
|
||
listProject = new List<T_BS_CHECK_PROJECT>();
|
||
listDetail = new List<T_BS_SAFE_CHECK_DETAIL>();
|
||
|
||
var allIdentifyID = GetEntities<T_HM_IDENTIFYING>(t => true);
|
||
var identifyID = allIdentifyID.FirstOrDefault(t => t.NAME == "作业过程" || t.NAME == "作业活动").ID;
|
||
|
||
var jobadds = addDetails.Where(t => t.IDENTIFYING_ID == identifyID && t.OPERATION_STEP_ID != null);
|
||
var allUsers = GetEntities<T_FM_USER>(t => t.APPROVE_ROLE_ID != null && t.ENABLE_STATUS == 0, new BaseFilter(orgId));
|
||
if (jobadds.Count() > 0)
|
||
{
|
||
jobTask = new T_HM_JOBTASK_IDENTIFY();
|
||
jobTask.ORG_ID = orgId;
|
||
jobTask.ID = Guid.NewGuid();
|
||
jobTask.CREATER_ID = userId;
|
||
var jobaddsDistinct = jobadds.GroupBy(t => new { t.AREA_ID, t.OPERATION_STEP_ID }).Select(g => g.First()).ToList();
|
||
foreach (var itemDistinct in jobaddsDistinct)
|
||
{
|
||
var addItem = jobadds.Where(t => t.AREA_ID == itemDistinct.AREA_ID && t.OPERATION_STEP_ID == itemDistinct.OPERATION_STEP_ID);
|
||
foreach (var item in addItem)
|
||
{
|
||
T_HM_JOBTASK_IDENTIFY_DETAIL jobtaskDetail = new T_HM_JOBTASK_IDENTIFY_DETAIL();
|
||
jobtaskDetail.ID = Guid.NewGuid();
|
||
jobtaskDetail.JOBTASK_IDENTIFY_ID = jobTask.ID;
|
||
jobtaskDetail.AREA_ID = item.AREA_ID;
|
||
jobtaskDetail.OPERATION_STEP_ID = item.OPERATION_STEP_ID;
|
||
jobtaskDetail.ORG_ID = orgId;
|
||
foreach (var post in item.Nav_EvaluateRiskWorkduty)
|
||
{
|
||
T_HM_JOBTASK_IDENTIFY_DETAIL_POST jobTaskPost = new T_HM_JOBTASK_IDENTIFY_DETAIL_POST();
|
||
jobTaskPost.JOBTASK_IDENTIFY_DETAIL_ID = jobtaskDetail.ID;
|
||
jobTaskPost.POST_ID = post.WORKDUTY_ID;
|
||
jobTaskPost.ORG_ID = orgId;
|
||
jobtaskDetailPostList.Add(jobTaskPost);
|
||
}
|
||
var newRisks = addEvaluateRisks.Where(t => t.AREA_ID == item.AREA_ID && t.OPERATION_STEP_ID == item.OPERATION_STEP_ID).Select(p => p.ID);
|
||
foreach (var risk in newRisks)
|
||
{
|
||
T_HM_JOBTASK_IDENTIFY_DETAIL_RISK jobTaskRisk = new T_HM_JOBTASK_IDENTIFY_DETAIL_RISK();
|
||
jobTaskRisk.JOBTASK_IDENTIFY_DETAIL_ID = jobtaskDetail.ID;
|
||
jobTaskRisk.EVALUATE_RISK_ID = risk;
|
||
jobTaskRisk.ORG_ID = orgId;
|
||
jobtaskDetailRiskList.Add(jobTaskRisk);
|
||
}
|
||
var jobUser = allUsers.FirstOrDefault(t => t.DEPARTMENT_ID == item.DEPARTMENT_LIABLE_ID && t.APPROVE_ROLE_ID == item.POST_LIABLE_ID);
|
||
if (jobUser != null)
|
||
{
|
||
jobtaskDetailList.Add(jobtaskDetail);
|
||
noticeTitles1.Add("新增作业任务识别");
|
||
noticeDataIds1.Add(jobTask.ID);
|
||
noticeUserIds1.Add(jobUser.ID);
|
||
noticeUserNames1.Add(jobUser.NAME);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
if (addDetails.Count() > 0)
|
||
{
|
||
var safeCheckAddsDistinct = addDetails.GroupBy(t => new { t.AREA_ID }).Select(g => g.First()).ToList();
|
||
foreach (var safeCheckArea in safeCheckAddsDistinct)
|
||
{
|
||
var safeCheck1 = addDetails.Where(t => t.AREA_ID == safeCheckArea.AREA_ID);
|
||
if (safeCheck1 != null)
|
||
{
|
||
|
||
foreach (var item in safeCheck1)
|
||
{
|
||
var DIC = new Dictionary<string, List<string>>();
|
||
var texts = new List<string>();
|
||
if (item.Nav_EvaluateRiskEquipment.Count > 0)
|
||
{
|
||
var equipmentIds = item.Nav_EvaluateRiskEquipment.Select(t => t.ID);
|
||
var equipments = GetEntities<T_HM_EQUIPMENT>(t => equipmentIds.Contains(t.ID));
|
||
var equipmentNames = string.Join(",", equipments.Select(i => i.NAME));
|
||
if (item.Nav_EvaluateRiskIndividualMeasures.Count > 0)
|
||
{
|
||
var IndividualMeasuresIds = item.Nav_EvaluateRiskIndividualMeasures.Select(t => t.INDIVIDUAL_MEASURES_ID);
|
||
var IndividualMeasures = GetEntities<T_HM_INDIVIDUAL_MEASURES>(t => IndividualMeasuresIds.Contains(t.ID));
|
||
var IndividualMeasureNames = string.Join(",", IndividualMeasures.Select(i => i.NAME));
|
||
texts.Add(equipmentNames + "是否" + IndividualMeasureNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskEngineeringMeasures.Count > 0)
|
||
{
|
||
var EngineeringMeasuresIds = item.Nav_EvaluateRiskEngineeringMeasures.Select(t => t.ENGINEERING_MEASURES_ID);
|
||
var EngineeringMeasures = GetEntities<T_HM_ENGINEERING_MEASURES>(t => EngineeringMeasuresIds.Contains(t.ID));
|
||
var EngineeringMeasuresNames = string.Join(",", EngineeringMeasures.Select(i => i.NAME));
|
||
texts.Add(equipmentNames + "是否" + EngineeringMeasuresNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskManagementMeasures.Count > 0)
|
||
{
|
||
var ManagementMeasuresIds = item.Nav_EvaluateRiskManagementMeasures.Select(t => t.MANAGEMENT_MEASURES_ID);
|
||
var ManagementMeasures = GetEntities<T_HM_MANAGEMENT_MEASURES>(t => ManagementMeasuresIds.Contains(t.ID));
|
||
var ManagementMeasureNames = string.Join(",", ManagementMeasures.Select(i => i.NAME));
|
||
texts.Add(equipmentNames + "是否" + ManagementMeasureNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskEducationMeasures.Count > 0)
|
||
{
|
||
var EducationMeasuresIds = item.Nav_EvaluateRiskEducationMeasures.Select(t => t.EDUCATION_MEASURES_ID);
|
||
var EducationMeasures = GetEntities<T_HM_EDUCATION_MEASURES>(t => EducationMeasuresIds.Contains(t.ID));
|
||
var EducationMeasureNames = string.Join(",", EducationMeasures.Select(i => i.NAME));
|
||
texts.Add(equipmentNames + "是否" + EducationMeasureNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskEmergencyMeasures.Count > 0)
|
||
{
|
||
var EmergencyMeasuresIds = item.Nav_EvaluateRiskEmergencyMeasures.Select(t => t.EMERGENCY_MEASURES_ID);
|
||
var EmergencyMeasures = GetEntities<T_HM_EMERGENCY_MEASURES>(t => EmergencyMeasuresIds.Contains(t.ID));
|
||
var EmergencyMeasureNames = string.Join(",", EmergencyMeasures.Select(i => i.NAME));
|
||
texts.Add(equipmentNames + "是否" + EmergencyMeasureNames);
|
||
}
|
||
}
|
||
if (item.Nav_EvaluateRiskFacilities != null && item.Nav_EvaluateRiskFacilities.Count > 0)
|
||
{
|
||
var Ids = item.Nav_EvaluateRiskFacilities.Select(t => t.ID);
|
||
var equipments = GetEntities<T_HM_EQUIPMENT>(t => Ids.Contains(t.ID));
|
||
var Names = string.Join(",", equipments.Select(i => i.NAME));
|
||
if (item.Nav_EvaluateRiskIndividualMeasures.Count > 0)
|
||
{
|
||
var IndividualMeasuresIds = item.Nav_EvaluateRiskIndividualMeasures.Select(t => t.INDIVIDUAL_MEASURES_ID);
|
||
var IndividualMeasures = GetEntities<T_HM_INDIVIDUAL_MEASURES>(t => IndividualMeasuresIds.Contains(t.ID));
|
||
var IndividualMeasureNames = string.Join(",", IndividualMeasures.Select(i => i.NAME));
|
||
texts.Add(Names + "是否" + IndividualMeasureNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskEngineeringMeasures.Count > 0)
|
||
{
|
||
var EngineeringMeasuresIds = item.Nav_EvaluateRiskEngineeringMeasures.Select(t => t.ENGINEERING_MEASURES_ID);
|
||
var EngineeringMeasures = GetEntities<T_HM_ENGINEERING_MEASURES>(t => EngineeringMeasuresIds.Contains(t.ID));
|
||
var EngineeringMeasuresNames = string.Join(",", EngineeringMeasures.Select(i => i.NAME));
|
||
texts.Add(Names + "是否" + EngineeringMeasuresNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskManagementMeasures.Count > 0)
|
||
{
|
||
var ManagementMeasuresIds = item.Nav_EvaluateRiskManagementMeasures.Select(t => t.MANAGEMENT_MEASURES_ID);
|
||
var ManagementMeasures = GetEntities<T_HM_MANAGEMENT_MEASURES>(t => ManagementMeasuresIds.Contains(t.ID));
|
||
var ManagementMeasureNames = string.Join(",", ManagementMeasures.Select(i => i.NAME));
|
||
texts.Add(Names + "是否" + ManagementMeasureNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskEducationMeasures.Count > 0)
|
||
{
|
||
var EducationMeasuresIds = item.Nav_EvaluateRiskEducationMeasures.Select(t => t.EDUCATION_MEASURES_ID);
|
||
var EducationMeasures = GetEntities<T_HM_EDUCATION_MEASURES>(t => EducationMeasuresIds.Contains(t.ID));
|
||
var EducationMeasureNames = string.Join(",", EducationMeasures.Select(i => i.NAME));
|
||
texts.Add(Names + "是否" + EducationMeasureNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskEmergencyMeasures.Count > 0)
|
||
{
|
||
var EmergencyMeasuresIds = item.Nav_EvaluateRiskEmergencyMeasures.Select(t => t.EMERGENCY_MEASURES_ID);
|
||
var EmergencyMeasures = GetEntities<T_HM_EMERGENCY_MEASURES>(t => EmergencyMeasuresIds.Contains(t.ID));
|
||
var EmergencyMeasureNames = string.Join(",", EmergencyMeasures.Select(i => i.NAME));
|
||
texts.Add(Names + "是否" + EmergencyMeasureNames);
|
||
}
|
||
}
|
||
if (item.OPERATION_STEP_ID != null)
|
||
{
|
||
var operationStepName = GetEntity<T_HM_OPERATION_STEP>(t => t.ID == item.OPERATION_STEP_ID).NAME;
|
||
if (item.Nav_EvaluateRiskIndividualMeasures.Count > 0)
|
||
{
|
||
var IndividualMeasuresIds = item.Nav_EvaluateRiskIndividualMeasures.Select(t => t.INDIVIDUAL_MEASURES_ID);
|
||
var IndividualMeasures = GetEntities<T_HM_INDIVIDUAL_MEASURES>(t => IndividualMeasuresIds.Contains(t.ID));
|
||
var IndividualMeasureNames = string.Join(",", IndividualMeasures.Select(i => i.NAME));
|
||
texts.Add(operationStepName + "是否" + IndividualMeasureNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskEngineeringMeasures.Count > 0)
|
||
{
|
||
var EngineeringMeasuresIds = item.Nav_EvaluateRiskEngineeringMeasures.Select(t => t.ENGINEERING_MEASURES_ID);
|
||
var EngineeringMeasures = GetEntities<T_HM_ENGINEERING_MEASURES>(t => EngineeringMeasuresIds.Contains(t.ID));
|
||
var EngineeringMeasuresNames = string.Join(",", EngineeringMeasures.Select(i => i.NAME));
|
||
texts.Add(operationStepName + "是否" + EngineeringMeasuresNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskManagementMeasures.Count > 0)
|
||
{
|
||
var ManagementMeasuresIds = item.Nav_EvaluateRiskManagementMeasures.Select(t => t.MANAGEMENT_MEASURES_ID);
|
||
var ManagementMeasures = GetEntities<T_HM_MANAGEMENT_MEASURES>(t => ManagementMeasuresIds.Contains(t.ID));
|
||
var ManagementMeasureNames = string.Join(",", ManagementMeasures.Select(i => i.NAME));
|
||
texts.Add(operationStepName + "是否" + ManagementMeasureNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskEducationMeasures.Count > 0)
|
||
{
|
||
var EducationMeasuresIds = item.Nav_EvaluateRiskEducationMeasures.Select(t => t.EDUCATION_MEASURES_ID);
|
||
var EducationMeasures = GetEntities<T_HM_EDUCATION_MEASURES>(t => EducationMeasuresIds.Contains(t.ID));
|
||
var EducationMeasureNames = string.Join(",", EducationMeasures.Select(i => i.NAME));
|
||
texts.Add(operationStepName + "是否" + EducationMeasureNames);
|
||
}
|
||
if (item.Nav_EvaluateRiskEmergencyMeasures.Count > 0)
|
||
{
|
||
var EmergencyMeasuresIds = item.Nav_EvaluateRiskEmergencyMeasures.Select(t => t.EMERGENCY_MEASURES_ID);
|
||
var EmergencyMeasures = GetEntities<T_HM_EMERGENCY_MEASURES>(t => EmergencyMeasuresIds.Contains(t.ID));
|
||
var EmergencyMeasureNames = string.Join(",", EmergencyMeasures.Select(i => i.NAME));
|
||
texts.Add(operationStepName + "是否" + EmergencyMeasureNames);
|
||
}
|
||
}
|
||
var identifyName = allIdentifyID.FirstOrDefault(t => t.ID == item.IDENTIFYING_ID).NAME;
|
||
if (texts.Count > 0)
|
||
{
|
||
DIC.Add(identifyName, texts);
|
||
var sendUser = allUsers.FirstOrDefault(t => t.DEPARTMENT_ID == item.DEPARTMENT_LIABLE_ID && t.APPROVE_ROLE_ID == item.POST_LIABLE_ID);
|
||
var dataId = Guid.NewGuid();
|
||
|
||
T_BS_SAFE_CHECK safeCheck = new T_BS_SAFE_CHECK();
|
||
List<T_BS_CHECK_PROJECT> templistProject = new List<T_BS_CHECK_PROJECT>();
|
||
List<T_BS_SAFE_CHECK_DETAIL> templistDetail = new List<T_BS_SAFE_CHECK_DETAIL>();
|
||
|
||
HazardsIni(safeCheckArea.AREA_ID, DIC, sendUser.ID, item.DEPARTMENT_LIABLE_ID, orgId, dataId, ref safeCheck, ref templistProject, ref templistDetail);
|
||
modelCheck.Add(safeCheck);
|
||
listProject.AddRange(templistProject);
|
||
listDetail.AddRange(templistDetail);
|
||
noticeTitles2.Add("新增安全检查任务制定-" + identifyName);
|
||
noticeDataIds2.Add(dataId);
|
||
noticeUserIds2.Add(sendUser.ID);
|
||
noticeUserNames2.Add(sendUser.NAME);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
newjobAdds1 = NotificationTaskService.InsertUserNoticeTaskModels(noticeTitles1, noticeDataIds1, orgId, noticeUserIds1, noticeUserNames1, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(1).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, "HM104");
|
||
newjobAdds2 = NotificationTaskService.InsertUserNoticeTaskModels(noticeTitles2, noticeDataIds2, orgId, noticeUserIds2, noticeUserNames2, DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(1).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.消息, "BS032");
|
||
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
UpdateEntityNoCommit(entity, "STATUS"); //保存主表
|
||
if (updateRiskResult.Any())
|
||
BantchUpdateEntityNoCommit(updateRiskResult, "EVALUATE_RISK_ID"); //保存主表
|
||
if (addEvaluateRisks != null && addEvaluateRisks.Any())
|
||
BantchSaveEntityNoCommit(addEvaluateRisks); //保存子表
|
||
if (addWorkdutys != null && addWorkdutys.Any())
|
||
BantchSaveEntityNoCommit(addWorkdutys); //保存子表
|
||
if (addEquipments != null && addEquipments.Any())
|
||
BantchSaveEntityNoCommit(addEquipments); //保存子表
|
||
//if (addFacilities != null && addFacilities.Any())
|
||
// BantchSaveEntityNoCommit(addFacilities); //保存子表
|
||
if (addIndividuals != null && addIndividuals.Any())
|
||
BantchSaveEntityNoCommit(addIndividuals); //保存子表
|
||
if (addEngineerings != null && addEngineerings.Any())
|
||
BantchSaveEntityNoCommit(addEngineerings); //保存子表
|
||
if (addManagements != null && addManagements.Any())
|
||
BantchSaveEntityNoCommit(addManagements); //保存子表
|
||
if (addEducations != null && addEducations.Any())
|
||
BantchSaveEntityNoCommit(addEducations); //保存子表
|
||
if (addEmergencys != null && addEmergencys.Any())
|
||
BantchSaveEntityNoCommit(addEmergencys); //保存子表
|
||
if (newjobAdds1 != null && newjobAdds1.Any())
|
||
BantchAddEntityNoCommit(newjobAdds1); //新增的消息表
|
||
if (newjobAdds2 != null && newjobAdds2.Any())
|
||
BantchAddEntityNoCommit(newjobAdds2); //新增的消息表
|
||
if (jobTask != null)
|
||
AddEntityNoCommit(jobTask); //新增的作业任务表
|
||
if (jobtaskDetailList != null && jobtaskDetailList.Any())
|
||
BantchAddEntityNoCommit(jobtaskDetailList); //新增的作业任务表
|
||
if (jobtaskDetailPostList != null && jobtaskDetailPostList.Any())
|
||
BantchAddEntityNoCommit(jobtaskDetailPostList); //新增的作业任务表
|
||
if (jobtaskDetailRiskList != null && jobtaskDetailRiskList.Any())
|
||
BantchAddEntityNoCommit(jobtaskDetailRiskList); //新增的作业任务表
|
||
if (modelCheck != null && modelCheck.Any())
|
||
BantchAddEntityNoCommit(modelCheck); //新增的安全检查表
|
||
if (listProject != null && listProject.Any())
|
||
BantchSaveEntityNoCommit(listProject); //新增的安全检查表
|
||
if (listDetail != null && listDetail.Any())
|
||
BantchSaveEntityNoCommit(listDetail); //新增的安全检查表
|
||
});
|
||
return true;
|
||
|
||
}
|
||
private void HazardsIni(Guid? RISK_AREA_ID, Dictionary<string, List<string>> dicProjctContents, Guid UserID, Guid? DEPARTMENTID, Guid? OrgId, Guid DateID, ref T_BS_SAFE_CHECK modelCheck, ref List<T_BS_CHECK_PROJECT> listProject, ref List<T_BS_SAFE_CHECK_DETAIL> listDetail)
|
||
{
|
||
modelCheck = new T_BS_SAFE_CHECK();
|
||
modelCheck.ID = DateID;
|
||
modelCheck.ORG_ID = OrgId;
|
||
DateTime dtNow = DateTime.Now;
|
||
|
||
modelCheck.NAME = "危险源辨识触发安全检查";
|
||
modelCheck.CODE = dtNow.ToString("yyyyMMddHHmmss");
|
||
//变成可空
|
||
//modelCheck.CHECK_TYPE_ID = ;
|
||
//modelCheck.CHECKOBJECT = ;
|
||
//modelCheck.CHECK_TYPE_LEVEL_ID = ;
|
||
|
||
modelCheck.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
modelCheck.CREACTTYPE = CREACTTYPEEnum.HazardsAdd;
|
||
modelCheck.IS_DELETED = false;
|
||
modelCheck.CREATE_TIME = dtNow;
|
||
modelCheck.CREATER_ID = UserID;
|
||
modelCheck.STATUCHECK = 0;// HMAuditStatusEnmu.草稿;
|
||
modelCheck.STATUSPLAN = 0;// HMAuditStatusEnmu.草稿;
|
||
modelCheck.DEPARTMENTID = DEPARTMENTID;
|
||
modelCheck.USERID_DOPLAN = UserID;
|
||
modelCheck.RISKSTATE = 0;
|
||
|
||
//modelCheck.PLAN_SET_ID = ;
|
||
//modelCheck.CHECKTIME = ;
|
||
//modelCheck.ENTITY_ORG_TPYE = ;
|
||
//modelCheck.FORM_ID = ;
|
||
//modelCheck.FLOW_STATUS = ;
|
||
//modelCheck.FLOW_SEND_STATUS = ;
|
||
//modelCheck.FLOW_ID = ;
|
||
//modelCheck.MODIFY_TIME = ;
|
||
//modelCheck.MODIFIER_ID = ;
|
||
//modelCheck.APPROVE_ID = ;
|
||
//modelCheck.APPROVE_CHECKAUDIT_ID = ;
|
||
//modelCheck.APPROVE_TEMP_ID = ;
|
||
//modelCheck.CheckUsers = ;
|
||
|
||
|
||
listDetail = new List<T_BS_SAFE_CHECK_DETAIL>();
|
||
listProject = new List<T_BS_CHECK_PROJECT>();
|
||
int rowNO = 0;
|
||
T_BS_CHECK_PROJECT operateProject = null;
|
||
foreach (var item in dicProjctContents)
|
||
{
|
||
operateProject = GetEntity<T_BS_CHECK_PROJECT>(e => e.NAME == item.Key);
|
||
if (operateProject == null)
|
||
{
|
||
operateProject = new T_BS_CHECK_PROJECT();
|
||
operateProject.NAME = item.Key;
|
||
operateProject.ID = Guid.NewGuid();
|
||
operateProject.CREATER_ID = UserID;
|
||
operateProject.CREATE_TIME = dtNow;
|
||
operateProject.ENABLE_STATUS = 0;
|
||
operateProject.IS_DELETED = false;
|
||
operateProject.ORG_ID = OrgId;
|
||
listProject.Add(operateProject);
|
||
}
|
||
for (int i = 0; i < item.Value.Count; i++)
|
||
{
|
||
rowNO++;
|
||
T_BS_SAFE_CHECK_DETAIL modelDetail = new T_BS_SAFE_CHECK_DETAIL();
|
||
modelDetail.ID = Guid.NewGuid();
|
||
modelDetail.SAFE_CHECK_ID = DateID;
|
||
modelDetail.CHECKTYPE = 0;
|
||
modelDetail.IS_DELETED = false;
|
||
modelDetail.ORG_ID = OrgId;
|
||
modelDetail.CREATE_TIME = dtNow;
|
||
modelDetail.CREATER_ID = UserID;
|
||
modelDetail.ROW_NO = rowNO;
|
||
modelDetail.CHECKCONTENT = item.Value[i];
|
||
modelDetail.CHECK_PROJECT_ID = operateProject.ID;
|
||
modelDetail.RISK_AREA_ID = RISK_AREA_ID;
|
||
|
||
//modelDetail.CHECK_MAIN_ID = ;
|
||
//modelDetail.REMARK_RESULT = ;
|
||
//modelDetail.QUESTION_LEVEL = ;
|
||
//modelDetail.ENTITY_ORG_TPYE = ;
|
||
//modelDetail.FORM_ID = ;
|
||
//modelDetail.FLOW_STATUS = ;
|
||
//modelDetail.FLOW_SEND_STATUS = ;
|
||
//modelDetail.FLOW_ID = ;
|
||
//modelDetail.MODIFY_TIME = ;
|
||
//modelDetail.MODIFIER_ID = ;
|
||
//modelDetail.CHECKRESULT = ;
|
||
//modelDetail.CHECKPROOF = ;
|
||
//modelDetail.CHECK_PROJECT_PROJECT_CATEGORY_ID = ;
|
||
//modelDetail.CHECK_QUESTION_ID = ;
|
||
//modelDetail.SERIOUS_RISK = ;
|
||
|
||
listDetail.Add(modelDetail);
|
||
}
|
||
}
|
||
|
||
//UnifiedCommit(() =>
|
||
//{
|
||
// if (modelCheck != null)//添加安全检查
|
||
// AddEntity(modelCheck);
|
||
// if (listProject.Any())//添加检查项目
|
||
// BantchSaveEntityNoCommit(listProject);
|
||
// if (listDetail.Any())//添加审批详情
|
||
// BantchSaveEntityNoCommit(listDetail);
|
||
//});
|
||
}
|
||
/// <summary>
|
||
/// 职业危害审批流回调
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool PersonalApprove2(string id)
|
||
{
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
Guid HazardId = Guid.Parse(id);
|
||
BaseFilter filter = new BaseFilter(orgId);
|
||
filter.Include = new string[] {
|
||
"Nav_Hazards.Nav_EvaluateHazardIndividualMeasures",
|
||
"Nav_Hazards.Nav_EvaluateHazardEngineeringMeasures",
|
||
"Nav_Hazards.Nav_EvaluateHazardManagementMeasures",
|
||
"Nav_Hazards.Nav_EvaluateHazardEducationMeasures",
|
||
"Nav_Hazards.Nav_EvaluateHazardEmergencyMeasures"
|
||
};
|
||
var entity = GetEntity<T_HM_EVALUATE_RESULT>(t => t.ID == HazardId, filter);
|
||
List<T_HM_EVALUATE_HAZARD> addEvaluateHazards = new List<T_HM_EVALUATE_HAZARD>();
|
||
List<T_HM_EVALUATE_HAZARD_INDIVIDUAL_MEASURES> addIndividuals = new List<T_HM_EVALUATE_HAZARD_INDIVIDUAL_MEASURES>();
|
||
List<T_HM_EVALUATE_HAZARD_ENGINEERING_MEASURES> addEngineerings = new List<T_HM_EVALUATE_HAZARD_ENGINEERING_MEASURES>();
|
||
List<T_HM_EVALUATE_HAZARD_MANAGEMENT_MEASURES> addManagements = new List<T_HM_EVALUATE_HAZARD_MANAGEMENT_MEASURES>();
|
||
List<T_HM_EVALUATE_HAZARD_EDUCATION_MEASURES> addEducations = new List<T_HM_EVALUATE_HAZARD_EDUCATION_MEASURES>();
|
||
List<T_HM_EVALUATE_HAZARD_EMERGENCY_MEASURES> addEmergencys = new List<T_HM_EVALUATE_HAZARD_EMERGENCY_MEASURES>();
|
||
List<T_HM_EVALUATE_RESULT_HAZARD> updateHazardResult = new List<T_HM_EVALUATE_RESULT_HAZARD>();
|
||
List<T_HM_EVALUATE_HAZARD> disableEvaluateHazards = null;
|
||
|
||
if (entity.Nav_Hazards != null && entity.Nav_Hazards.Any())
|
||
{
|
||
entity.STATUS = FOPreMeetingStatusEnum.归档;
|
||
var updateRecord = entity.Nav_Hazards.Where(t => t.MODIFY_TYPE != 0);
|
||
var isDisable = updateRecord.Where(t => t.MODIFY_TYPE == HMModifyEnum.修改).Select(t => (Guid)t.EVALUATE_HAZARD_ID);
|
||
if (isDisable.Any())
|
||
{
|
||
BaseFilter recordFilter = new BaseFilter(orgId);
|
||
recordFilter.SelectField = new string[] { "STATUS" };
|
||
disableEvaluateHazards = GetEntities<T_HM_EVALUATE_HAZARD>(t => isDisable.Contains(t.ID), recordFilter).ToList();
|
||
foreach (var disable in disableEvaluateHazards)
|
||
{
|
||
disable.STATUS = (int)HMOperationStepEnum.作废;
|
||
}
|
||
}
|
||
foreach (var update in updateRecord)
|
||
{
|
||
T_HM_EVALUATE_HAZARD hazard = new T_HM_EVALUATE_HAZARD();
|
||
hazard.ID = Guid.NewGuid();
|
||
update.EVALUATE_HAZARD_ID = hazard.ID;
|
||
updateHazardResult.Add(update);
|
||
hazard.AREA_ID = update.AREA_ID;
|
||
hazard.HAZARD_POSITION = update.HAZARD_POSITION;
|
||
hazard.EXPOSURE_TIME = update.EXPOSURE_TIME;
|
||
hazard.EXPOSURE_LIMIT_VALUE = update.EXPOSURE_LIMIT_VALUE;
|
||
hazard.EXPOSURE_NUMBER = update.EXPOSURE_NUMBER;
|
||
hazard.OCCUPATIONALRISK_ID = update.OCCUPATIONALRISK_ID;
|
||
hazard.HAZARD_LEVEL = update.HAZARD_LEVEL;
|
||
hazard.LEVEL = entity.LEVEL;
|
||
hazard.ORG_ID = orgId;
|
||
hazard.POST_LIABLE_ID = update.POST_LIABLE_ID;
|
||
hazard.DEPARTMENT_LIABLE_ID = update.DEPARTMENT_LIABLE_ID;
|
||
hazard.IDENTIFYING_ID = update.IDENTIFYING_ID;
|
||
if (update.MONITOR_MEASURES_ID != null)
|
||
{
|
||
hazard.MONITOR_MEASURES_ID = (Guid)update.MONITOR_MEASURES_ID;
|
||
}
|
||
hazard.MODIFY_TYPE = HMModifyEnum.新增;
|
||
foreach (var item in update.Nav_EvaluateHazardIndividualMeasures)
|
||
{
|
||
T_HM_EVALUATE_HAZARD_INDIVIDUAL_MEASURES addItem = new T_HM_EVALUATE_HAZARD_INDIVIDUAL_MEASURES();
|
||
addItem.EVALUATE_HAZARD_ID = hazard.ID;
|
||
addItem.INDIVIDUAL_MEASURES_ID = item.INDIVIDUAL_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addIndividuals.Add(addItem);
|
||
}
|
||
foreach (var item in update.Nav_EvaluateHazardEngineeringMeasures)
|
||
{
|
||
T_HM_EVALUATE_HAZARD_ENGINEERING_MEASURES addItem = new T_HM_EVALUATE_HAZARD_ENGINEERING_MEASURES();
|
||
addItem.EVALUATE_HAZARD_ID = hazard.ID;
|
||
addItem.ENGINEERING_MEASURES_ID = item.ENGINEERING_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addEngineerings.Add(addItem);
|
||
}
|
||
foreach (var item in update.Nav_EvaluateHazardManagementMeasures)
|
||
{
|
||
T_HM_EVALUATE_HAZARD_MANAGEMENT_MEASURES addItem = new T_HM_EVALUATE_HAZARD_MANAGEMENT_MEASURES();
|
||
addItem.EVALUATE_HAZARD_ID = hazard.ID;
|
||
addItem.MANAGEMENT_MEASURES_ID = item.MANAGEMENT_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addManagements.Add(addItem);
|
||
}
|
||
foreach (var item in update.Nav_EvaluateHazardEducationMeasures)
|
||
{
|
||
T_HM_EVALUATE_HAZARD_EDUCATION_MEASURES addItem = new T_HM_EVALUATE_HAZARD_EDUCATION_MEASURES();
|
||
addItem.EVALUATE_HAZARD_ID = hazard.ID;
|
||
addItem.EDUCATION_MEASURES_ID = item.EDUCATION_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addEducations.Add(addItem);
|
||
}
|
||
foreach (var item in update.Nav_EvaluateHazardEmergencyMeasures)
|
||
{
|
||
T_HM_EVALUATE_HAZARD_EMERGENCY_MEASURES addItem = new T_HM_EVALUATE_HAZARD_EMERGENCY_MEASURES();
|
||
addItem.EVALUATE_HAZARD_ID = hazard.ID;
|
||
addItem.EMERGENCY_MEASURES_ID = item.EMERGENCY_MEASURES_ID;
|
||
addItem.ORG_ID = orgId;
|
||
addEmergencys.Add(addItem);
|
||
}
|
||
addEvaluateHazards.Add(hazard);
|
||
}
|
||
}
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (entity != null)
|
||
UpdateEntityNoCommit(entity, "STATUS"); //保存主表
|
||
if (disableEvaluateHazards != null && disableEvaluateHazards.Any())
|
||
BantchUpdateEntityNoCommit(disableEvaluateHazards, "STATUS");
|
||
if (updateHazardResult.Any())
|
||
BantchUpdateEntityNoCommit(updateHazardResult, "EVALUATE_HAZARD_ID"); //保存主表
|
||
if (addEvaluateHazards != null && addEvaluateHazards.Any())
|
||
BantchSaveEntityNoCommit(addEvaluateHazards); //保存子表
|
||
if (addIndividuals != null && addIndividuals.Any())
|
||
BantchSaveEntityNoCommit(addIndividuals); //保存子表
|
||
if (addEngineerings != null && addEngineerings.Any())
|
||
BantchSaveEntityNoCommit(addEngineerings); //保存子表
|
||
if (addManagements != null && addManagements.Any())
|
||
BantchSaveEntityNoCommit(addManagements); //保存子表
|
||
if (addEducations != null && addEducations.Any())
|
||
BantchSaveEntityNoCommit(addEducations); //保存子表
|
||
if (addEmergencys != null && addEmergencys.Any())
|
||
BantchSaveEntityNoCommit(addEmergencys); //保存子表
|
||
});
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 审批流回调
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool PersonalApprove(string id)
|
||
{
|
||
var entity = GetEntity<T_HM_EVALUATION_PLAN>(id);
|
||
entity.STATUS = FOPreMeetingStatusEnum.归档;
|
||
T_HM_NOTICE_RELEASE model = new T_HM_NOTICE_RELEASE();
|
||
List<T_HM_NOTICE_RELEASE_FILE> noticefiles = new List<T_HM_NOTICE_RELEASE_FILE>();
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
var userId = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.风险评价计划发布文件编号;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = orgId;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var codeList = codes.Split(new char[] { ',' });
|
||
model.ID = Guid.NewGuid();
|
||
model.PLAN_ID = Guid.Parse(id);
|
||
model.DOCUMENT_CODE = codeList[0];
|
||
model.DOCUMENT_NAME = entity.DOCUMENT_NAME;
|
||
model.DOCUMENT_VERSION = "1";
|
||
model.DOCUMENT_LEVEL = HMFileLevelEnmu.普通;
|
||
model.RELEASE_STATUS = (int)FOPreMeetingStatusEnum.草稿;
|
||
model.NOTICE_RELEASE_TYPE = (int)HMNoticeReleaseTypeEnmu.风险评价计划发布;
|
||
model.ORG_ID = orgId;
|
||
|
||
var files = GetEntities<T_HM_EVALUATION_FILE>(t => t.EVALUATION_PLAN_ID == Guid.Parse(id), new BaseFilter(orgId));
|
||
foreach (var file in files)
|
||
{
|
||
T_HM_NOTICE_RELEASE_FILE noticeFile = new T_HM_NOTICE_RELEASE_FILE();
|
||
noticeFile.ID = Guid.NewGuid();
|
||
noticeFile.NOTICE_RELEASE_ID = model.ID;
|
||
noticeFile.IMG_FILE_ID = (Guid)file.IMG_FILE_ID;
|
||
noticeFile.ORG_ID = orgId;
|
||
noticefiles.Add(noticeFile);
|
||
}
|
||
Guid sendUser = (Guid)userId;
|
||
string sendUserName = "";
|
||
List<Guid?> fileIds = new List<Guid?>();
|
||
foreach (var file in files)
|
||
{
|
||
fileIds.Add(file.IMG_FILE_ID);
|
||
}
|
||
DepartmentService.AddDocument("风险管理", "年度风险评价计划审核表", "年度风险评价计划", "附件", "计划文件", DateTime.Now.AddYears(1), entity.ID, fileIds, entity.RELEASE_USER_ID);
|
||
var teamLeaders = GetEntities<T_PF_APPROVE_TEMP_DETAIL>(t => t.NAME == "风险管理小组组长" || t.NAME == "风险管理小组副组长", new BaseFilter(orgId));
|
||
if (teamLeaders != null && teamLeaders.Any())
|
||
{
|
||
var leader = teamLeaders.Where(t => t.NAME == "风险管理小组组长");
|
||
foreach (var leaderuser in leader)
|
||
{
|
||
leaderuser.DEFAULT_APPROVE_USER_ID = entity.GROUP_LEADER_ID;
|
||
}
|
||
var deputyLeader = teamLeaders.Where(t => t.NAME == "风险管理小组副组长");
|
||
foreach (var leaderuser in deputyLeader)
|
||
{
|
||
leaderuser.DEFAULT_APPROVE_USER_ID = entity.DEPUTY_GROUP_LEADER_ID;
|
||
}
|
||
}
|
||
if (orgId == Guid.Parse("b043b28b-bbc3-c452-6052-4fba1457abfa"))//行洛坑
|
||
{
|
||
sendUser = (Guid)GetEntity<T_FM_DEPARTMENT>(t => t.NAME == "办公室").USER_ID;
|
||
sendUserName = GetEntity<T_FM_USER>(sendUser.ToString()).NAME;
|
||
}
|
||
else if (orgId == Guid.Parse("d9871ba8-0eec-9e4a-bb87-7d5a540d8913"))//洛阳豫鹭
|
||
{
|
||
sendUser = (Guid)GetEntity<T_FM_DEPARTMENT>(t => t.NAME == "企业管理部").USER_ID;
|
||
sendUserName = GetEntity<T_FM_USER>(sendUser.ToString()).NAME;
|
||
}
|
||
else if (orgId == Guid.Parse("8b3c41aa-51b1-7ce9-1879-248a038c1b5c"))//都昌都昌
|
||
{
|
||
sendUser = (Guid)GetEntity<T_FM_DEPARTMENT>(t => t.NAME == "综合管理部").USER_ID;
|
||
sendUserName = GetEntity<T_FM_USER>(sendUser.ToString()).NAME;
|
||
}
|
||
else if (orgId == Guid.Parse("8f1cf418-8bf3-ea3f-7a6d-fc5d61247008") || orgId == Guid.Parse("3efd5276-632b-e379-9ff3-7a7546591fca"))//龙岩综合部
|
||
{
|
||
sendUser = (Guid)GetEntity<T_FM_DEPARTMENT>(t => t.NAME == "综合部").USER_ID;
|
||
sendUserName = GetEntity<T_FM_USER>(sendUser.ToString()).NAME;
|
||
}
|
||
model.RELEASE_USER_ID = sendUser;
|
||
NotificationTaskService.SendNotificationTask("风险评价计划发布", model.ID, orgId, sendUser, sendUserName,
|
||
DateTime.Now, DateTime.Parse(DateTime.Now.AddDays(5).ToShortDateString() + " 23:59:59"), (int)FMNoticeTypeEnum.审批, "HM002", () =>
|
||
{
|
||
UpdateEntityNoCommit(entity, "STATUS");
|
||
UpdateEntityNoCommit(model);
|
||
BantchAddEntityNoCommit(noticefiles);
|
||
BantchUpdateEntityNoCommit(teamLeaders);
|
||
});
|
||
return true;
|
||
|
||
}
|
||
#endregion
|
||
|
||
#endregion
|
||
|
||
#region 审批回调
|
||
|
||
|
||
/// <summary>
|
||
/// 添加审批流
|
||
/// </summary>
|
||
/// <param name="CALLBACK_INTERFACE"></param>
|
||
/// <param name="entityInt">审批入参</param>
|
||
/// <returns></returns>
|
||
/// <exception cref="Exception"></exception>
|
||
public bool CallBackNew(string CALLBACK_INTERFACE, T_PF_APPROVE entityInt, bool isApprovel = true)
|
||
{
|
||
bool result = false;
|
||
if (!string.IsNullOrEmpty(CALLBACK_INTERFACE))
|
||
{
|
||
#region 审批公用
|
||
|
||
T_PF_APPROVE modelApp = null;
|
||
List<T_PF_APPROVE_DETAIL> listAppDetail = null;
|
||
T_FM_NOTIFICATION_TASK taskFinish = null;
|
||
List<T_FM_NOTIFICATION_TASK> listTaskNext = null;
|
||
string taskCodeCheck = String.Empty;
|
||
bool isLast = false;//非审批最后一步
|
||
bool resultGetApp = true;
|
||
if (isApprovel)
|
||
{
|
||
resultGetApp = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
}
|
||
if (!resultGetApp)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
IEnumerable<T_BS_OPERATE_LOG> listLog = null;
|
||
|
||
switch (CALLBACK_INTERFACE)
|
||
{
|
||
case "BS/BSRiskSubmitDelayApply/DealEndNew":
|
||
var listApplyDetail = GetEntities<T_BS_RISK_SUBMIT_DELAY_APPLY_DETAIL>(e => e.RISK_SUBMIT_DELAY_APPLY_ID == modelApp.DATA_ID);
|
||
if (listApplyDetail != null && listApplyDetail.Any())
|
||
{
|
||
var listContentID = listApplyDetail.Select(e => e.RISK_SUBMIT_CONTENT_ID).ToList();
|
||
listLog = GetUpdateDeal(OPERATEPOINT_Enums.RiskDelayApplyAudit, Guid.Empty, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, listContentID, taskFinish.TASK_ENDDT);
|
||
}
|
||
break;
|
||
case "BS/BSRiskSubmit/NoticeNew":
|
||
var listContents = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_NOTICE_ID == modelApp.DATA_ID);
|
||
if (listContents != null && listContents.Any())
|
||
{
|
||
var listContentID = listContents.Select(e => e.ID);
|
||
var RISK_SUBMIT_ID = listContents.ToList()[0].RISK_SUBMIT_ID;
|
||
listLog = GetUpdateDeal(OPERATEPOINT_Enums.RiskSendAudit, RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, listContentID, taskFinish.TASK_ENDDT);
|
||
}
|
||
break;
|
||
case "BS/BSRiskSubmit/DealEndNew"://整改记录
|
||
|
||
var contentDeal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(modelApp.DATA_ID);
|
||
if (contentDeal != null)
|
||
{
|
||
var modelLog = GetUpdateDeal(OPERATEPOINT_Enums.RiskDealAudit, contentDeal.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, contentDeal.RISK_SUBMIT_CONTENT_ID, taskFinish.TASK_ENDDT);
|
||
if (modelLog != null)
|
||
listLog = new List<T_BS_OPERATE_LOG>() { modelLog };
|
||
}
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
|
||
//如果感觉taskID会乱 taskFinish 做case 判断
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下一个节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (listLog != null && listLog.Any())//本节点操作记录
|
||
BantchSaveEntityNoCommit(listLog);
|
||
});
|
||
//待办同步
|
||
NotificationTaskService.TaskToHead(listAppDetail, null, listTaskNext, taskFinish);
|
||
}
|
||
else
|
||
{
|
||
switch (CALLBACK_INTERFACE)
|
||
{
|
||
case "BS/BSSafeCheck/CheckPlanAuditEndNew":
|
||
result = CheckPlanAuditEndNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "BS/BSSafeCheck/CheckAuditEndNew":
|
||
result = CheckAuditEndNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "BS/BSRiskSubmit/NoticeNew":
|
||
result = NoticeNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "BS/BSRiskSubmit/DealEndNew":
|
||
result = DealEndNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "BS/BSRiskSubmitDelayApply/DealEndNew":
|
||
result = DealEnd_BS_DelayApplyNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "FO/FOCrucialLicenseJob/BackUpdateNew":
|
||
result = BackUpdateNew_FOCrucialLicenseJob(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "FO/FOJobEventRecord/BackUpdateNew":
|
||
result = BackUpdateNew_FOJobEventRecord(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "FO/FOCrucialLicenseJobOutsource/BackUpdateNew":
|
||
result = BackUpdateNew_FOCrucialLicenseJobOutsource(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "TL/TLBack/BackUpdateNew":
|
||
result = BackUpdate_TLBack(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "TL/TLBackRecord/BackUpdateNew":
|
||
result = BackUpdate_TLRecordBack(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "TL/TLWatchDayly/BackUpdateNew":
|
||
result = BackUpdate_TLWatchDayly(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "DM/DMDeviceBasePurchase/BackUpdateNew":
|
||
result = BackUpdate_DMDeviceBasePurchase(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "DM/DMDeviceMaintenancePlan/BackUpdateNew":
|
||
result = BackUpdate_DMDeviceMaintenancePlan(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "DM/DMDevicePurchase/BackUpdateNew":
|
||
result = BackUpdate_DMDevicePurchase(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast);
|
||
break;
|
||
case "SK/SKHiddenDangerReport/BackUpdateNew":
|
||
result = BackUpdate_SKHiddenDangerReport(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKSecurityInspectionNotice/BackUpdateNew":
|
||
result = BackUpdate_SKSecurityInspectionNotice(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKHiddenDangerConfirm/BackUpdateNew":
|
||
result = BackUpdate_SKHiddenDangerConfirm(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKHiddenDangerRectifyRecord/BackUpdateNew":
|
||
result = BackUpdate_SKHiddenDangerRectifyRecord(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKHiddenDangerRectifyDelayApply/BackUpdateNew":
|
||
result = BackUpdate_SKHiddenDangerRectifyDelayApply(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKDoublePreventMechanism/BackUpdateNew":
|
||
result = BackUpdate_SKDoublePreventMechanism(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKIdentifyEvaluationPlan/BackUpdateNew":
|
||
result = BackUpdate_SKIdentifyEvaluationPlan(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKRiskIdentify/BackUpdateNew":
|
||
result = BackUpdate_SKRiskIdentify(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKRiskIdentifyResult/BackUpdateNew":
|
||
result = BackUpdate_SKRiskIdentifyResult(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/RiskIdentifyResultSummary/BackUpdateNew":
|
||
result = BackUpdate_RiskIdentifyResultSummary(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKRiskEvaluation/BackUpdateNew":
|
||
result = BackUpdate_SKRiskEvaluation(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SK/SKRiskEvaluationSummary/BackUpdateNew":
|
||
result = BackUpdate_SKRiskEvaluationSummary(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "WB/WBDangerousJob/UserAgreeNew":
|
||
result = UserAgreeNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "WB/WBSafeCheckRecord/UserAgreeNew":
|
||
result = UserRecordAgreeNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "WB/WBHiddenDangerNotify/UserAgreeNew":
|
||
result = UserNoticeAgreeNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "WB/WBHiddenDangerRecord/UserAgreeNew":
|
||
result = HiddenDangerAgreeNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "WB/WBRegister/UserAgreeNew":
|
||
result = RegisterAgreeNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
case "SE/SETrainPlan/PlanAuditNew":
|
||
result = SE071PlanAuditNew(entityInt, modelApp, listAppDetail, taskFinish, listTaskNext, isLast, isApprovel);
|
||
break;
|
||
default:
|
||
//SysLogService.AddLog(APT.Infrastructure.Api.AppContext.CurrentSession.OrgId.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, PFSysLogTypeEnum.CommonApproveCallBack, "PF119", "审批流回调方法未完善", "PFApproveCallBackService=>CallBack: " + CALLBACK_INTERFACE, DATA_ID);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
return result;
|
||
}
|
||
|
||
|
||
#endregion
|
||
|
||
#region 审批流 获取信息
|
||
|
||
/// <summary>
|
||
/// 获取信息到审批流(拒绝)
|
||
/// </summary>
|
||
/// <param name="entity"></param>
|
||
/// <param name="modelApp"></param>
|
||
/// <param name="listAppDetail"></param>
|
||
/// <param name="taskFinish"></param>
|
||
/// <param name="taskCodeCheck"></param>
|
||
public bool GetApproject(T_PF_APPROVE entity, ref T_PF_APPROVE modelApp, ref List<T_PF_APPROVE_DETAIL> listAppDetail, ref T_FM_NOTIFICATION_TASK taskFinish, ref string taskCodeCheck)
|
||
{
|
||
if (entity.DATA_ID == Guid.Empty || entity.ID == Guid.Empty)
|
||
{
|
||
throw new Exception("驳回传参信息有误!");
|
||
}
|
||
|
||
modelApp = this.GetEntity<T_PF_APPROVE>(entity.ID.ToString(), "Nav_ApproveDetails");
|
||
if (modelApp == null)
|
||
{
|
||
this.ThrowError("020027");
|
||
return false;
|
||
}
|
||
|
||
if (modelApp.APPROVE_STATUS != (int)ApproveStatus.Doing)
|
||
{
|
||
this.ThrowError("020028");
|
||
return false;
|
||
}
|
||
var node = modelApp.Nav_ApproveDetails.FirstOrDefault(i => i.ID == entity.CurrentNode.ID);
|
||
if (!node.IS_CURRENT)
|
||
{
|
||
this.ThrowError("020030");
|
||
return false;
|
||
}
|
||
|
||
|
||
|
||
if (entity.TaskID != Guid.Empty)
|
||
taskFinish = GetEntity<T_FM_NOTIFICATION_TASK>(entity.TaskID);
|
||
|
||
if (taskFinish == null || !string.IsNullOrEmpty(taskCodeCheck))
|
||
{
|
||
//查询消息表 最好写日志
|
||
if (!string.IsNullOrEmpty(taskCodeCheck) && taskFinish.SOURCE_FORMCODE != taskCodeCheck)
|
||
{
|
||
taskFinish = this.GetEntity<T_FM_NOTIFICATION_TASK>(i => i.SOURCE_DATA_ID == entity.ID && i.USER_ID == node.APPROVE_USER_ID
|
||
&& i.NOTICE_STATUS == (int)FMNoticeStatusEnum.未处理);
|
||
}
|
||
if (taskFinish == null)
|
||
{
|
||
taskFinish = this.GetEntity<T_FM_NOTIFICATION_TASK>(i => i.SOURCE_DATA_ID == entity.ID && i.USER_ID == node.APPROVE_USER_ID
|
||
&& i.NOTICE_STATUS == (int)FMNoticeStatusEnum.未处理);
|
||
}
|
||
}
|
||
|
||
if (taskFinish != null)
|
||
{
|
||
taskFinish.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办;
|
||
taskFinish.TASK_DT = DateTime.Now;
|
||
if (DateTime.Now > taskFinish.TASK_ENDDT)
|
||
taskFinish.NOTICE_STATUS = (int)FMNoticeStatusEnum.超期办理;
|
||
}
|
||
|
||
//修改节点状态
|
||
//驳回时状态改为驳回,并通知申请人重新提交
|
||
modelApp.APPROVE_STATUS = entity.CurrentNode.NODE_APPROVE_STATUS;// (int)ApproveStatus.Reject;
|
||
listAppDetail = modelApp.Nav_ApproveDetails.ToList();
|
||
|
||
//modelApp.Nav_ApproveDetails = null;
|
||
|
||
int max = 0;
|
||
foreach (var item in listAppDetail)
|
||
{
|
||
if (max < item.NUM)
|
||
{
|
||
max = item.NUM;
|
||
}
|
||
//item.Nav_Approve = null;
|
||
if (item.ID == entity.CurrentNode.ID)
|
||
{
|
||
item.NODE_APPROVE_TIME = DateTime.Now;
|
||
item.NODE_APPROVE_STATUS = entity.CurrentNode.NODE_APPROVE_STATUS;
|
||
item.IS_CURRENT = false;
|
||
item.CONTEXT = entity.CurrentNode.CONTEXT;
|
||
}
|
||
}
|
||
|
||
|
||
return true;
|
||
}
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 获取信息到审批流
|
||
/// </summary>
|
||
/// <param name="entity"></param>
|
||
/// <param name="modelApp"></param>
|
||
/// <param name="listAppDetail"></param>
|
||
/// <param name="taskFinish"></param>
|
||
/// <param name="taskCodeCheck"></param>
|
||
/// <param name="isLast"></param>
|
||
/// <param name="listTaskNext"></param>
|
||
/// <returns></returns>
|
||
public bool GetApproject2(T_PF_APPROVE entity, ref T_PF_APPROVE modelApp, ref List<T_PF_APPROVE_DETAIL> listAppDetail, ref T_FM_NOTIFICATION_TASK taskFinish, ref string taskCodeCheck, ref bool isLast, ref List<T_FM_NOTIFICATION_TASK> listTaskNext)
|
||
{
|
||
if (entity.DATA_ID == Guid.Empty || entity.ID == Guid.Empty)
|
||
{
|
||
throw new Exception("驳回传参信息有误!");
|
||
}
|
||
|
||
var ret = string.Empty;
|
||
|
||
//BaseFilter filterH = new BaseFilter();
|
||
//filterH.IgnoreOrgRule = true;
|
||
//filterH.IgnoreDataRule = true;
|
||
//filterH.OrgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;// entity.ORG_ID;
|
||
|
||
//modelApp = this.GetEntity<T_PF_APPROVE>(e => e.ID == entity.ID, filterH, "Nav_ApproveDetails");
|
||
modelApp = this.GetEntity<T_PF_APPROVE>(e => e.ID == entity.ID, "Nav_ApproveDetails");
|
||
|
||
if (modelApp == null)
|
||
this.ThrowError("020027");
|
||
if (modelApp.APPROVE_STATUS != (int)ApproveStatus.Doing)
|
||
this.ThrowError("020028");
|
||
var node = modelApp.Nav_ApproveDetails.FirstOrDefault(i => i.ID == entity.CurrentNode.ID);
|
||
if (!node.IS_CURRENT)
|
||
this.ThrowError("020030");
|
||
//查询消息表
|
||
taskFinish = this.GetEntity<T_FM_NOTIFICATION_TASK>(i => i.SOURCE_DATA_ID == entity.ID && i.USER_ID == node.APPROVE_USER_ID
|
||
&& i.NOTICE_STATUS == (int)FMNoticeStatusEnum.未处理);
|
||
|
||
if (taskFinish != null)
|
||
{
|
||
taskFinish.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办;
|
||
taskFinish.TASK_DT = DateTime.Now;
|
||
if (DateTime.Now > taskFinish.TASK_ENDDT)
|
||
taskFinish.NOTICE_STATUS = (int)FMNoticeStatusEnum.超期办理;
|
||
}
|
||
|
||
//修改节点状态
|
||
node.NODE_APPROVE_TIME = DateTime.Now;
|
||
node.NODE_APPROVE_STATUS = entity.CurrentNode.NODE_APPROVE_STATUS;
|
||
node.IS_CURRENT = false;
|
||
node.CONTEXT = entity.CurrentNode.CONTEXT;
|
||
List<Guid> lisNextID = new List<Guid>();
|
||
|
||
|
||
#region wyw 默认审批判断
|
||
|
||
isLast = false;
|
||
List<T_PF_APPROVE_DETAIL> Nav_ApproveDetails = modelApp.Nav_ApproveDetails.ToList();
|
||
DoneLaterApproverDeal(node, node.APPROVE_USER_ID.Value, node.CONTEXT, node.NODE_APPROVE_STATUS, ref Nav_ApproveDetails, ref isLast);
|
||
|
||
modelApp.Nav_ApproveDetails = Nav_ApproveDetails;//可能会有修改赋值过去
|
||
listAppDetail = Nav_ApproveDetails;
|
||
|
||
#endregion
|
||
|
||
//var lastNode = dbApprove.Nav_ApproveDetails.Where(i => i.NUM >= entity.CurrentNode.NUM && i.ID != entity.CurrentNode.ID && i.NODE_APPROVE_STATUS == (int)NodeApproveStatus.Doing);
|
||
//if (!lastNode.Any())
|
||
string APPROVE_CODE = modelApp.APPROVE_CODE;
|
||
|
||
if (isLast)
|
||
{
|
||
modelApp.APPROVE_STATUS = (int)ApproveStatus.Done;//完成
|
||
ret = modelApp.CALLBACK_INTERFACE;
|
||
//查询审批的表单数据
|
||
var form = this.GetEntity<T_PF_FORM>(i => i.CODE == APPROVE_CODE && i.ORG_ID == entity.ORG_ID);
|
||
|
||
var tableName = form?.TABLE_NAME;
|
||
if (string.IsNullOrEmpty(tableName))
|
||
{
|
||
var formEdit = this.GetEntity<T_PF_PAGE_EDIT>(i => i.PAGE_FORM_ID == form.ID && i.PARENT_ID == null);
|
||
if (formEdit != null)
|
||
{
|
||
tableName = formEdit.EDIT_NAME;
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(tableName))
|
||
{
|
||
var dbType = APT.Infrastructure.Core.Refctor.ReflectHelper.FindTypeInCurrentDomain(tableName);
|
||
if (dbType != null)
|
||
{
|
||
MethodInfo methodInfo = this.GetType().GetMethod("GetMyEntity",
|
||
BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static);
|
||
|
||
var entity2 = methodInfo.MakeGenericMethod(new Type[] { dbType }).
|
||
Invoke(this, new object[] { modelApp.DATA_ID });
|
||
|
||
if (entity2 != null)
|
||
{
|
||
var prop = dbType.GetProperty("FLOW_STATUS");
|
||
if (prop != null)
|
||
{
|
||
prop.SetValue(entity2, 2);
|
||
MethodInfo methodInfoUpdate = this.GetType().GetMethod("UpdateMyEntityNoCommit",
|
||
BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static);
|
||
//var details = modelApp.Nav_ApproveDetails;
|
||
|
||
//modelApp.Nav_ApproveDetails = null;
|
||
//details.ForEach(i => i.Nav_Approve = null);
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
//if (task != null)
|
||
// this.UpdateEntityNoCommit(task);
|
||
//this.UpdateEntityNoCommit(modelApp);
|
||
//this.BantchUpdateEntityNoCommit(details);
|
||
methodInfoUpdate.MakeGenericMethod(new Type[] { dbType }).
|
||
Invoke(this, new object[] { entity });
|
||
});
|
||
//return ret;
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
else
|
||
{
|
||
var next = listAppDetail.Where(i => i.NUM == entity.CurrentNode.NUM && i.ID != entity.CurrentNode.ID && i.NODE_APPROVE_STATUS == (int)NodeApproveStatus.Doing);
|
||
if (next.Any())
|
||
{
|
||
//同级审批
|
||
|
||
}
|
||
else
|
||
{
|
||
//var nextNodes = dbApprove.Nav_ApproveDetails.Where(i => i.NUM > entity.CurrentNode.NUM);//wyw
|
||
var nextNodes = listAppDetail.Where(i => i.NUM > entity.CurrentNode.NUM && i.NODE_APPROVE_STATUS == (int)NodeApproveStatus.Doing);
|
||
if (nextNodes.Any())
|
||
{
|
||
|
||
T_PF_APPROVE_DETAIL curentApprove = null;
|
||
GetApproveNodes(nextNodes.ToList(), ref curentApprove);
|
||
//所有节点均无审核人,直接归档
|
||
if (curentApprove == null)
|
||
{
|
||
|
||
modelApp.APPROVE_STATUS = (int)ApproveStatus.Done;//完成
|
||
ret = modelApp.CALLBACK_INTERFACE;
|
||
//查询审批的表单数据
|
||
var form = this.GetEntity<T_PF_FORM>(i => i.CODE == APPROVE_CODE && i.ORG_ID == entity.ORG_ID);
|
||
var tableName = form?.TABLE_NAME;
|
||
if (string.IsNullOrEmpty(tableName))
|
||
{
|
||
var formEdit = this.GetEntity<T_PF_PAGE_EDIT>(i => i.PAGE_FORM_ID == form.ID && i.PARENT_ID == null);
|
||
if (formEdit != null)
|
||
{
|
||
tableName = formEdit.EDIT_NAME;
|
||
}
|
||
}
|
||
if (!string.IsNullOrEmpty(tableName))
|
||
{
|
||
var dbType = APT.Infrastructure.Core.Refctor.ReflectHelper.FindTypeInCurrentDomain(tableName);
|
||
if (dbType != null)
|
||
{
|
||
MethodInfo methodInfo = this.GetType().GetMethod("GetMyEntity",
|
||
BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static);
|
||
var entity2 = methodInfo.MakeGenericMethod(new Type[] { dbType }).
|
||
Invoke(this, new object[] { modelApp.DATA_ID });
|
||
if (entity2 != null)
|
||
{
|
||
var prop = dbType.GetProperty("FLOW_STATUS");
|
||
if (prop != null)
|
||
{
|
||
prop.SetValue(entity2, 2);
|
||
MethodInfo methodInfoUpdate = this.GetType().GetMethod("UpdateMyEntityNoCommit",
|
||
BindingFlags.Instance | BindingFlags.Public | BindingFlags.Static);
|
||
//var details = modelApp.Nav_ApproveDetails;
|
||
//modelApp.Nav_ApproveDetails = null;
|
||
//details.ForEach(i => i.Nav_Approve = null);
|
||
UnifiedCommit(() =>
|
||
{
|
||
//if (task != null)
|
||
// this.UpdateEntityNoCommit(task);
|
||
//this.UpdateEntityNoCommit(modelApp);
|
||
//this.BantchUpdateEntityNoCommit(details);
|
||
methodInfoUpdate.MakeGenericMethod(new Type[] { dbType }).
|
||
Invoke(this, new object[] { entity2 });
|
||
});
|
||
//return ret;
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
|
||
|
||
var nextNode = nextNodes.Where(i => i.NUM == curentApprove.NUM && i.APPROVE_USER_ID != entity.CurrentNode.APPROVE_USER_ID);// && i.APPROVE_USER_ID != entity.CurrentNode.APPROVE_USER_ID
|
||
nextNode.ForEach(i => i.IS_CURRENT = true);
|
||
nextNode.ForEach(e => lisNextID.Add(e.ID));
|
||
|
||
List<Guid> userIds = new List<Guid>();
|
||
List<string> listName = new List<string>();
|
||
userIds.AddRange(nextNode.Select(i => (Guid)i.APPROVE_USER_ID).ToArray());
|
||
var listUser = GetEntities<T_FM_USER>(e => userIds.Contains(e.ID));
|
||
T_FM_USER uT = null;
|
||
for (int i = 0; i < userIds.Count; i++)
|
||
{
|
||
uT = listUser.FirstOrDefault(e => e.ID == userIds[i]);
|
||
if (uT != null)
|
||
listName.Add(uT.NAME);
|
||
else
|
||
listName.Add("");
|
||
}
|
||
|
||
//var details = modelApp.Nav_ApproveDetails;
|
||
//details.ForEach(i => i.Nav_Approve = null);
|
||
//modelApp.Nav_ApproveDetails = null;
|
||
//var nextNodeName=nextNode.Select(i => i.NAME).FirstOrDefault();
|
||
//消息通知并修改状态
|
||
string NoticeTitle = entity.NAME;
|
||
if (!entity.NAME.EndsWith("审批"))
|
||
NoticeTitle = NoticeTitle + "待审批";
|
||
|
||
DateTime dtTaskEnd = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.Default, modelApp.ORG_ID.Value, DateTime.Now, null, null);//暂时先采用默认时间
|
||
|
||
//非最后一个审批 审批流待办
|
||
listTaskNext = NotificationTaskService.InsertUserNoticeTaskModels(NoticeTitle, modelApp.ID, modelApp.ORG_ID, userIds, listName, DateTime.Now, dtTaskEnd, (int)FMNoticeTypeEnum.审批, "PF119");
|
||
|
||
|
||
//NotificationTaskService.SendNotificationTask(NoticeTitle,
|
||
// entity.ID, APT.Infrastructure.Api.AppContext.CurrentSession.OrgId, userIds,
|
||
// DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.审批, "PF119", () =>
|
||
// {
|
||
// if (task != null)
|
||
// this.UpdateEntityNoCommit(task);
|
||
// this.UpdateEntityNoCommit(modelApp);
|
||
// this.BantchUpdateEntityNoCommit(details);
|
||
// });
|
||
//return ret;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
|
||
}
|
||
}
|
||
}
|
||
////}
|
||
//ChangeApproveStatus(modelApp, task);
|
||
|
||
if (listAppDetail != null && listAppDetail.Any())
|
||
{
|
||
foreach (var item in listAppDetail)
|
||
{
|
||
if (item.ID == node.ID)
|
||
{
|
||
item.IS_CURRENT = false;
|
||
}
|
||
if (lisNextID.Count > 0 && lisNextID.Contains(item.ID))
|
||
{
|
||
item.IS_CURRENT = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
//if (entity.DATA_ID == Guid.Empty || entity.ID == Guid.Empty)
|
||
//{
|
||
// throw new Exception("驳回传参信息有误!");
|
||
//}
|
||
|
||
//modelApp = this.GetEntity<T_PF_APPROVE>(entity.ID.ToString(), "Nav_ApproveDetails");
|
||
//if (modelApp == null)
|
||
//{
|
||
// this.ThrowError("020027");
|
||
// return false;
|
||
//}
|
||
|
||
//if (modelApp.APPROVE_STATUS != (int)ApproveStatus.Doing)
|
||
//{
|
||
// this.ThrowError("020028");
|
||
// return false;
|
||
//}
|
||
//var node = modelApp.Nav_ApproveDetails.FirstOrDefault(i => i.ID == entity.CurrentNode.ID);
|
||
//if (!node.IS_CURRENT)
|
||
//{
|
||
// this.ThrowError("020030");
|
||
// return false;
|
||
//}
|
||
|
||
|
||
|
||
//if (entity.TaskID != Guid.Empty)
|
||
// taskFinish = GetEntity<T_FM_NOTIFICATION_TASK>(entity.TaskID);
|
||
|
||
//if (taskFinish == null || !string.IsNullOrEmpty(taskCodeCheck))
|
||
//{
|
||
// //查询消息表 最好写日志
|
||
// if (!string.IsNullOrEmpty(taskCodeCheck) && taskFinish.SOURCE_FORMCODE != taskCodeCheck)
|
||
// {
|
||
// taskFinish = this.GetEntity<T_FM_NOTIFICATION_TASK>(i => i.SOURCE_DATA_ID == entity.ID && i.USER_ID == node.APPROVE_USER_ID
|
||
// && i.NOTICE_STATUS == (int)FMNoticeStatusEnum.未处理);
|
||
// }
|
||
// if (taskFinish == null)
|
||
// {
|
||
// taskFinish = this.GetEntity<T_FM_NOTIFICATION_TASK>(i => i.SOURCE_DATA_ID == entity.ID && i.USER_ID == node.APPROVE_USER_ID
|
||
// && i.NOTICE_STATUS == (int)FMNoticeStatusEnum.未处理);
|
||
// }
|
||
//}
|
||
|
||
//if (taskFinish != null)
|
||
//{
|
||
// taskFinish.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办;
|
||
// taskFinish.TASK_DT = DateTime.Now;
|
||
// if (DateTime.Now > taskFinish.TASK_ENDDT)
|
||
// taskFinish.NOTICE_STATUS = (int)FMNoticeStatusEnum.超期办理;
|
||
//}
|
||
|
||
////修改节点状态
|
||
////驳回时状态改为驳回,并通知申请人重新提交
|
||
//modelApp.APPROVE_STATUS = entity.CurrentNode.NODE_APPROVE_STATUS;// (int)ApproveStatus.Reject;
|
||
//listAppDetail = modelApp.Nav_ApproveDetails.OrderBy(e=>e.NUM).ToList();
|
||
|
||
//var next = listAppDetail.Where(i => i.NUM == entity.CurrentNode.NUM && i.ID != entity.CurrentNode.ID && i.NODE_APPROVE_STATUS == (int)NodeApproveStatus.Doing);
|
||
|
||
////modelApp.Nav_ApproveDetails = null;
|
||
////int max = 0;
|
||
////isLast
|
||
//isLast = true;
|
||
//int currIndex = entity.CurrentNode.NUM;
|
||
//foreach (var item in listAppDetail)
|
||
//{
|
||
// if (item.NUM> currIndex)
|
||
// {
|
||
// isLast = false;
|
||
// }
|
||
// //item.Nav_Approve = null;
|
||
// if (item.ID == entity.CurrentNode.ID)
|
||
// {
|
||
// item.NODE_APPROVE_TIME = DateTime.Now;
|
||
// item.NODE_APPROVE_STATUS = entity.CurrentNode.NODE_APPROVE_STATUS;
|
||
// item.IS_CURRENT = false;
|
||
// item.CONTEXT = entity.CurrentNode.CONTEXT;
|
||
// }
|
||
//}
|
||
|
||
//////判断是否最后一个审批流
|
||
////if (max <= entity.CurrentNode.NUM)
|
||
//// isLast = true;
|
||
|
||
//T_FM_NOTIFICATION_TASK taskNext = null;
|
||
|
||
//if (!isLast)
|
||
//{
|
||
// taskNext = new T_FM_NOTIFICATION_TASK();
|
||
|
||
// NotificationTaskService.InsertUserNoticeTaskModel(taskFinish.NOTICE_TITLE, modelApp.ID, modelApp.ORG_ID, null, null, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.审批, "PF119");
|
||
//}
|
||
return true;
|
||
}
|
||
|
||
///// <summary>
|
||
///// 获取信息到审批流
|
||
///// </summary>
|
||
///// <param name="entity"></param>
|
||
///// <param name="modelApp"></param>
|
||
///// <param name="listAppDetail"></param>
|
||
///// <param name="taskFinish"></param>
|
||
///// <param name="taskCodeCheck"></param>
|
||
//public bool GetApproject(T_PF_APPROVE entity, ref T_PF_APPROVE modelApp, ref List<T_PF_APPROVE_DETAIL> listAppDetail, ref T_FM_NOTIFICATION_TASK taskFinish, ref string taskCodeCheck, ref bool isLast)
|
||
//{
|
||
// if (entity.DATA_ID == Guid.Empty || entity.ID == Guid.Empty)
|
||
// {
|
||
// throw new Exception("驳回传参信息有误!");
|
||
// }
|
||
|
||
// modelApp = this.GetEntity<T_PF_APPROVE>(entity.ID.ToString(), "Nav_ApproveDetails");
|
||
// if (modelApp == null)
|
||
// {
|
||
// this.ThrowError("020027");
|
||
// return false;
|
||
// }
|
||
|
||
// if (modelApp.APPROVE_STATUS != (int)ApproveStatus.Doing)
|
||
// {
|
||
// this.ThrowError("020028");
|
||
// return false;
|
||
// }
|
||
// var node = modelApp.Nav_ApproveDetails.FirstOrDefault(i => i.ID == entity.CurrentNode.ID);
|
||
// if (!node.IS_CURRENT)
|
||
// {
|
||
// this.ThrowError("020030");
|
||
// return false;
|
||
// }
|
||
|
||
|
||
|
||
// if (entity.TaskID != Guid.Empty)
|
||
// taskFinish = GetEntity<T_FM_NOTIFICATION_TASK>(entity.TaskID);
|
||
|
||
// if (taskFinish == null || !string.IsNullOrEmpty(taskCodeCheck))
|
||
// {
|
||
// //查询消息表 最好写日志
|
||
// if (!string.IsNullOrEmpty(taskCodeCheck) && taskFinish.SOURCE_FORMCODE != taskCodeCheck)
|
||
// {
|
||
// taskFinish = this.GetEntity<T_FM_NOTIFICATION_TASK>(i => i.SOURCE_DATA_ID == entity.ID && i.USER_ID == node.APPROVE_USER_ID
|
||
// && i.NOTICE_STATUS == (int)FMNoticeStatusEnum.未处理);
|
||
// }
|
||
// if (taskFinish == null)
|
||
// {
|
||
// taskFinish = this.GetEntity<T_FM_NOTIFICATION_TASK>(i => i.SOURCE_DATA_ID == entity.ID && i.USER_ID == node.APPROVE_USER_ID
|
||
// && i.NOTICE_STATUS == (int)FMNoticeStatusEnum.未处理);
|
||
// }
|
||
// }
|
||
|
||
// if (taskFinish != null)
|
||
// {
|
||
// taskFinish.NOTICE_STATUS = (int)FMNoticeStatusEnum.正常已办;
|
||
// taskFinish.TASK_DT = DateTime.Now;
|
||
// if (DateTime.Now > taskFinish.TASK_ENDDT)
|
||
// taskFinish.NOTICE_STATUS = (int)FMNoticeStatusEnum.超期办理;
|
||
// }
|
||
|
||
// //修改节点状态
|
||
// //驳回时状态改为驳回,并通知申请人重新提交
|
||
// modelApp.APPROVE_STATUS = entity.CurrentNode.NODE_APPROVE_STATUS;// (int)ApproveStatus.Reject;
|
||
// listAppDetail = modelApp.Nav_ApproveDetails.OrderBy(e => e.NUM).ToList();
|
||
|
||
// var next = listAppDetail.Where(i => i.NUM == entity.CurrentNode.NUM && i.ID != entity.CurrentNode.ID && i.NODE_APPROVE_STATUS == (int)NodeApproveStatus.Doing);
|
||
|
||
// //modelApp.Nav_ApproveDetails = null;
|
||
// //int max = 0;
|
||
// //isLast
|
||
// isLast = true;
|
||
// int currIndex = entity.CurrentNode.NUM;
|
||
// foreach (var item in listAppDetail)
|
||
// {
|
||
// if (item.NUM > currIndex)
|
||
// {
|
||
// isLast = false;
|
||
// }
|
||
// //item.Nav_Approve = null;
|
||
// if (item.ID == entity.CurrentNode.ID)
|
||
// {
|
||
// item.NODE_APPROVE_TIME = DateTime.Now;
|
||
// item.NODE_APPROVE_STATUS = entity.CurrentNode.NODE_APPROVE_STATUS;
|
||
// item.IS_CURRENT = false;
|
||
// item.CONTEXT = entity.CurrentNode.CONTEXT;
|
||
// }
|
||
// }
|
||
|
||
// ////判断是否最后一个审批流
|
||
// //if (max <= entity.CurrentNode.NUM)
|
||
// // isLast = true;
|
||
|
||
// return true;
|
||
//}
|
||
|
||
//private void ChangeApproveStatus(T_PF_APPROVE dbApprove, T_FM_NOTIFICATION_TASK task)
|
||
//{
|
||
// var details = dbApprove.Nav_ApproveDetails;
|
||
// dbApprove.Nav_ApproveDetails = null;
|
||
// details.ForEach(i => i.Nav_Approve = null);
|
||
// UnifiedCommit(() =>
|
||
// {
|
||
// if (task != null)
|
||
// this.UpdateEntityNoCommit(task);
|
||
// this.UpdateEntityNoCommit(dbApprove);
|
||
// this.BantchUpdateEntityNoCommit(details);
|
||
// });
|
||
//}
|
||
|
||
|
||
static void GetApproveNodes(List<T_PF_APPROVE_DETAIL> approveDetails, ref T_PF_APPROVE_DETAIL approveNode)
|
||
{
|
||
if (approveDetails == null)
|
||
return;
|
||
var curentNode = approveDetails.FirstOrDefault(i => i.NUM == approveDetails.Min(x => x.NUM) && i.NODE_APPROVE_STATUS == (int)NodeApproveStatus.Doing);
|
||
if (curentNode == null || curentNode.APPROVE_USER_ID == null)
|
||
{
|
||
approveDetails.Remove(curentNode);
|
||
approveNode = null;
|
||
if (!approveDetails.Any())
|
||
return;
|
||
GetApproveNodes(approveDetails, ref approveNode);
|
||
}
|
||
else
|
||
{
|
||
approveNode = curentNode;
|
||
return;
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 审批通过 判断是否下一节点未本人 wyw
|
||
/// </summary>
|
||
/// <param name="currentNode"></param>
|
||
/// <param name="OperateID"></param>
|
||
/// <param name="CONTEXT"></param>
|
||
/// <param name="NODE_APPROVE_STATUS"></param>
|
||
/// <param name="Nav_ApproveDetails"></param>
|
||
/// <param name="isLast"></param>
|
||
private void DoneLaterApproverDeal(T_PF_APPROVE_DETAIL currentNode, Guid OperateID, string CONTEXT, int NODE_APPROVE_STATUS, ref List<T_PF_APPROVE_DETAIL> Nav_ApproveDetails, ref bool isLast)
|
||
{
|
||
if (NODE_APPROVE_STATUS != 10)
|
||
{
|
||
//审批不通过
|
||
return;
|
||
}
|
||
|
||
var detailDoing = Nav_ApproveDetails.FirstOrDefault(e => e.APPROVE_USER_ID.HasValue && e.NUM >= currentNode.NUM && e.NODE_APPROVE_STATUS == (int)NodeApproveStatus.Doing && e.ID != currentNode.ID);
|
||
if (detailDoing == null)
|
||
{
|
||
//最后一个审批人了
|
||
isLast = true;
|
||
return;
|
||
}
|
||
else
|
||
{
|
||
isLast = false;
|
||
}
|
||
if (!isLast)
|
||
{
|
||
//如果不是最后一个审批人 判断处理 下级审批人信息
|
||
//同级 审批完了 下一级有他 默认审批
|
||
var currentNumNode = Nav_ApproveDetails.FirstOrDefault(e => e.NUM == currentNode.NUM && e.ID != currentNode.ID && e.NODE_APPROVE_STATUS == (int)NodeApproveStatus.Doing);
|
||
if (currentNumNode != null)
|
||
{
|
||
//同级 还有未审批的
|
||
return;
|
||
}
|
||
|
||
//同级没有未审批的人员信息
|
||
List<T_PF_APPROVE_DETAIL> listDoing = Nav_ApproveDetails.FindAll(e => e.NODE_APPROVE_STATUS == (int)NodeApproveStatus.Doing).OrderBy(e => e.NUM).ToList();
|
||
if (listDoing != null && listDoing.Count > 0)
|
||
{
|
||
//还有未审批的
|
||
List<T_PF_APPROVE_DETAIL> listDoingMin = listDoing.FindAll(e => e.NUM == listDoing[0].NUM);//最小未审批节点
|
||
|
||
T_PF_APPROVE_DETAIL detailLogin = listDoingMin.FirstOrDefault(e => e.APPROVE_USER_ID == OperateID);
|
||
|
||
if (detailLogin == null)
|
||
{
|
||
//下一个节点不是当前审批人
|
||
return;
|
||
}
|
||
|
||
//默认 审批
|
||
//detailLogin
|
||
detailLogin.NODE_APPROVE_TIME = DateTime.Now;
|
||
detailLogin.NODE_APPROVE_STATUS = (int)NodeApproveStatus.Done;
|
||
detailLogin.IS_CURRENT = false;
|
||
detailLogin.CONTEXT = CONTEXT;
|
||
|
||
if (listDoingMin.Count == 1)
|
||
{
|
||
DoneLaterApproverDeal(detailLogin, OperateID, CONTEXT, NODE_APPROVE_STATUS, ref Nav_ApproveDetails, ref isLast);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 安全检查新版
|
||
|
||
|
||
/// <summary>
|
||
/// 安全检查申请审批 审批流回调
|
||
/// </summary>
|
||
/// <param name="entityInt">审批入参</param>
|
||
/// <param name="modelApp">审批单</param>
|
||
/// <param name="listAppDetail">审批明细</param>
|
||
/// <param name="taskFinish">审批待办</param>
|
||
/// <param name="isLast">是否审批最后一步</param>
|
||
/// <returns></returns>
|
||
/// <exception cref="Exception"></exception>
|
||
private bool CheckPlanAuditEndNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = GetEntity<T_BS_SAFE_CHECK>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
|
||
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
|
||
|
||
//2、添加安全检查填写表单(配置) BS034
|
||
//3、给被安排检查的人去添加 代办事项 通知去安检
|
||
|
||
//查找所有本次安检的人员
|
||
var CheckUser = this.GetEntities<T_BS_SAFE_CHECK_DETAIL_USER>(e => !e.IS_DELETED && e.SAFE_CHECK_ID == entity.ID, null, new string[] { "Nav_User" }).Select(e => e.Nav_User).Distinct(e => e.ID).ToList();
|
||
List<Guid> listUserId = new List<Guid>();
|
||
List<string> listUserName = new List<string>();
|
||
for (int i = 0; i < CheckUser.Count; i++)
|
||
{
|
||
listUserId.Add(CheckUser[i].ID);
|
||
listUserName.Add(CheckUser[i].NAME);
|
||
}
|
||
|
||
//直接发送检查记录
|
||
//修改为 发送检查通知 检查人 查看后 再收到检查记录表
|
||
|
||
entity.CHECKFINISHINTTIME = DateTime.Now;
|
||
|
||
if (!entity.CHECKTIME.HasValue || !entity.PLAN_SET_ID.HasValue || entity.CHECKTIME.Value.Date == DateTime.Now.Date)
|
||
{
|
||
entity.ISCHECKFINISHINTTIME = true;
|
||
}
|
||
else
|
||
{
|
||
var plan = GetEntity<T_BS_PLAN_SET>(entity.PLAN_SET_ID.Value);
|
||
//查询 时间频率对应最后时间
|
||
DateTime dtEnd = SafeCheckService.GetEndTime((BSPLANCHECKFREQUENCYEnum)plan.PLANCHECKFREQUENCY, entity.CHECKTIME.Value);
|
||
|
||
if (dtEnd >= DateTime.Now)
|
||
entity.ISCHECKFINISHINTTIME = true;
|
||
else
|
||
entity.ISCHECKFINISHINTTIME = false;
|
||
}
|
||
|
||
entity.STATUSPLAN = 20;
|
||
|
||
if (listUserId.Count > 0)
|
||
{
|
||
entity.STATUCHECK = (int)HMAuditStatusEnmu.确认中;//给验收人 发送确认通知
|
||
|
||
DateTime dtTimeOut = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_SafeCheck_Make_Check, entity.ORG_ID.Value, DateTime.Now, null, entity.CHECKTIME);// entity.LIMITDATETIME
|
||
|
||
//最后时间是今天
|
||
//DateTime dtTimeOut = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
|
||
//Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
|
||
////给 T_FM_NOTIFICATION_TASK 添加实体
|
||
////只是通知,不需要表单
|
||
//NotificationTaskService.SendNotificationTask(entity.NAME, entity.ID, orgId, listUserId, listUserName, DateTime.Now, dtTimeOut, 0, "BS034", () =>
|
||
//{
|
||
// UpdateEntityNoCommit(entity);
|
||
//});
|
||
List<Guid> listUserIDDone = new List<Guid>();//需要默认处理的待办
|
||
#region 制表确认 默认处理
|
||
|
||
if (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue)
|
||
{
|
||
listUserIDDone.Add(APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value);
|
||
}
|
||
|
||
if (entity.USERID_DOPLAN.HasValue)
|
||
{
|
||
if (!listUserIDDone.Contains(entity.USERID_DOPLAN.Value))
|
||
{
|
||
listUserIDDone.Add(entity.USERID_DOPLAN.Value);
|
||
}
|
||
}
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
List<T_BS_SAFE_CHECK_DETAIL_USER> listUserCheck = null;
|
||
if (entity.USERID_DOPLAN.HasValue && listUserId.Contains(entity.USERID_DOPLAN.Value))
|
||
{
|
||
#region 旧方法
|
||
////如果检查人员 包含 制表人
|
||
//listUserCheck = this.GetEntities<T_BS_SAFE_CHECK_DETAIL_USER>(e => !e.IS_DELETED && e.SAFE_CHECK_ID == entity.ID && e.USER_ID == entity.USERID_DOPLAN.Value); //如果是主要检查人 修改为已 确认
|
||
//if (listUserCheck != null && listUserCheck.Any())
|
||
//{
|
||
// foreach (var item in listUserCheck)
|
||
// {
|
||
// item.SAFECHECKSTATE = (int)SAFECHECKSTATEEnum.viewDoneSign;
|
||
// if (item.ISMAINCHECK)
|
||
// {
|
||
// item.ISCHECK = true;//检查结果确认
|
||
// item.CHECKTIME = DateTime.Now;
|
||
// }
|
||
// }
|
||
//}
|
||
#endregion
|
||
|
||
#region 新方法 主要处理 默认 【制表确认】
|
||
|
||
//如果检查人员 包含 制表人
|
||
var listUserAll = this.GetEntities<T_BS_SAFE_CHECK_DETAIL_USER>(e => !e.IS_DELETED && e.SAFE_CHECK_ID == entity.ID); //如果是主要检查人 修改为已 确认
|
||
int STATECHECK = (int)entity.STATECHECK;
|
||
foreach (var item in listUserAll)
|
||
{
|
||
//if ((item.SAFECHECKSTATE.HasValue && item.SAFECHECKSTATE == 80) || STATECHECK > 10)//已经检查过了 待办消息默认审批通过 或者 检查登记进入审批状态
|
||
if ((item.SAFECHECKSTATE.HasValue && item.SAFECHECKSTATE >= 60) || STATECHECK > 10)
|
||
{
|
||
listUserIDDone.Add(item.USER_ID);
|
||
}
|
||
}
|
||
|
||
if (listUserAll != null && listUserAll.Any())
|
||
{
|
||
foreach (var item in listUserAll)
|
||
{
|
||
//if (item.USER_ID == entity.USERID_DOPLAN.Value)
|
||
if (listUserIDDone.Contains(item.USER_ID))
|
||
{
|
||
if (item.SAFECHECKSTATE < (int)SAFECHECKSTATEEnum.viewDoneSign)
|
||
{
|
||
item.SAFECHECKSTATE = (int)SAFECHECKSTATEEnum.viewDoneSign;
|
||
}
|
||
//item.SAFECHECKSTATE = (int)SAFECHECKSTATEEnum.viewDoneSign;
|
||
if (item.ISMAINCHECK)
|
||
{
|
||
item.ISCHECK = true;//检查结果确认
|
||
item.CHECKTIME = DateTime.Now;
|
||
}
|
||
if (listUserCheck == null)
|
||
{
|
||
listUserCheck = new List<T_BS_SAFE_CHECK_DETAIL_USER>();
|
||
}
|
||
listUserCheck.Add(item);
|
||
}
|
||
//else
|
||
//{
|
||
// //判断处理待办
|
||
// if (item.ISCHECK && !listUserIDDone.Contains(item.USER_ID))
|
||
// {
|
||
// listUserIDDone.Add(item.USER_ID);
|
||
// }
|
||
//}
|
||
}
|
||
}
|
||
#endregion
|
||
}
|
||
|
||
|
||
#region 修改操作日志 添加 下一步待操作日志
|
||
DateTime? dtTaskEnd = null;
|
||
dtTaskEnd = taskFinish?.TASK_ENDDT;
|
||
|
||
var listOperateLog = GetListOperateLog(OPERATEPOINT_Enums.CheckAudit, entity.ID, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, listUserId, listUserName, entity.ORG_ID, null, listUserIDDone, false, dtTaskEnd);
|
||
int APPROVE_STATUS = 0;
|
||
var ApproveCreateID = Guid.Empty;
|
||
if (modelApp != null && modelApp.CREATER_ID.HasValue)
|
||
{
|
||
ApproveCreateID = modelApp.CREATER_ID.Value;
|
||
APPROVE_STATUS = modelApp.APPROVE_STATUS;
|
||
}
|
||
if (ApproveCreateID == Guid.Empty && entityInt != null && entityInt.CREATER_ID.HasValue)
|
||
{
|
||
ApproveCreateID = entityInt.CREATER_ID.Value;
|
||
APPROVE_STATUS = entityInt.APPROVE_STATUS;
|
||
}
|
||
|
||
//检查任务默认审批、确认
|
||
if (listOperateLog != null && listOperateLog.Any() && dtTaskEnd == null && APPROVE_STATUS == 10 && APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue && (ApproveCreateID == APT.Infrastructure.Api.AppContext.CurrentSession.UserID || ApproveCreateID == Guid.Empty))
|
||
{
|
||
foreach (var item in listOperateLog)
|
||
{
|
||
if (item.USER_ID == APT.Infrastructure.Api.AppContext.CurrentSession.UserID)
|
||
{
|
||
item.ISINTTIME = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (listUserId.Count == 1 && listUserId.Count == listUserIDDone.Count && listUserId[0] == listUserIDDone[0])
|
||
{
|
||
//如果就一个人 还是默认处理的人 直接 sendCheck
|
||
entity.STATUCHECK = (int)HMAuditStatusEnmu.审批中;//其实是检查中了
|
||
}
|
||
|
||
//BS034_SHOWPRINT=> BS032_SHOWPRINT
|
||
NotificationTaskService.SendNotificationTask((entity.NAME + "-确认"), entity.ID, orgId, listUserId, listUserName, DateTime.Now, dtTimeOut, 0, "BS032_SHOWPRINT", () =>
|
||
{
|
||
UpdateEntityNoCommit(entity);
|
||
if (listUserCheck != null && listUserCheck.Any())
|
||
BantchSaveEntityNoCommit(listUserCheck);
|
||
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (listOperateLog != null && listOperateLog.Count > 0)//操作记录
|
||
BantchSaveEntityNoCommit(listOperateLog);
|
||
|
||
}, "", listUserIDDone);
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 安全检查线下完成后进入审批 审批流回调
|
||
/// </summary>
|
||
/// <param name="entityInt">审批入参</param>
|
||
/// <param name="modelApp">审批单</param>
|
||
/// <param name="listAppDetail">审批明细</param>
|
||
/// <param name="taskFinish">审批待办</param>
|
||
/// <param name="isLast">是否审批最后一步</param>
|
||
/// <returns></returns>
|
||
/// <exception cref="Exception"></exception>
|
||
private bool CheckAuditEndNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
//如果是最后一个审批
|
||
var entity = GetEntity<T_BS_SAFE_CHECK>((modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID), new string[] { "Nav_ListSafeCheckDetail", "Nav_User", "Nav_CheckType", "Nav_CheckTypeLevel.Nav_Enums" });
|
||
if (!entity.PLAN_SET_ID.HasValue || !entity.CHECKTIME.HasValue || entity.CHECKTIME.Value.Date == DateTime.Now.Date) //同一天
|
||
{
|
||
entity.ISFINISHINTTIME = true;
|
||
}
|
||
else
|
||
{
|
||
var modelPlanset = GetEntity<T_BS_PLAN_SET>(entity.PLAN_SET_ID.Value);
|
||
if (modelPlanset == null)
|
||
{
|
||
entity.ISFINISHINTTIME = true;
|
||
}
|
||
else
|
||
{
|
||
DateTime dtLast = SafeCheckService.GetEndTime((BSPLANCHECKFREQUENCYEnum)modelPlanset.PLANCHECKFREQUENCY, modelPlanset.CHECKTIME);//最迟时间
|
||
if (!entity.ISFINISHINTTIME && DateTime.Now <= dtLast)
|
||
{
|
||
entity.ISFINISHINTTIME = true;
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//// 1、审批记录单 判断审批结果 修改安全检查表制定的单审批状态
|
||
//T_PF_APPROVE modelApprove = this.GetEntity<T_PF_APPROVE>(e => e.DATA_ID == modelApp.DATA_ID && e.APPROVE_CODE == "BS034_SHOWPRINT");
|
||
//if (modelApprove.APPROVE_STATUS == 10)
|
||
// entity.STATUCHECK = (int)HMAuditStatusEnmu.归档; //已完成
|
||
//else if (modelApprove.APPROVE_STATUS == 20)
|
||
// entity.STATUCHECK = (int)HMAuditStatusEnmu.审批驳回; //已驳回
|
||
if (isApprovel)
|
||
{
|
||
if (entityInt.CurrentNode.NODE_APPROVE_STATUS == 10)
|
||
entity.STATUCHECK = (int)HMAuditStatusEnmu.归档; //已完成
|
||
else if (entityInt.CurrentNode.NODE_APPROVE_STATUS == 20)
|
||
entity.STATUCHECK = (int)HMAuditStatusEnmu.审批驳回; //已驳回
|
||
}
|
||
|
||
//组合库
|
||
List<T_BS_CHECK_MAIN> listCheckMain = new List<T_BS_CHECK_MAIN>();
|
||
List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT> listCheckMainDep = new List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT>();
|
||
List<T_BS_SAFE_CHECK_DETAIL> listCheckDetail = new List<T_BS_SAFE_CHECK_DETAIL>();
|
||
|
||
List<T_BS_CHECK_MAIN> listUpdateMain = new List<T_BS_CHECK_MAIN>();
|
||
|
||
List<T_BS_CHECK_MAIN> checkMainChangeAll = new List<T_BS_CHECK_MAIN>();//所有被修改的检查库
|
||
var checkMainChange = entity.Nav_ListSafeCheckDetail.Where(e => e.CHECK_MAIN_ID.HasValue && e.ISMAINCHANGE);
|
||
if (checkMainChange != null && checkMainChange.Any())
|
||
{
|
||
List<Guid> listMainID = checkMainChange.Select(e => e.CHECK_MAIN_ID.Value).ToList();
|
||
checkMainChangeAll = GetEntities<T_BS_CHECK_MAIN>(e => listMainID.Contains(e.ID), null, new string[] { "Nav_ListMainDep" }).ToList();
|
||
}
|
||
|
||
List<T_FM_DEPARTMENT> listDepMainCheck = new List<T_FM_DEPARTMENT>();
|
||
T_FM_DEPARTMENT depMainCheck = null;
|
||
T_FM_DEPARTMENT depMade = null;//制表人 所在组织
|
||
//可能和安全隐患对接
|
||
foreach (var item in entity.Nav_ListSafeCheckDetail)
|
||
{
|
||
if (entity.RISKSTATE == 0 && item.CHECKRESULT.HasValue && (item.CHECKRESULT.Value == 20 || item.CHECKRESULT.Value == 30))
|
||
{
|
||
//检查有问题 待安全隐患上报 20 与描述一致 30 其他
|
||
entity.RISKSTATE = 10;
|
||
}
|
||
|
||
#region 如果 不是检查库 需要添加组合库 同时修改检查信息中的ID
|
||
|
||
if ((item.CHECK_MAIN_ID == null || item.CHECK_MAIN_ID == Guid.Empty) && item.CHECKRESULT == 20 && item.QUESTION_LEVEL.HasValue)
|
||
{
|
||
#region 检查制定 手动添加 记录
|
||
//添加隐患库
|
||
//检查问题 手动输入 没有 整改建议与措施 不能入库
|
||
T_BS_CHECK_MAIN modelAdd = new T_BS_CHECK_MAIN();
|
||
modelAdd.ID = Guid.NewGuid();
|
||
modelAdd.ISRISK = true;
|
||
|
||
modelAdd.CHECKOBJECT = entity.CHECKOBJECT.Value;
|
||
modelAdd.CHECK_PROJECT_ID = item.CHECK_PROJECT_ID;
|
||
//modelAdd.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
|
||
modelAdd.CHECK_QUESTION_ID = GetEntity<T_BS_SAFE_CHECK_DETAIL_QUESTION>(e => e.SAFE_CHECK_DETAIL_ID == item.ID).SAFE_CHECK_QUESTION_ID;
|
||
|
||
modelAdd.CHECKCONTENT = item.CHECKCONTENT;
|
||
modelAdd.CHECKPROOF = item.CHECKPROOF;
|
||
|
||
modelAdd.QUESTION_LEVEL = item.QUESTION_LEVEL.Value;
|
||
|
||
if (modelAdd.QUESTION_LEVEL == 10)
|
||
modelAdd.SERIOUS_RISK = 1;
|
||
else
|
||
modelAdd.SERIOUS_RISK = 0;
|
||
|
||
modelAdd.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
modelAdd.CHECK_TYPE_LEVEL_ID = entity.CHECK_TYPE_LEVEL_ID;
|
||
modelAdd.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
modelAdd.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
modelAdd.NUM = 0;
|
||
modelAdd.IS_DELETED = false;
|
||
modelAdd.ORG_ID = item.ORG_ID;
|
||
//modelAdd.FORM_ID = item.FORM_ID;
|
||
modelAdd.CREATE_TIME = DateTime.Now;
|
||
modelAdd.CREATER_ID = entity.USERID_DOPLAN.Value;
|
||
|
||
//modelAdd.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
depMainCheck = listDepMainCheck.FirstOrDefault(e => e.ID == item.DEPARTMENT_ID);
|
||
if (depMainCheck == null)
|
||
{
|
||
depMainCheck = GetEntity<T_FM_DEPARTMENT>(item.DEPARTMENT_ID.Value);
|
||
listDepMainCheck.Add(depMainCheck);
|
||
}
|
||
//if (item.CREATER_ID == depMainCheck.USER_ID)
|
||
//{
|
||
// if (depMainCheck.DEPARTMENT_TYPE == 2)
|
||
// {
|
||
// modelAdd.RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
// }
|
||
// else
|
||
// {
|
||
// modelAdd.RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
// }
|
||
//}
|
||
//else
|
||
//{
|
||
// modelAdd.RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
//}
|
||
|
||
|
||
//modelAdd.ENTITY_ORG_TPYE = item.ENTITY_ORG_TPYE;
|
||
//modelAdd.FLOW_STATUS = item.FLOW_STATUS;
|
||
//modelAdd.FLOW_SEND_STATUS = item.FLOW_SEND_STATUS;
|
||
//modelAdd.FLOW_ID = item.FLOW_ID;
|
||
//modelAdd.MODIFY_TIME = item.MODIFY_TIME;
|
||
//modelAdd.MODIFIER_ID = item.MODIFIER_ID;
|
||
|
||
modelAdd.CHECK_PROJECT_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelAdd.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID;
|
||
listCheckMain.Add(modelAdd);//不判断去重了,按理有就直接选择了,不会删除自己再手动选
|
||
|
||
//会写到检查信息
|
||
item.CHECK_MAIN_ID = modelAdd.ID;
|
||
if (depMade == null)
|
||
{
|
||
depMade = GetEntity<T_FM_USER>(entity.USERID_DOPLAN.Value, "Nav_Department").Nav_Department;
|
||
}
|
||
|
||
//组织范围
|
||
listCheckMainDep.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelAdd.ID,
|
||
IS_DELETED = false,
|
||
ORG_ID = modelAdd.ORG_ID,
|
||
//ENTITY_ORG_TPYE = ,
|
||
//FORM_ID = ,
|
||
//FLOW_STATUS = ,
|
||
//FLOW_SEND_STATUS = ,
|
||
//FLOW_ID = ,
|
||
CREATE_TIME = modelAdd.CREATE_TIME,
|
||
MODIFY_TIME = modelAdd.CREATE_TIME,
|
||
CREATER_ID = modelAdd.CREATER_ID,
|
||
MODIFIER_ID = modelAdd.CREATER_ID,
|
||
DEPARTMENT_ID = depMade.ID,//制表人 所在组织
|
||
//RESPONOBJECT = modelAdd.RESPONOBJECT,
|
||
});
|
||
|
||
listCheckDetail.Add(item);
|
||
|
||
#endregion
|
||
|
||
}
|
||
else if (item.ISMAINCHANGE && item.CHECK_MAIN_ID.HasValue && checkMainChangeAll != null && checkMainChangeAll.Count > 0)
|
||
{
|
||
#region 安全检查 修改 添加隐患库 或者 修改 隐患库安全检查可修改的字段 修改 标志符
|
||
|
||
var main = checkMainChangeAll.FirstOrDefault(e => e.ID == item.CHECK_MAIN_ID.Value);
|
||
if (main == null)
|
||
continue;
|
||
if (main.CHECK_PROJECT_ID != item.CHECK_PROJECT_ID || main.CHECK_PROJECT_PROJECT_CATEGORY_ID != item.CHECK_PROJECT_PROJECT_CATEGORY_ID || main.CHECKCONTENT != item.CHECKCONTENT || main.CHECKPROOF != item.CHECKPROOF || main.RISK_AREA_ID != item.RISK_AREA_ID || (item.QUESTION_LEVEL.HasValue && main.QUESTION_LEVEL != item.QUESTION_LEVEL))
|
||
{
|
||
//有修改
|
||
if (!main.ISRISK)
|
||
{
|
||
//安全库 被修改
|
||
main.ENABLE_STATUS = 1;// FMEnableStatusEnum.禁用;
|
||
listUpdateMain.Add(main);
|
||
//隐患库被修改
|
||
//修改 修改的信息 更新到 库中 删除新增的库信息
|
||
T_BS_CHECK_MAIN modelMain = new T_BS_CHECK_MAIN();
|
||
modelMain.ID = Guid.NewGuid();
|
||
modelMain.CHECKOBJECT = main.CHECKOBJECT;
|
||
modelMain.NUM = main.NUM;
|
||
modelMain.CHECK_PROJECT_ID = item.CHECK_PROJECT_ID;
|
||
modelMain.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID == null ? main.CHECK_QUESTION_ID : item.CHECK_QUESTION_ID;
|
||
modelMain.CHECKCONTENT = item.CHECKCONTENT;
|
||
modelMain.CHECKPROOF = item.CHECKPROOF;
|
||
modelMain.QUESTION_LEVEL = item.QUESTION_LEVEL.HasValue ? item.QUESTION_LEVEL.Value : main.QUESTION_LEVEL;
|
||
modelMain.SERIOUS_RISK = modelMain.QUESTION_LEVEL == 10 ? 1 : 0;// (int)item.SERIOUS_RISK;
|
||
modelMain.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
modelMain.CHECK_TYPE_LEVEL_ID = entity.CHECK_TYPE_LEVEL_ID;
|
||
modelMain.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
modelMain.ORG_ID = item.ORG_ID;
|
||
modelMain.ENTITY_ORG_TPYE = item.ENTITY_ORG_TPYE;
|
||
modelMain.FORM_ID = item.FORM_ID;
|
||
modelMain.FLOW_STATUS = item.FLOW_STATUS;
|
||
modelMain.FLOW_SEND_STATUS = item.FLOW_SEND_STATUS;
|
||
modelMain.FLOW_ID = item.FLOW_ID;
|
||
modelMain.CREATE_TIME = DateTime.Now;
|
||
modelMain.MODIFY_TIME = DateTime.Now;
|
||
modelMain.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
modelMain.MODIFIER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
modelMain.CHECK_PROJECT_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelMain.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID;
|
||
modelMain.ISRISK = true;
|
||
modelMain.IS_DELETED = false;
|
||
modelMain.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
|
||
modelMain.CHECK_CONTENTS_ID = main.CHECK_CONTENTS_ID;//改不到检查内容
|
||
|
||
listCheckMain.Add(modelMain);//添加待添加的信息 和 手动添加的一起
|
||
foreach (var itemDe in main.Nav_ListMainDep)
|
||
{
|
||
listCheckMainDep.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelMain.ID,
|
||
IS_DELETED = false,
|
||
ORG_ID = modelMain.ORG_ID,
|
||
//ENTITY_ORG_TPYE = ,
|
||
//FORM_ID = ,
|
||
//FLOW_STATUS = ,
|
||
//FLOW_SEND_STATUS = ,
|
||
//FLOW_ID = ,
|
||
CREATE_TIME = modelMain.CREATE_TIME,
|
||
MODIFY_TIME = modelMain.CREATE_TIME,
|
||
CREATER_ID = modelMain.CREATER_ID,
|
||
MODIFIER_ID = modelMain.CREATER_ID,
|
||
DEPARTMENT_ID = itemDe.DEPARTMENT_ID,
|
||
RESPONOBJECT = itemDe.RESPONOBJECT,
|
||
});
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//隐患库 修改 安全检查可修改到的信息
|
||
main.MODIFIER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
main.MODIFY_TIME = DateTime.Now;
|
||
main.CHECK_PROJECT_ID = item.CHECK_PROJECT_ID;
|
||
main.CHECK_PROJECT_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
main.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID;
|
||
main.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
|
||
main.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
main.QUESTION_LEVEL = item.QUESTION_LEVEL.HasValue ? item.QUESTION_LEVEL.Value : main.QUESTION_LEVEL;
|
||
main.SERIOUS_RISK = main.QUESTION_LEVEL == 10 ? 1 : 0;
|
||
main.CHECKCONTENT = item.CHECKCONTENT;
|
||
main.CHECKPROOF = item.CHECKPROOF;
|
||
listUpdateMain.Add(main);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//手动修改 并未实际修改
|
||
item.ISMAINCHANGE = false;
|
||
listCheckDetail.Add(item);//实质没有修改
|
||
}
|
||
#endregion
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
entity.STATECHECK = STATECHECK.Archived;
|
||
|
||
DateTime? dtTaskEnd = null;
|
||
dtTaskEnd = taskFinish?.TASK_ENDDT;
|
||
|
||
|
||
//给制表人发送待办
|
||
if (entity.RISKSTATE == 10 && entity.USERID_DOPLAN.HasValue)
|
||
{
|
||
//结束 + 上报
|
||
|
||
#region 隐患上报信息 发隐患上报信息 出去 流程各时间也对应
|
||
|
||
T_BS_RISK_SUBMIT modelSub = new T_BS_RISK_SUBMIT();
|
||
modelSub = new T_BS_RISK_SUBMIT();
|
||
modelSub.ID = Guid.NewGuid();
|
||
modelSub.CODE = entity.CODE;//替换成同一个
|
||
modelSub.NAME = entity.Nav_CheckTypeLevel.Nav_Enums.NAME + entity.Nav_CheckType.NAME;
|
||
modelSub.Nav_Check = entity;
|
||
modelSub.Nav_CheckType = entity.Nav_CheckType;
|
||
modelSub.Nav_CheckTypeLevel = entity.Nav_CheckTypeLevel;
|
||
modelSub.CREATER_ID = entity.USERID_DOPLAN;
|
||
modelSub.CREATE_TIME = DateTime.Now;//绩效报表 取当前时间
|
||
modelSub.CHECK_ID = entity.ID;
|
||
modelSub.CHECKTIME = entity.CHECKTIME;
|
||
modelSub.SUBMIT_STATUS = (int)BSSubmitStatusEnum.WaiteStart;
|
||
modelSub.USER_ID = modelSub.CREATER_ID;
|
||
modelSub.DEPARTMENT_ID = entity.Nav_User.DEPARTMENT_ID;
|
||
modelSub.SUBMIT_TYPE = (int)SUBMIT_TYPE.Check;
|
||
modelSub.ISORDEREND = false;
|
||
modelSub.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
modelSub.CHECK_TYPE_LEVEL_ID = entity.CHECK_TYPE_LEVEL_ID;
|
||
modelSub.ORG_ID = entity.ORG_ID;
|
||
if (entity.CHECKOBJECT.HasValue)
|
||
{
|
||
try
|
||
{
|
||
modelSub.CHECKOBJECT = (BSMineTypeEnum)entity.CHECKOBJECT;
|
||
}
|
||
catch { }
|
||
}
|
||
|
||
List<T_BS_RISK_SUBMIT_FILE> Nav_Files = null;
|
||
|
||
var files = GetEntities<T_BS_SAFE_CHECK_FILE>(e => e.SAFE_CHECK_ID == entity.ID, false, null);
|
||
if (files != null && files.Any())
|
||
{
|
||
Nav_Files = new List<T_BS_RISK_SUBMIT_FILE>();
|
||
foreach (var item in files)
|
||
{
|
||
Nav_Files.Add(new T_BS_RISK_SUBMIT_FILE()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
ORG_ID = modelSub.ORG_ID,
|
||
RISK_SUBMIT_ID = modelSub.ID,
|
||
IMG_FILE_ID = item.IMG_FILE_ID
|
||
});
|
||
}
|
||
}
|
||
|
||
List<T_BS_RISK_SUBMIT_CONTENT> ListRiskSubmitContent = new List<T_BS_RISK_SUBMIT_CONTENT>();
|
||
entity.Nav_ListSafeCheckDetail = entity.Nav_ListSafeCheckDetail.OrderBy(e => e.ROW_NO).ToList();
|
||
int ROW_NO = 0;
|
||
foreach (var item in entity.Nav_ListSafeCheckDetail)
|
||
{
|
||
if (!item.CHECKRESULT.HasValue || item.CHECKRESULT.Value != 20) // CHECKRESULTEnum.Same
|
||
{
|
||
continue;
|
||
}
|
||
ROW_NO++;
|
||
ListRiskSubmitContent.Add(new T_BS_RISK_SUBMIT_CONTENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
ORG_ID = modelSub.ORG_ID,
|
||
RISK_SUBMIT_ID = modelSub.ID,
|
||
SAFE_CHECK_DETAIL_ID = item.ID,
|
||
NAME = null,
|
||
CODE = null,
|
||
//QUESTION_LEVEL = 0,
|
||
//RiskContentState= RiskContentState.
|
||
ROW_NO = ROW_NO,
|
||
CHECK_MAIN_ID = item.CHECK_MAIN_ID,
|
||
DEPARTMENT_ID = item.DEPARTMENT_ID,
|
||
SERIOUS_RISK = item.SERIOUS_RISK,
|
||
//CHECKCONTENT = item.CHECKCONTENT,
|
||
RISK_AREA_ID = item.RISK_AREA_ID,
|
||
CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID,
|
||
//这两个字段作为是否操作过的标签
|
||
//CHECK_PROJECT_ID = item.CHECK_PROJECT_ID,
|
||
//CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID,
|
||
ADDRESS = item.ADDRESS
|
||
});
|
||
}
|
||
|
||
#endregion
|
||
|
||
|
||
|
||
entity.ISNEEDTOUP = false;
|
||
|
||
//检查发现问题问题 走隐患上报
|
||
//最后时间是今天
|
||
//DateTime dtTimeOut = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59"));
|
||
DateTime dtTimeOut = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_Risk_Up, entity.ORG_ID.Value, DateTime.Now, null, null);
|
||
|
||
if (entity.Nav_User == null)
|
||
entity.Nav_User = GetEntity<T_FM_USER>(entity.USERID_DOPLAN.Value);
|
||
|
||
//给 表单制定人 添加待办
|
||
//NotificationTaskService.SendNotificationTask("隐患待上报:" + entity.NAME, modelSub.ID, entity.ORG_ID, entity.USERID_DOPLAN.Value, entity.Nav_User.NAME, DateTime.Now, dtTimeOut, 0, "BS006", () =>
|
||
// {
|
||
// UpdateEntityNoCommit(entity);//修改隐患
|
||
// UpdateEntity(modelSub);//添加隐患上报
|
||
// });
|
||
|
||
// entity.ID 被 modelSub.ID 替换
|
||
|
||
|
||
|
||
var listOperateLog = GetListOperateLog(OPERATEPOINT_Enums.CheckResultAudit, entity.ID, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { entity.USERID_DOPLAN.Value }, new List<string>() { entity.Nav_User.NAME }, entity.ORG_ID, modelSub.ID, null, false, dtTaskEnd);
|
||
|
||
//modelSubOPERATEPOINT_Enums.RiskGet
|
||
//var listOperateLogRisk = GetListOperateLog(OPERATEPOINT_Enums.RiskGet, modelSub.ID, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { entity.USERID_DOPLAN.Value }, new List<string>() { entity.Nav_User.NAME }, entity.ORG_ID, null, null, false, dtTaskEnd);
|
||
|
||
|
||
NotificationTaskService.SendNotificationTask("隐患待上报:" + entity.NAME.Replace("安全检查:", ""), modelSub.ID, entity.ORG_ID, entity.USERID_DOPLAN.Value, entity.Nav_User.NAME, DateTime.Now, dtTimeOut, 0, "BS006", () =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
|
||
UpdateEntityNoCommit(entity);//修改隐患 //UpdateEntity(modelSub);//添加隐患上报
|
||
if (listCheckMain.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listCheckMain);
|
||
if (listCheckMainDep.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listCheckMainDep);
|
||
if (listCheckDetail != null && listCheckDetail.Any())//修改检查明细 MainID ISMAINCHANGE
|
||
BantchUpdateEntityNoCommit(listCheckDetail);
|
||
if (listUpdateMain != null && listUpdateMain.Any())//安全检查库修改不可用
|
||
BantchUpdateEntityNoCommit(listUpdateMain);
|
||
|
||
UpdateEntityNoCommit(modelSub);
|
||
if (Nav_Files != null && Nav_Files.Any())//附件
|
||
BantchSaveEntityNoCommit(Nav_Files);
|
||
if (ListRiskSubmitContent != null && ListRiskSubmitContent.Any())
|
||
BantchSaveEntityNoCommit(ListRiskSubmitContent);
|
||
if (listOperateLog != null && listOperateLog.Any())
|
||
BantchSaveEntityNoCommit(listOperateLog);//安全检查操作记录//隐患待上报操作记录
|
||
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var listOperateLog = GetListOperateLog(OPERATEPOINT_Enums.CheckResultAudit, entity.ID, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, null, null, entity.ORG_ID, null, null, true, dtTaskEnd);
|
||
//直接结束
|
||
entity.ISNEEDTOUP = true;
|
||
//检查没问题 直接结束 安全检查
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
|
||
if (entity != null)
|
||
UpdateEntityNoCommit(entity); //保存主表
|
||
if (listCheckMain.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listCheckMain);
|
||
if (listCheckMainDep.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listCheckMainDep);
|
||
if (listCheckDetail != null && listCheckDetail.Any())//修改检查明细 MainID ISMAINCHANGE
|
||
BantchUpdateEntityNoCommit(listCheckDetail);
|
||
if (listUpdateMain != null && listUpdateMain.Any())//安全检查库修改不可用
|
||
BantchUpdateEntityNoCommit(listUpdateMain);
|
||
if (listOperateLog != null && listOperateLog.Any())//操作记录
|
||
BantchSaveEntityNoCommit(listOperateLog);
|
||
});
|
||
}
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 隐患上报 审核通过 给每个通知负责人发送通知
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool NoticeNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
//给对应通知责任人发送待办
|
||
T_BS_RISK_SUBMIT_NOTICE entity = this.GetEntity<T_BS_RISK_SUBMIT_NOTICE>(entityInt.DATA_ID, new string[] { "Nav_ListRiskSubmitContent.Nav_SafeCheckDetail", "Nav_ListRiskSubmitContent.Nav_User" });
|
||
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listContent = entity.Nav_ListRiskSubmitContent;
|
||
int delayDays = 0;
|
||
bool isNoticeCheck = false;//新版 直接通知 验收人
|
||
if (listContent != null && listContent.Any() && listContent[0].DEAL_USER_ID.HasValue && listContent[0].LastDateUser.HasValue)//CHECK_USER_ID =>DEAL_USER_ID
|
||
{
|
||
//新版 有设置验收人 整改期限
|
||
isNoticeCheck = true;
|
||
}
|
||
else
|
||
{
|
||
var delays = GetEntity<T_BS_RISK_LEVEL_DELAY_DAYS>(e => e.QUESTION_LEVEL == entity.QUESTION_LEVEL);
|
||
if (delays != null)
|
||
{
|
||
delayDays = delays.MAX_DELAY_DAYS;
|
||
}
|
||
else
|
||
{
|
||
switch (entity.QUESTION_LEVEL)
|
||
{
|
||
case (int)BSQuestionLevelEnum.重大:
|
||
delayDays = (int)BSDelayDaysEnum.重大;
|
||
break;
|
||
case (int)BSQuestionLevelEnum.A:
|
||
delayDays = (int)BSDelayDaysEnum.A;
|
||
break;
|
||
case (int)BSQuestionLevelEnum.B:
|
||
delayDays = (int)BSDelayDaysEnum.B;
|
||
break;
|
||
case (int)BSQuestionLevelEnum.C:
|
||
delayDays = (int)BSDelayDaysEnum.C;
|
||
break;
|
||
case (int)BSQuestionLevelEnum.D:
|
||
delayDays = (int)BSDelayDaysEnum.D;
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
List<T_BS_CHECK_MAIN> listMainConbinAdd = new List<T_BS_CHECK_MAIN>();
|
||
List<T_BS_CHECK_QUESTION> listMainConbinQuestionAdd = new List<T_BS_CHECK_QUESTION>();
|
||
List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT> listMainConbinDepAdd = new List<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT>();
|
||
//更新对应的检查问题
|
||
List<T_BS_SAFE_CHECK_DETAIL> listSafecheckDetail = new List<T_BS_SAFE_CHECK_DETAIL>();
|
||
|
||
T_BS_SAFE_CHECK safeCheck = null;
|
||
T_FM_DEPARTMENT depMainCheck = null;
|
||
List<T_FM_DEPARTMENT> listDepMainCheck = new List<T_FM_DEPARTMENT>();
|
||
|
||
|
||
|
||
|
||
string[] codeList = new string[listContent.Count];
|
||
string codeTemp = "YHTZ" + DateTime.Now.ToString("yyyyMMddHHmmss");
|
||
for (int j = 0; j < listContent.Count; j++)
|
||
{
|
||
codeList[j] = codeTemp + j;
|
||
}
|
||
|
||
//T_BS_RISK_SUBMIT entityMain = this.GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value);
|
||
|
||
T_BS_RISK_SUBMIT entityMain = null;
|
||
var listContentID = listContent.Select(e => e.ID);
|
||
|
||
var listConts = GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.RISK_SUBMIT_ID == entity.RISK_SUBMIT_ID.Value && !listContentID.Contains(e.ID) && !e.USER_ID.HasValue && e.NOTICEDATE.HasValue);//除了这单 别的都有分配通知责任人通知时间
|
||
if (listConts == null || !listConts.Any())
|
||
{
|
||
entityMain = GetEntity<T_BS_RISK_SUBMIT>(entity.RISK_SUBMIT_ID.Value);
|
||
entityMain.SUBMITFINISHTIME = DateTime.Now;
|
||
if (!entityMain.STARTTIME.HasValue)
|
||
{
|
||
entityMain.STARTTIME = entityMain.CREATE_TIME;
|
||
}
|
||
if (entityMain.STARTTIME.HasValue || entityMain.STARTTIME.Value.AddDays(1) > entityMain.SUBMITFINISHTIME)
|
||
entityMain.ISSUBMITFINISHINTTIME = true;
|
||
else
|
||
entityMain.ISSUBMITFINISHINTTIME = false;
|
||
}
|
||
|
||
List<T_FM_NOTIFICATION_TASK> listNotice = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<T_BS_RISK_SUBMIT_NOTICE_PERSON> listNoticePerson = new List<T_BS_RISK_SUBMIT_NOTICE_PERSON>();
|
||
T_BS_RISK_SUBMIT_NOTICE_PERSON temp = null;
|
||
|
||
List<Guid> listDataID = new List<Guid>();
|
||
List<Guid> listUserID = new List<Guid>();
|
||
List<string> listUserName = new List<string>();
|
||
List<string> listName = new List<string>();
|
||
List<DateTime> listEndTime = new List<DateTime>();
|
||
DateTime dtTaskEndTime = DateTime.Now;
|
||
int i = 0;
|
||
|
||
foreach (var item in listContent)
|
||
{
|
||
i++;
|
||
item.CODE = entity.CODE + "_" + i.ToString();
|
||
item.NAME = "隐患整改通知:" + entity.NAME;
|
||
|
||
if (!isNoticeCheck)
|
||
{
|
||
item.LastDateSystem = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd 23:59:59")).AddDays(delayDays);
|
||
}
|
||
|
||
item.NOTICEDATE = DateTime.Now;
|
||
item.RiskContentState = (int)RiskContentState.Notice;
|
||
|
||
//隐患上报 问题 通知责任人 相同 同一个通知 (后续分配整改信息)
|
||
if (isNoticeCheck)
|
||
{
|
||
temp = listNoticePerson.FirstOrDefault(x => x.USER_ID == item.DEAL_USER_ID.Value);//CHECK_USER_ID
|
||
if (temp == null)
|
||
{
|
||
temp = new T_BS_RISK_SUBMIT_NOTICE_PERSON();
|
||
temp.ID = Guid.NewGuid();
|
||
temp.USER_ID = item.DEAL_USER_ID.Value;//CHECK_USER_ID
|
||
temp.ORG_ID = item.ORG_ID;
|
||
temp.NAME = item.NAME;
|
||
temp.CODE = item.CODE;
|
||
temp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID;
|
||
temp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID;
|
||
temp.QUESTION_LEVEL = item.QUESTION_LEVEL;
|
||
|
||
listNoticePerson.Add(temp);
|
||
listDataID.Add(temp.ID);
|
||
listUserID.Add(temp.USER_ID);
|
||
|
||
dtTaskEndTime = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Checker, entity.ORG_ID.Value, DateTime.Now, null, entity.Nav_ListRiskSubmitContent.Where(e => e.DEAL_USER_ID == temp.USER_ID && e.LastDateUser.HasValue).OrderBy(e => e.LastDateUser).ToList()[0].LastDateUser.Value);//CHECK_USER_ID
|
||
listEndTime.Add(dtTaskEndTime);
|
||
|
||
if (item.Nav_UserDeal != null)//Nav_UserCheck
|
||
{
|
||
listUserName.Add(item.Nav_UserDeal.NAME);//Nav_UserCheck
|
||
}//listUserName.Add(item.Nav_User.NAME);
|
||
listName.Add("整改责任人指定落实人:" + entity.NAME);// temp.NAME
|
||
}
|
||
}
|
||
else
|
||
{
|
||
temp = listNoticePerson.FirstOrDefault(x => x.USER_ID == item.DEAL_USER_ID);//USER_ID
|
||
if (temp == null)
|
||
{
|
||
temp = new T_BS_RISK_SUBMIT_NOTICE_PERSON();
|
||
temp.ID = Guid.NewGuid();
|
||
temp.USER_ID = item.DEAL_USER_ID.Value;//USER_ID
|
||
temp.ORG_ID = item.ORG_ID;
|
||
temp.NAME = item.NAME;
|
||
temp.CODE = item.CODE;
|
||
temp.RISK_SUBMIT_ID = item.RISK_SUBMIT_ID;
|
||
temp.RISK_SUBMIT_NOTICE_ID = item.RISK_SUBMIT_NOTICE_ID;
|
||
temp.QUESTION_LEVEL = item.QUESTION_LEVEL;
|
||
|
||
listNoticePerson.Add(temp);
|
||
listDataID.Add(temp.ID);
|
||
listUserID.Add(temp.USER_ID);
|
||
if (item.Nav_UserDeal != null)
|
||
{
|
||
listUserName.Add(item.Nav_UserDeal?.NAME);
|
||
}
|
||
listName.Add("整改责任人确认:" + entity.NAME);//temp.NAME
|
||
|
||
dtTaskEndTime = NotificationTaskService.GetTaskEndTime(FMTASKTYPE.BS_RiskUp_Checker, entity.ORG_ID.Value, DateTime.Now, null, entity.Nav_ListRiskSubmitContent.Where(e => e.CHECK_USER_ID == temp.USER_ID && e.LastDateUser.HasValue).OrderBy(e => e.LastDateUser).ToList()[0].LastDateUser.Value);
|
||
listEndTime.Add(dtTaskEndTime);
|
||
}
|
||
}
|
||
|
||
if (listUserName != null && string.IsNullOrEmpty(listUserName[0]))
|
||
{
|
||
var listUserIDDis = listUserID.Distinct();
|
||
var listModelUser = GetEntities<T_FM_USER>(e => listUserIDDis.Contains(e.ID));
|
||
for (int j = 0; j < listUserID.Count; j++)
|
||
{
|
||
listUserName[i] = listModelUser.FirstOrDefault(e => e.ID == listUserID[j])?.NAME;
|
||
}
|
||
}
|
||
|
||
item.RISK_SUBMIT_NOTICE_PERSON_ID = temp.ID;//个人通知ID绑定明细
|
||
if (item.Nav_SafeCheckDetail != null)
|
||
{
|
||
if (item.Nav_SafeCheckDetail.CHECKRESULT.HasValue && item.Nav_SafeCheckDetail.CHECKRESULT == 30)//检查结果 其他
|
||
{
|
||
//添加安全检查库信息
|
||
|
||
#region MyRegion
|
||
if (safeCheck == null)
|
||
{
|
||
safeCheck = GetEntity<T_BS_SAFE_CHECK>(item.Nav_SafeCheckDetail.SAFE_CHECK_ID);
|
||
}
|
||
T_BS_CHECK_QUESTION ques = new T_BS_CHECK_QUESTION();
|
||
ques.ID = Guid.NewGuid();
|
||
ques.ORG_ID = item.ORG_ID;
|
||
ques.DESCREPTION = item.DESCREPTION;
|
||
ques.DEMAND = item.DEMAND;
|
||
ques.IS_DELETED = false;
|
||
ques.ENABLE_STATUS = 0;
|
||
|
||
ques.CHECK_CONTENTS_ID = item.CHECK_CONTENTS_ID;
|
||
ques.QUESTION_LEVEL = (BSQuestionLevelEnum)(item.Nav_SafeCheckDetail.QUESTION_LEVEL.HasValue ? item.Nav_SafeCheckDetail.QUESTION_LEVEL.Value : 20);
|
||
|
||
listMainConbinQuestionAdd.Add(ques);
|
||
|
||
|
||
//添加隐患库
|
||
//检查问题 手动输入 没有 整改建议与措施 不能入库
|
||
T_BS_CHECK_MAIN modelAdd = new T_BS_CHECK_MAIN();
|
||
modelAdd.ID = Guid.NewGuid();
|
||
modelAdd.ISRISK = true;
|
||
|
||
modelAdd.CHECKOBJECT = safeCheck.CHECKOBJECT.Value;
|
||
modelAdd.CHECK_PROJECT_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_ID;
|
||
modelAdd.CHECK_QUESTION_ID = ques.ID;
|
||
modelAdd.CHECKCONTENT = item.CHECKCONTENT;
|
||
modelAdd.CHECKPROOF = item.Nav_SafeCheckDetail.CHECKPROOF;
|
||
|
||
modelAdd.QUESTION_LEVEL = item.Nav_SafeCheckDetail.QUESTION_LEVEL.HasValue ? item.Nav_SafeCheckDetail.QUESTION_LEVEL.Value : 20;
|
||
if (modelAdd.QUESTION_LEVEL == 10)
|
||
modelAdd.SERIOUS_RISK = 1;
|
||
else
|
||
modelAdd.SERIOUS_RISK = 0;
|
||
|
||
modelAdd.CHECK_TYPE_ID = safeCheck.CHECK_TYPE_ID;
|
||
modelAdd.CHECK_TYPE_LEVEL_ID = safeCheck.CHECK_TYPE_LEVEL_ID;
|
||
modelAdd.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
modelAdd.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
modelAdd.NUM = 0;
|
||
modelAdd.IS_DELETED = false;
|
||
modelAdd.ORG_ID = item.ORG_ID;
|
||
//modelAdd.FORM_ID = item.FORM_ID;
|
||
modelAdd.CREATE_TIME = DateTime.Now;
|
||
modelAdd.CREATER_ID = safeCheck.USERID_DOPLAN.Value;
|
||
|
||
//modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
//modelAdd.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
modelAdd.CHECK_PROJECT_CATEGORY_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
depMainCheck = listDepMainCheck.FirstOrDefault(e => e.ID == item.Nav_SafeCheckDetail.DEPARTMENT_ID);
|
||
if (depMainCheck == null)
|
||
{
|
||
depMainCheck = GetEntity<T_FM_DEPARTMENT>(item.Nav_SafeCheckDetail.DEPARTMENT_ID.Value);
|
||
listDepMainCheck.Add(depMainCheck);
|
||
}
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
//wyw1114-1
|
||
//modelAdd.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
if (item.CREATER_ID == depMainCheck.USER_ID)
|
||
{
|
||
if (depMainCheck.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
listMainConbinDepAdd.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelAdd.ID,
|
||
ORG_ID = modelAdd.ORG_ID,
|
||
DEPARTMENT_ID = item.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
});
|
||
|
||
listMainConbinAdd.Add(modelAdd);
|
||
//更新对应的检查问题
|
||
item.Nav_SafeCheckDetail.CHECK_MAIN_ID = modelAdd.ID;
|
||
listSafecheckDetail.Add(item.Nav_SafeCheckDetail);
|
||
|
||
#endregion
|
||
|
||
}
|
||
else if (!item.Nav_SafeCheckDetail.CHECK_MAIN_ID.HasValue && !item.Nav_SafeCheckDetail.CHECK_QUESTION_ID.HasValue)
|
||
{
|
||
#region MyRegion
|
||
|
||
if (safeCheck == null)
|
||
{
|
||
safeCheck = GetEntity<T_BS_SAFE_CHECK>(item.Nav_SafeCheckDetail.SAFE_CHECK_ID);
|
||
}
|
||
//添加隐患库
|
||
//检查问题 手动输入 没有 整改建议与措施 不能入库
|
||
T_BS_CHECK_MAIN modelAdd = new T_BS_CHECK_MAIN();
|
||
modelAdd.ID = Guid.NewGuid();
|
||
modelAdd.ISRISK = true;
|
||
|
||
modelAdd.CHECKOBJECT = safeCheck.CHECKOBJECT.Value;
|
||
modelAdd.CHECK_PROJECT_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_ID;
|
||
modelAdd.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
|
||
modelAdd.CHECKCONTENT = item.CHECKCONTENT;
|
||
modelAdd.CHECKPROOF = item.Nav_SafeCheckDetail.CHECKPROOF;
|
||
|
||
modelAdd.QUESTION_LEVEL = item.Nav_SafeCheckDetail.QUESTION_LEVEL.HasValue ? item.Nav_SafeCheckDetail.QUESTION_LEVEL.Value : 20;
|
||
if (modelAdd.QUESTION_LEVEL == 10)
|
||
modelAdd.SERIOUS_RISK = 1;
|
||
else
|
||
modelAdd.SERIOUS_RISK = 0;
|
||
|
||
modelAdd.CHECK_TYPE_ID = safeCheck.CHECK_TYPE_ID;
|
||
modelAdd.CHECK_TYPE_LEVEL_ID = safeCheck.CHECK_TYPE_LEVEL_ID;
|
||
modelAdd.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
modelAdd.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
modelAdd.NUM = 0;
|
||
modelAdd.IS_DELETED = false;
|
||
modelAdd.ORG_ID = item.ORG_ID;
|
||
//modelAdd.FORM_ID = item.FORM_ID;
|
||
modelAdd.CREATE_TIME = DateTime.Now;
|
||
modelAdd.CREATER_ID = safeCheck.USERID_DOPLAN.Value;
|
||
|
||
//modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
//modelAdd.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
modelAdd.CHECK_PROJECT_CATEGORY_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
depMainCheck = listDepMainCheck.FirstOrDefault(e => e.ID == item.Nav_SafeCheckDetail.DEPARTMENT_ID);
|
||
if (depMainCheck == null)
|
||
{
|
||
depMainCheck = GetEntity<T_FM_DEPARTMENT>(item.Nav_SafeCheckDetail.DEPARTMENT_ID.Value);
|
||
listDepMainCheck.Add(depMainCheck);
|
||
}
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
//wyw1114-1
|
||
//modelAdd.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
if (item.CREATER_ID == depMainCheck.USER_ID)
|
||
{
|
||
if (depMainCheck.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
listMainConbinDepAdd.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelAdd.ID,
|
||
ORG_ID = modelAdd.ORG_ID,
|
||
DEPARTMENT_ID = item.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
});
|
||
|
||
listMainConbinAdd.Add(modelAdd);
|
||
//更新对应的检查问题
|
||
item.Nav_SafeCheckDetail.CHECK_MAIN_ID = modelAdd.ID;
|
||
listSafecheckDetail.Add(item.Nav_SafeCheckDetail);
|
||
|
||
#endregion
|
||
}
|
||
|
||
}
|
||
|
||
#region MyRegion
|
||
|
||
//if (item.Nav_SafeCheckDetail != null && !item.Nav_SafeCheckDetail.CHECK_MAIN_ID.HasValue && !item.Nav_SafeCheckDetail.CHECK_QUESTION_ID.HasValue)
|
||
//{
|
||
// //组合的安全检查 完善数据库
|
||
|
||
// #region MyRegion
|
||
// if (safeCheck == null)
|
||
// {
|
||
// safeCheck = GetEntity<T_BS_SAFE_CHECK>(item.Nav_SafeCheckDetail.SAFE_CHECK_ID);
|
||
// }
|
||
// //添加隐患库
|
||
// //检查问题 手动输入 没有 整改建议与措施 不能入库
|
||
// T_BS_CHECK_MAIN modelAdd = new T_BS_CHECK_MAIN();
|
||
// modelAdd.ID = Guid.NewGuid();
|
||
// modelAdd.ISRISK = true;
|
||
|
||
// modelAdd.CHECKOBJECT = safeCheck.CHECKOBJECT.Value;
|
||
// modelAdd.CHECK_PROJECT_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_ID;
|
||
// modelAdd.CHECK_QUESTION_ID = item.CHECK_QUESTION_ID;
|
||
// modelAdd.CHECKCONTENT = item.CHECKCONTENT;
|
||
// modelAdd.CHECKPROOF = item.Nav_SafeCheckDetail.CHECKPROOF;
|
||
|
||
// modelAdd.QUESTION_LEVEL = item.Nav_SafeCheckDetail.QUESTION_LEVEL.HasValue ? item.Nav_SafeCheckDetail.QUESTION_LEVEL.Value : 20;
|
||
// if (modelAdd.QUESTION_LEVEL == 10)
|
||
// modelAdd.SERIOUS_RISK = 1;
|
||
// else
|
||
// modelAdd.SERIOUS_RISK = 0;
|
||
|
||
// modelAdd.CHECK_TYPE_ID = safeCheck.CHECK_TYPE_ID;
|
||
// modelAdd.CHECK_TYPE_LEVEL_ID = safeCheck.CHECK_TYPE_LEVEL_ID;
|
||
// modelAdd.RISK_AREA_ID = item.RISK_AREA_ID;
|
||
// modelAdd.ENABLE_STATUS = 0;// FMEnableStatusEnum.启用;
|
||
// modelAdd.NUM = 0;
|
||
// modelAdd.IS_DELETED = false;
|
||
// modelAdd.ORG_ID = item.ORG_ID;
|
||
// //modelAdd.FORM_ID = item.FORM_ID;
|
||
// modelAdd.CREATE_TIME = DateTime.Now;
|
||
// modelAdd.CREATER_ID = safeCheck.USERID_DOPLAN.Value;
|
||
|
||
// //modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
// //modelAdd.CHECK_PROJECT_CATEGORY_ID = item.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
// modelAdd.CHECK_PROJECT_CATEGORY_ID = item.Nav_SafeCheckDetail.CHECK_PROJECT_CATEGORY_ID.Value;
|
||
|
||
// depMainCheck = listDepMainCheck.FirstOrDefault(e => e.ID == item.Nav_SafeCheckDetail.DEPARTMENT_ID);
|
||
// if (depMainCheck == null)
|
||
// {
|
||
// depMainCheck = GetEntity<T_FM_DEPARTMENT>(item.Nav_SafeCheckDetail.DEPARTMENT_ID.Value);
|
||
// listDepMainCheck.Add(depMainCheck);
|
||
// }
|
||
// BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
// //wyw1114-1
|
||
// //modelAdd.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
// if (item.CREATER_ID == depMainCheck.USER_ID)
|
||
// {
|
||
// if (depMainCheck.DEPARTMENT_TYPE == 2)
|
||
// {
|
||
// RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
// }
|
||
// else
|
||
// {
|
||
// RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
// }
|
||
// }
|
||
// else
|
||
// {
|
||
// RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
// }
|
||
|
||
// listMainConbinDepAdd.Add(new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
// {
|
||
// ID = Guid.NewGuid(),
|
||
// MAIN_ID = modelAdd.ID,
|
||
// ORG_ID = modelAdd.ORG_ID,
|
||
// DEPARTMENT_ID = item.DEPARTMENT_ID,
|
||
// RESPONOBJECT = RESPONOBJECT
|
||
// });
|
||
|
||
// listMainConbinAdd.Add(modelAdd);
|
||
// //更新对应的检查问题
|
||
// item.Nav_SafeCheckDetail.CHECK_MAIN_ID = modelAdd.ID;
|
||
// listSafecheckDetail.Add(item.Nav_SafeCheckDetail);
|
||
|
||
// #endregion
|
||
|
||
//}
|
||
#endregion
|
||
}
|
||
List<T_BS_OPERATE_LOG> listOperateLog = new List<T_BS_OPERATE_LOG>();
|
||
//更新日期
|
||
//给隐患上报隐患通知责任人 发送待办
|
||
if (isNoticeCheck)
|
||
{
|
||
//listNotice = NotificationTaskService.InsertUserNoticeTaskModels(codeList, listName, listDataID, entity.ORG_ID, listUserID, listUserName, DateTime.Now, listEndTime, (int)FMNoticeTypeEnum.消息, "BS042_SHOWPRINT");
|
||
//整改责任人 指定 整改落实人
|
||
listNotice = NotificationTaskService.InsertUserNoticeTaskModels(codeList, listName, listDataID, entity.ORG_ID, listUserID, listUserName, DateTime.Now, listEndTime, (int)FMNoticeTypeEnum.消息, "BS074");
|
||
//整改责任人指定落实人:车间级巡回检查D级隐患
|
||
|
||
foreach (var item in listContent)
|
||
{
|
||
for (int j = 0; j < listUserID.Count; j++)
|
||
{
|
||
if (item.DEAL_USER_ID.HasValue && item.DEAL_USER_ID.Value == listUserID[j])
|
||
{
|
||
//给每个检查内容 发送 整改责任人确认 操作明细
|
||
listOperateLog.AddRange(GetListOperateLog(OPERATEPOINT_Enums.RiskSendAudit, entity.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, new List<Guid>() { listUserID[j] }, new List<string>() { listUserName[j] }, entity.ORG_ID, item.ID, null, false, taskFinish?.TASK_ENDDT));
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//listNotice = NotificationTaskService.InsertUserNoticeTaskModels(codeList, listName, listDataID, entity.ORG_ID, listUserID, listUserName, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS042");
|
||
listNotice = NotificationTaskService.InsertUserNoticeTaskModels(codeList, listName, listDataID, entity.ORG_ID, listUserID, listUserName, DateTime.Now, listEndTime, (int)FMNoticeTypeEnum.消息, "BS042");
|
||
}
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (isApprovel)
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
}
|
||
|
||
if (entityMain != null)//审批结束 如果隐患上报 全部明细都审批完成 登记完成时间
|
||
UpdateEntityNoCommit(entityMain);
|
||
if (listNoticePerson.Count > 0)
|
||
BantchSaveEntityNoCommit(listNoticePerson);
|
||
if (listContent.Count > 0)
|
||
BantchUpdateEntityNoCommit(listContent);
|
||
if (listNotice.Count > 0)
|
||
BantchSaveEntityNoCommit(listNotice);
|
||
|
||
if (listMainConbinAdd.Count > 0)//确定检查问题 添加安全检查记录
|
||
BantchSaveEntityNoCommit(listMainConbinAdd);
|
||
if (listMainConbinDepAdd.Count > 0)//确定检查问题 添加安全检查记录
|
||
BantchSaveEntityNoCommit(listMainConbinDepAdd);
|
||
if (listMainConbinQuestionAdd.Count > 0)//确定检查问题 添加检查问题
|
||
BantchSaveEntityNoCommit(listMainConbinQuestionAdd);
|
||
if (listSafecheckDetail.Count > 0)//确定检查问题 添加安全检查记录
|
||
BantchUpdateEntityNoCommit(listSafecheckDetail);
|
||
|
||
if (listOperateLog != null && listOperateLog.Any())//操作记录
|
||
BantchSaveEntityNoCommit(listOperateLog);
|
||
});
|
||
}
|
||
return true;
|
||
|
||
}
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 隐患上报 完成 修改各种状态 完善隐患库
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool DealEndNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var deal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(entityInt.DATA_ID, new string[] { "Nav_Submit.Nav_ListRiskSubmitContent", "Nav_Submit.Nav_ListRiskSubmitContent.Nav_SafeCheck", "Nav_SubmitContent.Nav_SafeCheckDetail", "Nav_SubmitContent.Nav_CheckMain", "Nav_SubmitContent.Nav_Question", "Nav_SubmitContent.Nav_Contents" });
|
||
|
||
deal.DEALSITUATION = (int)DealSituation.End;//结束
|
||
|
||
T_BS_RISK_SUBMIT subModel = deal.Nav_Submit;
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listContent = subModel.Nav_ListRiskSubmitContent;
|
||
|
||
//如果是手动上报 都是选择检查问题 不存在隐患入库
|
||
var content = deal.Nav_SubmitContent;
|
||
//deal.Nav_SubmitContent = null;//不能清空 否则RISK_SUBMIT_CONTENT_ID 会被清空
|
||
|
||
var modelNoOK = listContent.FirstOrDefault(e => e.ID != content.ID && (!e.ISBACK.HasValue || !e.ISBACK.Value) && e.RiskContentState.HasValue && e.RiskContentState != (int)RiskContentState.OK && e.RiskContentState != (int)RiskContentState.BackOK);
|
||
if (modelNoOK == null)
|
||
{
|
||
subModel.ISORDEREND = true;
|
||
subModel.SUBMIT_STATUS = (int)BSSubmitStatusEnum.AuditOK;
|
||
}
|
||
|
||
content.OKDATE = DateTime.Now;
|
||
content.RiskContentState = (int)RiskContentState.OK;
|
||
|
||
if (!content.LastDateUser.HasValue || content.LastDateUser.Value > content.OKDATE)
|
||
content.ISFINISHINTTIME = true;
|
||
else
|
||
content.ISFINISHINTTIME = false;
|
||
|
||
var check = content.Nav_CheckMain;
|
||
|
||
//根据隐患上报中检查结果
|
||
//未发现此问题 无需隐患上报
|
||
//以问题描述一致 无需完善隐患库
|
||
|
||
//其他 手动填写 需要完善隐患库
|
||
//书写 隐患待上报 内容 发送给安环部对应的人 标准化描述 再审批流 入库
|
||
|
||
//检查问题
|
||
T_BS_CHECK_QUESTION modelQues = null;
|
||
T_BS_CHECK_MAIN modelCheck = null;
|
||
T_BS_CHECK_CONTENT_MAIN_DEPARTMENT mainDep = null;
|
||
if (content.Nav_SafeCheckDetail == null)
|
||
{
|
||
//手动隐患上报
|
||
if (content.CHECK_MAIN_ID.HasValue)
|
||
{
|
||
#region 旧版
|
||
|
||
var checkMain = GetEntity<T_BS_CHECK_MAIN>(content.CHECK_MAIN_ID.Value);
|
||
|
||
if (checkMain.CHECK_TYPE_ID == subModel.CHECK_TYPE_ID && checkMain.CHECK_TYPE_LEVEL_ID == subModel.CHECK_TYPE_LEVEL_ID && checkMain.CHECK_QUESTION_ID == content.CHECK_QUESTION_ID && checkMain.RISK_AREA_ID == content.RISK_AREA_ID)
|
||
{
|
||
//全部都一样
|
||
if (checkMain.ENABLE_STATUS == 1)
|
||
{
|
||
checkMain.ENABLE_STATUS = 0;
|
||
modelCheck = checkMain;
|
||
}
|
||
if (content.DEPARTMENT_ID.HasValue)
|
||
{
|
||
var mainDepCheck = GetEntity<T_BS_CHECK_CONTENT_MAIN_DEPARTMENT>(e => !e.IS_DELETED && e.MAIN_ID.HasValue && e.DEPARTMENT_ID.HasValue && e.MAIN_ID.Value == content.CHECK_MAIN_ID && e.DEPARTMENT_ID.Value == content.DEPARTMENT_ID);
|
||
if (mainDepCheck == null)
|
||
{
|
||
mainDep = new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = content.CHECK_MAIN_ID.Value,
|
||
ORG_ID = content.ORG_ID,
|
||
DEPARTMENT_ID = content.DEPARTMENT_ID.Value,
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head
|
||
};
|
||
};
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//手动隐患上报
|
||
//选择 检查问题
|
||
//填写检查依据、检查区域
|
||
|
||
modelCheck = new T_BS_CHECK_MAIN();
|
||
modelCheck.ID = Guid.NewGuid();
|
||
modelCheck.CHECK_QUESTION_ID = content.CHECK_QUESTION_ID;
|
||
modelCheck.CHECKPROOF = content.PROOF;//检查依据
|
||
modelCheck.QUESTION_LEVEL = content.QUESTION_LEVEL;
|
||
modelCheck.SERIOUS_RISK = (content.QUESTION_LEVEL == (int)BSQuestionLevelEnum.重大) ? 1 : 0;
|
||
modelCheck.CHECK_TYPE_ID = subModel.CHECK_TYPE_ID;
|
||
modelCheck.CHECK_TYPE_LEVEL_ID = subModel.CHECK_TYPE_LEVEL_ID;
|
||
modelCheck.RISK_AREA_ID = content.RISK_AREA_ID;
|
||
modelCheck.CHECKOBJECT = deal.Nav_Submit.CHECKOBJECT.HasValue ? (deal.Nav_Submit.CHECKOBJECT.Value).GetInt() : content.Nav_SafeCheck.CHECKOBJECT.Value;// content.Nav_SafeCheck.CHECKOBJECT.Value;
|
||
modelCheck.CHECK_PROJECT_ID = content.CHECK_PROJECT_ID;
|
||
modelCheck.CHECKCONTENT = content.CHECKCONTENT;
|
||
|
||
modelCheck.CHECK_PROJECT_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
modelCheck.NUM = content.CHECK_MAIN_ID != null ? content.Nav_CheckMain.NUM : 0;
|
||
|
||
modelCheck.ENABLE_STATUS = (int)FMEnableStatusEnum.启用;
|
||
modelCheck.IS_DELETED = false;
|
||
modelCheck.ORG_ID = deal.ORG_ID;
|
||
|
||
//modelCheck.ENTITY_ORG_TPYE = content.Nav_CheckMain.ENTITY_ORG_TPYE;
|
||
//modelCheck.FORM_ID = content.Nav_CheckMain.FORM_ID;
|
||
//modelCheck.FLOW_STATUS = content.Nav_CheckMain.FLOW_STATUS;
|
||
//modelCheck.FLOW_SEND_STATUS = content.Nav_CheckMain.FLOW_SEND_STATUS;
|
||
//modelCheck.FLOW_ID = content.Nav_CheckMain.FLOW_ID;
|
||
|
||
modelCheck.CREATE_TIME = DateTime.Now;
|
||
modelCheck.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
//modelCheck.MODIFY_TIME = content.Nav_CheckMain.MODIFY_TIME;
|
||
//modelCheck.MODIFIER_ID = content.Nav_CheckMain.MODIFIER_ID;
|
||
modelCheck.ISRISK = true;
|
||
modelCheck.CHECK_CONTENTS_ID = content.CHECK_CONTENTS_ID;
|
||
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(content.DEPARTMENT_ID.Value);
|
||
if (dep.USER_ID == content.USER_ID)
|
||
{
|
||
if (dep.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
mainDep = new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelCheck.ID,
|
||
ORG_ID = modelCheck.ORG_ID,
|
||
DEPARTMENT_ID = content.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
};
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
else
|
||
{
|
||
#region 新版 BS060
|
||
//检查内容 检查问题 整改建议与措施
|
||
|
||
modelCheck = new T_BS_CHECK_MAIN();
|
||
modelCheck.ID = Guid.NewGuid();
|
||
modelCheck.CHECK_QUESTION_ID = content.CHECK_QUESTION_ID;
|
||
modelCheck.CHECKPROOF = content.PROOF;//检查依据
|
||
modelCheck.QUESTION_LEVEL = content.QUESTION_LEVEL;
|
||
modelCheck.SERIOUS_RISK = (content.QUESTION_LEVEL == (int)BSQuestionLevelEnum.重大) ? 1 : 0;
|
||
modelCheck.CHECK_TYPE_ID = subModel.CHECK_TYPE_ID;
|
||
modelCheck.CHECK_TYPE_LEVEL_ID = subModel.CHECK_TYPE_LEVEL_ID;
|
||
modelCheck.RISK_AREA_ID = content.RISK_AREA_ID;
|
||
modelCheck.CHECKOBJECT = (int)content.Nav_Contents.CHECKOBJECT;//.Nav_SafeCheck.CHECKOBJECT.Value;
|
||
modelCheck.CHECK_PROJECT_ID = content.CHECK_PROJECT_ID;
|
||
modelCheck.CHECKCONTENT = content.CHECKCONTENT;
|
||
|
||
modelCheck.CHECK_PROJECT_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
modelCheck.NUM = 1;
|
||
|
||
modelCheck.ENABLE_STATUS = (int)FMEnableStatusEnum.启用;
|
||
modelCheck.IS_DELETED = false;
|
||
modelCheck.ORG_ID = deal.ORG_ID;
|
||
modelCheck.CREATE_TIME = DateTime.Now;
|
||
modelCheck.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
modelCheck.ISRISK = true;
|
||
modelCheck.CHECK_CONTENTS_ID = content.CHECK_CONTENTS_ID;
|
||
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(content.DEPARTMENT_ID.Value);
|
||
if (dep.USER_ID == content.USER_ID)
|
||
{
|
||
if (dep.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
mainDep = new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelCheck.ID,
|
||
ORG_ID = modelCheck.ORG_ID,
|
||
DEPARTMENT_ID = content.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
};
|
||
|
||
|
||
#endregion
|
||
}
|
||
}
|
||
else if (content.Nav_SafeCheckDetail.CHECKRESULT == (int)CHECKRESULTEnum.Same)
|
||
{
|
||
//安全检查 如果是 与问题描述一致 也不存在此问题
|
||
//无需 完善检查问题
|
||
}
|
||
else
|
||
{
|
||
|
||
//安全检查 结果 其他 隐患上报 隐患入库
|
||
|
||
//检查问题描述 检查依据 检查等级 是否重大隐患 根据页面数据赖
|
||
//检查区域等 根据检查问题来
|
||
|
||
//检查问题
|
||
modelQues = new T_BS_CHECK_QUESTION();
|
||
modelQues.ID = Guid.NewGuid();
|
||
modelQues.ORG_ID = deal.ORG_ID;
|
||
modelQues.DESCREPTION = content.DESCREPTION;//问题描述
|
||
modelQues.DEMAND = content.Nav_Question.DEMAND;//整改建议与措施
|
||
modelQues.CHECK_CONTENTS_ID = content.CHECK_CONTENTS_ID;
|
||
modelQues.QUESTION_LEVEL = (BSQuestionLevelEnum)content.QUESTION_LEVEL;
|
||
|
||
|
||
modelCheck = new T_BS_CHECK_MAIN();
|
||
modelCheck.ID = Guid.NewGuid();
|
||
modelCheck.CHECK_QUESTION_ID = modelQues.ID;
|
||
modelCheck.CHECKPROOF = content.PROOF;//检查依据
|
||
modelCheck.QUESTION_LEVEL = content.QUESTION_LEVEL;
|
||
modelCheck.SERIOUS_RISK = (content.QUESTION_LEVEL == (int)BSQuestionLevelEnum.重大) ? 1 : 0;
|
||
|
||
//var deal = GetEntity<T_BS_RISK_SUBMIT_CONTENT_DEAL>(id, new string[] { "Nav_Submit.Nav_ListRiskSubmitContent", "Nav_SubmitContent.Nav_SafeCheckDetail.Nav_CheckMain", "Nav_SubmitContent.Nav_Question" });
|
||
|
||
modelCheck.CHECKOBJECT = content.Nav_SafeCheck.CHECKOBJECT.Value;
|
||
modelCheck.CHECK_PROJECT_ID = content.CHECK_PROJECT_ID;
|
||
modelCheck.CHECKCONTENT = content.CHECKCONTENT;
|
||
modelCheck.CHECK_TYPE_ID = content.Nav_SafeCheck.CHECK_TYPE_ID;
|
||
modelCheck.CHECK_TYPE_LEVEL_ID = content.Nav_SafeCheck.CHECK_TYPE_LEVEL_ID;
|
||
modelCheck.RISK_AREA_ID = content.RISK_AREA_ID;
|
||
modelCheck.ENABLE_STATUS = (int)FMEnableStatusEnum.启用;
|
||
modelCheck.NUM = content.CHECK_MAIN_ID != null ? content.Nav_CheckMain.NUM : 0;
|
||
modelCheck.IS_DELETED = false;
|
||
modelCheck.ORG_ID = deal.ORG_ID;
|
||
|
||
//modelCheck.ENTITY_ORG_TPYE = content.Nav_CheckMain.ENTITY_ORG_TPYE;
|
||
//modelCheck.FORM_ID = content.Nav_CheckMain.FORM_ID;
|
||
//modelCheck.FLOW_STATUS = content.Nav_CheckMain.FLOW_STATUS;
|
||
//modelCheck.FLOW_SEND_STATUS = content.Nav_CheckMain.FLOW_SEND_STATUS;
|
||
//modelCheck.FLOW_ID = content.Nav_CheckMain.FLOW_ID;
|
||
|
||
modelCheck.CREATE_TIME = DateTime.Now;
|
||
modelCheck.CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
//modelCheck.MODIFY_TIME = content.Nav_CheckMain.MODIFY_TIME;
|
||
//modelCheck.MODIFIER_ID = content.Nav_CheckMain.MODIFIER_ID;
|
||
modelCheck.CHECK_PROJECT_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_PROJECT_CATEGORY_ID;
|
||
modelCheck.CHECK_PROJECT_CATEGORY_ID = content.CHECK_PROJECT_CATEGORY_ID;
|
||
modelCheck.ISRISK = true;
|
||
modelCheck.CHECK_CONTENTS_ID = content.CHECK_CONTENTS_ID;
|
||
|
||
//wyw1114-1
|
||
//modelCheck.DEPARTMENT_ID = content.DEPARTMENT_ID;
|
||
BSPLANCHECKOBJECTEnum RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(content.DEPARTMENT_ID.Value);
|
||
if (dep.USER_ID == content.USER_ID)
|
||
{
|
||
if (dep.DEPARTMENT_TYPE == 2)
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.ClassMonitor;
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Head;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
RESPONOBJECT = BSPLANCHECKOBJECTEnum.Hon;
|
||
}
|
||
|
||
mainDep = new T_BS_CHECK_CONTENT_MAIN_DEPARTMENT()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
MAIN_ID = modelCheck.ID,
|
||
ORG_ID = modelCheck.ORG_ID,
|
||
DEPARTMENT_ID = content.DEPARTMENT_ID,
|
||
RESPONOBJECT = RESPONOBJECT
|
||
};
|
||
}
|
||
|
||
//整改完成后 完善检查库
|
||
if (modelCheck != null && modelCheck.CHECKOBJECT == 0 && deal.Nav_Submit != null && deal.Nav_Submit.CHECKOBJECT.HasValue)
|
||
{
|
||
modelCheck.CHECKOBJECT = (int)deal.Nav_Submit.CHECKOBJECT.Value;
|
||
}
|
||
|
||
var listOperateLog = GetListOperateLog(OPERATEPOINT_Enums.RiskDealAudit, deal.RISK_SUBMIT_ID.Value, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, null, null, null, deal.ORG_ID, deal.RISK_SUBMIT_CONTENT_ID, null, true, taskFinish?.TASK_ENDDT);
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
|
||
UpdateEntityNoCommit(deal);//修改状态 审批结束
|
||
if (subModel.ISORDEREND)//隐患上报单 是否完成
|
||
UpdateEntityNoCommit(subModel);
|
||
UpdateEntityNoCommit(content);//隐患上报内容明细
|
||
if (modelQues != null)
|
||
UpdateEntityNoCommit(modelQues);
|
||
if (modelCheck != null)
|
||
UpdateEntityNoCommit(modelCheck);
|
||
if (mainDep != null)
|
||
UpdateEntityNoCommit(mainDep);
|
||
if (listOperateLog != null && listOperateLog.Any())//操作记录
|
||
BantchSaveEntityNoCommit(listOperateLog);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
|
||
|
||
|
||
|
||
/// <summary>
|
||
/// 延期申请 完成 修改状态、最后完成时间 给验收人发送通知
|
||
/// api/BS/BSRiskSubmit/DealEnd
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
private bool DealEnd_BS_DelayApplyNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = GetEntity<T_BS_RISK_SUBMIT_DELAY_APPLY>(modelApp.DATA_ID, new string[] { "Nav_ListApplyDetail.Nav_SubmitContent.Nav_UserCheck" });
|
||
entity.OPERARTETYPE = (int)OperateType.Check;
|
||
//修改记录信息 状态 最后完成时间
|
||
//给验收人发送通知
|
||
|
||
var listContent = entity.Nav_ListApplyDetail;
|
||
List<T_FM_NOTIFICATION_TASK> listNotice = new List<T_FM_NOTIFICATION_TASK>();
|
||
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listBackAll = new List<T_BS_RISK_SUBMIT_CONTENT>();
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listRiskContent = new List<T_BS_RISK_SUBMIT_CONTENT>();
|
||
List<T_BS_RISK_SUBMIT_CONTENT> listBack = null;
|
||
List<Guid> listCheckUserID = new List<Guid>();
|
||
List<T_FM_NOTIFICATION_TASK> listTaskBS044 = new List<T_FM_NOTIFICATION_TASK>();
|
||
|
||
List<T_BS_OPERATE_LOG> listLog = new List<T_BS_OPERATE_LOG>();
|
||
Dictionary<Guid, DateTime> dicContentIDDtEnd = new Dictionary<Guid, DateTime>();
|
||
foreach (var item in listContent)
|
||
{
|
||
if (item.IS_DELETED)
|
||
{
|
||
continue;
|
||
}
|
||
|
||
T_BS_RISK_SUBMIT_CONTENT subContent = item.Nav_SubmitContent;
|
||
|
||
//自动生成的
|
||
if (subContent.RiskContentState == (int)RiskContentState.OKNotBack || subContent.RiskContentState == (int)RiskContentState.ReportedDelay)
|
||
{
|
||
BaseFilter filter = null;
|
||
//如果是审批退回
|
||
//同时修改 退回自动新增的隐患上报
|
||
//审批退回 自动生成的单 状态为 【已修改落实整改人 ActualDealChange = 32】
|
||
listBack = this.GetEntities<T_BS_RISK_SUBMIT_CONTENT>(e => e.PARENTID.HasValue && e.PARENTID.Value == subContent.ID && e.RiskContentState.HasValue && e.RiskContentState == (int)RiskContentState.ActualDealChange && e.ACTUAL_DEAL_USER_ID.HasValue && e.ACTUAL_DEAL_USER_ID.Value == subContent.ACTUAL_DEAL_USER_ID, filter, null).ToList();
|
||
|
||
if (listBack != null && listBack.Count > 0)
|
||
{
|
||
foreach (var item2 in listBack)
|
||
{
|
||
item2.LastDateUser = subContent.LastDateSystem;
|
||
}
|
||
listBackAll.AddRange(listBack);
|
||
}
|
||
}
|
||
|
||
subContent.RiskContentState = (int)RiskContentState.ReportedDelay;
|
||
subContent.LastDateUser = item.LastDateApply;
|
||
listRiskContent.Add(subContent);
|
||
|
||
item.CHCEKUSERID = subContent.CHECK_USER_ID;//指定验收人
|
||
|
||
if (!listCheckUserID.Contains(subContent.CHECK_USER_ID.Value))
|
||
{
|
||
listCheckUserID.Add(subContent.CHECK_USER_ID.Value);
|
||
var notice = NotificationTaskService.InsertUserNoticeTaskModel("延期整改通知单:" + entity.NAME.Replace("延期申请:", ""), entity.ID, entity.ORG_ID, subContent.CHECK_USER_ID.Value, subContent.Nav_UserCheck.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "BS046_SHOWPRINT");
|
||
listNotice.Add(notice);
|
||
}
|
||
dicContentIDDtEnd.Add(item.RISK_SUBMIT_CONTENT_ID, item.LastDateApply.Value);
|
||
listLog.Add(AddModel(OPERATEPOINT_Enums.RiskDelayApplyCheck, entity.RISK_SUBMIT_ID, subContent.CHECK_USER_ID.Value, subContent.Nav_UserCheck.NAME, subContent.ORG_ID, 0, false, subContent.ID));//每个明细都要添加操作记录(最终查看是整改单)
|
||
}
|
||
|
||
#region 隐患整改单待办结束时间修改
|
||
|
||
var listTaskEndChange = GetEntities<T_FM_NOTIFICATION_TASK>(e => e.NOTICE_STATUS == 0 && e.USER_ID == entity.USER_ID && e.SOURCE_DATA_ID.HasValue && e.SOURCE_FORMCODE == "BS044");
|
||
if (listTaskEndChange != null && listTaskEndChange.Any())
|
||
{
|
||
var listTaskSourceID = listTaskEndChange.Select(e => e.SOURCE_DATA_ID.Value);
|
||
var listContentDeal = GetEntities<T_BS_RISK_SUBMIT_CONTENT_DEAL>(e => listTaskSourceID.Contains(e.ID));
|
||
if (listContentDeal != null && listContentDeal.Any())
|
||
{
|
||
T_FM_NOTIFICATION_TASK taskTemp = null;
|
||
foreach (var item in listContentDeal)
|
||
{
|
||
if (dicContentIDDtEnd.ContainsKey(item.RISK_SUBMIT_CONTENT_ID.Value))
|
||
{
|
||
taskTemp = listTaskEndChange.FirstOrDefault(e => e.SOURCE_DATA_ID.Value == item.ID);
|
||
if (taskTemp != null)
|
||
{
|
||
taskTemp.TASK_ENDDT = dicContentIDDtEnd[item.RISK_SUBMIT_CONTENT_ID.Value];
|
||
listTaskBS044.Add(taskTemp);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
|
||
if (listContent != null && listContent.Any())
|
||
{
|
||
var listContentID = listContent.Select(e => e.RISK_SUBMIT_CONTENT_ID).ToList();
|
||
listLog.AddRange(GetUpdateDeal(OPERATEPOINT_Enums.RiskDelayApplyAudit, entity.RISK_SUBMIT_ID, APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value, listContentID, taskFinish.TASK_ENDDT));
|
||
}
|
||
|
||
//修改 model
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
|
||
UpdateEntityNoCommit(entity);//修改状态
|
||
BantchUpdateEntityNoCommit(listContent);//修改整改落实人
|
||
BantchUpdateEntityNoCommit(listRiskContent);//修改上报详情整改期限、状态
|
||
if (listBackAll != null && listBackAll.Count > 0)
|
||
BantchUpdateEntityNoCommit(listBackAll);//修改 自动生成的整改单
|
||
|
||
//if (notice != null)//发送通知
|
||
// UpdateEntityNoCommit(notice);
|
||
if (listNotice.Count > 0)//发送通知
|
||
{
|
||
BantchSaveEntityNoCommit(listNotice);
|
||
}
|
||
if (listTaskBS044 != null && listTaskBS044.Any())//隐患整改单修改 待办结束时间
|
||
BantchUpdateEntityNoCommit(listTaskBS044);
|
||
if (listLog != null && listLog.Any())//下个审批节点
|
||
BantchSaveEntityNoCommit(listLog);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 尾矿库
|
||
|
||
/// <summary>
|
||
/// 回采计划 审批流
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool BackUpdate_TLBack(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
//修改完 给 值班人 确认 单
|
||
var entity = GetEntity<T_TL_BACK>(modelApp.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Sign;//审批完后 值变小(注)
|
||
var listDetailUser = GetEntities<T_TL_BACK_DETAIL_USER>(e => e.BACK_ID == entity.ID, "Nav_User");
|
||
|
||
List<Guid> listUserId = new List<Guid>();
|
||
List<string> listUserName = new List<string>();
|
||
foreach (var item in listDetailUser)
|
||
{
|
||
if (!listUserId.Contains(item.USER_ID))
|
||
{
|
||
listUserId.Add(item.USER_ID);
|
||
listUserName.Add(item.Nav_User.NAME);
|
||
}
|
||
}
|
||
|
||
if (listUserId.Count < 1)
|
||
{
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(entity);
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
List<T_FM_NOTIFICATION_TASK> listTaskNotice = NotificationTaskService.InsertUserNoticeTaskModels("回采计划-确认", entity.ID, entity.ORG_ID, listUserId, listUserName, DateTime.Now, 0, "TL014_SHOWPRINT", FMTASKTYPE.Default, null, null, null, APT.Infrastructure.Api.AppContext.CurrentSession.UserID);
|
||
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(entity);
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (listTaskNotice != null && listTaskNotice.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNotice);
|
||
});
|
||
}
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 回采计划 审批流
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool BackUpdate_TLRecordBack(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
//修改完 给 值班人 确认 单
|
||
var entity = GetEntity<T_TL_BACK_RECORD>(modelApp.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Archived;//审批完后 值变小(注)
|
||
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(entity);
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 回采计划 审批流
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool BackUpdate_TLWatchDayly(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
//修改完 给 值班人 确认 单
|
||
var entity = GetEntity<T_TL_WATCH_DAYLY>(modelApp.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Archived;//审批完后 值变小(注)
|
||
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(entity);
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 方法重复写 如有修改 需同步修改 BSOperateLogService 对应方法
|
||
|
||
public List<T_BS_OPERATE_LOG> GetListOperateLog(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserIDLogin, List<Guid> ListDATA_ID, List<Guid> ListUserID, List<string> ListUserName, Guid? ORG_ID, Guid? DATA_ID_SUB = null, List<Guid> ListUserIDDone = null, bool isEnd = false, DateTime? TASK_ENDDT = null)
|
||
{
|
||
List<T_BS_OPERATE_LOG> listResult = new List<T_BS_OPERATE_LOG>();
|
||
T_BS_OPERATE_LOG modelLogUpdate = null;
|
||
switch (OPERATEPOINT)
|
||
{
|
||
case OPERATEPOINT_Enums.GotCheck:
|
||
//系统触发 只是新增
|
||
if (ListUserID != null && ListUserName != null && ListUserID.Any())
|
||
for (int i = 0; i < ListUserID.Count; i++)
|
||
listResult.Add(AddModel(OPERATEPOINT, ListDATA_ID[i], ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));
|
||
break;
|
||
case OPERATEPOINT_Enums.CheckForm:
|
||
//BS032保存并发送 到审批流
|
||
modelLogUpdate = GetUpdateDeal(OPERATEPOINT_Enums.GotCheck, DATA_ID, UserIDLogin, null, TASK_ENDDT);
|
||
if (modelLogUpdate != null)
|
||
listResult.Add(modelLogUpdate);
|
||
if (ListUserID != null && ListUserName != null && ListUserID.Any())
|
||
for (int i = 0; i < ListUserID.Count; i++)
|
||
listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));// OPERATEPOINT => OPERATEPOINT_Enums.CheckAudit
|
||
break;
|
||
case OPERATEPOINT_Enums.CheckAudit:
|
||
modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的待办日志
|
||
if (modelLogUpdate != null)
|
||
listResult.Add(modelLogUpdate);
|
||
if (ListUserID != null && ListUserName != null && ListUserID.Any())
|
||
for (int i = 0; i < ListUserID.Count; i++)//最后一个审批人 添加 通知
|
||
listResult.Add(AddModel(OPERATEPOINT_Enums.CheckerCheck, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));
|
||
break;
|
||
case OPERATEPOINT_Enums.CheckerCheck:
|
||
modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的
|
||
if (modelLogUpdate != null)
|
||
listResult.Add(modelLogUpdate);
|
||
break;
|
||
case OPERATEPOINT_Enums.CheckRegister:
|
||
//检查登记
|
||
modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的
|
||
if (modelLogUpdate != null)
|
||
listResult.Add(modelLogUpdate);
|
||
if (ListUserID != null && ListUserName != null && ListUserID.Any())
|
||
for (int i = 0; i < ListUserID.Count; i++) //发起检查结果确认
|
||
listResult.Add(AddModel(OPERATEPOINT_Enums.CheckAgree, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));
|
||
break;
|
||
case OPERATEPOINT_Enums.CheckAgree:
|
||
modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的
|
||
if (modelLogUpdate != null)
|
||
listResult.Add(modelLogUpdate);
|
||
if (ListUserID != null && ListUserName != null && ListUserID.Any())
|
||
for (int i = 0; i < ListUserID.Count; i++) //检查结果确认完 直接到审批
|
||
listResult.Add(AddModel(OPERATEPOINT_Enums.CheckResultAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));
|
||
break;
|
||
case OPERATEPOINT_Enums.CheckResultAudit:
|
||
modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//处理自己的
|
||
if (modelLogUpdate != null)
|
||
listResult.Add(modelLogUpdate);
|
||
if (isEnd) //最后一个审批就归档
|
||
{
|
||
var logEnd = AddModel(OPERATEPOINT_Enums.CheckEnd, DATA_ID, UserIDLogin, (modelLogUpdate != null ? modelLogUpdate.USRTNAME : APT.Infrastructure.Api.AppContext.CurrentSession.UserName), ORG_ID);
|
||
logEnd.OPERTETIME = DateTime.Now;
|
||
if (modelLogUpdate != null)
|
||
logEnd.ISINTTIME = modelLogUpdate.ISINTTIME;
|
||
listResult.Add(logEnd);
|
||
}
|
||
else if (DATA_ID_SUB != null)
|
||
{
|
||
//添加 隐患上报 安全检查环境 也加归档
|
||
var logEnd = AddModel(OPERATEPOINT_Enums.CheckEnd, DATA_ID, UserIDLogin, (modelLogUpdate != null ? modelLogUpdate.USRTNAME : APT.Infrastructure.Api.AppContext.CurrentSession.UserName), ORG_ID);
|
||
logEnd.OPERTETIME = DateTime.Now;
|
||
if (modelLogUpdate != null)
|
||
logEnd.ISINTTIME = modelLogUpdate.ISINTTIME;
|
||
listResult.Add(logEnd);
|
||
|
||
if (ListUserID != null && ListUserName != null && ListUserID.Any())
|
||
for (int i = 0; i < ListUserID.Count; i++)
|
||
//listResult.Add(AddModel(OPERATEPOINT_Enums.RiskGet, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));
|
||
listResult.Add(AddModel(OPERATEPOINT_Enums.RiskGet, DATA_ID_SUB.Value, ListUserID[i], ListUserName[i], ORG_ID, i, false, null));//注意 入参把 隐患上报ID 传给参数 DATA_ID_SUB
|
||
}
|
||
break;
|
||
case OPERATEPOINT_Enums.CheckEnd:
|
||
//此处没操作
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskNoticeSD:
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskUpSD:
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskInfoCompleteSD:
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskGet:
|
||
modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);//隐患待上报 不需要传递 子表ID
|
||
if (modelLogUpdate != null)
|
||
listResult.Add(modelLogUpdate);
|
||
if (ListUserID != null && ListUserName != null && ListUserID.Any())
|
||
for (int i = 0; i < ListUserID.Count; i++)
|
||
listResult.Add(AddModel(OPERATEPOINT_Enums.RiskSendAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));//子表拆分记录
|
||
break;
|
||
//case OPERATEPOINT_Enums.RiskSend:
|
||
// modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, null, TASK_ENDDT);
|
||
// if (modelLogUpdate != null)
|
||
// listResult.Add(modelLogUpdate);
|
||
// if (ListUserID != null && ListUserName != null && ListUserID.Any())
|
||
// for (int i = 0; i < ListUserID.Count; i++)
|
||
// listResult.Add(AddModel(OPERATEPOINT_Enums.RiskSendAudit, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));
|
||
// break;
|
||
case OPERATEPOINT_Enums.RiskSendAudit:
|
||
modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//分子表处理
|
||
if (modelLogUpdate != null)
|
||
listResult.Add(modelLogUpdate);
|
||
if (ListUserID != null && ListUserName != null && ListUserID.Any())
|
||
for (int i = 0; i < ListUserID.Count; i++)
|
||
listResult.Add(AddModel(OPERATEPOINT_Enums.RiskAssignActure, DATA_ID, ListUserID[i], ListUserName[i], ORG_ID, i, false, DATA_ID_SUB));
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskAssignActure:
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskNoticeCheckerCheck:
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskNoticeActureCheck:
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskDeal:
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskDealDealCheck:
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskDealCheckerCheck:
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskDealAudit:
|
||
modelLogUpdate = GetUpdateDeal(OPERATEPOINT, DATA_ID, UserIDLogin, DATA_ID_SUB, TASK_ENDDT);//处理自己的
|
||
if (modelLogUpdate != null)
|
||
listResult.Add(modelLogUpdate);
|
||
var logEndRisk = AddModel(OPERATEPOINT_Enums.RiskEnd, DATA_ID, UserIDLogin, APT.Infrastructure.Api.AppContext.CurrentSession.UserName, ORG_ID);
|
||
logEndRisk.OPERTETIME = DateTime.Now;
|
||
if (modelLogUpdate != null)
|
||
logEndRisk.ISINTTIME = modelLogUpdate.ISINTTIME;
|
||
listResult.Add(logEndRisk);
|
||
break;
|
||
case OPERATEPOINT_Enums.RiskEnd:
|
||
break;
|
||
default:
|
||
break;
|
||
}
|
||
if (ListUserIDDone != null && ListUserIDDone.Count > 0)
|
||
{
|
||
//除了登陆者 需要默认操作的
|
||
listResult.ForEach(e =>
|
||
{
|
||
if (ListUserIDDone.Contains(e.USER_ID))
|
||
e.OPERTETIME = DateTime.Now;
|
||
});
|
||
}
|
||
return listResult;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 获取新记录
|
||
/// </summary>
|
||
/// <param name="OPERATEPOINT"></param>
|
||
/// <param name="DATA_ID"></param>
|
||
/// <param name="UserID"></param>
|
||
/// <param name="UserName"></param>
|
||
/// <param name="ORG_ID"></param>
|
||
/// <returns></returns>
|
||
private T_BS_OPERATE_LOG AddModel(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, string UserName, Guid? ORG_ID, int ORDERNO = 0, bool isAddLog = false, Guid? DATA_ID_SUB = null)
|
||
{
|
||
if (!string.IsNullOrEmpty(UserName) && UserName.Contains("=>"))
|
||
{
|
||
try
|
||
{
|
||
UserName = UserName.Split(" ")[2];
|
||
}
|
||
catch { }
|
||
}
|
||
T_BS_OPERATE_LOG ModelAdd = new T_BS_OPERATE_LOG()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
ORG_ID = ORG_ID,
|
||
LOGTYPE = ((int)OPERATEPOINT) > 80 ? LOGTYPE_Enums.RiskSubmit : LOGTYPE_Enums.SafeCheck,
|
||
DATA_ID = DATA_ID,
|
||
DATA_ID_SUB = DATA_ID_SUB,
|
||
OPERATEPOINT = OPERATEPOINT,
|
||
USER_ID = UserID,
|
||
USRTNAME = UserName,
|
||
ORDERNO = ORDERNO,
|
||
//OPERTETIME = null,
|
||
//ISINTTIME = false,
|
||
CREATE_TIME = DateTime.Now,
|
||
CREATER_ID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID
|
||
};
|
||
if (isAddLog || (APT.Infrastructure.Api.AppContext.CurrentSession.UserID.HasValue && APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value == UserID))
|
||
{
|
||
ModelAdd.OPERTETIME = DateTime.Now;//默认通过
|
||
ModelAdd.ISINTTIME = true;
|
||
}
|
||
return ModelAdd;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 获取需要修改的Model
|
||
/// </summary>
|
||
/// <param name="OPERATEPOINT">操作节点</param>
|
||
/// <param name="DATA_ID"></param>
|
||
/// <param name="UserID"></param>
|
||
/// <param name="DATA_ID_SUB"></param>
|
||
/// <param name="TASK_ENDDT"></param>
|
||
/// <param name="IsAutoFilter">自动处理转办</param>
|
||
/// <returns></returns>
|
||
private T_BS_OPERATE_LOG GetUpdateDeal(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, Guid? DATA_ID_SUB = null, DateTime? TASK_ENDDT = null, bool IsAutoFilter = true)
|
||
{
|
||
if (UserID == Guid.Empty)
|
||
{
|
||
return null;
|
||
}
|
||
Expression<Func<T_BS_OPERATE_LOG, bool>> expression = e => e.DATA_ID == DATA_ID && e.OPERATEPOINT == OPERATEPOINT && e.USER_ID == UserID;
|
||
if (DATA_ID_SUB.HasValue)
|
||
expression = expression.And(e => e.DATA_ID_SUB.HasValue && e.DATA_ID_SUB == DATA_ID_SUB);
|
||
//var model = GetEntity(expression);
|
||
var listModel = GetEntities(expression);
|
||
T_BS_OPERATE_LOG model = null;
|
||
if (listModel != null && listModel.Any())
|
||
{
|
||
if (listModel.Count() == 1)
|
||
model = listModel.ToList()[0];
|
||
else
|
||
model = listModel.OrderByDescending(e => e.CREATE_TIME).ToList()[0];
|
||
}
|
||
|
||
if (model == null && IsAutoFilter)
|
||
{
|
||
//转办
|
||
expression = e => e.DATA_ID == DATA_ID && e.OPERATEPOINT == OPERATEPOINT;
|
||
if (DATA_ID_SUB.HasValue)
|
||
expression = expression.And(e => e.DATA_ID_SUB.HasValue && e.DATA_ID_SUB == DATA_ID_SUB);
|
||
listModel = GetEntities(expression);
|
||
if (listModel != null && listModel.Count() == 1)
|
||
{
|
||
model = listModel.ToList()[0];
|
||
var UserOP = GetEntity<T_FM_USER>(UserID);
|
||
model.MODIFIER_ID = UserOP.ID;
|
||
model.USRTNAME += (" => " + UserOP.NAME);
|
||
}
|
||
}
|
||
if (model != null)
|
||
{
|
||
model.OPERTETIME = DateTime.Now;
|
||
if (TASK_ENDDT != null)
|
||
model.ISINTTIME = (model.OPERTETIME > TASK_ENDDT.Value ? false : true);
|
||
}
|
||
return model;
|
||
}
|
||
|
||
private IEnumerable<T_BS_OPERATE_LOG> GetUpdateDeal(OPERATEPOINT_Enums OPERATEPOINT, Guid DATA_ID, Guid UserID, IEnumerable<Guid> listDataIdSub, DateTime TASK_ENDDT)
|
||
{
|
||
if (UserID == Guid.Empty)
|
||
{
|
||
return null;
|
||
}
|
||
Expression<Func<T_BS_OPERATE_LOG, bool>> expression = e => e.OPERATEPOINT == OPERATEPOINT && e.USER_ID == UserID;
|
||
if (DATA_ID != Guid.Empty && listDataIdSub != null && listDataIdSub.Any())
|
||
expression = expression.And(e => e.DATA_ID == DATA_ID);
|
||
|
||
if (listDataIdSub != null && listDataIdSub.Any())
|
||
expression = expression.And(e => e.DATA_ID_SUB.HasValue && listDataIdSub.Contains(e.DATA_ID_SUB.Value));
|
||
var listModel = GetEntities(expression);
|
||
if (listModel != null && listModel.Any())
|
||
{
|
||
foreach (var item in listModel)
|
||
{
|
||
item.OPERTETIME = DateTime.Now;
|
||
if (TASK_ENDDT != null)
|
||
item.ISINTTIME = (item.OPERTETIME > TASK_ENDDT ? false : true);
|
||
}
|
||
}
|
||
return listModel;
|
||
}
|
||
#endregion
|
||
|
||
#region 外包工程
|
||
|
||
|
||
/// <summary>
|
||
/// 危险作业 审批流
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool UserAgreeNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var dangerousJob = GetEntity<T_WB_DANGEROUS_JOB>(t => t.ID == (modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID), "Nav_Detail", "Nav_Users");
|
||
var userId = Guid.Empty;
|
||
var userName = "";
|
||
T_FM_NOTIFICATION_TASK sendNotice = null;
|
||
|
||
List<T_WB_DANGEROUS_JOB_DISCLOSE_DETAIL> newDiscloseDetail = null;
|
||
List<T_WB_DANGEROUS_JOB_DISCLOSE_USER> ListDisCloseUsers = new List<T_WB_DANGEROUS_JOB_DISCLOSE_USER>();
|
||
if (dangerousJob.START_TIME.HasValue && dangerousJob.START_TIME.Value >= DateTime.Now)
|
||
{
|
||
//开始时间大于当前时间才有后续的流程
|
||
newDiscloseDetail = new List<T_WB_DANGEROUS_JOB_DISCLOSE_DETAIL>();
|
||
foreach (var item in dangerousJob.Nav_Detail)
|
||
{
|
||
T_WB_DANGEROUS_JOB_DISCLOSE_DETAIL newItem = new T_WB_DANGEROUS_JOB_DISCLOSE_DETAIL();
|
||
newItem.ID = Guid.NewGuid();
|
||
newItem.ROW_NUM = item.ROW_NUM;
|
||
newItem.PARENT_ID = item.PARENT_ID;
|
||
newItem.MEASURE = item.MEASURE;
|
||
newItem.REMARK = item.REMARK;
|
||
newItem.ORG_ID = item.ORG_ID;
|
||
newItem.ISORNOT = item.ISORNOT;
|
||
newDiscloseDetail.Add(newItem);
|
||
}
|
||
//被交底人 默认 系统匹配作业人员和现场监护人员,可增加,点选外包单位信息登记表人员
|
||
foreach (var item in dangerousJob.Nav_Users)
|
||
{
|
||
ListDisCloseUsers.Add(new T_WB_DANGEROUS_JOB_DISCLOSE_USER()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
ORG_ID = item.ORG_ID,
|
||
PARENT_ID = item.PARENT_ID,
|
||
USER_ID = item.USER_ID,
|
||
DEAL_STATUS = (int)UserDealStatusEnum.待处理,// 0,//UserDealStatusEnum.已处理;
|
||
});
|
||
}
|
||
if (dangerousJob.USER_ID != Guid.Empty)
|
||
{
|
||
var check = ListDisCloseUsers.FirstOrDefault(e => e.USER_ID == dangerousJob.USER_ID);
|
||
if (check == null)
|
||
{
|
||
ListDisCloseUsers.Add(new T_WB_DANGEROUS_JOB_DISCLOSE_USER()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
ORG_ID = dangerousJob.ORG_ID,
|
||
PARENT_ID = dangerousJob.ID,
|
||
USER_ID = dangerousJob.USER_ID,
|
||
DEAL_STATUS = (int)UserDealStatusEnum.待处理,// 0,//UserDealStatusEnum.已处理;
|
||
});
|
||
}
|
||
}
|
||
//dangerousJob.Nav_Users = null;
|
||
//dangerousJob.Nav_Detail = null;
|
||
|
||
var project = GetEntity<T_WB_PROJECT_INPUT>(t => t.ID == dangerousJob.PROJECT_ID);
|
||
var outsafeuser = GetEntity<T_FM_USER>(t => t.CODE == project.WB_USER_CODE);
|
||
userId = outsafeuser.ID;
|
||
userName = outsafeuser.NAME;
|
||
dangerousJob.DISCLOSE = 1;
|
||
dangerousJob.STATUS = PFStandardStatus.Archived;
|
||
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业安全技术交底表", dangerousJob.ID, dangerousJob.ORG_ID, userId, userName, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB019");//外包单位现场安全员安全技术交底
|
||
}
|
||
else
|
||
{
|
||
//给申请人发送今日提醒
|
||
dangerousJob.STATUS = PFStandardStatus.Close;
|
||
if (dangerousJob.CREATER_ID.HasValue)
|
||
{
|
||
userId = dangerousJob.CREATER_ID.Value;
|
||
userName = GetEntity<T_FM_USER>(userId)?.NAME;
|
||
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("危险作业申请审批结束已经超期,请重新发起", Guid.Empty, dangerousJob.ORG_ID, userId, userName, DateTime.Now, DateTime.Now.AddDays(1), 2, "");
|
||
}
|
||
}
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (sendNotice != null)
|
||
AddEntityNoCommit(sendNotice);
|
||
if (dangerousJob != null)
|
||
UpdateEntityNoCommit(dangerousJob);
|
||
if (newDiscloseDetail != null && newDiscloseDetail.Any())
|
||
BantchSaveEntityNoCommit(newDiscloseDetail);
|
||
if (ListDisCloseUsers != null && ListDisCloseUsers.Any())
|
||
BantchSaveEntityNoCommit(ListDisCloseUsers);
|
||
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
|
||
///// <summary>
|
||
///// 审核通过
|
||
///// </summary>
|
||
///// <param name="pageFilter"></param>
|
||
///// <returns></returns>
|
||
//[HttpPost, Route("UserAgree")]
|
||
//public JsonActionResult<bool> UserAgree([FromBody] T_WB_SAFE_CHECK_RECORD entity)
|
||
//{
|
||
// return SafeExecute<bool>(() =>
|
||
// {
|
||
// var record = GetEntity<T_WB_SAFE_CHECK_RECORD>(t => t.ID == entity.ID);
|
||
// var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
// T_FM_NOTIFICATION_TASK sendNotice = null;
|
||
// record.STATUS = PFStandardStatus.Archived;
|
||
// //sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业-建设项目负责人审批", entity.ID, entity.ORG_ID, userId, userName, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB013_SHOWPRINT");
|
||
// var finishTask = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID);
|
||
// UnifiedCommit(() =>
|
||
// {
|
||
// UpdateEntityNoCommit(record);
|
||
// if (finishTask != null)
|
||
// UpdateEntityNoCommit(finishTask);
|
||
// if (sendNotice != null)
|
||
// AddEntityNoCommit(sendNotice);
|
||
// });
|
||
// return true;
|
||
// });
|
||
//}
|
||
|
||
|
||
/// <summary>
|
||
/// 外包工程检查记录 审批流
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool UserRecordAgreeNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var record = GetEntity<T_WB_SAFE_CHECK_RECORD>(t => t.ID == modelApp.DATA_ID);
|
||
var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
record.STATUS = PFStandardStatus.Archived;
|
||
//sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程危险作业-建设项目负责人审批", entity.ID, entity.ORG_ID, userId, userName, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB013_SHOWPRINT");
|
||
//var finishTask = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID);
|
||
|
||
//3、审批后,根据整改责任单位的外包单位汇总问题触发给外包单位
|
||
List<T_WB_HIDDEN_DANGER_NOTIFY> ListNotice = null;
|
||
List<T_WB_HIDDEN_DANGER_NOTIFY_DETAIL> Details = null;
|
||
List<T_WB_HIDDEN_DANGER_NOTIFY_DETAIL_FILE> Files = null;
|
||
List<T_FM_NOTIFICATION_TASK> listTask = null;
|
||
|
||
var risk = GetEntities<T_WB_SAFE_CHECK_RECORD_DETAIL>(e => e.PARENT_ID == modelApp.DATA_ID && e.PROJECT_ID.HasValue && e.ISORNOT.HasValue && e.ISORNOT.Value == ISORNOT.是, "Nav_Files");
|
||
if (risk != null && risk.Count() > 0)
|
||
{
|
||
//检查发现了问题
|
||
var riskProjectID = risk.Select(e => e.PROJECT_ID.Value).Distinct();
|
||
var listInput = GetEntities<T_WB_PROJECT_INPUT>(e => riskProjectID.Contains(e.ID) && !e.IS_DELETED);//外包单位找安全员
|
||
T_WB_PROJECT_INPUT project = null;
|
||
var listPhont = listInput.Select(e => e.WB_USER_PHONE);
|
||
var listUser = GetEntities<T_FM_USER>(e => listPhont.Contains(e.PHONE) && e.ENABLE_STATUS == 0);
|
||
|
||
T_WB_HIDDEN_DANGER_NOTIFY modelNotice = null;
|
||
T_FM_NOTIFICATION_TASK taskNotice = null;
|
||
Details = new List<T_WB_HIDDEN_DANGER_NOTIFY_DETAIL>();
|
||
listTask = new List<T_FM_NOTIFICATION_TASK>();
|
||
Files = new List<T_WB_HIDDEN_DANGER_NOTIFY_DETAIL_FILE>();
|
||
ListNotice = new List<T_WB_HIDDEN_DANGER_NOTIFY>();
|
||
foreach (var item in riskProjectID)
|
||
{
|
||
//找安全员
|
||
T_FM_USER userSafe = listUser.FirstOrDefault(e => e.PHONE == (listInput.First(e => e.ID == item).WB_USER_PHONE) && e.PROJECT_ID.HasValue);
|
||
if (userSafe == null)
|
||
{
|
||
continue;
|
||
}
|
||
var proRisk = risk.Where(e => e.PROJECT_ID == item);
|
||
|
||
modelNotice = new T_WB_HIDDEN_DANGER_NOTIFY();
|
||
taskNotice = new T_FM_NOTIFICATION_TASK();
|
||
|
||
modelNotice.ID = Guid.NewGuid();
|
||
modelNotice.ORG_ID = record.ORG_ID;
|
||
modelNotice.CREATER_ID = currUser;//审批结束
|
||
modelNotice.CREATE_TIME = DateTime.Now;
|
||
modelNotice.CHECK_TIME = DateTime.Now;
|
||
modelNotice.PROJECT_ID = item;
|
||
modelNotice.TASK_ID = record.TASK_ID;
|
||
modelNotice.CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
||
modelNotice.LAUNCH_USER_ID = userSafe.ID;//安全员 接收待办
|
||
//modelNotice.USER_ID = null;//检查人? 去明细取第一个
|
||
modelNotice.MineType = null;
|
||
modelNotice.STATUS = PFStandardStatus.Draft;
|
||
modelNotice.CODE = DateTime.Now.ToString("yyyyMMddHHmmss");
|
||
modelNotice.RECORD_ID = record.ID;
|
||
project = listInput.FirstOrDefault(e => e.ID == item);
|
||
if (project != null && project.DEPARTMENT_ID.HasValue)
|
||
{
|
||
modelNotice.DEPARTMENT_ID = project.DEPARTMENT_ID;
|
||
}
|
||
else
|
||
{
|
||
modelNotice.DEPARTMENT_ID = record.DEPARTMENT_ID;
|
||
}
|
||
|
||
int ROW_NUM = 0;
|
||
Guid? NOTIFY_DETAIL_ID = null;
|
||
string MineType = "_";
|
||
foreach (var itemD in proRisk)
|
||
{
|
||
if (modelNotice.USER_ID == Guid.Empty)//给单赋值
|
||
modelNotice.USER_ID = itemD.USER_ID.Value;
|
||
|
||
ROW_NUM++;
|
||
NOTIFY_DETAIL_ID = Guid.NewGuid();
|
||
Details.Add(new T_WB_HIDDEN_DANGER_NOTIFY_DETAIL()
|
||
{
|
||
ID = NOTIFY_DETAIL_ID.Value,
|
||
ORG_ID = modelNotice.ORG_ID,
|
||
CREATER_ID = currUser,
|
||
CREATE_TIME = DateTime.Now,
|
||
PARENT_ID = modelNotice.ID,
|
||
ROW_NUM = ROW_NUM,
|
||
MineType = itemD.MineType,
|
||
AREA_ID = itemD.AREA_ID,
|
||
DETAIL_ID = itemD.ID,//.TASK_DETAIL_ID,
|
||
CHECK_CONTENT = itemD.CHECK_CONTENT,
|
||
CHECK_BASIS = itemD.CHECK_BASIS,
|
||
REMARK = itemD.REMARK,
|
||
ADRESS = itemD.ADRESS,
|
||
END_TIME = itemD.END_TIME.Value,
|
||
//DETAIL_ID= itemD.TASK_DETAIL_ID,
|
||
TASK_DETAIL_ID = itemD.TASK_DETAIL_ID,
|
||
});
|
||
MineType += ((int)itemD.MineType) + "_";
|
||
if (itemD.Nav_Files != null && itemD.Nav_Files.Any())
|
||
{
|
||
//附件
|
||
foreach (var itemDF in itemD.Nav_Files)
|
||
{
|
||
Files.Add(new T_WB_HIDDEN_DANGER_NOTIFY_DETAIL_FILE()
|
||
{
|
||
ID = Guid.NewGuid(),
|
||
ORG_ID = modelNotice.ORG_ID,
|
||
PARENT_ID = NOTIFY_DETAIL_ID.Value,
|
||
IMG_FILE_ID = itemDF.IMG_FILE_ID
|
||
});
|
||
}
|
||
}
|
||
}
|
||
|
||
modelNotice.MineType = MineType;
|
||
taskNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程隐患整改通知", modelNotice.ID, modelNotice.ORG_ID, userSafe.ID, userSafe.NAME, DateTime.Now, 1, "WB037", FMTASKTYPE.Default);//WB037
|
||
ListNotice.Add(modelNotice);
|
||
listTask.Add(taskNotice);
|
||
}
|
||
}
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(record);
|
||
//if (finishTask != null)
|
||
// UpdateEntityNoCommit(finishTask);
|
||
//if (sendNotice != null)
|
||
// AddEntityNoCommit(sendNotice);
|
||
|
||
//审批
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
|
||
//隐患通知
|
||
if (ListNotice != null && ListNotice.Count > 0)
|
||
BantchSaveEntityNoCommit(ListNotice);
|
||
if (Details != null && Details.Count > 0)
|
||
BantchSaveEntityNoCommit(Details);
|
||
if (Files != null && Files.Count > 0)
|
||
BantchSaveEntityNoCommit(Files);
|
||
if (listTask != null && listTask.Count > 0)
|
||
BantchSaveEntityNoCommit(listTask);
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 外包工程检查记录 审批流
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool UserNoticeAgreeNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = GetEntity<T_WB_HIDDEN_DANGER_NOTIFY>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
|
||
var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
T_FM_NOTIFICATION_TASK sendNotice = null;
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
T_WB_HIDDEN_DANGER_RECORD record = new T_WB_HIDDEN_DANGER_RECORD();
|
||
record.ID = Guid.NewGuid();
|
||
record.ORG_ID = entity.ORG_ID;
|
||
record.NOTIFY_ID = entity.ID;
|
||
record.TASK_ID = entity.TASK_ID;
|
||
List<T_WB_HIDDEN_DANGER_RECORD_DETAIL> recordDetails = new List<T_WB_HIDDEN_DANGER_RECORD_DETAIL>();
|
||
List<T_WB_HIDDEN_DANGER_RECORD_DETAIL_BEFORE_FILE> beforeFiles = new List<T_WB_HIDDEN_DANGER_RECORD_DETAIL_BEFORE_FILE>();
|
||
|
||
BaseFilter recordFilter = new BaseFilter(entity.ORG_ID);
|
||
recordFilter.Include = new string[] { "Nav_Files" };
|
||
var notifyDetails = GetEntities<T_WB_HIDDEN_DANGER_NOTIFY_DETAIL>(t => t.PARENT_ID == entity.ID, recordFilter);
|
||
foreach (var notifyDetail in notifyDetails)
|
||
{
|
||
T_WB_HIDDEN_DANGER_RECORD_DETAIL recordDetail = new T_WB_HIDDEN_DANGER_RECORD_DETAIL();
|
||
recordDetail.ID = Guid.NewGuid();
|
||
recordDetail.ORG_ID = entity.ORG_ID;
|
||
recordDetail.PARENT_ID = record.ID;
|
||
recordDetail.ROW_NUM = notifyDetail.ROW_NUM;
|
||
recordDetail.MineType = notifyDetail.MineType;
|
||
recordDetail.AREA_ID = notifyDetail.AREA_ID;
|
||
recordDetail.CHECK_CONTENT = notifyDetail.CHECK_CONTENT;
|
||
recordDetail.CHECK_BASIS = notifyDetail.CHECK_BASIS;
|
||
recordDetail.REMARK = notifyDetail.REMARK;
|
||
recordDetail.ADRESS = notifyDetail.ADRESS;
|
||
recordDetail.END_TIME = notifyDetail.END_TIME;
|
||
recordDetail.TASK_DETAIL_ID = notifyDetail.TASK_DETAIL_ID;
|
||
|
||
recordDetails.Add(recordDetail);
|
||
foreach (var file in notifyDetail.Nav_Files)
|
||
{
|
||
T_WB_HIDDEN_DANGER_RECORD_DETAIL_BEFORE_FILE file1 = new T_WB_HIDDEN_DANGER_RECORD_DETAIL_BEFORE_FILE();
|
||
file1.ID = file.ID;
|
||
file1.ORG_ID = file.ORG_ID;
|
||
file1.IMG_FILE_ID = file.IMG_FILE_ID;
|
||
file1.PARENT_ID = recordDetail.ID;
|
||
beforeFiles.Add(file1);
|
||
}
|
||
}
|
||
var project = GetEntity<T_WB_PROJECT_INPUT>(entity.PROJECT_ID);
|
||
var user = GetEntity<T_FM_USER>(t => t.CODE == project.WB_USER_CODE);
|
||
//sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程隐患整改记录", record.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB039");
|
||
//var finishTask = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID);
|
||
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程隐患整改记录", record.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, 1, "WB039", FMTASKTYPE.Default);
|
||
UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(entity);
|
||
//if (finishTask != null)
|
||
// UpdateEntityNoCommit(finishTask);
|
||
if (sendNotice != null)
|
||
AddEntityNoCommit(sendNotice);
|
||
if (record != null)
|
||
AddEntityNoCommit(record);
|
||
if (recordDetails != null && recordDetails.Any())
|
||
BantchSaveEntityNoCommit(recordDetails);
|
||
if (beforeFiles != null && beforeFiles.Any())
|
||
BantchSaveEntityNoCommit(beforeFiles);
|
||
|
||
//审批
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
|
||
/// <summary>
|
||
/// 整改记录 审批流
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool HiddenDangerAgreeNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var record = GetEntity<T_WB_HIDDEN_DANGER_RECORD>(t => t.ID == modelApp.DATA_ID);
|
||
var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
T_FM_NOTIFICATION_TASK sendNotice = null;
|
||
if (modelApp.PARAM == "30") //月:触发给安环安全员审阅
|
||
{
|
||
// 虽然审批结束 等 安环确认后再归档
|
||
var safeUser = GetEntity<T_FM_USER>(t => t.Nav_ApproveRole.NAME == "安环部安全员");
|
||
sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程隐患整改记录-安环部安全员审阅", record.ID, record.ORG_ID, safeUser.ID, safeUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB039_SHOWPRINT");
|
||
}
|
||
else
|
||
{
|
||
record.STATUS = PFStandardStatus.Archived;
|
||
}
|
||
record.ENDTIME = DateTime.Now;
|
||
UnifiedCommit(() =>
|
||
{
|
||
UpdateEntityNoCommit(record);
|
||
if (sendNotice != null)
|
||
AddEntityNoCommit(sendNotice);
|
||
|
||
//审批
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 整改记录 审批流
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool RegisterAgreeNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var register = GetEntity<T_WB_REGISTER>(t => t.ID == modelApp.DATA_ID);
|
||
var project = GetEntity<T_WB_PROJECT_INPUT>(t => t.ID == register.PROJECT_ID);
|
||
register.STATUS = PFStandardStatus.Archived;
|
||
//var finishTask = NotificationTaskService.FOGetTaskFinishModel(entity.TaskID, entity.ID);
|
||
T_WB_TRAIN_SELECT select = new T_WB_TRAIN_SELECT();
|
||
select.ID = Guid.NewGuid();
|
||
select.ORG_ID = register.ORG_ID;
|
||
select.PROJECT_ID = register.PROJECT_ID;
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel(project.UNIT_NAME + "-入厂安全培训指派", select.ID, register.ORG_ID, project.SCENE_USER_ID, GetEntity<T_FM_USER>(project.SCENE_USER_ID).NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB006");
|
||
|
||
|
||
//UnifiedCommit(() =>
|
||
//{
|
||
// if (register != null)
|
||
// UpdateEntityNoCommit(register);
|
||
// if (sendNotice != null)
|
||
// AddEntityNoCommit(sendNotice);
|
||
// if (select != null)
|
||
// AddEntityNoCommit(select);
|
||
//});
|
||
//return true;
|
||
|
||
//var record = GetEntity<T_WB_HIDDEN_DANGER_RECORD>(t => t.ID == modelApp.DATA_ID);
|
||
//var currUser = APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
//T_FM_NOTIFICATION_TASK sendNotice = null;
|
||
//if (modelApp.PARAM == "30") //月:触发给安环安全员审阅
|
||
//{
|
||
// // 虽然审批结束 等 安环确认后再归档
|
||
// var safeUser = GetEntity<T_FM_USER>(t => t.Nav_ApproveRole.NAME == "安环部安全员");
|
||
// sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("外包工程隐患整改记录-安环部安全员审阅", record.ID, record.ORG_ID, safeUser.ID, safeUser.NAME, DateTime.Now, DateTime.Now.AddDays(7), 1, "WB039_SHOWPRINT");
|
||
//}
|
||
//else
|
||
//{
|
||
// record.STATUS = PFStandardStatus.Archived;
|
||
//}
|
||
//record.ENDTIME = DateTime.Now;
|
||
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
|
||
if (register != null)
|
||
UpdateEntityNoCommit(register);
|
||
if (sendNotice != null)
|
||
AddEntityNoCommit(sendNotice);
|
||
if (select != null)
|
||
AddEntityNoCommit(select);
|
||
|
||
//UpdateEntityNoCommit(record);
|
||
if (sendNotice != null)
|
||
AddEntityNoCommit(sendNotice);
|
||
|
||
//审批
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 双控HMR
|
||
private bool BackUpdate_SKSecurityInspectionNotice(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_SECURITY_INSPECTION_NOTICE>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID, "Nav_CheckType");
|
||
entity.STATUS = PFStandardStatus.Sign;
|
||
var entityDetails = this.GetEntities<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL>(t => t.SECURITY_INSPECTION_NOTICE_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_CheckNoticeDetailUsers");
|
||
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<Guid> userIds = new List<Guid>();
|
||
List<Guid> applyUserIds = new List<Guid>();
|
||
List<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_USER> detailUsers = new List<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_USER>();
|
||
if (entityDetails != null && entityDetails.Any())
|
||
{
|
||
foreach (var user in entityDetails)
|
||
{
|
||
if (user.Nav_CheckNoticeDetailUsers != null && user.Nav_CheckNoticeDetailUsers.Any())
|
||
{
|
||
var tempIds = user.Nav_CheckNoticeDetailUsers.Where(t => t.USER_ID == entity.APPLY_USER_ID).Select(t => t.ID).ToList();
|
||
if (tempIds != null && tempIds.Any())
|
||
{
|
||
applyUserIds.AddRange(tempIds);
|
||
}
|
||
var ids = user.Nav_CheckNoticeDetailUsers.Where(m => m.USER_ID != null && m.USER_ID != entity.APPLY_USER_ID).Select(t => (Guid)t.USER_ID).Distinct().ToList();
|
||
userIds.AddRange(ids);
|
||
}
|
||
}
|
||
}
|
||
if (applyUserIds != null && applyUserIds.Any())
|
||
{
|
||
detailUsers = this.GetEntities<T_SK_SECURITY_INSPECTION_NOTICE_DETAIL_USER>(t => applyUserIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
detailUsers.ForEach(t =>
|
||
{
|
||
t.ISCHECK = true;
|
||
t.CHECKTIME = DateTime.Now;
|
||
});
|
||
}
|
||
userIds = userIds.Distinct().ToList();
|
||
if (userIds != null && userIds.Any())
|
||
{
|
||
entity.STATUS = PFStandardStatus.Sign;
|
||
var UserNames = new List<string>();
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && userIds.Contains(t.ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
foreach (var u in userIds)
|
||
{
|
||
var current = users.FirstOrDefault(t => t.ID == u);
|
||
UserNames.Add(current?.NAME);
|
||
}
|
||
var date = DateTime.Now.Year + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0');
|
||
//发消息
|
||
sendNotices = NotificationTaskService.InsertUserNoticeTaskModels(entity.DEPARTMENT_TYPE.GetDescription() + "安全检查通知" + date + entity.Nav_CheckType?.NAME + "-确认", entity.ID, entity.ORG_ID, userIds, UserNames, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK006_SHOWPRINT");
|
||
}
|
||
else
|
||
{
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (sendNotices != null && sendNotices.Any())
|
||
this.BantchSaveEntityNoCommit(sendNotices);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (detailUsers != null && detailUsers.Any())
|
||
this.BantchSaveEntityNoCommit(detailUsers);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_SKHiddenDangerReport(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_HIDDEN_DANGER_REPORT>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID, "Nav_ReportFiles");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
var reportDetails = this.GetEntities<T_SK_HIDDEN_DANGER_REPORT_DETAIL>(t => t.HIDDEN_DANGER_REPORT_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_ReportDetailFiles", "Nav_ReportDetailBasics", "Nav_ReportDetailReasons");
|
||
//List<T_SK_HIDDEN_DANGER_REPORT_DETAIL> reportDetails = new List<T_SK_HIDDEN_DANGER_REPORT_DETAIL>();
|
||
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD> records = new List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA> photoList = new List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_BASIC> basicList = new List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_BASIC>();
|
||
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE> notices = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_FILE> nfileList = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_FILE>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL> noticeDetails = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_BASIC> noticeBasicList = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_BASIC>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_FILE> noticeFileList = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_FILE>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_REASON> noticeReasonList = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_REASON>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON> reasonList = new List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON>();
|
||
if (entity != null && reportDetails != null && reportDetails.Any())
|
||
{
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_ApproveRole");
|
||
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_User");
|
||
var random = new Random();
|
||
foreach (var detail in reportDetails)
|
||
{
|
||
var departId = users.FirstOrDefault(t => t.ID == detail.RECITIFY_USER_ID).DEPARTMENT_ID;
|
||
var departUserId = departs.FirstOrDefault(t => t.ID == departId)?.USER_ID;
|
||
if (detail.RECITIFY_USER_ID == entity.APPLY_USER_ID)
|
||
{
|
||
var acceptUser = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (acceptUser == null || (acceptUser != null && acceptUser.ID == detail.RECITIFY_USER_ID))
|
||
{
|
||
acceptUser = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人"));
|
||
}
|
||
var user = users.FirstOrDefault(t => t.ID == entity.APPLY_USER_ID);
|
||
detail.ISCHECK = true;
|
||
detail.CHECKTIME = DateTime.Now;
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD record = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD();
|
||
record.ORG_ID = detail.ORG_ID;
|
||
record.APPLY_USER_ID = entity.APPLY_USER_ID;
|
||
record.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID;
|
||
record.HIDDEN_DANGER_REPORT_ID = entity.ID;
|
||
record.HIDDEN_DANGER_REPORT_DETAIL_ID = detail.ID;
|
||
record.HIDDEN_DANGER_CONFIRM_ID = null;
|
||
record.CODE = "YHZG" + DateTime.Now.ToShortDateString().Replace("/", "") + random.Next(1, 999);
|
||
record.MineType = entity.MineType;
|
||
record.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID;
|
||
record.RISK_AREA_ID = detail.RISK_AREA_ID;
|
||
record.HIDDEN_PLACE = detail.HIDDEN_PLACE;
|
||
record.HIDDEN_DESCRIPTION = detail.HIDDEN_DESCRIPTION;
|
||
record.HIDDEN_LEVEL = detail.HIDDEN_LEVEL;
|
||
record.RECITIFY_TIME = detail.RECITIFY_TIME;
|
||
record.RECITIFY_USER_ID = detail.RECITIFY_USER_ID;
|
||
record.IMPLEMENT_USER_ID = detail.RECITIFY_USER_ID;
|
||
record.ACCEPT_USER_ID = acceptUser.ID;
|
||
record.CHECK_PERSON = entity.CHECK_PERSON;
|
||
record.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
record.CHECK_QUESTION_ID = detail.CHECK_QUESTION_ID;
|
||
record.CHECK_CONTENTS_ID = detail.CHECK_CONTENTS_ID;
|
||
record.CHECK_TIME = entity.CHECK_TIME != null ? entity.CHECK_TIME : DateTime.Now;
|
||
records.Add(record);
|
||
if (detail.Nav_ReportDetailFiles != null && detail.Nav_ReportDetailFiles.Any())
|
||
{
|
||
foreach (var item in detail.Nav_ReportDetailFiles)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
photoList.Add(file);
|
||
}
|
||
}
|
||
if (detail.Nav_ReportDetailBasics != null && detail.Nav_ReportDetailBasics.Any())
|
||
{
|
||
foreach (var item in detail.Nav_ReportDetailBasics)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_BASIC file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_BASIC();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.LAW_ID = item.LAW_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
basicList.Add(file);
|
||
}
|
||
}
|
||
if (detail.Nav_ReportDetailReasons != null && detail.Nav_ReportDetailReasons.Any())
|
||
{
|
||
foreach (var item in detail.Nav_ReportDetailReasons)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.REASON_ID = item.REASON_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
reasonList.Add(file);
|
||
}
|
||
}
|
||
var endtime = DateTime.Now.AddDays(3);
|
||
if (record.RECITIFY_TIME != null && record.RECITIFY_TIME != DateTime.MinValue)
|
||
{
|
||
endtime = DateTime.Parse(record.RECITIFY_TIME.Value.ToShortDateString() + " 23:59:59");
|
||
}
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改记录表", record.ID, record.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
endtime, (int)FMNoticeTypeEnum.消息, "SK022");
|
||
sendNotices.Add(sendNotice);
|
||
detail.Nav_ReportDetailFiles = null;
|
||
detail.Nav_ReportDetailBasics = null;
|
||
//reportDetails.Add(detail);
|
||
}
|
||
else if (departUserId != null && detail.RECITIFY_USER_ID != departUserId)
|
||
{
|
||
var acceptUser = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (acceptUser == null || (acceptUser != null && acceptUser.ID == detail.RECITIFY_USER_ID))
|
||
{
|
||
acceptUser = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人"));
|
||
}
|
||
var user = users.FirstOrDefault(t => t.ID == detail.RECITIFY_USER_ID);
|
||
detail.ISCHECK = true;
|
||
detail.CHECKTIME = DateTime.Now;
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD record = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD();
|
||
record.ORG_ID = detail.ORG_ID;
|
||
record.APPLY_USER_ID = entity.APPLY_USER_ID;
|
||
record.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID;
|
||
record.HIDDEN_DANGER_REPORT_ID = entity.ID;
|
||
record.HIDDEN_DANGER_REPORT_DETAIL_ID = detail.ID;
|
||
record.HIDDEN_DANGER_CONFIRM_ID = null;
|
||
record.CODE = "YHZG" + DateTime.Now.ToShortDateString().Replace("/", "") + random.Next(1, 999);
|
||
record.MineType = entity.MineType;
|
||
record.RISK_AREA_ID = detail.RISK_AREA_ID;
|
||
record.HIDDEN_PLACE = detail.HIDDEN_PLACE;
|
||
record.HIDDEN_DESCRIPTION = detail.HIDDEN_DESCRIPTION;
|
||
record.HIDDEN_LEVEL = detail.HIDDEN_LEVEL;
|
||
record.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID;
|
||
record.RECITIFY_TIME = detail.RECITIFY_TIME;
|
||
record.RECITIFY_USER_ID = detail.RECITIFY_USER_ID;
|
||
record.IMPLEMENT_USER_ID = detail.RECITIFY_USER_ID;
|
||
record.ACCEPT_USER_ID = acceptUser.ID;
|
||
record.CHECK_PERSON = entity.CHECK_PERSON;
|
||
record.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
record.CHECK_QUESTION_ID = detail.CHECK_QUESTION_ID;
|
||
record.CHECK_CONTENTS_ID = detail.CHECK_CONTENTS_ID;
|
||
record.CHECK_TIME = entity.CHECK_TIME != null ? entity.CHECK_TIME : DateTime.Now;
|
||
records.Add(record);
|
||
if (detail.Nav_ReportDetailFiles != null && detail.Nav_ReportDetailFiles.Any())
|
||
{
|
||
foreach (var item in detail.Nav_ReportDetailFiles)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
photoList.Add(file);
|
||
}
|
||
}
|
||
if (detail.Nav_ReportDetailBasics != null && detail.Nav_ReportDetailBasics.Any())
|
||
{
|
||
foreach (var item in detail.Nav_ReportDetailBasics)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_BASIC file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_BASIC();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.LAW_ID = item.LAW_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
basicList.Add(file);
|
||
}
|
||
}
|
||
if (detail.Nav_ReportDetailReasons != null && detail.Nav_ReportDetailReasons.Any())
|
||
{
|
||
foreach (var item in detail.Nav_ReportDetailReasons)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.REASON_ID = item.REASON_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
reasonList.Add(file);
|
||
}
|
||
}
|
||
var endtime = DateTime.Now.AddDays(3);
|
||
if (record.RECITIFY_TIME != null && record.RECITIFY_TIME != DateTime.MinValue)
|
||
{
|
||
endtime = DateTime.Parse(record.RECITIFY_TIME.Value.ToShortDateString() + " 23:59:59");
|
||
}
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改记录表", record.ID, record.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
endtime, (int)FMNoticeTypeEnum.消息, "SK022");
|
||
sendNotices.Add(sendNotice);
|
||
detail.Nav_ReportDetailFiles = null;
|
||
detail.Nav_ReportDetailBasics = null;
|
||
}
|
||
else
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE notice = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE();
|
||
notice.ORG_ID = detail.ORG_ID;
|
||
notice.HIDDEN_DANGER_REPORT_ID = entity.ID;
|
||
notice.HIDDEN_DANGER_REPORT_DETAIL_ID = detail.ID;
|
||
notice.HIDDEN_DANGER_CONFIRM_ID = null;
|
||
notice.APPLY_USER_ID = entity.APPLY_USER_ID;
|
||
notice.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID;
|
||
notice.MineType = entity.MineType;
|
||
notice.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID;
|
||
notice.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
notice.PLANCHECKFREQUENCY = entity.PLANCHECKFREQUENCY;
|
||
notice.DEPARTMENT_TYPE = entity.DEPARTMENT_TYPE;
|
||
notice.CHECK_TIME = entity.CHECK_TIME != null ? entity.CHECK_TIME : DateTime.Now;
|
||
notice.CHECK_PERSON = entity.CHECK_PERSON;
|
||
notices.Add(notice);
|
||
if (entity.Nav_ReportFiles != null && entity.Nav_ReportFiles.Any())
|
||
{
|
||
foreach (var item in entity.Nav_ReportFiles)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_FILE file = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_FILE();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_NOTICE_ID = notice.ID;
|
||
nfileList.Add(file);
|
||
}
|
||
}
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL noticeDetail = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL();
|
||
noticeDetail.ORG_ID = entity.ORG_ID;
|
||
noticeDetail.HIDDEN_DANGER_RECTIFY_NOTICE_ID = notice.ID;
|
||
noticeDetail.RISK_AREA_ID = detail.RISK_AREA_ID;
|
||
noticeDetail.CHECK_CONTENTS_ID = detail.CHECK_CONTENTS_ID;
|
||
noticeDetail.CHECK_QUESTION_ID = detail.CHECK_QUESTION_ID;
|
||
noticeDetail.CHECKCONTENT = detail.CHECKCONTENT;
|
||
noticeDetail.CHECKPROOF = detail.CHECKPROOF;
|
||
noticeDetail.CHECKSTANDARD = detail.CHECKSTANDARD;
|
||
noticeDetail.HIDDEN_DESCRIPTION = detail.HIDDEN_DESCRIPTION;
|
||
noticeDetail.HIDDEN_LEVEL = detail.HIDDEN_LEVEL;
|
||
noticeDetail.HIDDEN_PLACE = detail.HIDDEN_PLACE;
|
||
noticeDetail.RECITIFY_TIME = detail.RECITIFY_TIME;
|
||
noticeDetail.RECITIFY_USER_ID = detail.RECITIFY_USER_ID;
|
||
noticeDetails.Add(noticeDetail);
|
||
if (detail.Nav_ReportDetailFiles != null && detail.Nav_ReportDetailFiles.Any())
|
||
{
|
||
foreach (var item in detail.Nav_ReportDetailFiles)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_FILE file = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_FILE();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_ID = noticeDetail.ID;
|
||
noticeFileList.Add(file);
|
||
}
|
||
}
|
||
if (detail.Nav_ReportDetailBasics != null && detail.Nav_ReportDetailBasics.Any())
|
||
{
|
||
foreach (var item in detail.Nav_ReportDetailBasics)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_BASIC file = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_BASIC();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.LAW_ID = item.LAW_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_ID = noticeDetail.ID;
|
||
noticeBasicList.Add(file);
|
||
}
|
||
}
|
||
if (detail.Nav_ReportDetailReasons != null && detail.Nav_ReportDetailReasons.Any())
|
||
{
|
||
foreach (var item in detail.Nav_ReportDetailReasons)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_REASON file = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_REASON();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.REASON_ID = item.REASON_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_ID = noticeDetail.ID;
|
||
noticeReasonList.Add(file);
|
||
}
|
||
}
|
||
var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user == null)
|
||
{
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人"));
|
||
}
|
||
if (user != null)
|
||
{
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改通知表", notice.ID, notice.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.消息, "SK020");
|
||
sendNotices.Add(sendNotice);
|
||
}
|
||
detail.Nav_ReportDetailBasics = null;
|
||
detail.Nav_ReportDetailFiles = null;
|
||
}
|
||
var checkUser = users.FirstOrDefault(t => t.ID == detail.RECITIFY_USER_ID);
|
||
if (checkUser != null)
|
||
{
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("隐患上报表" + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + "-确认", entity.ID, entity.ORG_ID, checkUser.ID, checkUser.NAME, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK014_SHOWPRINT");
|
||
sendNotices.Add(sendNotice);
|
||
entity.STATUS = PFStandardStatus.Sign;
|
||
}
|
||
//if (detail.IS_STORE == SKIsStoreEnum.Yes)
|
||
//{
|
||
// //触发双重预防机制
|
||
// T_SK_DOUBLE_PREVENT_MECHANISM prevent = new T_SK_DOUBLE_PREVENT_MECHANISM();
|
||
// prevent.ORG_ID = entity.ORG_ID;
|
||
// prevent.HIDDEN_DANGER_REPORT_ID = entity.ID;
|
||
// prevent.APPLY_USER_ID = entity.APPLY_USER_ID;
|
||
// prevent.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID;
|
||
// prevent.RISK_AREA_ID = detail.RISK_AREA_ID;
|
||
// prevent.CHECK_CONTENTS_ID = detail.CHECK_CONTENTS_ID;
|
||
// prevent.CHECKCONTENT = detail.CHECKCONTENT;
|
||
// prevent.CHECKPROOF = detail.CHECKPROOF;
|
||
// prevent.CHECKSTANDARD = detail.CHECKSTANDARD;
|
||
// prevent.HIDDEN_DESCRIPTION = detail.HIDDEN_DESCRIPTION;
|
||
// prevent.HIDDEN_LEVEL = detail.HIDDEN_LEVEL;
|
||
// prevent.HIDDEN_PLACE = detail.HIDDEN_PLACE;
|
||
// prevents.Add(prevent);
|
||
// if (detail.Nav_ReportDetailFiles != null && detail.Nav_ReportDetailFiles.Any())
|
||
// {
|
||
// foreach (var item in detail.Nav_ReportDetailFiles)
|
||
// {
|
||
// T_SK_DOUBLE_PREVENT_MECHANISM_FILE file = new T_SK_DOUBLE_PREVENT_MECHANISM_FILE();
|
||
// file.ORG_ID = item.ORG_ID;
|
||
// file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
// file.DOUBLE_PREVENT_MECHANISM_ID = prevent.ID;
|
||
// fileList.Add(file);
|
||
// }
|
||
// }
|
||
// var departId = users.FirstOrDefault(t => t.ID == detail.RECITIFY_USER_ID).DEPARTMENT_ID;
|
||
// var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
// if (user == null)
|
||
// {
|
||
// user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人"));
|
||
// }
|
||
// if (user != null)
|
||
// {
|
||
// var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("风险检查关联表", prevent.ID, prevent.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
// DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.消息, "SK026");
|
||
// sendNotices.Add(sendNotice);
|
||
// }
|
||
//}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (sendNotices != null && sendNotices.Any())
|
||
this.BantchSaveEntityNoCommit(sendNotices);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (reportDetails != null && reportDetails.Any())
|
||
this.BantchSaveEntityNoCommit(reportDetails);
|
||
if (records != null && records.Any())
|
||
this.BantchSaveEntityNoCommit(records);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
if (nfileList != null && nfileList.Any())
|
||
this.BantchSaveEntityNoCommit(nfileList);
|
||
if (photoList != null && photoList.Any())
|
||
this.BantchSaveEntityNoCommit(photoList);
|
||
if (basicList != null && basicList.Any())
|
||
this.BantchSaveEntityNoCommit(basicList);
|
||
if (reasonList != null && reasonList.Any())
|
||
this.BantchSaveEntityNoCommit(reasonList);
|
||
if (noticeDetails != null && noticeDetails.Any())
|
||
this.BantchSaveEntityNoCommit(noticeDetails);
|
||
if (noticeFileList != null && noticeFileList.Any())
|
||
this.BantchSaveEntityNoCommit(noticeFileList);
|
||
if (noticeBasicList != null && noticeBasicList.Any())
|
||
this.BantchSaveEntityNoCommit(noticeBasicList);
|
||
if (noticeReasonList != null && noticeReasonList.Any())
|
||
this.BantchSaveEntityNoCommit(noticeReasonList);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_SKHiddenDangerConfirm(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_HIDDEN_DANGER_CONFIRM>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID, "Nav_Report", "Nav_Reasons", "Nav_Files");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
var photos = this.GetEntities<T_SK_HIDDEN_DANGER_CONFIRM_PHOTO>(t => t.HIDDEN_DANGER_CONFIRM_ID == entity.ID, new BaseFilter(entity.ORG_ID));
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_ApproveRole");
|
||
T_SK_DOUBLE_PREVENT_MECHANISM prevent = null;
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_FILE> fileList = new List<T_SK_DOUBLE_PREVENT_MECHANISM_FILE>();
|
||
List<T_FM_NOTIFICATION_TASK> sendNotices = new List<T_FM_NOTIFICATION_TASK>();
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD record = null;
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA> photoList = new List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA>();
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE notice = null;
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_FILE> noticeFiles = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_FILE>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL> noticeDetails = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_FILE> noticeFileList = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_FILE>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_REASON> noticeReasonList = new List<T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_REASON>();
|
||
List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON> reasonList = new List<T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON>();
|
||
//if (entity != null && entity.IS_STORE == SKIsStoreEnum.Yes && entity.RECITIFY_USER_ID != null)
|
||
//{
|
||
// //触发双重预防机制
|
||
// prevent = new T_SK_DOUBLE_PREVENT_MECHANISM();
|
||
// prevent.ORG_ID = entity.ORG_ID;
|
||
// prevent.HIDDEN_DANGER_CONFIRM_ID = entity.ID;
|
||
// prevent.APPLY_USER_ID = entity.APPLY_USER_ID;
|
||
// prevent.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID;
|
||
// prevent.RISK_AREA_ID = entity.RISK_AREA_ID;
|
||
// prevent.CHECK_CONTENTS_ID = entity.CHECK_CONTENTS_ID;
|
||
// prevent.CHECKCONTENT = entity.CHECKCONTENT;
|
||
// prevent.CHECKPROOF = entity.CHECKPROOF;
|
||
// prevent.CHECKSTANDARD = entity.CHECKSTANDARD;
|
||
// prevent.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION;
|
||
// prevent.HIDDEN_LEVEL = entity.HIDDEN_LEVEL;
|
||
// prevent.HIDDEN_PLACE = entity.HIDDEN_PLACE;
|
||
// prevent.RECTIFICATION_MEASURES = entity.RECTIFICATION_MEASURES;
|
||
// if (entity.Nav_Photos != null && entity.Nav_Photos.Any())
|
||
// {
|
||
// foreach (var item in entity.Nav_Photos)
|
||
// {
|
||
// T_SK_DOUBLE_PREVENT_MECHANISM_FILE file = new T_SK_DOUBLE_PREVENT_MECHANISM_FILE();
|
||
// file.ORG_ID = item.ORG_ID;
|
||
// file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
// file.DOUBLE_PREVENT_MECHANISM_ID = prevent.ID;
|
||
// fileList.Add(file);
|
||
// }
|
||
// }
|
||
// var departId = users.FirstOrDefault(t => t.ID == entity.RECITIFY_USER_ID).DEPARTMENT_ID;
|
||
// var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
// if (user == null)
|
||
// {
|
||
// user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人"));
|
||
// }
|
||
// if (user != null)
|
||
// {
|
||
// var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("风险检查关联表", prevent.ID, prevent.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
// DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.消息, "SK026");
|
||
// sendNotices.Add(sendNotice);
|
||
// }
|
||
//}
|
||
if (entity != null && entity.RECITIFY_USER_ID != null)
|
||
{
|
||
var departId = users.FirstOrDefault(t => t.ID == entity.RECITIFY_USER_ID).DEPARTMENT_ID;
|
||
var departUserId = this.GetEntity<T_FM_DEPARTMENT>(t => t.ID == departId)?.USER_ID;
|
||
if (entity.RECITIFY_USER_ID == entity.APPLY_USER_ID)
|
||
{
|
||
var acceptUser = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (acceptUser == null || (acceptUser != null && acceptUser.ID == entity.RECITIFY_USER_ID))
|
||
{
|
||
acceptUser = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人"));
|
||
}
|
||
var user = users.FirstOrDefault(t => t.ID == entity.APPLY_USER_ID);
|
||
record = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD();
|
||
record.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID;
|
||
record.APPLY_USER_ID = entity.APPLY_USER_ID;
|
||
record.ORG_ID = entity.ORG_ID;
|
||
record.HIDDEN_DANGER_REPORT_ID = entity.Nav_Report?.ID;
|
||
record.HIDDEN_DANGER_CONFIRM_ID = entity.ID;
|
||
record.CODE = "YHZG" + DateTime.Now.ToShortDateString().Replace("/", "") + new Random().Next(1, 999);
|
||
record.MineType = entity.MineType;
|
||
record.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID;
|
||
record.RISK_AREA_ID = entity.RISK_AREA_ID;
|
||
record.HIDDEN_PLACE = entity.HIDDEN_PLACE;
|
||
record.CHECK_CONTENTS_ID = entity.CHECK_CONTENTS_ID;
|
||
record.CHECK_QUESTION_ID = entity.CHECK_QUESTION_ID;
|
||
record.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION;
|
||
record.HIDDEN_LEVEL = entity.HIDDEN_LEVEL;
|
||
record.RECITIFY_TIME = entity.RECITIFY_TIME;
|
||
record.RECITIFY_USER_ID = entity.RECITIFY_USER_ID;
|
||
record.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
record.CHECK_TIME = entity.Nav_Report?.CREATE_TIME;
|
||
record.CHECK_PERSON = user.NAME;
|
||
record.IMPLEMENT_USER_ID = entity.RECITIFY_USER_ID;
|
||
record.ACCEPT_USER_ID = acceptUser.ID;
|
||
record.RECTIFICATION_MEASURES = entity.RECTIFICATION_MEASURES;
|
||
if (photos != null && photos.Any())
|
||
{
|
||
foreach (var item in photos)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
photoList.Add(file);
|
||
}
|
||
}
|
||
if (entity.Nav_Reasons != null && entity.Nav_Reasons.Any())
|
||
{
|
||
foreach (var item in entity.Nav_Reasons)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.REASON_ID = item.REASON_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
reasonList.Add(file);
|
||
}
|
||
}
|
||
var endtime = DateTime.Now.AddDays(3);
|
||
if (record.RECITIFY_TIME != null && record.RECITIFY_TIME != DateTime.MinValue)
|
||
{
|
||
endtime = DateTime.Parse(record.RECITIFY_TIME.Value.ToShortDateString() + " 23:59:59");
|
||
}
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改记录表", record.ID, record.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
endtime, (int)FMNoticeTypeEnum.消息, "SK022");
|
||
sendNotices.Add(sendNotice);
|
||
}
|
||
else if (departUserId != null && entity.RECITIFY_USER_ID != departUserId)
|
||
{
|
||
var user = users.FirstOrDefault(t => t.ID == entity.RECITIFY_USER_ID);
|
||
if (user != null)
|
||
{
|
||
var acceptUser = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (acceptUser == null || (acceptUser != null && acceptUser.ID == entity.RECITIFY_USER_ID))
|
||
{
|
||
acceptUser = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人"));
|
||
}
|
||
record = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD();
|
||
record.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID;
|
||
record.APPLY_USER_ID = entity.APPLY_USER_ID;
|
||
record.ORG_ID = entity.ORG_ID;
|
||
record.HIDDEN_DANGER_REPORT_ID = entity.Nav_Report?.ID;
|
||
record.HIDDEN_DANGER_CONFIRM_ID = entity.ID;
|
||
record.CODE = "YHZG" + DateTime.Now.ToShortDateString().Replace("/", "") + new Random().Next(1, 999);
|
||
record.MineType = entity.MineType;
|
||
record.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID;
|
||
record.RISK_AREA_ID = entity.RISK_AREA_ID;
|
||
record.HIDDEN_PLACE = entity.HIDDEN_PLACE;
|
||
record.CHECK_CONTENTS_ID = entity.CHECK_CONTENTS_ID;
|
||
record.CHECK_QUESTION_ID = entity.CHECK_QUESTION_ID;
|
||
record.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION;
|
||
record.HIDDEN_LEVEL = entity.HIDDEN_LEVEL;
|
||
record.RECITIFY_TIME = entity.RECITIFY_TIME;
|
||
record.RECITIFY_USER_ID = entity.RECITIFY_USER_ID;
|
||
record.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
record.CHECK_TIME = entity.Nav_Report?.CREATE_TIME;
|
||
record.CHECK_PERSON = user.NAME;
|
||
record.IMPLEMENT_USER_ID = entity.RECITIFY_USER_ID;
|
||
record.ACCEPT_USER_ID = acceptUser.ID;
|
||
record.RECTIFICATION_MEASURES = entity.RECTIFICATION_MEASURES;
|
||
if (photos != null && photos.Any())
|
||
{
|
||
foreach (var item in photos)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_PHOTOA();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
photoList.Add(file);
|
||
}
|
||
}
|
||
if (entity.Nav_Reasons != null && entity.Nav_Reasons.Any())
|
||
{
|
||
foreach (var item in entity.Nav_Reasons)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON file = new T_SK_HIDDEN_DANGER_RECTIFY_RECORD_REASON();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.REASON_ID = item.REASON_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_RECORD_ID = record.ID;
|
||
reasonList.Add(file);
|
||
}
|
||
}
|
||
var endtime = DateTime.Now.AddDays(3);
|
||
if (record.RECITIFY_TIME != null && record.RECITIFY_TIME != DateTime.MinValue)
|
||
{
|
||
endtime = DateTime.Parse(record.RECITIFY_TIME.Value.ToShortDateString() + " 23:59:59");
|
||
}
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改记录表", record.ID, record.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
endtime, (int)FMNoticeTypeEnum.消息, "SK022");
|
||
sendNotices.Add(sendNotice);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
notice = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE();
|
||
notice.ORG_ID = entity.ORG_ID;
|
||
notice.HIDDEN_DANGER_REPORT_ID = entity.Nav_Report?.ID;
|
||
notice.HIDDEN_DANGER_CONFIRM_ID = entity.ID;
|
||
notice.APPLY_USER_ID = entity.APPLY_USER_ID;
|
||
notice.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID;
|
||
notice.MineType = entity.MineType;
|
||
notice.PRODUCTION_UNIT_ID = entity.PRODUCTION_UNIT_ID;
|
||
notice.CHECK_TYPE_ID = entity.CHECK_TYPE_ID;
|
||
notice.PLANCHECKFREQUENCY = entity.PLANCHECKFREQUENCY;
|
||
notice.DEPARTMENT_TYPE = entity.DEPARTMENT_TYPE;
|
||
notice.CREATE_TIME = entity.Nav_Report?.CREATE_TIME;
|
||
notice.CHECK_PERSON = entity.Nav_ApplyUser?.NAME;
|
||
if (entity.Nav_Files != null && entity.Nav_Files.Any())
|
||
{
|
||
foreach (var item in entity.Nav_Files)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_FILE file = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_FILE();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_NOTICE_ID = notice.ID;
|
||
noticeFiles.Add(file);
|
||
}
|
||
}
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL noticeDetail = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL();
|
||
noticeDetail.ORG_ID = entity.ORG_ID;
|
||
noticeDetail.HIDDEN_DANGER_RECTIFY_NOTICE_ID = notice.ID;
|
||
noticeDetail.RISK_AREA_ID = entity.RISK_AREA_ID;
|
||
noticeDetail.CHECK_CONTENTS_ID = entity.CHECK_CONTENTS_ID;
|
||
noticeDetail.CHECK_QUESTION_ID = entity.CHECK_QUESTION_ID;
|
||
noticeDetail.CHECKCONTENT = entity.CHECKCONTENT;
|
||
noticeDetail.CHECKPROOF = entity.CHECKPROOF;
|
||
noticeDetail.CHECKSTANDARD = entity.CHECKSTANDARD;
|
||
noticeDetail.HIDDEN_DESCRIPTION = entity.HIDDEN_DESCRIPTION;
|
||
noticeDetail.RECTIFICATION_MEASURES = entity.RECTIFICATION_MEASURES;
|
||
noticeDetail.HIDDEN_LEVEL = entity.HIDDEN_LEVEL;
|
||
noticeDetail.HIDDEN_PLACE = entity.HIDDEN_PLACE;
|
||
noticeDetail.RECITIFY_TIME = entity.RECITIFY_TIME;
|
||
noticeDetail.RECITIFY_USER_ID = entity.RECITIFY_USER_ID;
|
||
noticeDetails.Add(noticeDetail);
|
||
if (photos != null && photos.Any())
|
||
{
|
||
foreach (var item in photos)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_FILE file = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_FILE();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.IMG_FILE_ID = item.IMG_FILE_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_ID = noticeDetail.ID;
|
||
noticeFileList.Add(file);
|
||
}
|
||
}
|
||
if (entity.Nav_Reasons != null && entity.Nav_Reasons.Any())
|
||
{
|
||
foreach (var item in entity.Nav_Reasons)
|
||
{
|
||
T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_REASON file = new T_SK_HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_REASON();
|
||
file.ORG_ID = item.ORG_ID;
|
||
file.REASON_ID = item.REASON_ID;
|
||
file.HIDDEN_DANGER_RECTIFY_NOTICE_DETAIL_ID = noticeDetail.ID;
|
||
noticeReasonList.Add(file);
|
||
}
|
||
}
|
||
var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user == null)
|
||
{
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == departId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("负责人"));
|
||
}
|
||
if (user != null)
|
||
{
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("隐患整改通知表", notice.ID, notice.ORG_ID, user.ID, user.NAME, DateTime.Now,
|
||
DateTime.Now.AddDays(1), (int)FMNoticeTypeEnum.消息, "SK020");
|
||
sendNotices.Add(sendNotice);
|
||
}
|
||
}
|
||
var checkUser = users.FirstOrDefault(t => t.ID == entity.RECITIFY_USER_ID);
|
||
if (checkUser != null)
|
||
{
|
||
var sendNotice = NotificationTaskService.InsertUserNoticeTaskModel("隐患确认单" + DateTime.Now.Month.PadLeft(2, '0') + DateTime.Now.Day.PadLeft(2, '0') + "-确认", entity.ID, entity.ORG_ID, checkUser.ID, checkUser.NAME, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK018_SHOWPRINT");
|
||
sendNotices.Add(sendNotice);
|
||
entity.STATUS = PFStandardStatus.Sign;
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (prevent != null)
|
||
this.UpdateEntityNoCommit(prevent);
|
||
if (fileList != null && fileList.Count > 0)
|
||
BantchSaveEntityNoCommit(fileList);
|
||
if (sendNotices != null && sendNotices.Any())
|
||
this.BantchSaveEntityNoCommit(sendNotices);
|
||
if (record != null)
|
||
this.UpdateEntityNoCommit(record);
|
||
if (photoList != null && photoList.Any())
|
||
this.BantchSaveEntityNoCommit(photoList);
|
||
if (reasonList != null && reasonList.Any())
|
||
this.BantchSaveEntityNoCommit(reasonList);
|
||
if (notice != null)
|
||
this.UpdateEntityNoCommit(notice);
|
||
if (noticeFiles != null && noticeFiles.Any())
|
||
this.BantchSaveEntityNoCommit(noticeFiles);
|
||
if (noticeDetails != null && noticeDetails.Any())
|
||
this.BantchSaveEntityNoCommit(noticeDetails);
|
||
if (noticeFileList != null && noticeFileList.Any())
|
||
this.BantchSaveEntityNoCommit(noticeFileList);
|
||
if (noticeReasonList != null && noticeReasonList.Any())
|
||
this.BantchSaveEntityNoCommit(noticeReasonList);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
|
||
private bool BackUpdate_SKHiddenDangerRectifyRecord(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_HIDDEN_DANGER_RECTIFY_RECORD>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
|
||
private bool BackUpdate_SKHiddenDangerRectifyDelayApply(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_HIDDEN_DANGER_RECTIFY_DELAY_APPLY>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Reading;
|
||
var record = this.GetEntity<T_SK_HIDDEN_DANGER_RECTIFY_RECORD>(t => t.ID == entity.HIDDEN_DANGER_RECTIFY_RECORD_ID, "Nav_AcceptUser");
|
||
record.RECITIFY_TIME = entity.DELAY_RECITIFY_TIME;
|
||
var noticeTasks = this.GetEntities<T_FM_NOTIFICATION_TASK>(t => t.SOURCE_DATA_ID == entity.HIDDEN_DANGER_RECTIFY_RECORD_ID && t.NOTICE_STATUS == 0, new BaseFilter(entity.ORG_ID));
|
||
noticeTasks.ForEach(t => { t.TASK_ENDDT = entity.DELAY_RECITIFY_TIME.Value; });
|
||
T_FM_NOTIFICATION_TASK notice = null;
|
||
if (record != null && record.ACCEPT_USER_ID != null)
|
||
{
|
||
notice = NotificationTaskService.InsertUserNoticeTaskModel("延期整改申请-审阅", entity.ID, entity.ORG_ID, (Guid)record.ACCEPT_USER_ID, record.Nav_AcceptUser?.NAME, DateTime.Now,
|
||
DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK024_SHOWPRINT");
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (record != null)
|
||
this.UpdateEntityNoCommit(record);
|
||
if (notice != null)
|
||
this.UpdateEntityNoCommit(notice);
|
||
if (noticeTasks != null && noticeTasks.Any())
|
||
BantchSaveEntityNoCommit(noticeTasks);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
|
||
private bool BackUpdate_SKDoublePreventMechanism(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_DOUBLE_PREVENT_MECHANISM>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
List<Guid> libraryIds = new List<Guid>();
|
||
List<Guid> libraryDepartIds = new List<Guid>();
|
||
List<Guid> detailIds = new List<Guid>();
|
||
List<Guid> contentIds = new List<Guid>();
|
||
List<Guid> departIds = new List<Guid>();
|
||
List<Guid> postIds = new List<Guid>();
|
||
List<Guid> hiddenIds = new List<Guid>();
|
||
List<T_SK_ENTERPRISE_LIBRARY> libraryList = new List<T_SK_ENTERPRISE_LIBRARY>();
|
||
List<T_SK_ENTERPRISE_LIBRARY_DEPART> libraryDepartList = new List<T_SK_ENTERPRISE_LIBRARY_DEPART>();
|
||
List<T_SK_ENTERPRISE_LIBRARY_DETAIL> detailList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL>();
|
||
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT> contentList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>();
|
||
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART> departList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>();
|
||
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST> postList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>();
|
||
List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN> hiddenList = new List<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>();
|
||
//var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID));
|
||
//var libraryDetails = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => t.IS_DELETED == false, new BaseFilter(entity.ORG_ID));
|
||
//var libraryDeparts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DEPART>(t => t.IS_DELETED == false, new BaseFilter(entity.ORG_ID));
|
||
//var libraryContents = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(t => t.IS_DELETED == false, new BaseFilter(entity.ORG_ID));
|
||
//var contentDeparts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(t => t.IS_DELETED == false, new BaseFilter(entity.ORG_ID));
|
||
//var contentPosts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(t => t.IS_DELETED == false, new BaseFilter(entity.ORG_ID));
|
||
//var libraryHiddens = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(t => t.IS_DELETED == false, new BaseFilter(entity.ORG_ID));
|
||
if (entity != null)
|
||
{
|
||
//var details = this.GetEntities<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL>(t => t.DOUBLE_PREVENT_MECHANISM_ID == entity.ID, new BaseFilter(entity.ORG_ID), "Nav_DoubleDetailMeasures.Nav_DetailMeasureContents.Nav_DetailMeasureContentPosts.Nav_DetailPosts", "Nav_DoubleDetailMeasures.Nav_DetailMeasureContents.Nav_DetailMeasureContentHiddens", "Nav_DetailPosts");
|
||
//if (details != null && details.Any())
|
||
{
|
||
//foreach (var item in details)
|
||
{
|
||
//var libraryTemp = librarys.FirstOrDefault(t => t.MineType == item.MineType && t.AREA_ID == item.AREA_ID && t.RISK_NAME == item.RISK_NAME && t.RISK_DESCRIPTION == item.RISK_DESCRIPTION && t.EVALUATE_C == item.EVALUATE_C && t.EVALUATE_L == item.EVALUATE_L && t.EVALUATE_E == item.EVALUATE_E && t.TYPE_ID == item.TYPE_ID && t.EVALUATE_LEVEL == item.EVALUATE_LEVEL);
|
||
//if (libraryTemp == null)
|
||
//{
|
||
// T_SK_ENTERPRISE_LIBRARY library = new T_SK_ENTERPRISE_LIBRARY();
|
||
// library.ORG_ID = item.ORG_ID;
|
||
// library.MineType = item.MineType;
|
||
// library.AREA_ID = item.AREA_ID;
|
||
// library.RISK_NAME = item.RISK_NAME;
|
||
// library.RISK_DESCRIPTION = item.RISK_DESCRIPTION;
|
||
// library.TYPE_ID = item.TYPE_ID;
|
||
// library.EVALUATE_C = item.EVALUATE_C;
|
||
// library.EVALUATE_E = item.EVALUATE_E;
|
||
// library.EVALUATE_L = item.EVALUATE_L;
|
||
// library.EVALUATE_SCORE = item.EVALUATE_SCORE;
|
||
// library.EVALUATE_LEVEL = item.EVALUATE_LEVEL;
|
||
// libraryList.Add(library);
|
||
// if (item.Nav_DoubleDetailMeasures != null && item.Nav_DoubleDetailMeasures.Any())
|
||
// {
|
||
// foreach (var item2 in item.Nav_DoubleDetailMeasures)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL detail = new T_SK_ENTERPRISE_LIBRARY_DETAIL();
|
||
// detail.ENTERPRISE_LIBRARY_ID = library.ID;
|
||
// detail.ORG_ID = item2.ORG_ID;
|
||
// detail.MEASURES_NAME = item2.MEASURES_NAME;
|
||
// detail.EMERGENCY = item2.EMERGENCY;
|
||
// detail.NUM = item2.NUM;
|
||
// detailList.Add(detail);
|
||
// if (item2.Nav_DetailMeasureContents != null && item2.Nav_DetailMeasureContents.Any())
|
||
// {
|
||
// foreach (var item3 in item2.Nav_DetailMeasureContents)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT content = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT();
|
||
// content.ENTERPRISE_LIBRARY_DETAIL_ID = detail.ID;
|
||
// content.ORG_ID = item3.ORG_ID;
|
||
// content.CHECK_CONTENTS_ID = item3.CHECK_CONTENTS_ID;
|
||
// content.CHECK_CONTENT = item3.CHECK_CONTENT;
|
||
// content.CHECK_BASIC = item3.CHECK_BASIC;
|
||
// content.CHECK_STANDARD = item3.CHECK_STANDARD;
|
||
// content.NUM = item3.NUM;
|
||
// contentList.Add(content);
|
||
// if (item3.Nav_DetailMeasureContentHiddens != null && item3.Nav_DetailMeasureContentHiddens.Any())
|
||
// {
|
||
// foreach (var item4 in item3.Nav_DetailMeasureContentHiddens)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN hidden = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN();
|
||
// hidden.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = content.ID;
|
||
// hidden.ORG_ID = item4.ORG_ID;
|
||
// hidden.HIDDEN_DESCRIPTION = item4.HIDDEN_DESCRIPTION;
|
||
// hidden.HIDDEN_LEVEL = item4.HIDDEN_LEVEL;
|
||
// hidden.RECTIFICATION_MEASURES = item4.RECTIFICATION_MEASURES;
|
||
// hidden.NUM = item4.NUM;
|
||
// hiddenList.Add(hidden);
|
||
// }
|
||
// }
|
||
// if (item3.Nav_DetailMeasureContentPosts != null && item3.Nav_DetailMeasureContentPosts.Any())
|
||
// {
|
||
// foreach (var item4 in item3.Nav_DetailMeasureContentPosts)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART hidden = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
|
||
// hidden.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = content.ID;
|
||
// hidden.ORG_ID = item4.ORG_ID;
|
||
// hidden.CHECK_CYCLE = item4.CHECK_CYCLE;
|
||
// hidden.DEPARTMENT_ID = item4.DEPARTMENT_ID;
|
||
// hidden.CHECK_TYPE = item4.CHECK_TYPE;
|
||
// hidden.CHECK_TYPE_ID = item4.CHECK_TYPE_ID;
|
||
// hidden.NUM = item4.NUM;
|
||
// departList.Add(hidden);
|
||
// if (item4.Nav_DetailPosts != null && item4.Nav_DetailPosts.Any())
|
||
// {
|
||
// foreach (var item5 in item4.Nav_DetailPosts)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST depart = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST();
|
||
// depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = hidden.ID;
|
||
// depart.ORG_ID = item5.ORG_ID;
|
||
// depart.POST_ID = item5.POST_ID;
|
||
// postList.Add(depart);
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// if (item.Nav_DetailPosts != null && item.Nav_DetailPosts.Any())
|
||
// {
|
||
// foreach (var item3 in item.Nav_DetailPosts)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DEPART post = new T_SK_ENTERPRISE_LIBRARY_DEPART();
|
||
// post.ENTERPRISE_LIBRARY_ID = library.ID;
|
||
// post.ORG_ID = item3.ORG_ID;
|
||
// post.DEPARTMENT_ID = item3.DEPARTMENT_ID;
|
||
// post.DEPARTMENT_TYPE = item3.DEPARTMENT_TYPE;
|
||
// post.USER_ID = item3.USER_ID;
|
||
// libraryDepartList.Add(post);
|
||
// }
|
||
// }
|
||
//}
|
||
//else
|
||
//{
|
||
// libraryIds.Add(libraryTemp.ID);
|
||
// libraryDepartIds = libraryDeparts.Where(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID)).Select(m=>m.ID).ToList();
|
||
// detailIds = libraryDetails.Where(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID)).Select(m => m.ID).ToList();
|
||
// contentIds = libraryContents.Where(t => detailIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_ID)).Select(m => m.ID).ToList();
|
||
// hiddenIds = libraryHiddens.Where(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID)).Select(m => m.ID).ToList();
|
||
// departIds = contentDeparts.Where(t => contentIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID)).Select(m => m.ID).ToList();
|
||
// postIds = contentPosts.Where(t => departIds.Contains(t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID)).Select(m => m.ID).ToList();
|
||
// T_SK_ENTERPRISE_LIBRARY library = new T_SK_ENTERPRISE_LIBRARY();
|
||
// library.ORG_ID = item.ORG_ID;
|
||
// library.MineType = item.MineType;
|
||
// library.AREA_ID = item.AREA_ID;
|
||
// library.RISK_NAME = item.RISK_NAME;
|
||
// library.RISK_DESCRIPTION = item.RISK_DESCRIPTION;
|
||
// library.TYPE_ID = item.TYPE_ID;
|
||
// library.EVALUATE_C = item.EVALUATE_C;
|
||
// library.EVALUATE_E = item.EVALUATE_E;
|
||
// library.EVALUATE_L = item.EVALUATE_L;
|
||
// library.EVALUATE_SCORE = item.EVALUATE_SCORE;
|
||
// library.EVALUATE_LEVEL = item.EVALUATE_LEVEL;
|
||
// libraryList.Add(library);
|
||
// if (item.Nav_DoubleDetailMeasures != null && item.Nav_DoubleDetailMeasures.Any())
|
||
// {
|
||
// foreach (var item2 in item.Nav_DoubleDetailMeasures)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL detail = new T_SK_ENTERPRISE_LIBRARY_DETAIL();
|
||
// detail.ENTERPRISE_LIBRARY_ID = library.ID;
|
||
// detail.ORG_ID = item2.ORG_ID;
|
||
// detail.MEASURES_NAME = item2.MEASURES_NAME;
|
||
// detail.EMERGENCY = item2.EMERGENCY;
|
||
// detail.NUM = item2.NUM;
|
||
// detailList.Add(detail);
|
||
// if (item2.Nav_DetailMeasureContents != null && item2.Nav_DetailMeasureContents.Any())
|
||
// {
|
||
// foreach (var item3 in item2.Nav_DetailMeasureContents)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT content = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT();
|
||
// content.ENTERPRISE_LIBRARY_DETAIL_ID = detail.ID;
|
||
// content.ORG_ID = item3.ORG_ID;
|
||
// content.CHECK_CONTENTS_ID = item3.CHECK_CONTENTS_ID;
|
||
// content.CHECK_CONTENT = item3.CHECK_CONTENT;
|
||
// content.CHECK_BASIC = item3.CHECK_BASIC;
|
||
// content.CHECK_STANDARD = item3.CHECK_STANDARD;
|
||
// content.NUM = item3.NUM;
|
||
// contentList.Add(content);
|
||
// if (item3.Nav_DetailMeasureContentHiddens != null && item3.Nav_DetailMeasureContentHiddens.Any())
|
||
// {
|
||
// foreach (var item4 in item3.Nav_DetailMeasureContentHiddens)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN hidden = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN();
|
||
// hidden.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = content.ID;
|
||
// hidden.ORG_ID = item4.ORG_ID;
|
||
// hidden.HIDDEN_DESCRIPTION = item4.HIDDEN_DESCRIPTION;
|
||
// hidden.HIDDEN_LEVEL = item4.HIDDEN_LEVEL;
|
||
// hidden.RECTIFICATION_MEASURES = item4.RECTIFICATION_MEASURES;
|
||
// hidden.NUM = item4.NUM;
|
||
// hiddenList.Add(hidden);
|
||
// }
|
||
// }
|
||
// if (item3.Nav_DetailMeasureContentPosts != null && item3.Nav_DetailMeasureContentPosts.Any())
|
||
// {
|
||
// foreach (var item4 in item3.Nav_DetailMeasureContentPosts)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART hidden = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART();
|
||
// hidden.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID = content.ID;
|
||
// hidden.ORG_ID = item4.ORG_ID;
|
||
// hidden.CHECK_CYCLE = item4.CHECK_CYCLE;
|
||
// hidden.DEPARTMENT_ID = item4.DEPARTMENT_ID;
|
||
// hidden.CHECK_TYPE = item4.CHECK_TYPE;
|
||
// hidden.CHECK_TYPE_ID = item4.CHECK_TYPE_ID;
|
||
// hidden.NUM = item4.NUM;
|
||
// departList.Add(hidden);
|
||
// if (item4.Nav_DetailPosts != null && item4.Nav_DetailPosts.Any())
|
||
// {
|
||
// foreach (var item5 in item4.Nav_DetailPosts)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST depart = new T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST();
|
||
// depart.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID = hidden.ID;
|
||
// depart.ORG_ID = item5.ORG_ID;
|
||
// depart.POST_ID = item5.POST_ID;
|
||
// postList.Add(depart);
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// }
|
||
// if (item.Nav_DetailPosts != null && item.Nav_DetailPosts.Any())
|
||
// {
|
||
// foreach (var item3 in item.Nav_DetailPosts)
|
||
// {
|
||
// T_SK_ENTERPRISE_LIBRARY_DEPART post = new T_SK_ENTERPRISE_LIBRARY_DEPART();
|
||
// post.ENTERPRISE_LIBRARY_ID = library.ID;
|
||
// post.ORG_ID = item3.ORG_ID;
|
||
// post.DEPARTMENT_ID = item3.DEPARTMENT_ID;
|
||
// post.DEPARTMENT_TYPE = item3.DEPARTMENT_TYPE;
|
||
// post.USER_ID = item3.USER_ID;
|
||
// libraryDepartList.Add(post);
|
||
// }
|
||
// }
|
||
//}
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (postIds != null && postIds.Any())
|
||
BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(postIds);
|
||
if (departIds != null && departIds.Any())
|
||
BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(departIds);
|
||
if (hiddenIds != null && hiddenIds.Any())
|
||
BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(hiddenIds);
|
||
if (contentIds != null && contentIds.Any())
|
||
BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(contentIds);
|
||
if (detailIds != null && detailIds.Any())
|
||
BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DETAIL>(detailIds);
|
||
if (libraryDepartIds != null && libraryDepartIds.Any())
|
||
BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY_DEPART>(libraryDepartIds);
|
||
if (libraryIds != null && libraryIds.Any())
|
||
BantchDeleteEntityNoCommit<T_SK_ENTERPRISE_LIBRARY>(libraryIds);
|
||
if (libraryList != null && libraryList.Any())
|
||
BantchSaveEntityNoCommit(libraryList);
|
||
if (detailList != null && detailList.Any())
|
||
BantchSaveEntityNoCommit(detailList);
|
||
if (libraryDepartList != null && libraryDepartList.Any())
|
||
BantchSaveEntityNoCommit(libraryDepartList);
|
||
if (contentList != null && contentList.Any())
|
||
BantchSaveEntityNoCommit(contentList);
|
||
if (departList != null && departList.Any())
|
||
BantchSaveEntityNoCommit(departList);
|
||
if (hiddenList != null && hiddenList.Any())
|
||
BantchSaveEntityNoCommit(hiddenList);
|
||
if (postList != null && postList.Any())
|
||
BantchSaveEntityNoCommit(postList);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_SKIdentifyEvaluationPlan(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
List<T_SK_RISK_IDENTIFY> identitys = new List<T_SK_RISK_IDENTIFY>();
|
||
List<T_SK_RISK_IDENTIFY_FILE> identityFiles = new List<T_SK_RISK_IDENTIFY_FILE>();
|
||
List<T_SK_RISK_IDENTIFY_DETAIL> identityDetails = new List<T_SK_RISK_IDENTIFY_DETAIL>();
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
var requre = this.GetEntity<T_SK_REQUEST>(t => !t.IS_DELETED);
|
||
var entity = this.GetEntity<T_SK_IDENTIFY_EVALUATION_PLAN>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID, "Nav_Details");// "Nav_Details", "Nav_Files"
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
if (entity.START_DATE.Value.Date == DateTime.Now.Date && entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
{
|
||
entity.ISSEND = true;
|
||
var detailIds = entity.Nav_Details.Select(t => t.ID).ToList();
|
||
var entityUsers = this.GetEntities<T_SK_IDENTIFY_EVALUATION_PLAN_DETAIL_USER>(t => detailIds.Contains(t.IDENTIFY_EVALUATION_PLAN_DETAIL_ID), new BaseFilter(entity.ORG_ID));
|
||
if (entityUsers != null && entityUsers.Any())
|
||
{
|
||
var userIds = entityUsers.Select(t => t.USER_ID).ToList();
|
||
var userNames = new List<string>();
|
||
if (userIds != null && userIds.Any())
|
||
{
|
||
var departIds = entity.Nav_Details.Select(t => t.DEPARTMENT_ID).Distinct().ToList();
|
||
var libraryPosts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(t => departIds.Contains(t.DEPARTMENT_ID), new BaseFilter(entity.ORG_ID));
|
||
var postIds = libraryPosts.Select(t => t.ID).ToList();
|
||
var libraryPostDetails = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST_DETAIL>(t => postIds.Contains(t.ENTERPRISE_LIBRARY_POST_ID), new BaseFilter(entity.ORG_ID));
|
||
var libraryIds = libraryPosts.Select(t => t.ENTERPRISE_LIBRARY_ID).ToList();
|
||
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => libraryIds.Contains(t.ID) && t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID));
|
||
var detailss = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(entity.ORG_ID));
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0 && !t.CODE.Contains("admin"), new BaseFilter(entity.ORG_ID), "Nav_Person");
|
||
foreach (var item in userIds)
|
||
{
|
||
|
||
var user = users.FirstOrDefault(t => t.ID == item);
|
||
if (user != null)
|
||
{
|
||
T_SK_RISK_IDENTIFY ide = new T_SK_RISK_IDENTIFY();
|
||
ide.ORG_ID = user.ORG_ID;
|
||
ide.IDENTIFY_EVALUATION_PLAN_ID = entity.ID;
|
||
ide.APPLY_DEPARTMENT_ID = user.DEPARTMENT_ID;
|
||
ide.APPLY_USER_ID = user.ID;
|
||
ide.YEAR = DateTime.Now.Year.ToString();
|
||
ide.ISAUTO = true;
|
||
ide.CONTENTS = entity.CONTENTS;
|
||
ide.START_DATE = entity.START_DATE;
|
||
ide.END_DATE = entity.END_DATE;
|
||
ide.REQUIRE_ID = requre?.ID;
|
||
identitys.Add(ide);
|
||
if (user.Nav_Person != null)
|
||
{
|
||
var postDetailIds = libraryPostDetails.Where(t => t.POST_ID == user.Nav_Person.POST_ID).Select(m => m.ENTERPRISE_LIBRARY_POST_ID).Distinct().ToList();
|
||
var posts = libraryPosts.Where(t => postDetailIds.Contains(t.ID) && t.DEPARTMENT_ID == user.DEPARTMENT_ID).ToList();
|
||
if (posts != null && posts.Any())
|
||
{
|
||
var libraryIdss = posts.Select(t => t.ENTERPRISE_LIBRARY_ID).Distinct().ToList();
|
||
var libraryss = librarys.Where(t => libraryIdss.Contains(t.ID)).OrderBy(t => t.NUM).ToList();
|
||
if (libraryss.Any())
|
||
{
|
||
foreach (var library in libraryss)
|
||
{
|
||
T_SK_RISK_IDENTIFY_DETAIL ideDetail = new T_SK_RISK_IDENTIFY_DETAIL();
|
||
ideDetail.ORG_ID = entity.ORG_ID;
|
||
ideDetail.RISK_IDENTIFY_ID = ide.ID;
|
||
ideDetail.PRODUCTION_UNIT_ID = library?.PRODUCTION_UNIT_ID;
|
||
ideDetail.MineType = library == null ? SKProductionUnit.Mine : library.MineType;
|
||
ideDetail.AREA_ID = library?.AREA_ID;
|
||
ideDetail.RISK_NAME = library?.RISK_NAME;
|
||
ideDetail.RISK_NAME_ID = library?.RISK_NAME_ID;
|
||
ideDetail.RISK_DESCRIPTION = library?.RISK_DESCRIPTION;
|
||
ideDetail.TYPE_ID = library?.TYPE_ID;
|
||
ideDetail.EMERGENCY = library?.EMERGENCY;
|
||
var detailList = detailss.Where(t => t.ENTERPRISE_LIBRARY_ID == library.ID).OrderBy(t => t.NUM).ToList();
|
||
if (detailList.Any())
|
||
{
|
||
//foreach (var id2 in detailList)
|
||
//{
|
||
// T_SK_RISK_IDENTIFY_DETAIL_MEASURE mes = new T_SK_RISK_IDENTIFY_DETAIL_MEASURE();
|
||
// mes.ORG_ID = filter.OrgId;
|
||
// mes.RISK_IDENTIFY_DETAIL_ID = ideDetail.ID;
|
||
// mes.MEASURE = id2.MEASURES_NAME;
|
||
// mes.EMERGENCY = id2.EMERGENCY;
|
||
// measures.Add(mes);
|
||
//}
|
||
var measuresTemp = detailList.Select(t => t.MEASURES_NAME).Distinct().ToList();
|
||
if (measuresTemp.Any())
|
||
{
|
||
if (measuresTemp.Count == 1)
|
||
{
|
||
ideDetail.MEASURE = measuresTemp.FirstOrDefault();
|
||
}
|
||
else
|
||
{
|
||
var i = 1;
|
||
foreach (var ite in measuresTemp)
|
||
{
|
||
var temp2 = i + "、" + ite;
|
||
if (i == 1)
|
||
{
|
||
ideDetail.MEASURE = temp2;
|
||
}
|
||
else
|
||
{
|
||
ideDetail.MEASURE = ideDetail.MEASURE + Environment.NewLine + temp2;
|
||
}
|
||
i++;
|
||
}
|
||
}
|
||
}
|
||
//var emergencysTemp = detailList.Select(t => t.EMERGENCY).Distinct().ToList();
|
||
//if (emergencysTemp.Any())
|
||
//{
|
||
// var i = 1;
|
||
// foreach (var ite in emergencysTemp)
|
||
// {
|
||
// var temp2 = i == 1 ? i + "、" + ite : "\r\n" + i + "、" + ite;
|
||
// ideDetail.EMERGENCY = ideDetail.EMERGENCY + temp2;
|
||
// i++;
|
||
// }
|
||
//}
|
||
}
|
||
identityDetails.Add(ideDetail);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var endDate = DateTime.Now.AddHours(24);
|
||
if (entity.END_DATE != null)
|
||
{
|
||
endDate = Convert.ToDateTime(entity.END_DATE.ToString().Replace("0:00:00", "23:59:59"));
|
||
}
|
||
var noticeTask = NotificationTaskService.InsertUserNoticeTaskModel("安全风险辨识表(" + DateTime.Now.ToShortDateString().Replace("/", "") + ")", ide.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, endDate, (int)FMNoticeTypeEnum.消息, "SK033");
|
||
notices.Add(noticeTask);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (identitys != null && identitys.Any())
|
||
this.BantchSaveEntityNoCommit(identitys);
|
||
//if (identityFiles != null && identityFiles.Any())
|
||
// this.BantchSaveEntityNoCommit(identityFiles);
|
||
if (identityDetails != null && identityDetails.Any())
|
||
this.BantchSaveEntityNoCommit(identityDetails);
|
||
//if (detailMeasures != null && detailMeasures.Any())
|
||
// this.BantchSaveEntityNoCommit(detailMeasures);
|
||
if (notices != null && notices.Any())
|
||
this.BantchSaveEntityNoCommit(notices);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_SKRiskIdentify(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_RISK_IDENTIFY>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
entity.END_DATE = DateTime.Now;
|
||
Guid? userId = null;
|
||
T_SK_RISK_IDENTIFY_RESULT result = null;
|
||
T_FM_NOTIFICATION_TASK notice = null;
|
||
List<Guid> departIds = new List<Guid>();
|
||
List<T_SK_RISK_IDENTIFY_RESULT_DETAIL> resultDetail = new List<T_SK_RISK_IDENTIFY_RESULT_DETAIL>();
|
||
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID));
|
||
var posts = this.GetEntities<T_FM_USER_POST>(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID));
|
||
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID));
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_ApproveRole", "Nav_Person");
|
||
var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == entity.APPLY_DEPARTMENT_ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
var currentDepart = departs.FirstOrDefault(t => t.ID == entity.APPLY_DEPARTMENT_ID);
|
||
if (currentDepart != null)
|
||
{
|
||
if (currentDepart.DEPARTMENT_STATUS != 1)
|
||
{
|
||
departIds = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(m => m.ID).ToList();
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == currentDepart.ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部负责人"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 10)
|
||
{
|
||
departIds.Add(currentDepart.ID);
|
||
if (user == null)
|
||
{
|
||
var departUser = departs.FirstOrDefault(t => t.ID == currentDepart.ID);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 15)
|
||
{
|
||
departIds.Add(currentDepart.ID);
|
||
var classIds = departs.Where(t => t.PARENT_ID == currentDepart.ID).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
if (user == null)
|
||
{
|
||
//负责人
|
||
var departUser = departs.FirstOrDefault(t => t.ID == currentDepart.ID);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
//DepartmentService.GetDepartmentIds(entity.ORG_ID.Value, new List<Guid>() { currentDepart.ID }, ref departIds);
|
||
//departIds.Add(currentDepart.ID);
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 20)
|
||
{
|
||
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID)?.PARENT_ID;
|
||
departIds.Add((Guid)parentId);
|
||
var classIds = departs.Where(t => t.PARENT_ID == parentId).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
//车间负责人
|
||
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 5)
|
||
{
|
||
departIds = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(m => m.ID).ToList();
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == currentDepart.ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部负责人"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
}
|
||
}
|
||
|
||
//当前层级安全员和负责人都找不到,找一次上级安全员和负责人
|
||
if (userId == null)
|
||
{
|
||
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID)?.PARENT_ID;
|
||
if (parentId != null)
|
||
{
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
//负责人
|
||
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var requre = this.GetEntity<T_SK_REQUEST>(t => !t.IS_DELETED);
|
||
var filter = new BaseFilter(entity.ORG_ID);
|
||
filter.IgnoreDataRule = true;
|
||
Expression<Func<T_SK_RISK_IDENTIFY, bool>> expression = i => i.IS_DELETED == false && i.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)i.APPLY_DEPARTMENT_ID);
|
||
List<T_SK_RISK_IDENTIFY> identitys = this.GetOrderEntities(expression, filter).ToList();
|
||
//var identitys = this.GetEntities<T_SK_RISK_IDENTIFY>(t => t.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)t.APPLY_DEPARTMENT_ID));
|
||
var identity = identitys.FirstOrDefault(t => t.ID != entity.ID && t.STATUS != PFStandardStatus.Archived && t.STATUS != PFStandardStatus.Close);
|
||
if (identity == null && userId != null)
|
||
{
|
||
result = new T_SK_RISK_IDENTIFY_RESULT();
|
||
result.ORG_ID = entity.ORG_ID;
|
||
result.APPLY_DEPARTMENT_ID = user.DEPARTMENT_ID;
|
||
result.APPLY_USER_ID = userId;
|
||
result.IDENTIFY_ID = entity.ID;
|
||
result.IDENTIFY_EVALUATION_PLAN_ID = entity.IDENTIFY_EVALUATION_PLAN_ID;
|
||
result.YEAR = entity.YEAR;
|
||
result.ISAUTO = true;
|
||
result.CONTENTS = entity.CONTENTS;
|
||
result.START_DATE = entity.START_DATE;
|
||
result.END_DATE = entity.END_DATE;
|
||
result.REQUIRE_ID = entity.REQUIRE_ID != null ? entity.REQUIRE_ID : requre?.ID;
|
||
result.ISCOMPANY = currentDepart.DEPARTMENT_TYPE == 5 ? SKIsStoreEnum.Yes : SKIsStoreEnum.No;
|
||
var identityIds = identitys.Select(t => t.ID).ToList();
|
||
//Expression<Func<T_SK_RISK_IDENTIFY_DETAIL, bool>> expression2 = i => i.IS_DELETED == false && identityIds.Contains(i.RISK_IDENTIFY_ID);
|
||
//List<T_SK_RISK_IDENTIFY_DETAIL> list = this.GetOrderEntities(expression2, new BaseFilter(entity.ORG_ID)).ToList();
|
||
var list = this.GetEntities<T_SK_RISK_IDENTIFY_DETAIL>(t => identityIds.Contains(t.RISK_IDENTIFY_ID), new BaseFilter(entity.ORG_ID));
|
||
var detailList = list.GroupBy(m => new { m.AREA_ID, m.PRODUCTION_UNIT_ID, m.RISK_NAME, m.RISK_DESCRIPTION, m.TYPE_ID, m.ENABLE_STATUS }).Select(g => g.FirstOrDefault());
|
||
if (detailList.Any())
|
||
{
|
||
foreach (var item in detailList)
|
||
{
|
||
var temp = list.Where(m => m.AREA_ID == item.AREA_ID && m.PRODUCTION_UNIT_ID == item.PRODUCTION_UNIT_ID && m.RISK_NAME == item.RISK_NAME && m.RISK_DESCRIPTION == item.RISK_DESCRIPTION && m.TYPE_ID == item.TYPE_ID && m.ENABLE_STATUS == item.ENABLE_STATUS).ToList();
|
||
var identifyIds = temp.Select(t => t.RISK_IDENTIFY_ID).ToList();
|
||
var departIdss = identitys.Where(t => identifyIds.Contains(t.ID)).Select(m => m.APPLY_DEPARTMENT_ID).Distinct().ToList();
|
||
var userIdss = identitys.Where(t => identifyIds.Contains(t.ID)).Select(m => m.APPLY_USER_ID).Distinct().ToList();
|
||
T_SK_RISK_IDENTIFY_RESULT_DETAIL ideDetail = new T_SK_RISK_IDENTIFY_RESULT_DETAIL();
|
||
ideDetail.ORG_ID = entity.ORG_ID;
|
||
ideDetail.RISK_IDENTIFY_RESULT_ID = result.ID;
|
||
ideDetail.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
|
||
ideDetail.MineType = item.MineType;
|
||
ideDetail.AREA_ID = item.AREA_ID;
|
||
ideDetail.RISK_NAME = item.RISK_NAME;
|
||
ideDetail.RISK_NAME_ID = item.RISK_NAME_ID;
|
||
ideDetail.RISK_DESCRIPTION = item.RISK_DESCRIPTION;
|
||
ideDetail.TYPE_ID = item.TYPE_ID;
|
||
ideDetail.MEASURE = item.MEASURE;
|
||
ideDetail.EMERGENCY = item.EMERGENCY;
|
||
ideDetail.ENABLE_STATUS = item.ENABLE_STATUS;
|
||
ideDetail.MARK = item.MARK;
|
||
if (departIdss.Any())
|
||
{
|
||
var departTemps = departs.Where(t => departIdss.Contains(t.ID)).Select(m => m.DEPARTMENT_TYPE).Distinct().ToList();
|
||
//var postIds = users.Where(t => userIdss.Contains(t.ID) && t.Nav_Person != null).Select(m => m.Nav_Person.POST_ID).ToList();
|
||
//var postTemps = posts.Where(t => postIds.Contains(t.ID)).Select(m => m.NAME).ToList();
|
||
if (departTemps.Any())
|
||
{
|
||
var i = 1;
|
||
foreach (var ite in departTemps)
|
||
{
|
||
var departType = "班组级";
|
||
if (ite == 5)
|
||
{
|
||
departType = "公司级";
|
||
}
|
||
if (ite == 10)
|
||
{
|
||
departType = "部门级";
|
||
}
|
||
if (ite == 15)
|
||
{
|
||
departType = "车间级";
|
||
}
|
||
if (ite == 20)
|
||
{
|
||
departType = "班组级";
|
||
}
|
||
var temp2 = i == 1 ? i + "、" + departType + ";" : i + "、" + departType + ";";
|
||
ideDetail.DEPARTMENT_TYPE = ideDetail.DEPARTMENT_TYPE + temp2;
|
||
var deTemps = departs.Where(t => departIdss.Contains(t.ID) && t.DEPARTMENT_TYPE == ite).Select(m => m.NAME).ToList();
|
||
var deTempIds = departs.Where(t => departIdss.Contains(t.ID) && t.DEPARTMENT_TYPE == ite).Select(m => m.ID).ToList();
|
||
var temp3 = i == 1 ? i + "、" + string.Join(",", deTemps) + ";" : i + "、" + string.Join(",", deTemps) + ";";
|
||
ideDetail.IDENTIFY_DEPARTMENT = ideDetail.IDENTIFY_DEPARTMENT + temp3;
|
||
var postIds = users.Where(t => t.DEPARTMENT_ID != null && deTempIds.Contains((Guid)t.DEPARTMENT_ID) && userIdss.Contains(t.ID) && t.Nav_Person != null && t.Nav_Person.POST_ID != null).Select(m => m.Nav_Person?.POST_ID).ToList();
|
||
var postTemps = posts.Where(t => postIds.Contains(t.ID)).Select(m => m.NAME).ToList();
|
||
if (postTemps.Any())
|
||
{
|
||
var tempPosts = string.Join(";", postTemps);
|
||
var temp4 = i == 1 ? i + "、" + tempPosts + ";" : i + "、" + tempPosts + ";";
|
||
ideDetail.IDENTIFY_POST = ideDetail.IDENTIFY_POST + temp4;
|
||
//ideDetail.IDENTIFY_POST = string.Join(";", postTemps);
|
||
}
|
||
i++;
|
||
}
|
||
//ideDetail.IDENTIFY_DEPARTMENT = string.Join(";", departTemps);
|
||
}
|
||
//if (postTemps.Any())
|
||
//{
|
||
// var i = 1;
|
||
// foreach (var ite in postTemps)
|
||
// {
|
||
// var temp2 = i == 1 ? i + "、" + ite + ";" : i + "、" + ite + ";";
|
||
// ideDetail.IDENTIFY_POST = ideDetail.IDENTIFY_POST + temp2;
|
||
// i++;
|
||
// }
|
||
// //ideDetail.IDENTIFY_POST = string.Join(";", postTemps);
|
||
//}
|
||
}
|
||
resultDetail.Add(ideDetail);
|
||
}
|
||
}
|
||
notice = NotificationTaskService.InsertUserNoticeTaskModel("安全风险辨识结果表(" + DateTime.Now.ToShortDateString().Replace("/", "") + ")", result.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK035");
|
||
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (result != null)
|
||
this.UpdateEntityNoCommit(result);
|
||
if (notice != null)
|
||
this.UpdateEntityNoCommit(notice);
|
||
if (resultDetail != null && resultDetail.Count > 0)
|
||
BantchSaveEntityNoCommit(resultDetail);
|
||
});
|
||
//待办同步
|
||
NotificationTaskService.TaskToHead(listAppDetail, null, null, taskFinish);
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_SKRiskIdentifyResult(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
T_FM_NOTIFICATION_TASK notice = null;
|
||
T_SK_RISK_IDENTIFY_RESULT_SUMMARY sum = null;
|
||
List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_DETAIL> summaryDetails = new List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_DETAIL>();
|
||
//List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_MEASURE> summaryMeasures = new List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_MEASURE>();
|
||
//List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_DEPART> summaryDeparts = new List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_DEPART>();
|
||
//List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_POST> summaryPosts = new List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_POST>();
|
||
//List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_FILE> summaryFiles = new List<T_SK_RISK_IDENTIFY_RESULT_SUMMARY_FILE>();
|
||
var entity = this.GetEntity<T_SK_RISK_IDENTIFY_RESULT>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
//entity.END_DATE = DateTime.Now;
|
||
Guid? userId = null;
|
||
List<Guid> departIds = new List<Guid>();
|
||
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID));
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_ApproveRole");
|
||
var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == entity.APPLY_DEPARTMENT_ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
var currentDepart = departs.FirstOrDefault(t => t.ID == entity.APPLY_DEPARTMENT_ID);
|
||
if (currentDepart != null)
|
||
{
|
||
if (currentDepart.DEPARTMENT_STATUS != 1)
|
||
{
|
||
//departIds.Add(currentDepart.ID);
|
||
var otherIds = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(t => t.ID).ToList();
|
||
departIds.AddRange(otherIds);
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部负责人"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 10)
|
||
{
|
||
departIds.Add(currentDepart.ID);
|
||
var shopIds = departs.Where(t => t.PARENT_ID == currentDepart.ID).Select(t => t.ID).ToList();
|
||
departIds.AddRange(shopIds);
|
||
var classIds = departs.Where(t => t.PARENT_ID != null && shopIds.Contains(t.PARENT_ID.Value)).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
if (user == null)
|
||
{
|
||
var departUser = departs.FirstOrDefault(t => t.ID == currentDepart.ID);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 15)
|
||
{
|
||
//departIds.Add(currentDepart.ID);
|
||
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID).PARENT_ID;
|
||
if (parentId != null)
|
||
{
|
||
departIds.Add(parentId.Value);
|
||
var shopIds = departs.Where(t => t.PARENT_ID == parentId).Select(t => t.ID).ToList();
|
||
departIds.AddRange(shopIds);
|
||
var classIds = departs.Where(t => t.PARENT_ID != null && shopIds.Contains(t.PARENT_ID.Value)).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
//部门负责人
|
||
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//DepartmentService.GetDepartmentIds(entity.ORG_ID.Value, new List<Guid>() { currentDepart.ID }, ref departIds);
|
||
//departIds.Add(currentDepart.ID);
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 20)
|
||
{
|
||
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID)?.PARENT_ID;
|
||
if (parentId != null)
|
||
{
|
||
var parentId2 = departs.FirstOrDefault(t => t.ID == parentId)?.PARENT_ID;
|
||
if (parentId2 != null)
|
||
{
|
||
departIds.Add((Guid)parentId2);
|
||
var shopIds = departs.Where(t => t.PARENT_ID == parentId2).Select(t => t.ID).ToList();
|
||
departIds.AddRange(shopIds);
|
||
var classIds = departs.Where(t => t.PARENT_ID != null && shopIds.Contains(t.PARENT_ID.Value)).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId2 && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
//部门负责人
|
||
var departUser = departs.FirstOrDefault(t => t.ID == parentId2);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 5)
|
||
{
|
||
departIds = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(m => m.ID).ToList();
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部负责人"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
}
|
||
}
|
||
//当前层级安全员和负责人都找不到,找一次上级安全员和负责人
|
||
if (userId == null)
|
||
{
|
||
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID)?.PARENT_ID;
|
||
if (parentId != null)
|
||
{
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
//负责人
|
||
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var requre = this.GetEntity<T_SK_REQUEST>(t => !t.IS_DELETED);
|
||
var filter = new BaseFilter(entity.ORG_ID);
|
||
filter.IgnoreDataRule = true;
|
||
Expression<Func<T_SK_RISK_IDENTIFY_RESULT, bool>> expression = i => i.IS_DELETED == false && i.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)i.APPLY_DEPARTMENT_ID);
|
||
List<T_SK_RISK_IDENTIFY_RESULT> results = this.GetOrderEntities(expression, filter).ToList();
|
||
//var results = GetEntities<T_SK_RISK_IDENTIFY_RESULT>(i => i.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)i.APPLY_DEPARTMENT_ID), new BaseFilter(entity.ORG_ID));
|
||
var isEnd = results.FirstOrDefault(t => t.ID != entity.ID && t.STATUS != PFStandardStatus.Archived);
|
||
var identity = GetEntity<T_SK_RISK_IDENTIFY>(i => i.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)i.APPLY_DEPARTMENT_ID) && i.STATUS != PFStandardStatus.Archived && i.STATUS != PFStandardStatus.Close);
|
||
if (isEnd == null && identity == null && userId != null)
|
||
{
|
||
sum = new T_SK_RISK_IDENTIFY_RESULT_SUMMARY();
|
||
sum.ORG_ID = entity.ORG_ID;
|
||
sum.IDENTIFY_EVALUATION_PLAN_ID = entity.IDENTIFY_EVALUATION_PLAN_ID;
|
||
sum.IDENTIFY_ID = entity.IDENTIFY_ID;
|
||
sum.IDENTIFY_RESULT_ID = entity.ID;
|
||
sum.APPLY_DEPARTMENT_ID = user.DEPARTMENT_ID;
|
||
sum.APPLY_USER_ID = user.ID;
|
||
sum.YEAR = entity.YEAR;
|
||
sum.START_DATE = entity.START_DATE;
|
||
sum.END_DATE = DateTime.Now;
|
||
sum.CONTENTS = entity.CONTENTS;
|
||
sum.REQUIRE_ID = entity.REQUIRE_ID != null ? entity.REQUIRE_ID : requre?.ID;
|
||
sum.ISCOMPANY = entity.ISCOMPANY;
|
||
var resultIds = results.Select(t => t.ID).ToList();
|
||
//Expression<Func<T_SK_RISK_IDENTIFY_RESULT_DETAIL, bool>> expression2 = i => i.IS_DELETED == false && resultIds.Contains(i.RISK_IDENTIFY_RESULT_ID);
|
||
//List<T_SK_RISK_IDENTIFY_RESULT_DETAIL> details = this.GetOrderEntities(expression2, new BaseFilter(entity.ORG_ID), new string[] { "Nav_DetailMeasures", "Nav_DetailDeparts", "Nav_DetailPosts" }).ToList();
|
||
var details = GetEntities<T_SK_RISK_IDENTIFY_RESULT_DETAIL>(i => resultIds.Contains(i.RISK_IDENTIFY_RESULT_ID) && i.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_DetailMeasures", "Nav_DetailDeparts", "Nav_DetailPosts");
|
||
var detailList = details.GroupBy(m => new { m.AREA_ID, m.PRODUCTION_UNIT_ID, m.RISK_NAME, m.RISK_DESCRIPTION, m.TYPE_ID, m.ENABLE_STATUS }).Select(g => g.FirstOrDefault());
|
||
if (detailList.Any())
|
||
{
|
||
foreach (var de in detailList)
|
||
{
|
||
T_SK_RISK_IDENTIFY_RESULT_SUMMARY_DETAIL ideDetail = new T_SK_RISK_IDENTIFY_RESULT_SUMMARY_DETAIL();
|
||
ideDetail.ORG_ID = entity.ORG_ID;
|
||
ideDetail.IDENTIFY_RESULT_SUMMARY_ID = sum.ID;
|
||
ideDetail.PRODUCTION_UNIT_ID = de.PRODUCTION_UNIT_ID;
|
||
ideDetail.MineType = de.MineType;
|
||
ideDetail.AREA_ID = de.AREA_ID;
|
||
ideDetail.RISK_NAME = de.RISK_NAME;
|
||
ideDetail.RISK_NAME_ID = de.RISK_NAME_ID;
|
||
ideDetail.RISK_DESCRIPTION = de.RISK_DESCRIPTION;
|
||
ideDetail.TYPE_ID = de.TYPE_ID;
|
||
ideDetail.MEASURE = de.MEASURE;
|
||
ideDetail.EMERGENCY = de.EMERGENCY;
|
||
ideDetail.DEPARTMENT_TYPE = de.DEPARTMENT_TYPE;
|
||
ideDetail.IDENTIFY_DEPARTMENT = de.IDENTIFY_DEPARTMENT;
|
||
ideDetail.IDENTIFY_POST = de.IDENTIFY_POST;
|
||
ideDetail.MARK = de.MARK;
|
||
summaryDetails.Add(ideDetail);
|
||
}
|
||
}
|
||
var param = "部门级";
|
||
var dminetype = departs.FirstOrDefault(t => t.ID == user.DEPARTMENT_ID).DEPARTMENT_TYPE;
|
||
if (dminetype == 5 || sum.ISCOMPANY == SKIsStoreEnum.Yes)
|
||
{
|
||
param = "公司级";
|
||
}
|
||
sum.STATUS = PFStandardStatus.Approving;
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.审批流编码;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var serialCode = codes.Split(new char[] { ',' });
|
||
InsertApproveSK(serialCode[0], "SK037", param, sum.ID, "SK037_SHOWPRINT", entity.TaskID, true, () =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (sum != null)
|
||
UpdateEntityNoCommit(sum);
|
||
if (summaryDetails != null && summaryDetails.Count > 0)
|
||
BantchSaveEntityNoCommit(summaryDetails);
|
||
if (notice != null)
|
||
UpdateEntityNoCommit(notice);
|
||
}, null, null, null, null, null, "SK035_SHOWPRINT", null, "安全风险辨识结果汇总表审批(" + param + ")");
|
||
return true;
|
||
//notice = NotificationTaskService.InsertUserNoticeTaskModel("安全风险辨识结果汇总表(" + param + ")", sum.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK037");
|
||
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (sum != null)
|
||
UpdateEntityNoCommit(sum);
|
||
if (summaryDetails != null && summaryDetails.Count > 0)
|
||
BantchSaveEntityNoCommit(summaryDetails);
|
||
if (notice != null)
|
||
UpdateEntityNoCommit(notice);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_RiskIdentifyResultSummary(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_RISK_IDENTIFY_RESULT_SUMMARY>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
//entity.END_DATE = DateTime.Now;
|
||
//触发评估表
|
||
List<T_FM_NOTIFICATION_TASK> notices = new List<T_FM_NOTIFICATION_TASK>();
|
||
List<T_SK_RISK_EVALUATION> results = new List<T_SK_RISK_EVALUATION>();
|
||
List<T_SK_RISK_EVALUATION_DETAIL> resultDetails = new List<T_SK_RISK_EVALUATION_DETAIL>();
|
||
List<T_SK_RISK_EVALUATION_DETAIL_MEASURE> detailMeasures = new List<T_SK_RISK_EVALUATION_DETAIL_MEASURE>();
|
||
List<T_SK_RISK_EVALUATION_DETAIL_DEPART> detailDeparts = new List<T_SK_RISK_EVALUATION_DETAIL_DEPART>();
|
||
List<T_SK_RISK_EVALUATION_DETAIL_POST> detailPosts = new List<T_SK_RISK_EVALUATION_DETAIL_POST>();
|
||
List<T_SK_RISK_EVALUATION_DETAIL_POST_DETAIL> detailPostDetails = new List<T_SK_RISK_EVALUATION_DETAIL_POST_DETAIL>();
|
||
//List<T_SC_MT_MEETING_BEGIN> modelBegins = new List<T_SC_MT_MEETING_BEGIN>();
|
||
List<Guid> departIds = new List<Guid>();
|
||
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID));
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_ApproveRole", "Nav_Person");
|
||
var currentDepart = departs.FirstOrDefault(t => t.ID == entity.APPLY_DEPARTMENT_ID);
|
||
if (currentDepart != null)
|
||
{
|
||
if (currentDepart.DEPARTMENT_STATUS != 1)
|
||
{
|
||
departIds = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(m => m.ID).ToList();
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 10)
|
||
{
|
||
departIds.Add(currentDepart.ID);
|
||
var shopIds = departs.Where(t => t.PARENT_ID == currentDepart.ID).Select(t => t.ID).ToList();
|
||
departIds.AddRange(shopIds);
|
||
var classIds = departs.Where(t => t.PARENT_ID != null && shopIds.Contains(t.PARENT_ID.Value)).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 15)
|
||
{
|
||
departIds.Add(currentDepart.ID);
|
||
var classIds = departs.Where(t => t.PARENT_ID == currentDepart.ID).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 20)
|
||
{
|
||
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID)?.PARENT_ID;
|
||
if (parentId != null)
|
||
{
|
||
departIds.Add((Guid)parentId);
|
||
var classIds = departs.Where(t => t.PARENT_ID == parentId).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 5)
|
||
{
|
||
departIds = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(m => m.ID).ToList();
|
||
}
|
||
}
|
||
var requre = this.GetEntity<T_SK_EVALUATION>(t => !t.IS_DELETED);
|
||
var filter = new BaseFilter(entity.ORG_ID);
|
||
filter.IgnoreDataRule = true;
|
||
Expression<Func<T_SK_RISK_IDENTIFY_RESULT, bool>> expression = i => i.IS_DELETED == false && i.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)i.APPLY_DEPARTMENT_ID);
|
||
List<T_SK_RISK_IDENTIFY_RESULT> summarys = this.GetOrderEntities(expression, filter, new string[] { "Nav_Details" }).ToList();
|
||
//var summarys = GetEntities<T_SK_RISK_IDENTIFY_RESULT>(i => i.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)i.APPLY_DEPARTMENT_ID), new BaseFilter(entity.ORG_ID), "Nav_Details");
|
||
if (summarys.Any())
|
||
{
|
||
//var sumIds = summarys.Select(i => i.ID).ToList();
|
||
//var posts = this.GetEntities<T_FM_USER_POST>(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID));
|
||
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID));
|
||
var libraryIds = librarys.Select(t => t.ID).ToList();
|
||
var libraryDeparts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DEPART>(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(entity.ORG_ID));
|
||
var libraryDetails = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(entity.ORG_ID));
|
||
var libraryPosts = this.GetEntities<T_SK_ENTERPRISE_LIBRARY_POST>(t => libraryIds.Contains(t.ENTERPRISE_LIBRARY_ID), new BaseFilter(entity.ORG_ID), "Nav_PostDetails");
|
||
foreach (var bm in summarys)
|
||
{
|
||
var user = users.FirstOrDefault(t => t.ID == bm.APPLY_USER_ID);
|
||
T_SK_RISK_EVALUATION result = new T_SK_RISK_EVALUATION();
|
||
result.ORG_ID = entity.ORG_ID;
|
||
result.IDENTIFY_EVALUATION_PLAN_ID = entity.IDENTIFY_EVALUATION_PLAN_ID;
|
||
result.APPLY_USER_ID = bm.APPLY_USER_ID;
|
||
result.APPLY_DEPARTMENT_ID = bm.APPLY_DEPARTMENT_ID;
|
||
result.YEAR = entity.YEAR;
|
||
result.START_DATE = entity.START_DATE;
|
||
result.END_DATE = entity.END_DATE;
|
||
result.REQUIRE_ID = requre?.ID;
|
||
result.ISCOMPANY = bm.ISCOMPANY;
|
||
results.Add(result);
|
||
if (bm.Nav_Details.Any())
|
||
{
|
||
foreach (var de in bm.Nav_Details)
|
||
{
|
||
if (de != null)
|
||
{
|
||
var departTemp = librarys.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == de.PRODUCTION_UNIT_ID && t.AREA_ID == de.AREA_ID && t.RISK_NAME == de.RISK_NAME && t.RISK_DESCRIPTION == de.RISK_DESCRIPTION && t.TYPE_ID == de.TYPE_ID);
|
||
T_SK_RISK_EVALUATION_DETAIL detail = new T_SK_RISK_EVALUATION_DETAIL();
|
||
detail.ORG_ID = entity.ORG_ID;
|
||
detail.RISK_EVALUATION_ID = result.ID;
|
||
detail.PRODUCTION_UNIT_ID = de.PRODUCTION_UNIT_ID;
|
||
detail.AREA_ID = de.AREA_ID;
|
||
detail.RISK_NAME = de.RISK_NAME;
|
||
detail.RISK_DESCRIPTION = de.RISK_DESCRIPTION;
|
||
detail.TYPE_ID = de.TYPE_ID;
|
||
detail.EVALUATE_L = departTemp == null ? 0 : departTemp.EVALUATE_L;
|
||
detail.EVALUATE_E = departTemp == null ? 0 : departTemp.EVALUATE_E;
|
||
detail.EVALUATE_C = departTemp == null ? 0 : departTemp.EVALUATE_C;
|
||
detail.SCOREC_ID = departTemp?.SCOREC_ID;
|
||
detail.SCOREE_ID = departTemp?.SCOREE_ID;
|
||
detail.SCOREL_ID = departTemp?.SCOREL_ID;
|
||
detail.EVALUATE_SCORE = departTemp == null ? 0 : departTemp.EVALUATE_SCORE;
|
||
detail.EVALUATE_LEVEL = departTemp == null ? SKEvaluateLevelEnum.低风险 : departTemp.EVALUATE_LEVEL;
|
||
detail.MARK = de.MARK;
|
||
detail.MEASURE = de.MEASURE;
|
||
if (departTemp != null)
|
||
{
|
||
var libraryDetailTemps = libraryDetails.Where(t => t.ENTERPRISE_LIBRARY_ID == departTemp.ID).ToList();
|
||
if (libraryDetailTemps.Any())
|
||
{
|
||
var i = 1;
|
||
foreach (var item in libraryDetailTemps)
|
||
{
|
||
T_SK_RISK_EVALUATION_DETAIL_MEASURE dep = new T_SK_RISK_EVALUATION_DETAIL_MEASURE();
|
||
dep.MEASURES_NAME = item.MEASURES_NAME;
|
||
dep.EMERGENCY = item.EMERGENCY;
|
||
dep.NUM = item.NUM;
|
||
dep.ORG_ID = item.ORG_ID;
|
||
dep.RISK_EVALUATION_DETAIL_ID = detail.ID;
|
||
detailMeasures.Add(dep);
|
||
//var measureTemp = i + "、" + item.MEASURES_NAME + ";";
|
||
//detail.MEASURE = detail.MEASURE + measureTemp;
|
||
i++;
|
||
}
|
||
}
|
||
var libraryDepartTemps = libraryDeparts.Where(t => t.ENTERPRISE_LIBRARY_ID == departTemp.ID).ToList();
|
||
if (libraryDepartTemps.Any())
|
||
{
|
||
var i = 1;
|
||
foreach (var item in libraryDepartTemps)
|
||
{
|
||
T_SK_RISK_EVALUATION_DETAIL_DEPART dep = new T_SK_RISK_EVALUATION_DETAIL_DEPART();
|
||
dep.DEPARTMENT_TYPE = item.DEPARTMENT_TYPE;
|
||
dep.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
dep.USER_ID = item.USER_ID;
|
||
dep.ORG_ID = item.ORG_ID;
|
||
dep.RISK_EVALUATION_DETAIL_ID = detail.ID;
|
||
detailDeparts.Add(dep);
|
||
var departFirstTemp = departs.FirstOrDefault(t => t.ID == item.DEPARTMENT_ID);
|
||
var userFirst = users.FirstOrDefault(t => t.ID == departFirstTemp?.USER_ID);
|
||
var typeTemp = i + "、" + item.DEPARTMENT_TYPE.GetDescription() + ";";
|
||
detail.DEPARTMENT_TYPE = detail.DEPARTMENT_TYPE + typeTemp;
|
||
var departTempx = i + "、" + departFirstTemp?.NAME + ";"; ;
|
||
detail.IDENTIFY_DEPARTMENT = detail.IDENTIFY_DEPARTMENT + departTempx;
|
||
var userTemp = i + "、" + userFirst?.NAME + ";"; ;
|
||
detail.IDENTIFY_USER = detail.IDENTIFY_USER + typeTemp;
|
||
i++;
|
||
}
|
||
}
|
||
var libraryPostTemps = libraryPosts.Where(t => t.ENTERPRISE_LIBRARY_ID == departTemp.ID).ToList();
|
||
if (libraryPostTemps.Any())
|
||
{
|
||
foreach (var item in libraryPostTemps)
|
||
{
|
||
T_SK_RISK_EVALUATION_DETAIL_POST dep = new T_SK_RISK_EVALUATION_DETAIL_POST();
|
||
dep.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
dep.ORG_ID = item.ORG_ID;
|
||
dep.RISK_EVALUATION_DETAIL_ID = detail.ID;
|
||
detailPosts.Add(dep);
|
||
if (item.Nav_PostDetails != null && item.Nav_PostDetails.Any())
|
||
{
|
||
foreach (var item2 in item.Nav_PostDetails)
|
||
{
|
||
T_SK_RISK_EVALUATION_DETAIL_POST_DETAIL depDetail = new T_SK_RISK_EVALUATION_DETAIL_POST_DETAIL();
|
||
depDetail.POST_ID = item2.POST_ID;
|
||
depDetail.ORG_ID = item.ORG_ID;
|
||
depDetail.RISK_EVALUATION_DETAIL_POST_ID = dep.ID;
|
||
detailPostDetails.Add(depDetail);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
resultDetails.Add(detail);
|
||
}
|
||
}
|
||
//var noticeTask = NotificationTaskService.InsertUserNoticeTaskModel("安全风险评估表(" + DateTime.Now.ToShortDateString().Replace("/", "") + ")", result.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK039");
|
||
//notices.Add(noticeTask);
|
||
//T_SC_MT_MEETING_BEGIN modelBegin = new T_SC_MT_MEETING_BEGIN();
|
||
//modelBegin.ID = Guid.NewGuid();
|
||
//modelBegin.ORG_ID = entity.ORG_ID;
|
||
//modelBegin.SOURCETYPE = SOURCETYPE.SK037ToMeet;
|
||
//modelBegin.TABLENAME = "T_SK_RISK_IDENTIFY_RESULT_SUMMARY";
|
||
//modelBegin.DATA_ID = entity.ID;
|
||
//modelBegin.ISBEGIN = false;
|
||
//modelBegin.USER_ID = user.ID;
|
||
//modelBegin.CREATE_TIME = DateTime.Now;
|
||
//modelBegin.CREATER_ID = user.ID;
|
||
//modelBegins.Add(modelBegin);
|
||
//触发今日提醒
|
||
var noticeDay = NotificationTaskService.InsertUserNoticeTaskModel("请召开《危险源辨识与风险评估》会议,确定风险等级和管控措施(含应急处置、辨识岗位、管控层级、检查内容、检查层级等)", result.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.今日提醒, "PF135");
|
||
notices.Add(noticeDay);
|
||
}
|
||
}
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (notices != null && notices.Any())
|
||
BantchSaveEntityNoCommit(notices);
|
||
if (results != null && results.Any())
|
||
BantchSaveEntityNoCommit(results);
|
||
if (resultDetails != null && resultDetails.Any())
|
||
BantchSaveEntityNoCommit(resultDetails);
|
||
if (detailDeparts != null && detailDeparts.Any())
|
||
BantchSaveEntityNoCommit(detailDeparts);
|
||
if (detailMeasures != null && detailMeasures.Any())
|
||
BantchSaveEntityNoCommit(detailMeasures);
|
||
if (detailPosts != null && detailPosts.Any())
|
||
BantchSaveEntityNoCommit(detailPosts);
|
||
if (detailPostDetails != null && detailPostDetails.Any())
|
||
BantchSaveEntityNoCommit(detailPostDetails);
|
||
//if (modelBegins != null && modelBegins.Count > 0)
|
||
// BantchSaveEntityNoCommit(modelBegins);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_SKRiskEvaluation(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_RISK_EVALUATION>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID);
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
//entity.END_DATE = DateTime.Now;
|
||
//触发评估汇总表
|
||
T_FM_NOTIFICATION_TASK notice = null;
|
||
T_SK_RISK_EVALUATION_SUMMARY result = null;
|
||
List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL> resultDetails = new List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL>();
|
||
List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_MEASURE> detailMeasures = new List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_MEASURE>();
|
||
List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_DEPART> detailDeparts = new List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_DEPART>();
|
||
List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST> detailPostSums = new List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST>();
|
||
List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST_DETAIL> detailPostDetailSums = new List<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST_DETAIL>();
|
||
//触发风险检查关联表
|
||
T_SK_DOUBLE_PREVENT_MECHANISM dou = null;
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL> douDetails = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES> detailMes = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST> detailPosts = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART> detailDeps = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART_DETAIL> detailDepDets = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART_DETAIL>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT> detailContents = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST> contentPosts = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_DEPART> contentDepartPosts = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_DEPART>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_HIDDEN> contentHiddenss = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_HIDDEN>();
|
||
Guid? userId = null;
|
||
List<Guid> departIds = new List<Guid>();
|
||
var departs = this.GetEntities<T_FM_DEPARTMENT>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID));
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID), "Nav_ApproveRole");
|
||
var userPosts = this.GetEntities<T_FM_USER_POST>(t => t.IS_DELETED == false, new BaseFilter(entity.ORG_ID));
|
||
var user = users.FirstOrDefault(t => t.DEPARTMENT_ID == entity.APPLY_DEPARTMENT_ID && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
var currentDepart = departs.FirstOrDefault(t => t.ID == entity.APPLY_DEPARTMENT_ID);
|
||
if (currentDepart != null)
|
||
{
|
||
if (currentDepart.DEPARTMENT_STATUS != 1)
|
||
{
|
||
departIds = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(m => m.ID).ToList();
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部负责人"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 10)
|
||
{
|
||
departIds.Add(currentDepart.ID);
|
||
var shopIds = departs.Where(t => t.PARENT_ID == currentDepart.ID).Select(t => t.ID).ToList();
|
||
departIds.AddRange(shopIds);
|
||
var classIds = departs.Where(t => t.PARENT_ID != null && shopIds.Contains(t.PARENT_ID.Value)).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
if (user == null)
|
||
{
|
||
var departUser = departs.FirstOrDefault(t => t.ID == currentDepart.ID);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 15)
|
||
{
|
||
//departIds.Add(currentDepart.ID);
|
||
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID).PARENT_ID;
|
||
if (parentId != null)
|
||
{
|
||
departIds.Add(parentId.Value);
|
||
var shopIds = departs.Where(t => t.PARENT_ID == parentId).Select(t => t.ID).ToList();
|
||
departIds.AddRange(shopIds);
|
||
var classIds = departs.Where(t => t.PARENT_ID != null && shopIds.Contains(t.PARENT_ID.Value)).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
//DepartmentService.GetDepartmentIds(entity.ORG_ID.Value, new List<Guid>() { currentDepart.ID }, ref departIds);
|
||
//departIds.Add(currentDepart.ID);
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 20)
|
||
{
|
||
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID)?.PARENT_ID;
|
||
if (parentId != null)
|
||
{
|
||
var parentId2 = departs.FirstOrDefault(t => t.ID == parentId)?.PARENT_ID;
|
||
if (parentId2 != null)
|
||
{
|
||
departIds.Add((Guid)parentId2);
|
||
var shopIds = departs.Where(t => t.PARENT_ID == parentId2).Select(t => t.ID).ToList();
|
||
departIds.AddRange(shopIds);
|
||
var classIds = departs.Where(t => t.PARENT_ID != null && shopIds.Contains(t.PARENT_ID.Value)).Select(t => t.ID).ToList();
|
||
departIds.AddRange(classIds);
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.DEPARTMENT_ID == parentId2 && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
var departUser = departs.FirstOrDefault(t => t.ID == parentId2);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if (currentDepart.DEPARTMENT_TYPE == 5)
|
||
{
|
||
departIds = departs.Where(t => t.DEPARTMENT_STATUS != 1).Select(m => m.ID).ToList();
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
user = users.FirstOrDefault(t => t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安环部负责人"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
}
|
||
}
|
||
|
||
//当前层级安全员和负责人都找不到,找一次上级安全员和负责人
|
||
if (userId == null)
|
||
{
|
||
var parentId = departs.FirstOrDefault(t => t.ID == currentDepart.ID)?.PARENT_ID;
|
||
if (parentId != null)
|
||
{
|
||
user = users.FirstOrDefault(t => t.DEPARTMENT_ID == parentId && t.Nav_ApproveRole != null && t.Nav_ApproveRole.NAME.Contains("安全员"));
|
||
if (user != null)
|
||
{
|
||
userId = user.ID;
|
||
}
|
||
else
|
||
{
|
||
//负责人
|
||
var departUser = departs.FirstOrDefault(t => t.ID == parentId);
|
||
if (departUser != null)
|
||
{
|
||
userId = departUser.USER_ID;
|
||
if (userId != null)
|
||
{
|
||
//currentDepart = departUser;
|
||
user = users.FirstOrDefault(t => t.ID == userId);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var requre = this.GetEntity<T_SK_EVALUATION>(t => !t.IS_DELETED);
|
||
var filter = new BaseFilter(entity.ORG_ID);
|
||
filter.IgnoreDataRule = true;
|
||
Expression<Func<T_SK_RISK_EVALUATION, bool>> expression = i => i.IS_DELETED == false && i.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)i.APPLY_DEPARTMENT_ID);
|
||
List<T_SK_RISK_EVALUATION> results = this.GetOrderEntities(expression, filter).ToList();
|
||
//var results = GetEntities<T_SK_RISK_EVALUATION>(i => i.IDENTIFY_EVALUATION_PLAN_ID == entity.IDENTIFY_EVALUATION_PLAN_ID && departIds.Contains((Guid)i.APPLY_DEPARTMENT_ID), new BaseFilter(entity.ORG_ID));
|
||
var isEnd = results.FirstOrDefault(t => t.ID != entity.ID && t.STATUS != PFStandardStatus.Archived && t.STATUS != PFStandardStatus.Close);
|
||
if (isEnd == null && user != null)
|
||
{
|
||
result = new T_SK_RISK_EVALUATION_SUMMARY();
|
||
result.ORG_ID = entity.ORG_ID;
|
||
result.IDENTIFY_EVALUATION_PLAN_ID = entity.IDENTIFY_EVALUATION_PLAN_ID;
|
||
result.APPLY_USER_ID = user.ID;
|
||
result.APPLY_DEPARTMENT_ID = user.DEPARTMENT_ID;
|
||
result.YEAR = entity.YEAR;
|
||
result.START_DATE = entity.START_DATE;
|
||
result.END_DATE = entity.END_DATE;
|
||
result.REQUIRE_ID = entity.REQUIRE_ID != null ? entity.REQUIRE_ID : requre?.ID;
|
||
result.ISCOMPANY = entity.ISCOMPANY;
|
||
var resultIds = results.Select(t => t.ID).ToList();
|
||
var details = GetEntities<T_SK_RISK_EVALUATION_DETAIL>(i => resultIds.Contains(i.RISK_EVALUATION_ID), new BaseFilter(entity.ORG_ID), "Nav_DetailMeasures", "Nav_DetailDeparts", "Nav_DetailPosts.Nav_PostDetails");
|
||
var detailList = details.GroupBy(m => new { m.AREA_ID, m.PRODUCTION_UNIT_ID, m.RISK_NAME, m.RISK_DESCRIPTION, m.TYPE_ID }).Select(g => g.FirstOrDefault());
|
||
if (detailList.Any())
|
||
{
|
||
foreach (var de in detailList)
|
||
{
|
||
T_SK_RISK_EVALUATION_SUMMARY_DETAIL detail = new T_SK_RISK_EVALUATION_SUMMARY_DETAIL();
|
||
detail.ORG_ID = entity.ORG_ID;
|
||
detail.RISK_EVALUATION_SUMMARY_ID = result.ID;
|
||
detail.PRODUCTION_UNIT_ID = de.PRODUCTION_UNIT_ID;
|
||
detail.MineType = de.MineType;
|
||
detail.AREA_ID = de.AREA_ID;
|
||
detail.RISK_NAME = de.RISK_NAME;
|
||
detail.RISK_NAME_ID = de.RISK_NAME_ID;
|
||
detail.RISK_DESCRIPTION = de.RISK_DESCRIPTION;
|
||
detail.TYPE_ID = de.TYPE_ID;
|
||
detail.EVALUATE_L = de.EVALUATE_L;
|
||
detail.EVALUATE_E = de.EVALUATE_E;
|
||
detail.EVALUATE_C = de.EVALUATE_C;
|
||
detail.SCOREC_ID = de.SCOREC_ID;
|
||
detail.SCOREE_ID = de.SCOREE_ID;
|
||
detail.SCOREL_ID = de.SCOREL_ID;
|
||
detail.EVALUATE_SCORE = de.EVALUATE_SCORE;
|
||
detail.EMERGENCY = de.EMERGENCY;
|
||
detail.EVALUATE_LEVEL = de.EVALUATE_LEVEL;
|
||
detail.MARK = de.MARK;
|
||
detail.MEASURE = de.MEASURE;
|
||
resultDetails.Add(detail);
|
||
if (de.Nav_DetailMeasures != null && de.Nav_DetailMeasures.Any())
|
||
{
|
||
var i = 1;
|
||
foreach (var item in de.Nav_DetailMeasures.OrderBy(t => t.NUM))
|
||
{
|
||
T_SK_RISK_EVALUATION_SUMMARY_DETAIL_MEASURE dep = new T_SK_RISK_EVALUATION_SUMMARY_DETAIL_MEASURE();
|
||
dep.MEASURES_NAME = item.MEASURES_NAME;
|
||
dep.EMERGENCY = item.EMERGENCY;
|
||
dep.NUM = item.NUM;
|
||
dep.ORG_ID = item.ORG_ID;
|
||
dep.RISK_EVALUATION_SUMMARY_DETAIL_ID = detail.ID;
|
||
detailMeasures.Add(dep);
|
||
//var measureTemp = i + "、" + item.MEASURES_NAME + ";";
|
||
//detail.MEASURE = detail.MEASURE + measureTemp;
|
||
//var emergencyTemp = i + "、" + item.EMERGENCY + ";";
|
||
//detail.EMERGENCY = detail.EMERGENCY + emergencyTemp;
|
||
i++;
|
||
}
|
||
}
|
||
if (de.Nav_DetailDeparts != null && de.Nav_DetailDeparts.Any())
|
||
{
|
||
var i = 1;
|
||
foreach (var item in de.Nav_DetailDeparts.OrderBy(m => m.DEPARTMENT_TYPE))
|
||
{
|
||
T_SK_RISK_EVALUATION_SUMMARY_DETAIL_DEPART dep = new T_SK_RISK_EVALUATION_SUMMARY_DETAIL_DEPART();
|
||
dep.DEPARTMENT_TYPE = item.DEPARTMENT_TYPE;
|
||
dep.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
dep.USER_ID = item.USER_ID;
|
||
dep.ORG_ID = item.ORG_ID;
|
||
dep.RISK_EVALUATION_SUMMARY_DETAIL_ID = detail.ID;
|
||
detailDeparts.Add(dep);
|
||
var userFirst = users.FirstOrDefault(t => t.ID == item.USER_ID);
|
||
var departFirstTemp = departs.FirstOrDefault(t => t.ID == item.DEPARTMENT_ID);
|
||
var typeTemp = i + "、" + item.DEPARTMENT_TYPE.GetDescription() + ";";
|
||
detail.DEPARTMENT_TYPE = detail.DEPARTMENT_TYPE + typeTemp;
|
||
var departTempx = i + "、" + departFirstTemp?.NAME + ";";
|
||
detail.IDENTIFY_DEPARTMENT = detail.IDENTIFY_DEPARTMENT + departTempx;
|
||
var userTemp = i + "、" + userFirst?.NAME + ";";
|
||
detail.IDENTIFY_USER = detail.IDENTIFY_USER + typeTemp;
|
||
i++;
|
||
}
|
||
}
|
||
if (de.Nav_DetailPosts != null && de.Nav_DetailPosts.Any())
|
||
{
|
||
var i = 1;
|
||
foreach (var item in de.Nav_DetailPosts)
|
||
{
|
||
T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST dep = new T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST();
|
||
dep.DEPARTMENT_ID = item.DEPARTMENT_ID;
|
||
dep.ORG_ID = item.ORG_ID;
|
||
dep.RISK_EVALUATION_SUMMARY_DETAIL_ID = detail.ID;
|
||
detailPostSums.Add(dep);
|
||
var departFirstTemp = departs.FirstOrDefault(t => t.ID == item.DEPARTMENT_ID);
|
||
var departTempx = i + "、" + departFirstTemp?.NAME + ";";
|
||
detail.EVALUATION_DEPARTMENT = detail.IDENTIFY_DEPARTMENT + departTempx;
|
||
if (item.Nav_PostDetails != null && item.Nav_PostDetails.Any())
|
||
{
|
||
var postIds = new List<Guid>();
|
||
foreach (var item2 in item.Nav_PostDetails)
|
||
{
|
||
T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST_DETAIL depDetail = new T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST_DETAIL();
|
||
depDetail.POST_ID = item2.POST_ID;
|
||
depDetail.ORG_ID = item.ORG_ID;
|
||
depDetail.RISK_EVALUATION_SUMMARY_DETAIL_POST_ID = dep.ID;
|
||
detailPostDetailSums.Add(depDetail);
|
||
postIds.Add((Guid)item2.POST_ID);
|
||
}
|
||
var postFirstTemp = userPosts.Where(t => postIds.Contains(t.ID)).Select(m => m.NAME).Distinct().ToList();
|
||
var postTempx = i + "、" + string.Join(",", postFirstTemp) + ";";
|
||
detail.EVALUATION_POST = detail.EVALUATION_POST + departTempx;
|
||
}
|
||
i++;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var param = "部门级";
|
||
var dminetype = departs.FirstOrDefault(t => t.ID == user.DEPARTMENT_ID).DEPARTMENT_TYPE;
|
||
if (dminetype == 5 || result.ISCOMPANY == SKIsStoreEnum.Yes)
|
||
{
|
||
param = "公司级";
|
||
}
|
||
result.STATUS = PFStandardStatus.Approving;
|
||
//取审批流水码
|
||
var sysFilter = new SystemCodeFilter();
|
||
sysFilter.CodeType = (int)PFCodeRuleType.审批流编码;
|
||
sysFilter.Count = 1;
|
||
sysFilter.OrgId = entity.ORG_ID;
|
||
var codes = CodeRuleService.NewGenSerial(sysFilter);
|
||
var serialCode = codes.Split(new char[] { ',' });
|
||
var approveTemp = this.GetEntity<T_PF_APPROVE_TEMP>(t => t.FORM_CODE == "SK041" && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用 && t.PARAM == param, "Nav_ApproveTempDetails.Nav_ApproveRole");
|
||
if (approveTemp != null && approveTemp.Nav_ApproveTempDetails != null && approveTemp.Nav_ApproveTempDetails.Any())
|
||
{
|
||
var approveDetailLast = approveTemp.Nav_ApproveTempDetails.OrderByDescending(t => t.NUM).FirstOrDefault();
|
||
var loginUser = users.FirstOrDefault(t => t.ID == APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value);
|
||
if (approveDetailLast.APPROVE_ROLE_ID == loginUser.APPROVE_ROLE_ID)
|
||
{
|
||
result.STATUS = PFStandardStatus.Archived;
|
||
if (user != null && resultDetails != null && resultDetails.Any())
|
||
{
|
||
var productionId = resultDetails.FirstOrDefault(t => t.PRODUCTION_UNIT_ID != null).PRODUCTION_UNIT_ID;
|
||
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => t.ENABLE_STATUS == 0 && t.PRODUCTION_UNIT_ID == productionId, new BaseFilter(entity.ORG_ID));
|
||
var libraryIds = librarys.Select(t => t.ID).ToList();
|
||
//var libraryDeparts = GetEntities<T_SK_ENTERPRISE_LIBRARY_DEPART>(i => i.IS_DELETED == false && libraryIds.Contains(i.ENTERPRISE_LIBRARY_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var libraryDetails = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(i => i.IS_DELETED == false && libraryIds.Contains(i.ENTERPRISE_LIBRARY_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var detailIds = libraryDetails.Select(i => i.ID).ToList();
|
||
var libraryContents = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(i => i.IS_DELETED == false && detailIds.Contains(i.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var contentIds = libraryContents.Select(i => i.ID).ToList();
|
||
var contentDeparts = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(i => i.IS_DELETED == false && contentIds.Contains(i.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var contentPostIds = contentDeparts.Select(i => i.ID).ToList();
|
||
var contentPostss = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(i => i.IS_DELETED == false && contentPostIds.Contains(i.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var contentHiddens = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(i => i.IS_DELETED == false && contentIds.Contains(i.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
dou = new T_SK_DOUBLE_PREVENT_MECHANISM();
|
||
dou.APPLY_USER_ID = user.ID;
|
||
dou.APPLY_DEPARTMENT_ID = user.DEPARTMENT_ID;
|
||
dou.ORG_ID = result.ORG_ID;
|
||
dou.RISK_EVALUATE_SUMMARY_ID = result.ID;
|
||
foreach (var item in resultDetails)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL detail = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL();
|
||
detail.ORG_ID = item.ORG_ID;
|
||
detail.DOUBLE_PREVENT_MECHANISM_ID = dou.ID;
|
||
detail.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
|
||
//detail.MineType = item.MineType;
|
||
detail.AREA_ID = item.AREA_ID;
|
||
detail.TYPE_ID = item.TYPE_ID;
|
||
detail.RISK_DESCRIPTION = item.RISK_DESCRIPTION;
|
||
detail.RISK_NAME = item.RISK_NAME;
|
||
//detail.RISK_NAME_ID = item.RISK_NAME_ID;
|
||
detail.EVALUATE_L = item.EVALUATE_L;
|
||
detail.EVALUATE_E = item.EVALUATE_E;
|
||
detail.EVALUATE_C = item.EVALUATE_C;
|
||
detail.SCOREC_ID = item?.SCOREC_ID;
|
||
detail.SCOREE_ID = item?.SCOREE_ID;
|
||
detail.SCOREL_ID = item?.SCOREL_ID;
|
||
detail.EVALUATE_SCORE = item.EVALUATE_SCORE;
|
||
detail.EVALUATE_LEVEL = item.EVALUATE_LEVEL;
|
||
detail.EMERGENCY = item.EMERGENCY;
|
||
detail.MARK = item.MARK;
|
||
douDetails.Add(detail);
|
||
var ldeparts = detailDeparts.Where(t => t.RISK_EVALUATION_SUMMARY_DETAIL_ID == item.ID).ToList();
|
||
if (ldeparts.Any())
|
||
{
|
||
foreach (var item2 in ldeparts)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST post = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST();
|
||
post.ORG_ID = item2.ORG_ID;
|
||
post.DOUBLE_PREVENT_MECHANISM_DETAIL_ID = detail.ID;
|
||
post.DEPARTMENT_TYPE = item2.DEPARTMENT_TYPE;
|
||
post.DEPARTMENT_ID = item2.DEPARTMENT_ID;
|
||
post.USER_ID = item2.USER_ID;
|
||
detailPosts.Add(post);
|
||
}
|
||
}
|
||
var lposts = detailPostSums.Where(t => t.RISK_EVALUATION_SUMMARY_DETAIL_ID == item.ID).ToList();
|
||
if (lposts.Any())
|
||
{
|
||
foreach (var item2 in lposts)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART dep = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART();
|
||
dep.DEPARTMENT_ID = item2.DEPARTMENT_ID;
|
||
dep.ORG_ID = item.ORG_ID;
|
||
dep.DOUBLE_PREVENT_MECHANISM_DETAIL_ID = detail.ID;
|
||
detailDeps.Add(dep);
|
||
var lpostDetails = detailPostDetailSums.Where(t => t.RISK_EVALUATION_SUMMARY_DETAIL_POST_ID == item2.ID).ToList();
|
||
if (lpostDetails != null && lpostDetails.Any())
|
||
{
|
||
foreach (var item3 in lpostDetails)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART_DETAIL depDetail = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART_DETAIL();
|
||
depDetail.POST_ID = item3.POST_ID;
|
||
depDetail.ORG_ID = item.ORG_ID;
|
||
depDetail.MECHANISM_DETAIL_DEPART_ID = dep.ID;
|
||
detailDepDets.Add(depDetail);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var libraryFirst = librarys.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == item.PRODUCTION_UNIT_ID && t.AREA_ID == item.AREA_ID && t.RISK_NAME == item.RISK_NAME && t.RISK_DESCRIPTION == item.RISK_DESCRIPTION && t.TYPE_ID == item.TYPE_ID);
|
||
if (libraryFirst != null)
|
||
{
|
||
//var ldeparts = libraryDeparts.Where(t => t.ENTERPRISE_LIBRARY_ID == libraryFirst.ID).ToList();
|
||
//if (ldeparts.Any())
|
||
//{
|
||
// foreach (var item2 in ldeparts)
|
||
// {
|
||
// T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST post = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST();
|
||
// post.ORG_ID = item2.ORG_ID;
|
||
// post.DOUBLE_PREVENT_MECHANISM_DETAIL_ID = detail.ID;
|
||
// post.DEPARTMENT_TYPE = item2.DEPARTMENT_TYPE;
|
||
// post.DEPARTMENT_ID = item2.DEPARTMENT_ID;
|
||
// post.USER_ID = item2.USER_ID;
|
||
// detailPosts.Add(post);
|
||
// }
|
||
//}
|
||
var measures = libraryDetails.Where(t => t.ENTERPRISE_LIBRARY_ID == libraryFirst.ID).ToList();
|
||
if (measures.Any())
|
||
{
|
||
foreach (var item2 in measures)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES measure = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES();
|
||
measure.ORG_ID = item2.ORG_ID;
|
||
measure.DOUBLE_PREVENT_MECHANISM_DETAIL_ID = detail.ID;
|
||
measure.MEASURES_NAME = item2.MEASURES_NAME;
|
||
measure.EMERGENCY = item2.EMERGENCY;
|
||
measure.NUM = item2.NUM;
|
||
detailMes.Add(measure);
|
||
var contents = libraryContents.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_ID == item2.ID).ToList();
|
||
if (contents.Any())
|
||
{
|
||
foreach (var item3 in contents)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT content = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT();
|
||
content.ORG_ID = item3.ORG_ID;
|
||
content.DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_ID = measure.ID;
|
||
content.CHECK_CONTENTS_ID = item3.CHECK_CONTENTS_ID;
|
||
content.CHECK_CONTENT = item3.CHECK_CONTENT;
|
||
content.CHECK_BASIC = item3.CHECK_BASIC;
|
||
content.CHECK_STANDARD = item3.CHECK_STANDARD;
|
||
content.NUM = item3.NUM;
|
||
detailContents.Add(content);
|
||
var contentPostTemps = contentDeparts.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == item3.ID).ToList();
|
||
if (contentPostTemps.Any())
|
||
{
|
||
foreach (var item4 in contentPostTemps)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST contentPost = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST();
|
||
contentPost.ORG_ID = item4.ORG_ID;
|
||
contentPost.DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_ID = content.ID;
|
||
contentPost.CHECK_TYPE = item4.CHECK_TYPE;
|
||
contentPost.DEPARTMENT_ID = item4.DEPARTMENT_ID;
|
||
contentPost.CHECK_CYCLE = item4.CHECK_CYCLE;
|
||
contentPost.CHECK_TYPE_ID = item4.CHECK_TYPE_ID;
|
||
contentPost.NUM = item4.NUM;
|
||
contentPosts.Add(contentPost);
|
||
var postTemps = contentPostss.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID == item4.ID).ToList();
|
||
if (postTemps.Any())
|
||
{
|
||
foreach (var item5 in postTemps)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_DEPART pos = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_DEPART();
|
||
pos.ORG_ID = item5.ORG_ID;
|
||
pos.DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST_ID = contentPost.ID;
|
||
pos.POST_ID = item5.POST_ID;
|
||
contentDepartPosts.Add(pos);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var contentHiddenTemps = contentHiddens.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == item3.ID).ToList();
|
||
if (contentHiddenTemps.Any())
|
||
{
|
||
foreach (var item4 in contentHiddenTemps)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_HIDDEN contentPost = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_HIDDEN();
|
||
contentPost.ORG_ID = item4.ORG_ID;
|
||
contentPost.DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_ID = content.ID;
|
||
contentPost.HIDDEN_DESCRIPTION = item4.HIDDEN_DESCRIPTION;
|
||
contentPost.HIDDEN_LEVEL = item4.HIDDEN_LEVEL;
|
||
contentPost.RECTIFICATION_MEASURES = item4.RECTIFICATION_MEASURES;
|
||
contentPost.NUM = item4.NUM;
|
||
contentHiddenss.Add(contentPost);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
notice = NotificationTaskService.InsertUserNoticeTaskModel("风险检查关联表", dou.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK026");
|
||
}
|
||
}
|
||
}
|
||
InsertApproveSK(serialCode[0], "SK041", param, result.ID, "SK041_SHOWPRINT", entity.TaskID, true, () =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (result != null)
|
||
this.UpdateEntityNoCommit(result);
|
||
if (resultDetails != null && resultDetails.Any())
|
||
BantchSaveEntityNoCommit(resultDetails);
|
||
if (detailDeparts != null && detailDeparts.Any())
|
||
BantchSaveEntityNoCommit(detailDeparts);
|
||
if (detailMeasures != null && detailMeasures.Any())
|
||
BantchSaveEntityNoCommit(detailMeasures);
|
||
if (detailPostSums != null && detailPostSums.Any())
|
||
BantchSaveEntityNoCommit(detailPostSums);
|
||
if (detailPostDetailSums != null && detailPostDetailSums.Any())
|
||
BantchSaveEntityNoCommit(detailPostDetailSums);
|
||
if (notice != null)
|
||
this.UpdateEntityNoCommit(notice);
|
||
if (dou != null)
|
||
this.UpdateEntityNoCommit(dou);
|
||
if (douDetails != null && douDetails.Count > 0)
|
||
BantchSaveEntityNoCommit(douDetails);
|
||
if (detailMes != null && detailMes.Count > 0)
|
||
BantchSaveEntityNoCommit(detailMes);
|
||
if (detailPosts != null && detailPosts.Count > 0)
|
||
BantchSaveEntityNoCommit(detailPosts);
|
||
if (detailDeps != null && detailDeps.Count > 0)
|
||
BantchSaveEntityNoCommit(detailDeps);
|
||
if (detailDepDets != null && detailDepDets.Count > 0)
|
||
BantchSaveEntityNoCommit(detailDepDets);
|
||
if (detailContents != null && detailContents.Count > 0)
|
||
BantchSaveEntityNoCommit(detailContents);
|
||
if (contentPosts != null && contentPosts.Count > 0)
|
||
BantchSaveEntityNoCommit(contentPosts);
|
||
if (contentHiddenss != null && contentHiddenss.Count > 0)
|
||
BantchSaveEntityNoCommit(contentHiddenss);
|
||
if (contentDepartPosts != null && contentDepartPosts.Count > 0)
|
||
BantchSaveEntityNoCommit(contentDepartPosts);
|
||
}, null, null, null, null, null, "SK039_SHOWPRINT", null, "安全风险评估汇总表审批(" + param + ")");
|
||
return true;
|
||
//notice = NotificationTaskService.InsertUserNoticeTaskModel("安全风险评估汇总表(" + param + ")", result.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK041");
|
||
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (result != null)
|
||
this.UpdateEntityNoCommit(result);
|
||
if (resultDetails != null && resultDetails.Any())
|
||
BantchSaveEntityNoCommit(resultDetails);
|
||
if (detailDeparts != null && detailDeparts.Any())
|
||
BantchSaveEntityNoCommit(detailDeparts);
|
||
if (detailMeasures != null && detailMeasures.Any())
|
||
BantchSaveEntityNoCommit(detailMeasures);
|
||
if (notice != null)
|
||
this.UpdateEntityNoCommit(notice);
|
||
if (dou != null)
|
||
this.UpdateEntityNoCommit(dou);
|
||
if (douDetails != null && douDetails.Count > 0)
|
||
BantchSaveEntityNoCommit(douDetails);
|
||
if (detailMes != null && detailMes.Count > 0)
|
||
BantchSaveEntityNoCommit(detailMes);
|
||
if (detailPosts != null && detailPosts.Count > 0)
|
||
BantchSaveEntityNoCommit(detailPosts);
|
||
if (detailContents != null && detailContents.Count > 0)
|
||
BantchSaveEntityNoCommit(detailContents);
|
||
if (contentPosts != null && contentPosts.Count > 0)
|
||
BantchSaveEntityNoCommit(contentPosts);
|
||
if (contentHiddenss != null && contentHiddenss.Count > 0)
|
||
BantchSaveEntityNoCommit(contentHiddenss);
|
||
if (contentDepartPosts != null && contentDepartPosts.Count > 0)
|
||
BantchSaveEntityNoCommit(contentDepartPosts);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
private bool BackUpdate_SKRiskEvaluationSummary(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var entity = this.GetEntity<T_SK_RISK_EVALUATION_SUMMARY>(modelApp != null ? modelApp.DATA_ID : entityInt.DATA_ID, "Nav_Details");
|
||
entity.STATUS = PFStandardStatus.Archived;
|
||
entity.END_DATE = DateTime.Now;
|
||
//触发风险检查关联表
|
||
T_SK_DOUBLE_PREVENT_MECHANISM dou = null;
|
||
T_FM_NOTIFICATION_TASK notice = null;
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL> details = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES> detailMes = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST> detailPosts = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART> detailDeps = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART_DETAIL> detailDepDets = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART_DETAIL>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT> detailContents = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST> contentPosts = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_DEPART> contentDepartPosts = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_DEPART>();
|
||
List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_HIDDEN> contentHiddenss = new List<T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_HIDDEN>();
|
||
if (entity.APPLY_USER_ID != null && entity.Nav_Details != null && entity.Nav_Details.Any())
|
||
{
|
||
var sumDetailIds = entity.Nav_Details.Select(t => t.ID).ToList();
|
||
var sumDetailPosts = this.GetEntities<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST>(t => sumDetailIds.Contains(t.RISK_EVALUATION_SUMMARY_DETAIL_ID), new BaseFilter(entity.ORG_ID));
|
||
var sumPostIds = sumDetailPosts.Select(t => t.ID).ToList();
|
||
var sumDetailPostDets = this.GetEntities<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_POST_DETAIL>(t => sumPostIds.Contains(t.RISK_EVALUATION_SUMMARY_DETAIL_POST_ID), new BaseFilter(entity.ORG_ID));
|
||
var sumDetailDeparts = this.GetEntities<T_SK_RISK_EVALUATION_SUMMARY_DETAIL_DEPART>(t => sumDetailIds.Contains(t.RISK_EVALUATION_SUMMARY_DETAIL_ID), new BaseFilter(entity.ORG_ID));
|
||
var user = this.GetEntity<T_FM_USER>(t => t.ID == entity.APPLY_USER_ID);
|
||
var productionId = entity.Nav_Details.FirstOrDefault(t => t.PRODUCTION_UNIT_ID != null)?.PRODUCTION_UNIT_ID;
|
||
var librarys = this.GetEntities<T_SK_ENTERPRISE_LIBRARY>(t => t.ENABLE_STATUS == 0 && t.PRODUCTION_UNIT_ID == productionId, new BaseFilter(entity.ORG_ID));
|
||
var libraryIds = librarys.Select(t => t.ID).ToList();
|
||
//var libraryDeparts = GetEntities<T_SK_ENTERPRISE_LIBRARY_DEPART>(i => i.IS_DELETED == false && libraryIds.Contains(i.ENTERPRISE_LIBRARY_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var libraryDetails = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL>(i => i.IS_DELETED == false && libraryIds.Contains(i.ENTERPRISE_LIBRARY_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var detailIds = libraryDetails.Select(i => i.ID).ToList();
|
||
var libraryContents = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT>(i => i.IS_DELETED == false && detailIds.Contains(i.ENTERPRISE_LIBRARY_DETAIL_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var contentIds = libraryContents.Select(i => i.ID).ToList();
|
||
var contentDeparts = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART>(i => i.IS_DELETED == false && contentIds.Contains(i.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var contentPostIds = contentDeparts.Select(i => i.ID).ToList();
|
||
var contentPostss = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_POST>(i => i.IS_DELETED == false && contentPostIds.Contains(i.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
var contentHiddens = GetEntities<T_SK_ENTERPRISE_LIBRARY_DETAIL_CONTENT_HIDDEN>(i => i.IS_DELETED == false && contentIds.Contains(i.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID), new BaseFilter(entity.ORG_ID)).ToList();
|
||
dou = new T_SK_DOUBLE_PREVENT_MECHANISM();
|
||
dou.APPLY_USER_ID = entity.APPLY_USER_ID;
|
||
dou.APPLY_DEPARTMENT_ID = entity.APPLY_DEPARTMENT_ID;
|
||
dou.ORG_ID = entity.ORG_ID;
|
||
dou.RISK_EVALUATE_SUMMARY_ID = entity.ID;
|
||
foreach (var item in entity.Nav_Details)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL detail = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL();
|
||
detail.ORG_ID = item.ORG_ID;
|
||
detail.DOUBLE_PREVENT_MECHANISM_ID = dou.ID;
|
||
detail.PRODUCTION_UNIT_ID = item.PRODUCTION_UNIT_ID;
|
||
//detail.MineType = item.MineType;
|
||
detail.AREA_ID = item.AREA_ID;
|
||
detail.TYPE_ID = item.TYPE_ID;
|
||
detail.RISK_DESCRIPTION = item.RISK_DESCRIPTION;
|
||
detail.RISK_NAME = item.RISK_NAME;
|
||
//detail.RISK_NAME_ID = item.RISK_NAME_ID;
|
||
detail.EVALUATE_L = item.EVALUATE_L;
|
||
detail.EVALUATE_E = item.EVALUATE_E;
|
||
detail.EVALUATE_C = item.EVALUATE_C;
|
||
detail.SCOREC_ID = item?.SCOREC_ID;
|
||
detail.SCOREE_ID = item?.SCOREE_ID;
|
||
detail.SCOREL_ID = item?.SCOREL_ID;
|
||
detail.EVALUATE_SCORE = item.EVALUATE_SCORE;
|
||
detail.EVALUATE_LEVEL = item.EVALUATE_LEVEL;
|
||
detail.EMERGENCY = item.EMERGENCY;
|
||
detail.MARK = item.MARK;
|
||
details.Add(detail);
|
||
var ldeparts = sumDetailDeparts.Where(t => t.RISK_EVALUATION_SUMMARY_DETAIL_ID == item.ID).ToList();
|
||
if (ldeparts.Any())
|
||
{
|
||
foreach (var item2 in ldeparts)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST post = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST();
|
||
post.ORG_ID = item2.ORG_ID;
|
||
post.DOUBLE_PREVENT_MECHANISM_DETAIL_ID = detail.ID;
|
||
post.DEPARTMENT_TYPE = item2.DEPARTMENT_TYPE;
|
||
post.DEPARTMENT_ID = item2.DEPARTMENT_ID;
|
||
post.USER_ID = item2.USER_ID;
|
||
detailPosts.Add(post);
|
||
}
|
||
}
|
||
var lposts = sumDetailPosts.Where(t => t.RISK_EVALUATION_SUMMARY_DETAIL_ID == item.ID).ToList();
|
||
if (lposts.Any())
|
||
{
|
||
foreach (var item2 in lposts)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART dep = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART();
|
||
dep.DEPARTMENT_ID = item2.DEPARTMENT_ID;
|
||
dep.ORG_ID = item.ORG_ID;
|
||
dep.DOUBLE_PREVENT_MECHANISM_DETAIL_ID = detail.ID;
|
||
detailDeps.Add(dep);
|
||
var lpostDetails = sumDetailPostDets.Where(t => t.RISK_EVALUATION_SUMMARY_DETAIL_POST_ID == item2.ID).ToList();
|
||
if (lpostDetails != null && lpostDetails.Any())
|
||
{
|
||
foreach (var item3 in lpostDetails)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART_DETAIL depDetail = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_DEPART_DETAIL();
|
||
depDetail.POST_ID = item3.POST_ID;
|
||
depDetail.ORG_ID = item.ORG_ID;
|
||
depDetail.MECHANISM_DETAIL_DEPART_ID = dep.ID;
|
||
detailDepDets.Add(depDetail);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var libraryFirst = librarys.FirstOrDefault(t => t.PRODUCTION_UNIT_ID == item.PRODUCTION_UNIT_ID && t.AREA_ID == item.AREA_ID && t.RISK_NAME == item.RISK_NAME && t.RISK_DESCRIPTION == item.RISK_DESCRIPTION && t.TYPE_ID == item.TYPE_ID);
|
||
if (libraryFirst != null)
|
||
{
|
||
//var departs = libraryDeparts.Where(t => t.ENTERPRISE_LIBRARY_ID == libraryFirst.ID).ToList();
|
||
//if (departs.Any())
|
||
//{
|
||
// foreach (var item2 in departs)
|
||
// {
|
||
// T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST post = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_POST();
|
||
// post.ORG_ID = item2.ORG_ID;
|
||
// post.DOUBLE_PREVENT_MECHANISM_DETAIL_ID = detail.ID;
|
||
// post.DEPARTMENT_TYPE = item2.DEPARTMENT_TYPE;
|
||
// post.DEPARTMENT_ID = item2.DEPARTMENT_ID;
|
||
// post.USER_ID = item2.USER_ID;
|
||
// detailPosts.Add(post);
|
||
// }
|
||
//}
|
||
var measures = libraryDetails.Where(t => t.ENTERPRISE_LIBRARY_ID == libraryFirst.ID).ToList();
|
||
if (measures.Any())
|
||
{
|
||
foreach (var item2 in measures)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES measure = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES();
|
||
measure.ORG_ID = item2.ORG_ID;
|
||
measure.DOUBLE_PREVENT_MECHANISM_DETAIL_ID = detail.ID;
|
||
measure.MEASURES_NAME = item2.MEASURES_NAME;
|
||
measure.EMERGENCY = item2.EMERGENCY;
|
||
measure.NUM = item2.NUM;
|
||
detailMes.Add(measure);
|
||
var contents = libraryContents.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_ID == item2.ID).ToList();
|
||
if (contents.Any())
|
||
{
|
||
foreach (var item3 in contents)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT content = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT();
|
||
content.ORG_ID = item3.ORG_ID;
|
||
content.DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_ID = measure.ID;
|
||
content.CHECK_CONTENTS_ID = item3.CHECK_CONTENTS_ID;
|
||
content.CHECK_CONTENT = item3.CHECK_CONTENT;
|
||
content.CHECK_BASIC = item3.CHECK_BASIC;
|
||
content.CHECK_STANDARD = item3.CHECK_STANDARD;
|
||
content.NUM = item3.NUM;
|
||
detailContents.Add(content);
|
||
var contentPostTemps = contentDeparts.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == item3.ID).ToList();
|
||
if (contentPostTemps.Any())
|
||
{
|
||
foreach (var item4 in contentPostTemps)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST contentPost = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST();
|
||
contentPost.ORG_ID = item4.ORG_ID;
|
||
contentPost.DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_ID = content.ID;
|
||
contentPost.CHECK_TYPE = item4.CHECK_TYPE;
|
||
contentPost.DEPARTMENT_ID = item4.DEPARTMENT_ID;
|
||
contentPost.CHECK_CYCLE = item4.CHECK_CYCLE;
|
||
contentPost.CHECK_TYPE_ID = item4.CHECK_TYPE_ID;
|
||
contentPost.NUM = item4.NUM;
|
||
contentPosts.Add(contentPost);
|
||
var postTemps = contentPostss.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_DEPART_ID == item4.ID).ToList();
|
||
if (postTemps.Any())
|
||
{
|
||
foreach (var item5 in postTemps)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_DEPART pos = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_DEPART();
|
||
pos.ORG_ID = item5.ORG_ID;
|
||
pos.DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_POST_ID = contentPost.ID;
|
||
pos.POST_ID = item5.POST_ID;
|
||
contentDepartPosts.Add(pos);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
var contentHiddenTemps = contentHiddens.Where(t => t.ENTERPRISE_LIBRARY_DETAIL_CONTENT_ID == item3.ID).ToList();
|
||
if (contentHiddenTemps.Any())
|
||
{
|
||
foreach (var item4 in contentHiddenTemps)
|
||
{
|
||
T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_HIDDEN contentPost = new T_SK_DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_HIDDEN();
|
||
contentPost.ORG_ID = item4.ORG_ID;
|
||
contentPost.DOUBLE_PREVENT_MECHANISM_DETAIL_MEASURES_CONTENT_ID = content.ID;
|
||
contentPost.CHECK_QUESTION_ID = item4.CHECK_QUESTION_ID;
|
||
contentPost.HIDDEN_DESCRIPTION = item4.HIDDEN_DESCRIPTION;
|
||
contentPost.HIDDEN_LEVEL = item4.HIDDEN_LEVEL;
|
||
contentPost.RECTIFICATION_MEASURES = item4.RECTIFICATION_MEASURES;
|
||
contentPost.NUM = item4.NUM;
|
||
contentHiddenss.Add(contentPost);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
notice = NotificationTaskService.InsertUserNoticeTaskModel("风险检查关联表", dou.ID, entity.ORG_ID, user.ID, user.NAME, DateTime.Now, DateTime.Now.AddHours(24), (int)FMNoticeTypeEnum.消息, "SK026");
|
||
}
|
||
UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
if (entity != null)
|
||
this.UpdateEntityNoCommit(entity);
|
||
if (dou != null)
|
||
this.UpdateEntityNoCommit(dou);
|
||
if (notice != null)
|
||
this.UpdateEntityNoCommit(notice);
|
||
if (details != null && details.Count > 0)
|
||
BantchSaveEntityNoCommit(details);
|
||
if (detailMes != null && detailMes.Count > 0)
|
||
BantchSaveEntityNoCommit(detailMes);
|
||
if (detailPosts != null && detailPosts.Count > 0)
|
||
BantchSaveEntityNoCommit(detailPosts);
|
||
if (detailDeps != null && detailDeps.Count > 0)
|
||
BantchSaveEntityNoCommit(detailDeps);
|
||
if (detailDepDets != null && detailDepDets.Count > 0)
|
||
BantchSaveEntityNoCommit(detailDepDets);
|
||
if (detailContents != null && detailContents.Count > 0)
|
||
BantchSaveEntityNoCommit(detailContents);
|
||
if (contentPosts != null && contentPosts.Count > 0)
|
||
BantchSaveEntityNoCommit(contentPosts);
|
||
if (contentHiddenss != null && contentHiddenss.Count > 0)
|
||
BantchSaveEntityNoCommit(contentHiddenss);
|
||
if (contentDepartPosts != null && contentDepartPosts.Count > 0)
|
||
BantchSaveEntityNoCommit(contentDepartPosts);
|
||
});
|
||
}
|
||
return true;
|
||
}
|
||
/// <summary>
|
||
/// 发布审批流
|
||
/// </summary>
|
||
/// <param name="serialCode">审批流编号</param>
|
||
/// <param name="fromCode">审批流模板配置中的编号(例:PF001)</param>
|
||
/// <param name="param">审批流模板配置中的自定义参数</param>
|
||
/// <param name="id">审批流对应主表ID(DATA_ID)</param>
|
||
/// <param name="approveCode">审批流对应 APPROVE_CODE(例:FO017_SHOWPRINT)</param>
|
||
/// <param name="finishNoticeId">待办ID(传入需要结束的待办ID)</param>
|
||
/// <param name="sendMessage">是否需要发送通知</param>
|
||
/// <param name="action"></param>
|
||
/// <param name="approveId">审批流ID(主表如果有存传值进来 )</param>
|
||
/// <param name="approveUserId">审批用户(主表如果有存传值进来 )</param>
|
||
/// <param name="dicApproveUser">自定义审批流程人员信息</param>
|
||
/// <param name="dicApproveDepartMentID">自定义审批流程人员部门信息</param>
|
||
/// <param name="taskSourceFormCode">待办完成 后 已办事项 点击查看页面编号</param>
|
||
/// <param name="operaterID"></param>
|
||
/// <param name="approveTaskName">审批流名称</param>
|
||
/// <returns></returns>
|
||
public void InsertApproveSK(string serialCode, string fromCode, string param, Guid id, string approveCode, Guid? finishNoticeId, bool sendMessage, Action action, Guid? approveId = null, Guid? approveUserId = null, Dictionary<int, T_FM_USER> dicApproveUser = null, Dictionary<int, Guid> dicApproveDepartMentID = null, string NoticeCode = "", string taskSourceFormCode = "", Guid? operaterID = null, string approveTaskName = "", FMTASKTYPE? TASK_TYPE = null, int? FREQUENCYE = null, DateTime? DateTimeLastest = null, int? iBSOperateEnum = null, Guid? DATA_ID_LOG = null, Guid? DATA_ID_SUB = null, DateTime? dtTaskEnd = null, List<Guid> listDataIdSub = null, int? nextBSOperateEnum = null)
|
||
{
|
||
T_PF_APPROVE approve = null;
|
||
//上个消息
|
||
T_FM_NOTIFICATION_TASK finishNotice = null;
|
||
//发消息
|
||
T_FM_NOTIFICATION_TASK notice = null;
|
||
//细表
|
||
List<T_PF_APPROVE_DETAIL> appdetails = new List<T_PF_APPROVE_DETAIL>();
|
||
if (operaterID == null)
|
||
{
|
||
operaterID = APT.Infrastructure.Api.AppContext.CurrentSession.UserID.Value;
|
||
}
|
||
string CALLBACK_INTERFACE = string.Empty;
|
||
List<string> listDATA_ID = new List<string>();
|
||
List<T_BS_OPERATE_LOG> listBSLog = null;
|
||
if (sendMessage || approveId != null)// wyw 添加 || approveId != null 先添加审批流 但是不发送通知
|
||
{
|
||
Expression<Func<T_PF_APPROVE_TEMP, bool>> express = t => t.FORM_CODE == fromCode && t.ENABLE_STATUS == (int)FMEnableStatusEnum.启用;
|
||
if (!string.IsNullOrEmpty(param))
|
||
{
|
||
express = express.And(t => t.PARAM == param);
|
||
}
|
||
|
||
if (finishNoticeId != null && finishNoticeId != Guid.Empty)
|
||
{
|
||
finishNotice = NotificationTaskService.GetTaskFinishModel(finishNoticeId.Value, taskSourceFormCode);//wyw 之前方法 巡回安全检查填写会报错
|
||
|
||
if (finishNotice != null && finishNotice.SOURCE_DATA_ID.HasValue && finishNotice.SOURCE_DATA_ID != id && operaterID.HasValue)
|
||
{
|
||
try
|
||
{
|
||
SysLogService.AddAddLog(operaterID.Value, fromCode, finishNoticeId.Value.ToString(), id.ToString(), "可能TaskID串了 结束入参 TaskID:" + finishNoticeId + " 查找TaskID:" + finishNotice.ID.ToString() + " SOURCE_DATA_ID: " + finishNotice.SOURCE_DATA_ID?.ToString() + "入参id: " + id.ToString());
|
||
}
|
||
catch { }
|
||
}
|
||
}
|
||
bool isDefaultChange = false;//是否方法会修改 T_PF_APPROVE_TEMP_DETAIL 中的值
|
||
//Dictionary<int, T_FM_USER> dic = null;
|
||
|
||
var approveTemp = this.GetEntity<T_PF_APPROVE_TEMP>(express, "Nav_ApproveTempDetails.Nav_ApproveRole");
|
||
if (approveTemp != null && approveTemp.Nav_ApproveTempDetails != null && approveTemp.Nav_ApproveTempDetails.Any())
|
||
{
|
||
//wyw 填充自定义流程人员信息
|
||
FillApproveTempUser(approveTemp.Nav_ApproveTempDetails, dicApproveUser, ref isDefaultChange);
|
||
FillApproveTempUser(approveTemp.Nav_ApproveTempDetails, dicApproveDepartMentID, ref isDefaultChange);
|
||
List<int> listNUM = new List<int>();
|
||
if (dicApproveUser != null)
|
||
{
|
||
foreach (var item in dicApproveUser)
|
||
{
|
||
listNUM.Add(item.Key);
|
||
}
|
||
}
|
||
if (dicApproveDepartMentID != null)
|
||
{
|
||
foreach (var item in dicApproveDepartMentID)
|
||
{
|
||
listNUM.Add(item.Key);
|
||
}
|
||
}
|
||
|
||
approve = new T_PF_APPROVE();
|
||
if (approveId != null)
|
||
{
|
||
approve.ID = approveId.Value;
|
||
}
|
||
//加入审批主表
|
||
approve.APPROVE_TEMP_ID = approveTemp.ID;
|
||
approve.ORG_ID = approveTemp.ORG_ID;
|
||
approve.APPROVE_STATUS = (int)ApproveStatus.Doing;
|
||
approve.Nav_ApproveDetails = null;
|
||
approve.DATA_ID = id;
|
||
approve.NAME = approveTemp.NAME;
|
||
approve.APPROVE_CODE = approveCode;
|
||
approve.CODE = String.IsNullOrEmpty(serialCode) ? DateTime.Now.ToString("yyyyMMddHHmmss") : serialCode;
|
||
approve.CALLBACK_INTERFACE = approveTemp.CALLBACK_INTERFACE;
|
||
//一个表单对应多个模板时,保存自定义参数
|
||
approve.PARAM = approveTemp.PARAM;
|
||
|
||
var approveRoles = approveTemp.Nav_ApproveTempDetails.Where(t => t.APPROVE_ROLE_ID != null).Select(x => (Guid)x.APPROVE_ROLE_ID).Distinct().ToList();
|
||
var ahApproveRole = this.GetEntities<T_PF_APPROVAL_ROLE>(t => t.NAME.Contains("安环"), new BaseFilter(approveTemp.ORG_ID)).Select(m => m.ID).ToList();
|
||
if (ahApproveRole != null && ahApproveRole.Any())
|
||
approveRoles.AddRange(ahApproveRole);
|
||
//如果有传人就用传入人的id,如果不是就用当前人
|
||
var loginUserId = approveUserId != null ? approveUserId : APT.Infrastructure.Api.AppContext.CurrentSession.UserID;
|
||
List<Guid> listUserID = new List<Guid>();
|
||
listUserID.Add(loginUserId.Value);
|
||
foreach (var item in approveTemp.Nav_ApproveTempDetails)
|
||
{
|
||
if (item.DEFAULT_APPROVE_USER_ID != null && !listUserID.Contains(item.DEFAULT_APPROVE_USER_ID.Value))
|
||
{
|
||
listUserID.Add(item.DEFAULT_APPROVE_USER_ID.Value);
|
||
}
|
||
}
|
||
var hm = this.GetEntity<T_HM_EVALUATION_PLAN>(t => t.STATUS == FOPreMeetingStatusEnum.归档);
|
||
var users = this.GetEntities<T_FM_USER>(t => t.ENABLE_STATUS == 0, new BaseFilter(approveTemp.ORG_ID), "Nav_Department", "Nav_ApproveRole").ToList();//((t.APPROVE_ROLE_ID != null && approveRoles.Contains((Guid)t.APPROVE_ROLE_ID)) || listUserID.Contains(t.ID))
|
||
approveTemp.Nav_ApproveTempDetails.ForEach(t =>
|
||
{
|
||
//var user = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == t.APPROVE_ROLE_ID);
|
||
//if (loginUser.Nav_Department.DEPARTMENT_TYPE != (int)FMDepartmentType.公司)
|
||
// user = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == t.APPROVE_ROLE_ID && x.DEPARTMENT_ID == departmentId);
|
||
T_PF_APPROVE_DETAIL detail = new T_PF_APPROVE_DETAIL();
|
||
detail.APPROVE_ID = approve.ID;
|
||
detail.IS_CURRENT = false;
|
||
detail.ORG_ID = approveTemp.ORG_ID;
|
||
detail.NAME = t.NAME;
|
||
detail.NUM = t.NUM;
|
||
detail.APPROVE_ROLE_ID = t.APPROVE_ROLE_ID;
|
||
detail.IS_ALLOW_UPDATE = t.IS_ALLOW_UPDATE;
|
||
if (listNUM.Contains(t.NUM))
|
||
{
|
||
//如果传参未找到 就是没有
|
||
detail.APPROVE_USER_ID = t.DEFAULT_APPROVE_USER_ID != null ? t.DEFAULT_APPROVE_USER_ID : null;
|
||
}
|
||
else
|
||
{
|
||
if (detail.NAME == "风险管理小组副组长" && hm != null)
|
||
{
|
||
detail.APPROVE_USER_ID = hm.DEPUTY_GROUP_LEADER_ID;
|
||
}
|
||
else if (detail.NAME == "风险管理小组组长" && hm != null)
|
||
{
|
||
detail.APPROVE_USER_ID = hm.GROUP_LEADER_ID;
|
||
}
|
||
else
|
||
{
|
||
detail.APPROVE_USER_ID = t.DEFAULT_APPROVE_USER_ID != null ? t.DEFAULT_APPROVE_USER_ID : GetApproveUser(t, users, (Guid)loginUserId);
|
||
}
|
||
}
|
||
if (detail.Nav_ApproveUser != null)
|
||
{
|
||
detail.Nav_ApproveUser = null;
|
||
}
|
||
detail.Nav_ApproveRole = t.Nav_ApproveRole;
|
||
//if (detail.APPROVE_USER_ID == null)
|
||
// throw new Exception("审批流未找到" + detail.NAME + ",请联系管理员维护");
|
||
if (detail.APPROVE_USER_ID != null)
|
||
appdetails.Add(detail);
|
||
});
|
||
appdetails.OrderBy(t => t.NUM);
|
||
var loginUser = users.FirstOrDefault(t => t.ID == loginUserId);
|
||
var departUser = this.GetEntity<T_FM_DEPARTMENT>(t => (t.USER_ID == loginUserId || t.CHARGEUSER_ID == loginUserId) && (t.NAME.Contains("安全环保") || t.NAME.Contains("安环部")));
|
||
if (departUser != null || (loginUser.Nav_ApproveRole != null && loginUser.Nav_ApproveRole.NAME.Contains("安环部负责人")) || (loginUser.Nav_ApproveRole != null && loginUser.Nav_ApproveRole.NAME.Contains("安环部安全员")))
|
||
{
|
||
var tempSafeD = appdetails.FirstOrDefault(m => m.Nav_ApproveRole != null && m.Nav_ApproveRole.NAME.Contains("部门安全员"));
|
||
var tempSafe = appdetails.FirstOrDefault(m => m.Nav_ApproveRole != null && m.Nav_ApproveRole.NAME.Contains("安环部安全员"));
|
||
if (tempSafe != null && tempSafeD != null && appdetails.Count() > 1 && tempSafeD.APPROVE_USER_ID == tempSafe.APPROVE_USER_ID)
|
||
{
|
||
appdetails.Remove(tempSafe);
|
||
}
|
||
var tempChargeD = appdetails.FirstOrDefault(m => m.Nav_ApproveRole != null && m.Nav_ApproveRole.NAME.Contains("部门负责人"));
|
||
var tempCharge = appdetails.FirstOrDefault(m => m.Nav_ApproveRole != null && m.Nav_ApproveRole.NAME.Contains("安环部负责人"));
|
||
if (tempCharge != null && tempChargeD != null && appdetails.Count() > 1 && tempChargeD.APPROVE_USER_ID == tempCharge.APPROVE_USER_ID)
|
||
{
|
||
appdetails.Remove(tempCharge);
|
||
}
|
||
}
|
||
appdetails.ForEach(i => i.Nav_ApproveRole = null);
|
||
appdetails.Where(i => i.NUM == appdetails.Min(x => x.NUM)).ForEach(i => i.IS_CURRENT = true);
|
||
|
||
//当前节点
|
||
T_PF_APPROVE_DETAIL curentApprove = null;
|
||
string JsonApproveDetail = string.Empty;
|
||
GetApproveNodes(appdetails, ref curentApprove, ref JsonApproveDetail);
|
||
|
||
//DealOperateApproveDetail(ref sendMessage, operaterID, ref appdetails, ref CALLBACK_INTERFACE, listDATA_ID, approve, ref curentApprove);//整理操作者审批流相关信息 wyw
|
||
|
||
if (sendMessage)
|
||
{
|
||
//所有节点均无审核人,直接归档
|
||
if (curentApprove == null)
|
||
{
|
||
//将审核流程置为已完成
|
||
approve.APPROVE_STATUS = (int)ApproveStatus.Done;
|
||
LogApprove(approve, loginUserId.Value, JsonApproveDetail);//添加日志
|
||
}
|
||
else
|
||
{
|
||
appdetails.Where(i => i.NUM == curentApprove.NUM).ForEach(i => i.IS_CURRENT = true);
|
||
if (!string.IsNullOrEmpty(JsonApproveDetail))
|
||
{
|
||
//如果人数不一致
|
||
LogApproveDetailReduce(approve, loginUserId.Value, JsonApproveDetail, appdetails);
|
||
}
|
||
|
||
var sendUserId = appdetails.Where(i => i.NUM == curentApprove.NUM).Select(t => (Guid)t.APPROVE_USER_ID).FirstOrDefault();
|
||
//var sendUserName = users.Where(i => i.ID == sendUserId).FirstOrDefault().NAME;
|
||
var ue = users.Where(i => i.ID == sendUserId).FirstOrDefault();
|
||
string sendUserName = string.Empty;
|
||
if (ue != null)
|
||
{
|
||
sendUserName = users.Where(i => i.ID == sendUserId).FirstOrDefault().NAME;
|
||
}
|
||
else
|
||
{
|
||
sendUserName = GetEntity<T_FM_USER>(t => t.ID == sendUserId && t.ENABLE_STATUS == 0)?.NAME;
|
||
}
|
||
|
||
string taskName = approveTaskName;
|
||
if (string.IsNullOrEmpty(taskName))
|
||
{
|
||
taskName = approve.NAME;
|
||
if (!taskName.Contains("待审批"))
|
||
{
|
||
taskName += "待审批";
|
||
}
|
||
}
|
||
var startTime = DateTime.Now;
|
||
var endTime = DateTime.Now.AddHours(24);
|
||
if (TASK_TYPE != null && TASK_TYPE.HasValue)
|
||
{
|
||
endTime = NotificationTaskService.GetTaskEndTime(TASK_TYPE.Value, approveTemp.ORG_ID.Value, startTime, FREQUENCYE, DateTimeLastest, null);
|
||
}
|
||
else
|
||
{
|
||
switch (fromCode)
|
||
{
|
||
case "HM104":
|
||
case "HM087":
|
||
case "HM111":
|
||
case "HM109":
|
||
case "HM107":
|
||
endTime = Convert.ToDateTime(DateTime.Now.AddDays(2).ToString("D").ToString()).AddSeconds(-1);
|
||
break;
|
||
case "FO015":
|
||
case "FO017":
|
||
case "HM062":
|
||
case "HM064":
|
||
case "HM102":
|
||
case "HM100":
|
||
case "HM122":
|
||
case "HM123":
|
||
endTime = Convert.ToDateTime(DateTime.Now.AddDays(1).ToString("D").ToString()).AddSeconds(-1);
|
||
break;
|
||
default: break;
|
||
}
|
||
}
|
||
|
||
//发消息
|
||
notice = NotificationTaskService.InsertUserNoticeTaskModel(taskName, approve.ID, approve.ORG_ID, (Guid)sendUserId, sendUserName, startTime,
|
||
endTime, (int)FMNoticeTypeEnum.审批, "PF119");
|
||
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
throw new Exception("获取审批流信息失败【表单:" + fromCode + (string.IsNullOrEmpty(param) ? "" : "参数:" + param) + "】,请设置对应审批流!");
|
||
}
|
||
|
||
if (isDefaultChange)
|
||
{
|
||
//如果有改变 DEFAULT_APPROVE_USER_ID 需要还原
|
||
approveTemp.Nav_ApproveTempDetails.ForEach(e =>
|
||
{
|
||
e.DEFAULT_APPROVE_USER_ID = null;
|
||
});
|
||
}
|
||
if (finishNotice == null && dtTaskEnd != null)
|
||
{
|
||
finishNotice = new T_FM_NOTIFICATION_TASK();
|
||
finishNotice.ID = Guid.Empty;
|
||
finishNotice.TASK_ENDDT = dtTaskEnd.Value;
|
||
}
|
||
|
||
OPERATEPOINT_Enums? nextOPERATEPOINT = null;
|
||
if (nextBSOperateEnum != null)
|
||
{
|
||
nextOPERATEPOINT = (OPERATEPOINT_Enums)(nextBSOperateEnum.Value);
|
||
}
|
||
|
||
}
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (action != null)
|
||
action();
|
||
if (approve != null)
|
||
AddEntityNoCommit(approve);
|
||
if (appdetails != null && appdetails.Any())
|
||
BantchAddEntityNoCommit(appdetails);
|
||
if (finishNotice != null && finishNotice.ID != Guid.Empty)
|
||
UpdateEntityNoCommit(finishNotice, "NOTICE_STATUS", "TASK_DT", "MODIFIER_ID");
|
||
if (notice != null)
|
||
AddEntityNoCommit(notice);
|
||
if (listBSLog != null && listBSLog.Any())
|
||
BantchSaveEntityNoCommit(listBSLog);//有修改和新增
|
||
});
|
||
}
|
||
/// <summary>
|
||
/// 单人顺序审批 填充审批人信息
|
||
/// </summary>
|
||
/// <param name="listTempDetail">审批模板详情</param>
|
||
/// <param name="dicApproveUser">自定义填充人员信息</param>
|
||
private void FillApproveTempUser(ICollection<T_PF_APPROVE_TEMP_DETAIL> listTempDetail, Dictionary<int, T_FM_USER> dicApproveUser, ref bool isDefaultChange)
|
||
{
|
||
if (listTempDetail == null || listTempDetail.Count < 1 || dicApproveUser == null || dicApproveUser.Count < 1)
|
||
return;
|
||
foreach (var item in listTempDetail)
|
||
{
|
||
if (dicApproveUser.ContainsKey(item.NUM))
|
||
{
|
||
//if (item.DEFAULT_APPROVE_USER_ID.HasValue)
|
||
// continue;
|
||
//isDefaultChange = true;
|
||
//item.Nav_DefaultApproveUser = dicApproveUser[item.NUM];
|
||
//item.DEFAULT_APPROVE_USER_ID = dicApproveUser[item.NUM].ID;
|
||
|
||
//字典有值传进来审核是什么
|
||
//item.Nav_DefaultApproveUser = dicApproveUser[item.NUM];
|
||
item.DEFAULT_APPROVE_USER_ID = dicApproveUser[item.NUM].ID;
|
||
isDefaultChange = false;
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 单人顺序审批 填充审批人信息
|
||
/// </summary>
|
||
/// <param name="listTempDetail">审批模板详情</param>
|
||
/// <param name="dicApproveDepartMentID">自定义填充人部门ID</param>
|
||
private void FillApproveTempUser(ICollection<T_PF_APPROVE_TEMP_DETAIL> listTempDetail, Dictionary<int, Guid> dicApproveDepartMentID, ref bool isDefaultChange)
|
||
{
|
||
if (listTempDetail == null || listTempDetail.Count < 1 || dicApproveDepartMentID == null || dicApproveDepartMentID.Count < 1)
|
||
return;
|
||
T_FM_USER userTemp = null;
|
||
Guid DEPARTMENT_ID = Guid.Empty;
|
||
T_FM_DEPARTMENT department = null;
|
||
foreach (var item in listTempDetail)
|
||
{
|
||
if (dicApproveDepartMentID.ContainsKey(item.NUM))
|
||
{
|
||
if (item.DEFAULT_APPROVE_USER_ID.HasValue)
|
||
continue;
|
||
|
||
DEPARTMENT_ID = dicApproveDepartMentID[item.NUM];
|
||
userTemp = this.GetEntity<T_FM_USER>(x => x.APPROVE_ROLE_ID == item.APPROVE_ROLE_ID && DEPARTMENT_ID == (Guid)x.DEPARTMENT_ID);//如果需要循环获取 修改此方法
|
||
|
||
if (userTemp == null)
|
||
{
|
||
do
|
||
{
|
||
department = GetEntity<T_FM_DEPARTMENT>(DEPARTMENT_ID);
|
||
if (department.PARENT_ID == Guid.Empty || department.PARENT_ID == null)
|
||
{
|
||
break;
|
||
}
|
||
|
||
DEPARTMENT_ID = department.PARENT_ID.Value;
|
||
userTemp = this.GetEntity<T_FM_USER>(x => x.APPROVE_ROLE_ID == item.APPROVE_ROLE_ID && DEPARTMENT_ID == (Guid)x.DEPARTMENT_ID);
|
||
|
||
} while (userTemp == null);
|
||
}
|
||
|
||
if (userTemp != null)
|
||
{
|
||
isDefaultChange = true;
|
||
//item.Nav_DefaultApproveUser = userTemp;
|
||
item.DEFAULT_APPROVE_USER_ID = userTemp.ID;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 根据部门树查找审核人
|
||
/// </summary>
|
||
/// <param name="approveDetails"></param>
|
||
/// <param name="approveNode"></param>
|
||
/// <returns></returns>
|
||
private Guid? GetApproveUser(T_PF_APPROVE_TEMP_DETAIL approveTempDetail, List<T_FM_USER> users, Guid loginUserId)
|
||
{
|
||
Guid? approveId = null;
|
||
if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.Company)
|
||
{
|
||
var approveIds = users.Where(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID).Select(t => t.ID).ToList();
|
||
if (approveIds.Count() == 0)
|
||
{
|
||
if (approveTempDetail.Nav_ApproveRole.NAME == "安环部负责人")
|
||
{
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(t => (t.NAME.Contains("安全环保") || t.NAME.Contains("安环部")) && t.DEPARTMENT_TYPE == 0 && t.ENABLE_STATUS == 0);
|
||
if (dep != null)
|
||
{
|
||
if (dep.USER_ID.HasValue)
|
||
{ approveId = dep.USER_ID.Value; }
|
||
else if (dep.CHARGEUSER_ID.HasValue)
|
||
{ approveId = dep.CHARGEUSER_ID.Value; }
|
||
}
|
||
}
|
||
}
|
||
else if (approveIds.Count() == 1)
|
||
{
|
||
approveId = approveIds.FirstOrDefault();
|
||
}
|
||
else
|
||
{
|
||
var user = users.FirstOrDefault(t => t.ID == loginUserId);
|
||
if (user.DEPARTMENT_ID != null)
|
||
{
|
||
List<Guid> departmentIds = new List<Guid>();
|
||
GetDepartmentIdSK((Guid)user.DEPARTMENT_ID, ref departmentIds);
|
||
if (departmentIds.Any())
|
||
{
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(t => departmentIds.Contains(t.ID) && t.DEPARTMENT_TYPE != 3 && approveIds.Contains((Guid)t.CHARGEUSER_ID));
|
||
if (dep != null)
|
||
approveId = dep.CHARGEUSER_ID;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var user = users.FirstOrDefault(t => t.ID == loginUserId);
|
||
if (user.DEPARTMENT_ID != null)
|
||
{
|
||
List<Guid> departmentIds = new List<Guid>();
|
||
GetDepartmentIdSK((Guid)user.DEPARTMENT_ID, ref departmentIds);
|
||
if (departmentIds.Any())
|
||
{
|
||
var charge = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部负责人");
|
||
var chargeK = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部科长");
|
||
var chargeSafe = this.GetEntity<T_PF_APPROVAL_ROLE>(t => t.NAME == "安环部安全员");
|
||
foreach (var item in departmentIds)
|
||
{
|
||
var userTemp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
|
||
if (userTemp == null)
|
||
{
|
||
if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.Department && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门负责人")
|
||
{
|
||
if (charge != null)
|
||
{
|
||
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == charge.ID && x.DEPARTMENT_ID == item);
|
||
if (temp == null)
|
||
{
|
||
var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
|
||
if (temp2 != null)
|
||
{
|
||
approveId = temp2.ID;
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
if (user.Nav_Department != null && user.Nav_Department.DEPARTMENT_TYPE == 0)
|
||
{
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
|
||
if (dep != null)
|
||
{
|
||
if (dep.USER_ID.HasValue)
|
||
{ approveId = dep.USER_ID.Value; }
|
||
else if (dep.CHARGEUSER_ID.HasValue)
|
||
{ approveId = dep.CHARGEUSER_ID.Value; }
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
approveId = temp?.ID;
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (user.Nav_Department != null && user.Nav_Department.DEPARTMENT_TYPE == 0)
|
||
{
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
|
||
if (dep != null)
|
||
{
|
||
if (dep.USER_ID.HasValue)
|
||
{ approveId = dep.USER_ID.Value; }
|
||
else if (dep.CHARGEUSER_ID.HasValue)
|
||
{ approveId = dep.CHARGEUSER_ID.Value; }
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.Department && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "部门安全员")
|
||
{
|
||
if (chargeSafe != null)
|
||
{
|
||
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == chargeSafe.ID && x.DEPARTMENT_ID == item);
|
||
if (temp == null)
|
||
{
|
||
var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
|
||
if (temp2 != null)
|
||
{
|
||
approveId = temp2.ID;
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
if (user.Nav_Department != null && user.Nav_Department.DEPARTMENT_TYPE == 0)
|
||
{
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
|
||
if (dep != null)
|
||
{
|
||
if (dep.USER_ID.HasValue)
|
||
{ approveId = dep.USER_ID.Value; }
|
||
else if (dep.CHARGEUSER_ID.HasValue)
|
||
{ approveId = dep.CHARGEUSER_ID.Value; }
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
approveId = temp?.ID;
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (user.Nav_Department != null && user.Nav_Department.DEPARTMENT_TYPE == 0)
|
||
{
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
|
||
if (dep != null)
|
||
{
|
||
if (dep.USER_ID.HasValue)
|
||
{ approveId = dep.USER_ID.Value; }
|
||
else if (dep.CHARGEUSER_ID.HasValue)
|
||
{ approveId = dep.CHARGEUSER_ID.Value; }
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else if (approveTempDetail.DEPARTMENT_TYPE == (int)FMDepartmentType.Workshop && approveTempDetail.Nav_ApproveRole != null && approveTempDetail.Nav_ApproveRole.NAME == "车间负责人")
|
||
{
|
||
if (chargeK != null)
|
||
{
|
||
var temp = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == chargeK.ID && x.DEPARTMENT_ID == item);
|
||
if (temp == null)
|
||
{
|
||
var temp2 = users.FirstOrDefault(x => x.APPROVE_ROLE_ID == approveTempDetail.APPROVE_ROLE_ID && x.DEPARTMENT_ID == item);
|
||
if (temp2 != null)
|
||
{
|
||
approveId = temp2.ID;
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
if (user.Nav_Department != null && user.Nav_Department.DEPARTMENT_TYPE == 1)
|
||
{
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
|
||
if (dep != null)
|
||
{
|
||
if (dep.USER_ID.HasValue)
|
||
{ approveId = dep.USER_ID.Value; }
|
||
else if (dep.CHARGEUSER_ID.HasValue)
|
||
{ approveId = dep.CHARGEUSER_ID.Value; }
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
approveId = temp?.ID;
|
||
break;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (user.Nav_Department != null && user.Nav_Department.DEPARTMENT_TYPE == 1)
|
||
{
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
|
||
if (dep != null)
|
||
{
|
||
if (dep.USER_ID.HasValue)
|
||
{ approveId = dep.USER_ID.Value; }
|
||
else if (dep.CHARGEUSER_ID.HasValue)
|
||
{ approveId = dep.CHARGEUSER_ID.Value; }
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
if (user.Nav_Department != null && user.Nav_Department.DEPARTMENT_TYPE == approveTempDetail.DEPARTMENT_TYPE && approveTempDetail.Nav_ApproveRole.NAME.Contains("负责人"))
|
||
{
|
||
var dep = GetEntity<T_FM_DEPARTMENT>(user.DEPARTMENT_ID.Value);
|
||
if (dep != null)
|
||
{
|
||
if (dep.USER_ID.HasValue)
|
||
{ approveId = dep.USER_ID.Value; }
|
||
else if (dep.CHARGEUSER_ID.HasValue)
|
||
{ approveId = dep.CHARGEUSER_ID.Value; }
|
||
break;
|
||
}
|
||
else
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
continue;
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
approveId = userTemp?.ID;
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return approveId;
|
||
}
|
||
/// <summary>
|
||
/// 返回所有部门节点
|
||
/// <returns></returns>
|
||
private void GetDepartmentIdSK(Guid departmentId, ref List<Guid> departmentIds)
|
||
{
|
||
departmentIds.Add(departmentId);
|
||
var department = GetEntity<T_FM_DEPARTMENT>(t => t.ID == departmentId);
|
||
if (department.PARENT_ID != null)
|
||
{
|
||
GetDepartmentIdSK((Guid)department.PARENT_ID, ref departmentIds);
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 获取下个审核节点、审核人
|
||
/// </summary>
|
||
/// <param name="approveDetails"></param>
|
||
/// <param name="approveNode"></param>
|
||
/// <param name="JsonApproveDetail"></param>
|
||
/// <returns></returns>
|
||
static void GetApproveNodes(List<T_PF_APPROVE_DETAIL> approveDetails, ref T_PF_APPROVE_DETAIL approveNode, ref string JsonApproveDetail)
|
||
{
|
||
if (approveDetails == null || approveDetails.Count() == 0)
|
||
return;
|
||
var curentNode = approveDetails.FirstOrDefault(i => i.NUM == approveDetails.Min(x => x.NUM));
|
||
if (curentNode.APPROVE_USER_ID == null)
|
||
{
|
||
if (string.IsNullOrEmpty(JsonApproveDetail))
|
||
{
|
||
JsonApproveDetail = " APPROVE_DETAIL:" + JsonConvert.SerializeObject(approveDetails);
|
||
}
|
||
approveDetails.Remove(curentNode);
|
||
approveNode = null;
|
||
if (!approveDetails.Any())
|
||
return;
|
||
GetApproveNodes(approveDetails, ref approveNode, ref JsonApproveDetail);
|
||
}
|
||
else
|
||
{
|
||
approveNode = curentNode;
|
||
return;
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 审批流未匹配到人员
|
||
/// </summary>
|
||
/// <param name="approve"></param>
|
||
/// <param name="loginUserId"></param>
|
||
/// <param name="detail"></param>
|
||
public void LogApprove(T_PF_APPROVE approve, Guid loginUserId, string detail)
|
||
{
|
||
string data = "APPROVE:" + JsonConvert.SerializeObject(approve);
|
||
string rep = ",\"CREATER_ID\":null,\"MODIFIER_ID\":null,\"DbConn\":null,\"Nav_Org\":null,\"TaskID\":\"00000000-0000-0000-0000-000000000000\",\"Nav_SysParams\":null";
|
||
string rep2 = ",\"ENTITY_ORG_TPYE\":0,\"FORM_ID\":null,\"FLOW_STATUS\":0,\"FLOW_SEND_STATUS\":0,\"FLOW_ID\":null";
|
||
detail = detail.Replace(rep, "").Replace(rep2, "").Replace(",\"Nav_Approve\":null", "").Replace(",\"CONTEXT\":null", "").Replace(",\"Nav_ApproveUser\":null", "").Replace(",\"IS_DELETED\":false", "");
|
||
SysLogService.AddLog(approve.ORG_ID.Value, loginUserId, PFSysLogTypeEnum.ExceptionApprove, "PF119", "审批流未找到审批人员", string.IsNullOrEmpty(approve.CALLBACK_INTERFACE) ? "" : "未执行回调:" + (approve.CALLBACK_INTERFACE + "(" + approve.DATA_ID + ")"), data + detail);
|
||
}
|
||
/// <summary>
|
||
/// 处理操作者 相关审批流
|
||
/// </summary>
|
||
/// <param name="isSendMessage"></param>
|
||
/// <param name="operaterID"></param>
|
||
/// <param name="appdetails"></param>
|
||
/// <param name="CALLBACK_INTERFACE"></param>
|
||
/// <param name="listDATA_ID"></param>
|
||
/// <param name="approve"></param>
|
||
/// <param name="curentApprove"></param>
|
||
private static void DealOperateApproveDetail(ref bool isSendMessage, Guid? operaterID, ref List<T_PF_APPROVE_DETAIL> appdetails, ref string CALLBACK_INTERFACE, List<string> listDATA_ID, T_PF_APPROVE approve, ref T_PF_APPROVE_DETAIL curentApprove)
|
||
{
|
||
if (appdetails != null && appdetails.Count > 0)
|
||
{
|
||
appdetails = appdetails.OrderBy(e => e.NUM).ToList();
|
||
var approveOperater = appdetails.FirstOrDefault(e => e.APPROVE_USER_ID == operaterID);
|
||
if (approveOperater != null)
|
||
{
|
||
//设置为已审批
|
||
approveOperater.IS_CURRENT = false;
|
||
approveOperater.NODE_APPROVE_STATUS = (int)NodeApproveStatus.Done;
|
||
approveOperater.NODE_APPROVE_TIME = DateTime.Now;
|
||
approveOperater.MODIFY_TIME = approveOperater.NODE_APPROVE_TIME;
|
||
|
||
curentApprove = appdetails.FirstOrDefault(e => e.NUM == approveOperater.NUM && e.ID != approveOperater.ID);//即使此节点是多人 也暂时用选择的第一个人
|
||
|
||
if (approveOperater.NUM == appdetails.Max(e => e.NUM))
|
||
{
|
||
//最后一个节点
|
||
if (curentApprove == null)
|
||
{
|
||
|
||
//执行审批结束方法
|
||
//本次不需要发送待办了
|
||
isSendMessage = false;
|
||
approve.APPROVE_STATUS = (int)ApproveStatus.Done; //直接完成
|
||
|
||
//url: re.Data + "?id=" + this.state.data.DATA_ID,
|
||
//approveTemp.CALLBACK_INTERFACE
|
||
//approve.DATA_ID
|
||
|
||
if (string.IsNullOrEmpty(CALLBACK_INTERFACE))
|
||
{
|
||
CALLBACK_INTERFACE = approve.CALLBACK_INTERFACE;
|
||
}
|
||
listDATA_ID.Add(approve.DATA_ID.ToString());
|
||
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//非最后节点
|
||
if (curentApprove == null)//本节点没数据了
|
||
{
|
||
//找下一个审批节点
|
||
//curentApprove = appdetails.FirstOrDefault(e => e.NUM == (approveOperater.NUM + 1));
|
||
var appdetailsMore = appdetails.FindAll(e => e.NUM > approveOperater.NUM).OrderBy(e => e.NUM);
|
||
if (appdetailsMore != null && appdetailsMore.Any())
|
||
{
|
||
curentApprove = appdetailsMore.ToList()[0];
|
||
}
|
||
}
|
||
}
|
||
if (approveOperater.NUM > 1)
|
||
{
|
||
//删除 前面的节点
|
||
for (int i = appdetails.Count - 1; i > -1; i--)
|
||
{
|
||
if (appdetails[i].NUM < approveOperater.NUM)
|
||
{
|
||
appdetails.Remove(appdetails[i]);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
/// <summary>
|
||
/// 审批流 和审批模板不一致 添加日志
|
||
/// </summary>
|
||
/// <param name="approve"></param>
|
||
/// <param name="loginUserId"></param>
|
||
/// <param name="detail"></param>
|
||
/// <param name="appdetailsTemp"></param>
|
||
public void LogApproveDetailReduce(T_PF_APPROVE approve, Guid loginUserId, string detail, List<T_PF_APPROVE_DETAIL> appdetailsTemp)
|
||
{
|
||
string data = "APPROVE:" + JsonConvert.SerializeObject(approve);
|
||
string detailUser = " APPROVE_DETAIL_USER:{" + JsonConvert.SerializeObject(appdetailsTemp);
|
||
|
||
string rep = ",\"CREATER_ID\":null,\"MODIFIER_ID\":null,\"DbConn\":null,\"Nav_Org\":null,\"TaskID\":\"00000000-0000-0000-0000-000000000000\",\"Nav_SysParams\":null";
|
||
string rep2 = ",\"ENTITY_ORG_TPYE\":0,\"FORM_ID\":null,\"FLOW_STATUS\":0,\"FLOW_SEND_STATUS\":0,\"FLOW_ID\":null";
|
||
|
||
detailUser = detailUser.Replace(rep, "").Replace(rep2, "").Replace(",\"Nav_Approve\":null", "").Replace(",\"CONTEXT\":null", "").Replace(",\"Nav_ApproveUser\":null", "").Replace(",\"IS_DELETED\":false", "");
|
||
detail = detail.Replace(rep, "").Replace(rep2, "").Replace(",\"Nav_Approve\":null", "").Replace(",\"CONTEXT\":null", "").Replace(",\"Nav_ApproveUser\":null", "").Replace(",\"IS_DELETED\":false", "");
|
||
|
||
if (detailUser.Length > 1990)//数据截断 不然报错
|
||
{
|
||
detailUser = detailUser.Substring(0, 1990);
|
||
}
|
||
SysLogService.AddLog(approve.ORG_ID.Value, loginUserId, PFSysLogTypeEnum.ExceptionApproveDetailReduce, "PF119", "审批流明细减少", detailUser, data + detail);
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region SE 新版功能
|
||
|
||
/// <summary>
|
||
/// 培训记录申请
|
||
/// </summary>
|
||
/// <param name="id"></param>
|
||
/// <returns></returns>
|
||
public bool SE071PlanAuditNew(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List<T_PF_APPROVE_DETAIL> listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List<T_FM_NOTIFICATION_TASK> listTaskNext, bool isLast = false, bool isApprovel = true)
|
||
{
|
||
#region 审批公用
|
||
|
||
if (modelApp == null && isApprovel)
|
||
{
|
||
string taskCodeCheck = String.Empty;
|
||
bool result = GetApproject2(entityInt, ref modelApp, ref listAppDetail, ref taskFinish, ref taskCodeCheck, ref isLast, ref listTaskNext);
|
||
if (!result)
|
||
{
|
||
throw new Exception("审批失败!");
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
if (!isLast && isApprovel)
|
||
{
|
||
this.UnifiedCommit(() =>
|
||
{
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
else
|
||
{
|
||
var modelPlan = GetEntity<T_SE_TRAIN_PLAN>(t => t.ID == modelApp.DATA_ID);
|
||
modelPlan.STATUS = PFStandardStatus.Archived;
|
||
|
||
IEnumerable<T_SE_TRAIN_PLAN_DETAIL> listDetail = GetEntities<T_SE_TRAIN_PLAN_DETAIL>(e => e.PLAN_ID == modelPlan.ID);
|
||
listDetail.ForEach(e => e.STATUS = PFStandardStatus.Sign);
|
||
|
||
List<T_FM_NOTIFICATION_TASK> listTaskNotice = null;//部门今日提醒
|
||
if (modelPlan.TYPE == PlanType.Company)
|
||
{
|
||
//今日 提醒 涉及到的生产组织 制定 部门 年度培训计划
|
||
var depIDs = listDetail.Where(e => e.DEPARTMENT_ID.HasValue).Select(e => e.DEPARTMENT_ID.Value).Distinct().ToList();
|
||
if (depIDs != null && depIDs.Count() > 0)
|
||
{
|
||
var listDep = GetEntities<T_FM_DEPARTMENT>(e => depIDs.Contains(e.ID) && e.DEPARTMENT_STATUS == 1 && e.ENABLE_STATUS == 0, "Nav_User");
|
||
Dictionary<Guid, T_FM_USER> dicUser = new Dictionary<Guid, T_FM_USER>();
|
||
List<Guid> UserId = null;
|
||
List<string> userName = null;
|
||
|
||
var listRoles = GetEntities<T_PF_APPROVAL_ROLE>(e => e.NAME == "部门安全员" && !e.ISHEAD && !e.IS_DELETED);
|
||
if (listRoles != null && listRoles.Any())
|
||
{
|
||
var RoleIDS = listRoles.Select(e => e.ID);
|
||
var userS = GetEntities<T_FM_USER>(e => e.ENABLE_STATUS == 0 && e.APPROVE_ROLE_ID.HasValue && e.DEPARTMENT_ID.HasValue && RoleIDS.Contains(e.APPROVE_ROLE_ID.Value));
|
||
foreach (var item in userS)
|
||
{
|
||
if (dicUser.ContainsKey(item.DEPARTMENT_ID.Value))
|
||
continue;
|
||
dicUser.Add(item.DEPARTMENT_ID.Value, item);
|
||
}
|
||
}
|
||
foreach (var item in listDep)
|
||
{
|
||
if (!dicUser.ContainsKey(item.ID) && item.USER_ID.HasValue)
|
||
{
|
||
dicUser.Add(item.ID, item.Nav_User);
|
||
}
|
||
}
|
||
if (dicUser.Count > 0)
|
||
{
|
||
UserId = new List<Guid>();
|
||
userName = new List<string>();
|
||
foreach (var item in dicUser)
|
||
{
|
||
UserId.Add(item.Value.ID);
|
||
userName.Add(item.Value.NAME);
|
||
}
|
||
}
|
||
listTaskNotice = NotificationTaskService.InsertUserNoticeTaskModels("请根据公司及年度培训计划,按需制定部门级年度培训计划", null, modelPlan.ORG_ID, UserId, userName, DateTime.Now, 2, "", FMTASKTYPE.Default);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
//部门 直接结束 没用特殊 操作
|
||
}
|
||
|
||
UnifiedCommit(() =>
|
||
{
|
||
//表单逻辑信息
|
||
if (modelPlan != null)
|
||
UpdateEntityNoCommit(modelPlan);
|
||
if (listDetail != null && listDetail.Count() > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listDetail);
|
||
if (listTaskNotice != null && listTaskNotice.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNotice);
|
||
|
||
//审批
|
||
if (modelApp != null)
|
||
UpdateEntityNoCommit(modelApp); //保存主表
|
||
if (listAppDetail != null && listAppDetail.Count > 0)//添加组合数据 修改的安全库、隐患库
|
||
BantchSaveEntityNoCommit(listAppDetail);
|
||
if (taskFinish != null)
|
||
UpdateEntityNoCommit(taskFinish);
|
||
if (listTaskNext != null && listTaskNext.Count > 0)//下个审批节点
|
||
BantchSaveEntityNoCommit(listTaskNext);
|
||
});
|
||
}
|
||
|
||
return true;
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
}
|