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.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
{
///
/// 审批流回调
/// 代码规范 每个模块的代码 写在对应 代码块中
/// 多添加一个审批流回调 1、写方法 2、完善 CallBack 方法
/// 原有的api继续提供 审批调用
///
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 { "Nav_ApproveDetails" };
var approveInfo = this.GetEntities(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 => t.ID == detail.APPROVE_USER_ID && t.ENABLE_STATUS == 0);
result = userInfo?.NAME + "驳回,内容:" + detail.CONTEXT;
}
}
return result;
}
///
/// 添加审批流
///
///
///
///
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;
}
///
/// 添加审批流 (默认审批直接回调这个方法)
///
///
///
///
public bool CallBack(string CALLBACK_INTERFACE, List 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
///
/// 隐患上报 审核通过 给每个通知负责人发送通知
///
///
///
private bool Notice(string id)
{
//给对应通知责任人发送待办
T_BS_RISK_SUBMIT_NOTICE entity = this.GetEntity(id, new string[] { "Nav_ListRiskSubmitContent.Nav_SafeCheckDetail", "Nav_ListRiskSubmitContent.Nav_User" });
List listMainConbinAdd = new List();
List listMainConbinQuestionAdd = new List();
List listMainConbinDepAdd = new List();
//更新对应的检查问题
List listSafecheckDetail = new List();
T_BS_SAFE_CHECK safeCheck = null;
T_FM_DEPARTMENT depMainCheck = null;
List listDepMainCheck = new List();
int delayDays = 0;
var delays = GetEntity(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 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(entity.RISK_SUBMIT_ID.Value);
T_BS_RISK_SUBMIT entityMain = null;
var listContentID = listContent.Select(e => e.ID);
var listConts = GetEntities(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(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 listNotice = new List();
List listNoticePerson = new List();
T_BS_RISK_SUBMIT_NOTICE_PERSON temp = null;
List listDataID = new List();
List listUserID = new List();
List listUserName = new List();
List listName = new List();
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(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(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(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(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(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(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;
}
///
/// 隐患上报 完成 修改各种状态 完善隐患库
///
///
///
private bool DealEnd(string id)
{
var deal = GetEntity(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 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(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(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(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(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(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;
}
///
/// 隐患上报详情待入库 审批回调
/// api/BS/BSRiskSubmit/DealEnd
///
///
///
private bool ApproveBackBS048(string id)
{
//问题ID 判断检查问题描述 整改建议与措施
//如果不完全一致 添加问题 修改问题ID
//入库
Guid idGuid = new Guid(id);
T_BS_RISK_SUBMIT_CONTENT_TEMP model = GetEntity(idGuid, new string[] { "Nav_CheckQuestion" });
T_BS_CHECK_QUESTION modelQ = GetEntity(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(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;
}
///
/// 延期申请 完成 修改状态、最后完成时间 给验收人发送通知
/// api/BS/BSRiskSubmit/DealEnd
///
///
///
private bool DealEnd_BS_DelayApply(string id)
{
var entity = GetEntity(id, new string[] { "Nav_ListApplyDetail.Nav_SubmitContent.Nav_UserCheck" });
entity.OPERARTETYPE = (int)OperateType.Check;
//修改记录信息 状态 最后完成时间
//给验收人发送通知
var listContent = entity.Nav_ListApplyDetail;
List listNotice = new List();
List listBackAll = new List();
List listRiskContent = new List();
List listBack = null;
List listCheckUserID = new List();
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(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;
}
///
/// 安全检查线下完成后进入审批 审批流回调
///
///
///
private bool CheckAuditEnd(string id)
{
//弃用具体看 CheckAuditEndNwe
var entity = GetEntity(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(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(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 listCheckMain = new List();
List listCheckMainDep = new List();
List listCheckDetail = new List();
List listUpdateMain = new List();
List checkMainChangeAll = new List();//所有被修改的检查库
var checkMainChange = entity.Nav_ListSafeCheckDetail.Where(e => e.CHECK_MAIN_ID.HasValue && e.ISMAINCHANGE);
if (checkMainChange != null && checkMainChange.Any())
{
List listMainID = checkMainChange.Select(e => e.CHECK_MAIN_ID.Value).ToList();
checkMainChangeAll = GetEntities(e => listMainID.Contains(e.ID), null, new string[] { "Nav_ListMainDep" }).ToList();
}
List listDepMainCheck = new List();
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(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(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(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(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;
}
///
/// 审批流回调
///
///
///
private bool CheckPlanAuditEnd(string id)
{
var entity = GetEntity(id);
// 1、审批记录单 判断审批结果 修改安全检查表制定的单审批状态
T_PF_APPROVE modelApprove = this.GetEntity(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(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 listUserId = new List();
List listUserName = new List();
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(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 listUserIDDone = new List();//需要默认处理的待办
#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 listUserCheck = null;
if (entity.USERID_DOPLAN.HasValue && listUserId.Contains(entity.USERID_DOPLAN.Value))
{
#region 旧方法
////如果检查人员 包含 制表人
//listUserCheck = this.GetEntities(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(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();
}
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
///
/// 回调函数
///
///
///
private bool BackUpdate_FOCrucialLicenseJobOutsource(string id)
{
//var entity = this.GetEntity(id, false, "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson");
var entity = this.GetEntity(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();
var notices = new List();
var techForm = this.GetEntity(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 => 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;
}
///
/// 回调函数
///
///
///
private bool BackUpdate(string id)
{
//var entity = this.GetEntity(id, false, "Nav_OperationStep", "Nav_ApplyUser", "Nav_CrucialLicensePerson");
var entity = this.GetEntity(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();
var notices = new List();
var techForm = this.GetEntity(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();
var user = this.GetEntities(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;
}
///
/// 关键许可工作票
///
///
///
private bool BackUpdateNew_FOCrucialLicenseJob(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List 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(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();
var notices = new List();
var techForm = this.GetEntity(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();
var user = this.GetEntities(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;
}
///
/// 关键许可工作票外包
///
///
///
private bool BackUpdateNew_FOCrucialLicenseJobOutsource(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List 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(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();
var notices = new List();
var techForm = this.GetEntity(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();
var user = this.GetEntity(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;
}
///
/// 一般作业活动记录
///
///
///
private bool BackUpdateNew_FOJobEventRecord(T_PF_APPROVE entityInt, T_PF_APPROVE modelApp, List listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List 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(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 listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List 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(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 listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List 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(modelApp.DATA_ID);
entity.STATUS = PFStandardStatus.Archived;
//T_FM_NOTIFICATION_TASK sendNotice = null;
////发给采购负责人指定采购专员
//var userId = this.GetEntity(t => t.NAME == "采购部负责人")?.USER_ID;
//if (userId != null)
//{
// var DMUser = this.GetEntity(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 listAppDetail, T_FM_NOTIFICATION_TASK taskFinish, List 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(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 => 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(id);
entity.STATUS = PFStandardStatus.Archived;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
});
return true;
}
private bool BackUpdate_DMDeviceRepair(string id)
{
var entity = this.GetEntity(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(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(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(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(id);
entity.STATUS = PFStandardStatus.Archived;
T_DM_DEVICE_BASE deviceBase = new T_DM_DEVICE_BASE();
if (entity.DEVICEBASE_ID != null)
{
deviceBase = this.GetEntity(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(id, "Nav_Details");
entity.STATUS = PFStandardStatus.Archived;
List sendNotices = new List();
List issues = new List();
List details = new List();
List deviceBases = new List();
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 => deviseBaseIds.Contains(t.ID) && t.DEVICE_STATUS == DMDeviceStatusEnum.库存品);
var useIds = deviseBaseInfos.Select(t => t.USER_ID).Distinct().ToList();
var userInfos = this.GetEntities(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(id, "Nav_Details");
entity.STATUS = PFStandardStatus.Archived;
List deviceBases = new List();
//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 => 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 => 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 => 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 sendNotices = new List();
//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 => 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(id);//"Nav_DeviceBase", "Nav_Files"
entity.STATUS = PFStandardStatus.Archived;
//T_DM_DEVICE_BASE_INSPECTION inspec = null;
//List files = new List();
//if (entity.DEVICE_BASE_ID != null && entity.Nav_DeviceBase != null)
//{
// var deviceBase = this.GetEntity(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 => 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(id, "Nav_Change");
entity.STATUS = PFStandardStatus.Archived;
var implements = this.GetEntities(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 => 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 => 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(id);
entity.STATUS = PFStandardStatus.Archived;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
});
return true;
}
private bool BackUpdate_PESafetyEvaluationPlan(string id)
{
var entity = this.GetEntity(id);
entity.STATUS = PFStandardStatus.Archived;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
});
return true;
}
private bool BackUpdate_PRMapProcessRecord(string id)
{
var entity = this.GetEntity(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(id);
entity.STATUS = PFStandardStatus.Archived;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
});
return true;
}
private bool BackUpdate_PRExternalAssistanceApplication(string id)
{
var entity = this.GetEntity(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(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 => 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;
}
///
/// 返回所有上级部门节点
///
///
///
///
public void GetParentDepartmentIds(Guid orgId, List listDepIDInt, ref List departmentIdPs)
{
var listDep = GetEntities(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(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(id, "Nav_User");
if (entity.FILE_STATUS == SCSystemFileStatus.废除中)
{
content = "已废除";
entity.STATUS = SCSystemEditStatus.已废除;
entity.FILE_STATUS = SCSystemFileStatus.已废除;
oldEntity = this.GetEntity(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 => 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 => 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(id);
entity.STATUS = PFStandardStatus.Archived;
T_FM_NOTIFICATION_TASK sendNotice = null;
var userInfo = this.GetEntity(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 => 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;
}
///
/// 回调函数
///
///
///
private bool BackUpdate_PESafetyMonitorRecord(string id)
{
var entity = this.GetEntity(id);
entity.STATUS = PFStandardStatus.Archived;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
});
return true;
}
///
/// 回调函数
///
///
///
private bool BackUpdate_PESafetyMonitorPlan(string id)
{
var entity = this.GetEntity(id);
entity.STATUS = PFStandardStatus.Archived;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
});
return true;
}
///
/// 回调函数
///
///
///
private bool BackUpdate_PECorrectivePreventiveEvaluation(string id)
{
var entity = this.GetEntity(id);
entity.STATUS = PFStandardStatus.Archived;
UnifiedCommit(() =>
{
if (entity != null)
this.UpdateEntityNoCommit(entity);
});
return true;
}
///
/// 回调函数
///
///
///
private bool BackUpdate_PECorrectivePreventiveProcess(string id)
{
List notices = new List();
var entity = this.GetEntity(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 details = new List();
List files = new List();
List deleteDetailIds = new List();
List deleteFileIds = new List();
if (entity != null && entity.Nav_Details != null && entity.Nav_Details.Any())
{
var evaluationIsExist = this.GetEntity(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 => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID)).Distinct().ToList();
List userNames = new List();
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 => userIds.Contains(t.ID) && t.ENABLE_STATUS == 0, new BaseFilter(entity.ORG_ID)).Distinct().ToList();
List userNames = new List();
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(deleteDetailIds);
if (details != null && details.Any())
this.BantchSaveEntityNoCommit(details);
if (deleteFileIds != null && deleteFileIds.Any())
this.BantchDeleteEntityNoCommit(deleteFileIds);
if (files != null && files.Any())
this.BantchSaveEntityNoCommit(files);
if (notices != null && notices.Any())
this.BantchSaveEntityNoCommit(notices);
});
return true;
}
///
/// 回调函数
///
///
///
private bool BackUpdate_PECorrectivePreventive(string id)
{
List notices = new List();
var entity = this.GetEntity(id, "Nav_Details");
entity.STATUS = PFStandardStatus.Archived;
//List userNames = new List();
//List processList = new List();
//List processDetailList = new List();
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 => 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 => (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;
}
///
/// 回调函数
///
///
///
private bool BackUpdate_PTMonitorAssessment(string id)
{
var entity = this.GetEntity(id, "Nav_Details.Nav_Contents");
entity.STATUS = PFStandardStatus.Archived;
List 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 { "ID", "NAME" };
var userNames = new List();
var user = this.GetEntities(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;
}
///
/// 回调函数
///
///
///
private bool BackUpdate_PTAssessmentPlanAudit(string id)
{
List notices = new List();
var entity = this.GetEntity(id, "Nav_Files");
var orgId = APT.Infrastructure.Api.AppContext.CurrentSession.OrgId;
var entityDetails = this.GetEntities(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 => 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 => 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 => (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 => 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 userIds = new List();
List userNames = new List();
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 deleteContentId = new List();
List details = new List();
List contents = new List();
if (entityDetails != null && entityDetails.Any())
{
var tempDetails = this.GetEntities(t => !t.IS_DELETED, new BaseFilter(entity.ORG_ID)).ToList();
var tempDetailContents = this.GetEntities(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(deleteContentId);
if (details != null && details.Any())
this.BantchSaveEntityNoCommit(details);
if (contents != null && contents.Any())
this.BantchSaveEntityNoCommit(contents);
});
return true;
}
///
/// 回调函数
///
///
///
private bool BackUpdate_PTAssessmentPlanAuditYL(string id)
{
List notices = new List();
var entity = this.GetEntity