using BLL; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; namespace FineUIPro.Web.EditorManage { public partial class PMEditorEdit : PageBase { #region 定义项 #region 定义集合 /// /// 定义计划工程师明细集合 /// private List projectControlLists = new List(); #endregion #endregion #region 加载 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string view = Request.Params["view"]; if (view == "1") { this.btnCalculated.Hidden = true; this.btnSave.Hidden = true; } else { // 特殊控制,不需要 // GetButtonPower();//权限设置 } btnClose.OnClientClick = ActiveWindow.GetHideReference(); BLL.ConstService.InitConstValueDropDownList(this.drpPM_General_CDI, BLL.Const.PM_CDI, true); BLL.ConstService.InitConstValueDropDownList(this.drpPM_General_Category, BLL.Const.PM_Category, true); BLL.ConstValue.InitSysConstDropDownList(this.drpReasonForCritical, BLL.Const.ReasonForCritical, false); //部门 BLL.DepartService.InitDepartDropDownList(this.drpDelaybyteam1, true); BLL.DepartService.InitDepartDropDownList(this.drpDelaybyteam2, true); BLL.DepartService.InitDepartDropDownList(this.drpDelaybyteam3, true); // 人员 BLL.Sys_UserService.InitUserDropDownList(this.drpDelaybypersonel1, true); BLL.Sys_UserService.InitUserDropDownList(this.drpDelaybypersonel2, true); BLL.Sys_UserService.InitUserDropDownList(this.drpDelaybypersonel3, true); string eprojectId = Request.Params["EProjectId"]; if (!string.IsNullOrEmpty(eprojectId)) { Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId); if (ep.PM_PressureVesselChecked == true) { this.cbPM_PressureVessel.Checked = true; } this.txtPM_PressureVessel.Text = ep.PM_PP_PressureVessel.HasValue ? Convert.ToDateTime(ep.PM_PP_PressureVessel).ToString("{yyyy-MM-dd}") : ""; if (ep.PM_PressurePipingChecked == true) { this.cbPM_PressurePiping.Checked = true; } this.txtPM_PressurePiping.Text = ep.PM_PP_PressurePiping.HasValue ? Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}") : ""; if (ep.PM_SQIBChecked == true) { this.cbPM_SQIB.Checked = true; } this.txtPM_SQIB.Text = ep.PM_PP_SQIB.HasValue ? Convert.ToDateTime(ep.PM_PP_SQIB).ToString("{yyyy-MM-dd}") : ""; if (!string.IsNullOrEmpty(ep.PM_General_CDI)) { this.drpPM_General_CDI.SelectedValue = BLL.ConstService.GetConstListByTextAndGroupId(ep.PM_General_CDI, BLL.Const.PM_CDI).ConstValue; } txtPM_General_CostToComplete.Text = ep.PM_General_CostToComplete.HasValue ? ep.PM_General_CostToComplete.ToString() : ""; if (!string.IsNullOrEmpty(ep.PM_General_Category)) { drpPM_General_Category.SelectedValue = BLL.ConstService.GetConstListByTextAndGroupId(ep.PM_General_Category, BLL.Const.PM_Category).ConstValue; } if (!string.IsNullOrEmpty(ep.PM_Critical)) { drpCritical.SelectedValue = ep.PM_Critical; } if (!string.IsNullOrEmpty(ep.PM_ReasonForCritical)) { drpReasonForCritical.SelectedValue = ep.PM_ReasonForCritical; } //txtPM_SC_ApprovedQty.Text = Convert.ToString(ep.PM_SC_ApprovedQty); //txtPM_SC_ApprovedCost.Text = Convert.ToString(ep.PM_SC_ApprovedCost); //txtPM_SC_PendingQty.Text = Convert.ToString(ep.PM_SC_PendingQty); //txtPM_SC_PendingCost.Text = Convert.ToString(ep.PM_SC_PendingCost); txtPM_MA_JobReveive.Text = ep.PM_MA_JobReveive.HasValue ? Convert.ToDateTime(ep.PM_MA_JobReveive).ToString("yyyy-MM-dd") : ""; txtPM_MA_KickOffMeeting.Text = ep.PM_MA_KickOffMeeting.HasValue ? Convert.ToDateTime(ep.PM_MA_KickOffMeeting).ToString("yyyy-MM-dd") : ""; txtPM_MA_SR.Text = ep.PM_MA_SR.HasValue ? Convert.ToDateTime(ep.PM_MA_SR).ToString("yyyy-MM-dd") : ""; this.txtPM_MA_ProjectApproval.Text = ep.PM_MA_ProjectApproval == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_MA_ProjectApproval); this.txtPlanning_Approval.Text = ep.PM_Planning_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_Planning_Approval); this.txtPre_Approval.Text = ep.PM_Pre_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_Pre_Approval); if (ep.PM_LLEP_RevisedStart.HasValue) { txtPM_LLEP_RevisedStart.Text = string.Format("{0:yyyy-MM-dd}", ep.PM_LLEP_RevisedStart); } else { if (ep.ProjectControl_LP_SchStart.HasValue) { txtPM_LLEP_RevisedStart.Text = string.Format("{0:yyyy-MM-dd}", ep.ProjectControl_LP_SchStart); } } if (ep.PM_LLEP_RevisedStartIsAct == true) { cbLLEP_RevisedStart.Checked = true; } else { cbLLEP_RevisedStart.Checked = false; } if (ep.PM_LLEP_RevisedEnd.HasValue) { txtPM_LLEP_RevisedEnd.Text = string.Format("{0:yyyy-MM-dd}", ep.PM_LLEP_RevisedEnd); } else { if (ep.ProjectControl_LP_SchEnd.HasValue) { this.txtPM_LLEP_RevisedEnd.Text = string.Format("{0:yyyy-MM-dd}", ep.ProjectControl_LP_SchEnd); } } if (ep.PM_LLEP_RevisedEndIsAct == true) { cbLLEP_RevisedEnd.Checked = true; } else { cbLLEP_RevisedEnd.Checked = false; } txtPM_LLEP_ActualProgress.Text = Convert.ToString(ep.PM_LLEP_ActualProgress); txtPM_Remarks_Engineering.Text = ep.PM_Remarks_Engineering; txtPM_Remarks_Procurement.Text = ep.PM_Remarks_Procurement; this.txtStartDate.Text = ep.PM_Study_StartDate == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_Study_StartDate); this.txtEndDate.Text = ep.PM_Study_EndDate == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.PM_Study_EndDate); if (!string.IsNullOrEmpty(ep.OutSourceType)) { drpOutSourceType.SelectedValue = ep.OutSourceType; } if (!string.IsNullOrEmpty(ep.CM_Remarks_Procurement)) { this.lblCMProcurement.Text = "CM-Procurement:" + ep.CM_Remarks_Procurement; } // job List txtPlanEHSReview_Files.Text = ep.Job_PlanEHSReview_Files == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_PlanEHSReview_Files); txtEHSReview_Files_Meeting.Text = ep.Job_EHSReview_Meeting == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_EHSReview_Meeting); txtEHSReview_Files.Text = ep.Job_EHSReview_Files == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_EHSReview_Files); txtEstimate_Worksheet.Text = ep.Job_Estimate_Worksheet == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_Estimate_Worksheet); txtBudget.Text = ep.Job_Budget == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_Budget); txtTecoAlarm_Study.Text = ep.Job_TecoAlarm_Study == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_TecoAlarm_Study); txtPlan_IFC.Text = ep.Job_Plan_IFC == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_Plan_IFC); //txtHold.Text = ep.Job_Hold == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_Hold); if (!string.IsNullOrEmpty(ep.Job_Delaybyteam1)) { drpDelaybyteam1.SelectedValue = ep.Job_Delaybyteam1; } if (!string.IsNullOrEmpty(ep.Job_Delaybyteam2)) { drpDelaybyteam2.SelectedValue = ep.Job_Delaybyteam2; } if (!string.IsNullOrEmpty(ep.Job_Delaybyteam3)) { drpDelaybyteam3.SelectedValue = ep.Job_Delaybyteam3; } if (!string.IsNullOrEmpty(ep.Job_Delaybypersonel1)) { drpDelaybypersonel1.SelectedValue = ep.Job_Delaybypersonel1; } if (!string.IsNullOrEmpty(ep.Job_Delaybypersonel2)) { drpDelaybypersonel2.SelectedValue = ep.Job_Delaybypersonel2; } if (!string.IsNullOrEmpty(ep.Job_Delaybypersonel3)) { drpDelaybypersonel3.SelectedValue = ep.Job_Delaybypersonel3; } txtRemark1.Text = ep.Job_Remark1; txtRemark2.Text = ep.Job_Remark2; txtRemark3.Text = ep.Job_Remark3; btnCalculated_Click(null, null);//进度计算 List pmList = BLL.PMService.GetPMByEprojectId(eprojectId); if (pmList.Count > 0) { Grid1.DataSource = pmList; Grid1.DataBind(); } //当计划工程师编辑器中MC在3.30日之前,SQIB为3.30,MC在3.30日之后,SQIB为明年的3.30 //string mcDateNow = DateTime.Now.ToString("MM-dd"); //string mcDate = Convert.ToDateTime(ep.ProjectControl_MS_MC).ToString("MM-dd"); //if (Funs.GetNewDateTime(mcDate) < Funs.GetNewDateTime(mcDateNow)) //{ // this.cbPM_SQIB.Checked = true; // this.txtPM_SQIB.Text = DateTime.Now.Year + "-3-30"; //} //else //{ // this.cbPM_SQIB.Checked = true; // this.txtPM_SQIB.Text = DateTime.Now.AddYears(1).Year + "-3-30"; //} if (!string.IsNullOrEmpty(txtPM_PressureVessel.Text.Trim())) { this.cbPM_PressureVessel.Checked = true; } if (!string.IsNullOrEmpty(txtPM_PressurePiping.Text.Trim())) { this.cbPM_PressurePiping.Checked = true; } // 如果是PPE角色则显示全部 // 如果当前用户角色为PM并且为EM,则显示全部; // 如果当前用户角色为EM,则只显示下面EM Detail Eng; // 如果当前用户角色为PM,则不显示EM Detail Eng if (CurrUser.RoleId == Const.Role_PPE) { this.gpPM.Hidden = false; this.gpEM.Hidden = false; } else { if (this.CurrUser.UserId == ep.ProjectControl_ProjectManagerId && this.CurrUser.UserId == ep.ProjectControl_EMManagerId) { this.gpEM.Hidden = false; this.gpPM.Hidden = false; } else if (this.CurrUser.UserId == ep.ProjectControl_EMManagerId) { this.gpEM.Hidden = false; this.gpPM.Hidden = true; } else if (this.CurrUser.UserId == ep.ProjectControl_ProjectManagerId) { this.gpEM.Hidden = true; this.gpPM.Hidden = false; } } } this.txtPM_MA_JobReveive.MaxDate = DateTime.Now; this.txtPM_MA_KickOffMeeting.MaxDate = DateTime.Now; this.txtPM_MA_SR.MaxDate = DateTime.Now; this.txtPM_MA_ProjectApproval.MaxDate = DateTime.Now; } } #endregion #region Grid1绑定事件 /// /// Grid1中PID、Document、Cost Estimate不允许操作 /// /// /// protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) { var row = e.DataItem as Model.Editor_PM; if (row != null) { string DisciplinesWBSName = row.DisciplinesWBSName.ToString(); var tdc = (from x in Funs.DB.Editor_TDC where x.EProjectId == row.EProjectId && x.Type == "D01_IFC" && x.Disc.Contains(DisciplinesWBSName) select x.Disc).FirstOrDefault(); if (tdc != null && !string.IsNullOrEmpty(tdc)) { RenderField Sch_End = Grid1.FindColumn("RevisedEnd") as RenderField; e.CellCssClasses[Sch_End.ColumnIndex] = "f-grid-cell-uneditable"; } if (DisciplinesWBSName == "PID" || DisciplinesWBSName == "Document" || DisciplinesWBSName == "Cost Estimate") { RenderField Sch_Start = Grid1.FindColumn("SchStart") as RenderField; e.CellCssClasses[Sch_Start.ColumnIndex] = "f-grid-cell-uneditable"; RenderField Sch_End = Grid1.FindColumn("SchEnd") as RenderField; e.CellCssClasses[Sch_End.ColumnIndex] = "f-grid-cell-uneditable"; RenderField Revised_Start = Grid1.FindColumn("RevisedStart") as RenderField; e.CellCssClasses[Revised_Start.ColumnIndex] = "f-grid-cell-uneditable"; RenderField Revised_End = Grid1.FindColumn("RevisedEnd") as RenderField; e.CellCssClasses[Revised_End.ColumnIndex] = "f-grid-cell-uneditable"; } else { if (this.CurrUser.RoleId != Const.Role_PPE && this.CurrUser.UserId != Const.GlyId) { RenderField Sch_Start = Grid1.FindColumn("SchStart") as RenderField; e.CellCssClasses[Sch_Start.ColumnIndex] = "f-grid-cell-uneditable"; RenderField Sch_End = Grid1.FindColumn("SchEnd") as RenderField; e.CellCssClasses[Sch_End.ColumnIndex] = "f-grid-cell-uneditable"; } } } } #endregion #region 保存 /// /// 保存按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { string operationLog = string.Empty; string eprojectId = Request.Params["EProjectId"]; var eproject = BLL.EProjectService.GeteProjectById(eprojectId); if (eproject != null) { #region 日志 operationLog = eproject.ProjectControl_JobNo + "_PM:"; if ((eproject.PM_General_CDI != null || drpPM_General_CDI.SelectedValue != Const._Null) && eproject.PM_General_CDI != drpPM_General_CDI.SelectedItem.Text) { operationLog += "CDI 由" + eproject.PM_General_CDI + "修改为" + drpPM_General_CDI.SelectedItem.Text + ","; } if ((eproject.OutSourceType != null || drpOutSourceType.SelectedValue != "0") && eproject.OutSourceType != drpOutSourceType.SelectedItem.Text) { operationLog += "OutSource Type 由" + eproject.OutSourceType + "修改为" + drpOutSourceType.SelectedItem.Text + ","; } if ((eproject.PM_General_Category != null || drpPM_General_Category.SelectedValue != Const._Null) && eproject.PM_General_Category != drpPM_General_Category.SelectedItem.Text) { operationLog += "Category 由" + eproject.PM_General_Category + "修改为" + drpPM_General_Category.SelectedItem.Text + ","; } if ((eproject.PM_Critical != null || drpCritical.SelectedValue != Const._Null) && eproject.PM_Critical != drpCritical.SelectedItem.Text) { operationLog += "Critical 由" + eproject.PM_Critical + "修改为" + drpCritical.SelectedItem.Text + ","; } if (eproject.PM_ReasonForCritical != drpReasonForCritical.SelectedValue) { var s = from x in Funs.DB.Sys_Const where x.ConstValue == drpReasonForCritical.SelectedValue && x.GroupId == BLL.Const.ReasonForCritical select x; operationLog += "Reason For Critical 由" + s.First().ConstText + "修改为" + drpReasonForCritical.SelectedItem.Text + ","; } if ((eproject.PM_PressureVesselChecked.HasValue ? eproject.PM_PressureVesselChecked.Value : false) != cbPM_PressureVessel.Checked) { operationLog += "Pressure Vessel 由" + (eproject.PM_PressureVesselChecked.HasValue ? eproject.PM_PressureVesselChecked.Value : false).ToString() + "修改为" + cbPM_PressureVessel.Checked.ToString() + ","; } if ((eproject.PM_PressurePipingChecked.HasValue ? eproject.PM_PressurePipingChecked.Value : false) != cbPM_PressurePiping.Checked) { operationLog += "Pressure Piping 由" + (eproject.PM_PressurePipingChecked.HasValue ? eproject.PM_PressurePipingChecked.Value : false).ToString() + "修改为" + cbPM_PressurePiping.Checked.ToString() + ","; } if ((eproject.PM_SQIBChecked.HasValue ? eproject.PM_SQIBChecked.Value : false) != cbPM_SQIB.Checked) { operationLog += "SQIB 由" + (eproject.PM_SQIBChecked.HasValue ? eproject.PM_SQIBChecked.Value : false).ToString() + "修改为" + cbPM_SQIB.Checked.ToString() + ","; } //if ((eproject.PM_SC_ApprovedQty != null || txtPM_SC_ApprovedQty.Text != "") && eproject.PM_SC_ApprovedQty != Funs.GetNewInt(txtPM_SC_ApprovedQty.Text.Trim())) //{ // operationLog += "Approved Qty 由" + (eproject.PM_SC_ApprovedQty != null ? eproject.PM_SC_ApprovedQty.Value.ToString() : "" + "修改为" + txtPM_SC_ApprovedQty.Text) + ","; //} //if ((eproject.PM_SC_ApprovedCost != null || txtPM_SC_ApprovedCost.Text != "") && eproject.PM_SC_ApprovedCost != Funs.GetNewDecimal(txtPM_SC_ApprovedCost.Text.Trim())) //{ // operationLog += "Approved Cost 由" + (eproject.PM_SC_ApprovedCost != null ? eproject.PM_SC_ApprovedCost.Value.ToString() : "" + "修改为" + txtPM_SC_ApprovedCost.Text) + ","; //} //if ((eproject.PM_SC_PendingQty != null || txtPM_SC_PendingQty.Text != "") && eproject.PM_SC_PendingQty != Funs.GetNewInt(txtPM_SC_PendingQty.Text.Trim())) //{ // operationLog += "Pending Qty 由" + (eproject.PM_SC_PendingQty != null ? eproject.PM_SC_PendingQty.Value.ToString() : "" + "修改为" + txtPM_SC_PendingQty.Text) + ","; //} //if ((eproject.PM_SC_PendingCost != null || txtPM_SC_PendingCost.Text != "") && eproject.PM_SC_PendingCost != Funs.GetNewDecimal(txtPM_SC_PendingCost.Text.Trim())) //{ // operationLog += "Pending Cost 由" + (eproject.PM_SC_PendingCost != null ? eproject.PM_SC_PendingCost.Value.ToString() : "" + "修改为" + txtPM_SC_PendingCost.Text) + ","; //} if (eproject.PM_MA_JobReveive != Funs.GetNewDateTime(this.txtPM_MA_JobReveive.Text.Trim())) { operationLog += "Job Reveive 由" + (eproject.PM_MA_JobReveive == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_MA_JobReveive)) + "修改为" + this.txtPM_MA_JobReveive.Text.Trim() + ","; } if (eproject.PM_MA_KickOffMeeting != Funs.GetNewDateTime(this.txtPM_MA_KickOffMeeting.Text.Trim())) { operationLog += "Kick-off Meeting 由" + (eproject.PM_MA_KickOffMeeting == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_MA_KickOffMeeting)) + "修改为" + this.txtPM_MA_KickOffMeeting.Text.Trim() + ","; } if (eproject.PM_MA_SR != Funs.GetNewDateTime(this.txtPM_MA_SR.Text.Trim())) { operationLog += "SR1/2 由" + (eproject.PM_MA_SR == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_MA_SR)) + "修改为" + this.txtPM_MA_SR.Text.Trim() + ","; } if (eproject.PM_MA_ProjectApproval != Funs.GetNewDateTime(this.txtPM_MA_ProjectApproval.Text.Trim())) { operationLog += "Project Approval 由" + (eproject.PM_MA_ProjectApproval == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_MA_ProjectApproval)) + "修改为" + this.txtPM_MA_ProjectApproval.Text.Trim() + ","; } if (eproject.PM_Planning_Approval != Funs.GetNewDateTime(this.txtPlanning_Approval.Text.Trim())) { operationLog += "Planning Cost Approval 由" + (eproject.PM_Planning_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_Planning_Approval)) + "修改为" + this.txtPlanning_Approval.Text.Trim() + ","; } if (eproject.PM_Pre_Approval != Funs.GetNewDateTime(this.txtPre_Approval.Text.Trim())) { operationLog += "Pre-Approval 由" + (eproject.PM_Pre_Approval == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_Pre_Approval)) + "修改为" + this.txtPre_Approval.Text.Trim() + ","; } if (eproject.PM_LLEP_RevisedStart != Funs.GetNewDateTime(this.txtPM_LLEP_RevisedStart.Text.Trim())) { operationLog += "LLEP_Forecast Start 由" + (eproject.PM_LLEP_RevisedStart == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_LLEP_RevisedStart)) + "修改为" + this.txtPM_LLEP_RevisedStart.Text.Trim() + ","; } if ((eproject.PM_LLEP_RevisedStartIsAct.HasValue ? eproject.PM_LLEP_RevisedStartIsAct.Value : false) != cbLLEP_RevisedStart.Checked) { operationLog += "LLEP_Forecast Start Actual 由" + (eproject.PM_LLEP_RevisedStartIsAct.HasValue ? eproject.PM_LLEP_RevisedStartIsAct.Value : false).ToString() + "修改为" + cbLLEP_RevisedStart.Checked.ToString() + ","; } if (eproject.PM_LLEP_RevisedEnd != Funs.GetNewDateTime(this.txtPM_LLEP_RevisedEnd.Text.Trim())) { operationLog += "LLEP_Forecast End 由" + (eproject.PM_LLEP_RevisedEnd == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_LLEP_RevisedEnd)) + "修改为" + this.txtPM_LLEP_RevisedEnd.Text.Trim() + ","; } if ((eproject.PM_LLEP_RevisedEndIsAct.HasValue ? eproject.PM_LLEP_RevisedEndIsAct.Value : false) != cbLLEP_RevisedEnd.Checked) { operationLog += "LLEP_Forecast End Actual 由" + (eproject.PM_LLEP_RevisedEndIsAct.HasValue ? eproject.PM_LLEP_RevisedEndIsAct.Value : false).ToString() + "修改为" + cbLLEP_RevisedEnd.Checked.ToString() + ","; } if (eproject.PM_Study_StartDate != Funs.GetNewDateTime(this.txtStartDate.Text.Trim())) { operationLog += "Forecast Start 由" + (eproject.PM_Study_StartDate == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_Study_StartDate)) + "修改为" + this.txtStartDate.Text.Trim() + ","; } if (eproject.PM_Study_EndDate != Funs.GetNewDateTime(this.txtEndDate.Text.Trim())) { operationLog += "Forecast End 由" + (eproject.PM_Study_EndDate == null ? "" : string.Format("{0:yyyy-MM-dd}", eproject.PM_Study_EndDate)) + "修改为" + this.txtEndDate.Text.Trim() + ","; } if (eproject.PM_Remarks_Engineering != txtPM_Remarks_Engineering.Text.Trim()) { operationLog += "Engineering 由" + eproject.PM_Remarks_Engineering + "修改为" + txtPM_Remarks_Engineering.Text.Trim() + ","; } if (eproject.PM_Remarks_Procurement != txtPM_Remarks_Procurement.Text.Trim()) { operationLog += "Procurement 由" + eproject.PM_Remarks_Procurement + "修改为" + txtPM_Remarks_Procurement.Text.Trim() + ","; } #endregion eproject.EProjectId = eprojectId; if (this.drpPM_General_CDI.SelectedValue != BLL.Const._Null) { eproject.PM_General_CDI = drpPM_General_CDI.SelectedItem.Text; } else { eproject.PM_General_CDI = null; } eproject.PM_General_CostToComplete = Funs.GetNewDecimalOrZero(txtPM_General_CostToComplete.Text.Trim()); if (drpPM_General_Category.SelectedValue != BLL.Const._Null) { eproject.PM_General_Category = drpPM_General_Category.SelectedItem.Text; } else { eproject.PM_General_Category = null; } eproject.PM_Critical = drpCritical.SelectedValue; eproject.PM_ReasonForCritical = drpReasonForCritical.SelectedValue; eproject.PM_LLEP_RevisedStart = Funs.GetNewDateTime(txtPM_LLEP_RevisedStart.Text.Trim()); eproject.PM_LLEP_RevisedEnd = Funs.GetNewDateTime(txtPM_LLEP_RevisedEnd.Text.Trim()); if (cbLLEP_RevisedStart.Checked) { eproject.PM_LLEP_RevisedStartIsAct = true; } else { eproject.PM_LLEP_RevisedStartIsAct = null; } if (cbLLEP_RevisedEnd.Checked) { eproject.PM_LLEP_RevisedEndIsAct = true; } else { eproject.PM_LLEP_RevisedEndIsAct = null; } btnCalculated_Click(null, null);//进度计算 if (txtPM_LLEP_ActualProgress.Text.Trim() != string.Empty) { eproject.PM_LLEP_ActualProgress = Convert.ToDecimal(txtPM_LLEP_ActualProgress.Text.Trim()); } //eproject.PM_SC_ApprovedQty = Funs.GetNewInt(txtPM_SC_ApprovedQty.Text.Trim()); //eproject.PM_SC_ApprovedCost = Funs.GetNewDecimal(txtPM_SC_ApprovedCost.Text.Trim()); //eproject.PM_SC_PendingQty = Funs.GetNewInt(txtPM_SC_PendingQty.Text.Trim()); //eproject.PM_SC_PendingCost = Funs.GetNewDecimal(txtPM_SC_PendingCost.Text.Trim()); eproject.PM_MA_JobReveive = Funs.GetNewDateTime(txtPM_MA_JobReveive.Text.Trim()); eproject.PM_MA_KickOffMeeting = Funs.GetNewDateTime(txtPM_MA_KickOffMeeting.Text.Trim()); eproject.PM_MA_SR = Funs.GetNewDateTime(txtPM_MA_SR.Text.Trim()); eproject.PM_MA_ProjectApproval = Funs.GetNewDateTime(txtPM_MA_ProjectApproval.Text.Trim()); eproject.PM_Pre_Approval = Funs.GetNewDateTime(txtPre_Approval.Text.Trim()); eproject.PM_Planning_Approval = Funs.GetNewDateTime(txtPlanning_Approval.Text.Trim()); eproject.PM_Remarks_Engineering = txtPM_Remarks_Engineering.Text.Trim(); eproject.PM_Remarks_Procurement = txtPM_Remarks_Procurement.Text.Trim(); eproject.PM_PP_PressureVessel = Funs.GetNewDateTime(this.txtPM_PressureVessel.Text.Trim()); eproject.PM_PP_PressurePiping = Funs.GetNewDateTime(this.txtPM_PressurePiping.Text.Trim()); eproject.PM_PP_SQIB = Funs.GetNewDateTime(this.txtPM_SQIB.Text.Trim()); eproject.PM_Study_StartDate = Funs.GetNewDateTime(this.txtStartDate.Text.Trim()); eproject.PM_Study_EndDate = Funs.GetNewDateTime(this.txtEndDate.Text.Trim()); eproject.PM_PressureVesselChecked = this.cbPM_PressureVessel.Checked; eproject.PM_PressurePipingChecked = this.cbPM_PressurePiping.Checked; eproject.PM_SQIBChecked = this.cbPM_SQIB.Checked; if (drpOutSourceType.SelectedValue != "0") { eproject.OutSourceType = drpOutSourceType.SelectedValue; } else { eproject.OutSourceType = null; } // job eproject.Job_PlanEHSReview_Files = Funs.GetNewDateTime(this.txtPlanEHSReview_Files.Text.Trim()); eproject.Job_EHSReview_Meeting = Funs.GetNewDateTime(this.txtEHSReview_Files_Meeting.Text.Trim()); eproject.Job_Budget = Funs.GetNewDateTime(this.txtBudget.Text.Trim()); eproject.Job_EHSReview_Files = Funs.GetNewDateTime(this.txtEHSReview_Files.Text.Trim()); eproject.Job_Estimate_Worksheet = Funs.GetNewDateTime(this.txtEstimate_Worksheet.Text.Trim()); //eproject.Job_Hold = Funs.GetNewDateTime(this.txtHold.Text.Trim()); eproject.Job_Plan_IFC = Funs.GetNewDateTime(this.txtPlan_IFC.Text.Trim()); eproject.Job_TecoAlarm_Study = Funs.GetNewDateTime(this.txtTecoAlarm_Study.Text.Trim()); if (drpDelaybyteam1.SelectedValue != Const._Null) { eproject.Job_Delaybyteam1 = drpDelaybyteam1.SelectedValue; } if (drpDelaybyteam2.SelectedValue != Const._Null) { eproject.Job_Delaybyteam2 = drpDelaybyteam2.SelectedValue; } if (drpDelaybyteam3.SelectedValue != Const._Null) { eproject.Job_Delaybyteam3 = drpDelaybyteam3.SelectedValue; } if (drpDelaybypersonel1.SelectedValue != Const._Null) { eproject.Job_Delaybypersonel1 = drpDelaybypersonel1.SelectedValue; } if (drpDelaybypersonel2.SelectedValue != Const._Null) { eproject.Job_Delaybypersonel2 = drpDelaybypersonel2.SelectedValue; } if (drpDelaybypersonel3.SelectedValue != Const._Null) { eproject.Job_Delaybypersonel3 = drpDelaybypersonel3.SelectedValue; } eproject.Job_Remark1 = txtRemark1.Text.Trim(); eproject.Job_Remark2 = txtRemark2.Text.Trim(); eproject.Job_Remark3 = txtRemark3.Text.Trim(); eproject.ModifyDate = DateTime.Now; eproject.ModifyPerson = CurrUser.UserId; BLL.EProjectService.UpdateProject(eproject, "PM"); } List list = new List(); JArray EditorPMArr = Grid1.GetMergedData(); if (EditorPMArr.Count > 0) { //增加明细 JArray mergedData = Grid1.GetMergedData(); int i = 0; foreach (JObject mergedRow in EditorPMArr) { string pmId = Grid1.DataKeys[i][0].ToString(); JObject values = mergedRow.Value("values"); DateTime? ss = Funs.GetNewDateTime(values.Value("SchStart").ToString()); DateTime? se = Funs.GetNewDateTime(values.Value("SchEnd").ToString()); DateTime? rs = Funs.GetNewDateTime(values.Value("RevisedStart").ToString()); DateTime? re = Funs.GetNewDateTime(values.Value("RevisedEnd").ToString()); Model.Editor_PM pm = Funs.DB.Editor_PM.FirstOrDefault(x => x.PMId == pmId); if (pm != null) { pm.SchStart = ss; pm.SchEnd = se; pm.RevisedStart = rs; pm.RevisedEnd = re; pm.RevisedStartIsAct = Convert.ToBoolean(values.Value("RevisedStartIsAct")); pm.RevisedEndIsAct= Convert.ToBoolean(values.Value("RevisedEndIsAct")); Funs.DB.SubmitChanges(); } i++; } } #region 更新项目状态 //更新项目状态 var epro = BLL.EProjectService.GeteProjectById(eproject.EProjectId); if (epro != null) { //(不要这个逻辑了-2021.03.30)当PM中Milestone(Actual)的Project Approval不为空,同时CM中Const.-Civil的Revised Start和Const.-Mech,E&I的Revised Start小于当前时间,状态为In Construction //if (epro.PM_MA_ProjectApproval.HasValue && Funs.GetNewDateTime(DateTime.Now.ToShortDateString()) > Funs.GetNewDateTime(epro.CM_CC_RevisedStart.ToString()) && Funs.GetNewDateTime(DateTime.Now.ToShortDateString()) > Funs.GetNewDateTime(epro.CM_CM_RevisedStart.ToString())) //{ // epro.ProjectControl_JobStatus = "In Construction"; //} //当项目类型为projects或moc时PM中Milestone(Actual)的Project Approval不为空,并且Resource_Plan有记录时,状态为Not Approved 修改于2024.07.04 var resourcePlans = BLL.ResourcePlanService.GetResourcePlanByEProjectId(epro.EProjectId); if ((epro.PM_MA_ProjectApproval == null || epro.PM_MA_ProjectApproval.ToString() == "") && resourcePlans.Count() > 0) { if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "Not Start") { epro.ProjectControl_JobStatus = "Study"; } } // 增加于2024.07.03 if (epro.ProjectControl_JobType == "Other" && epro.PM_MA_ProjectApproval.HasValue && !epro.CM_MA_MC.HasValue) { eproject.ProjectControl_JobStatus = "On Going"; } // 去除于2024.07.03 //if (epro.PM_MA_ProjectApproval.HasValue && resourcePlans.Count()>1) //{ // if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start") // { // epro.ProjectControl_JobStatus = "On Going"; // } //} //去掉 同时满足Today小于Design Civil_Revised End Date和Design Mech.E&I_Revised End Date的最大值时, //var civilRevisedEnd = BLL.PMService.GetCivil(eproject.EProjectId); //var mechEIRevisedEnd = BLL.PMService.GetMechEI(eproject.EProjectId); // 后加条件 //当PM中Milestone(Actual)的Project Approval不为空并且IFC ALL的ReceiveHC为空,状态为Detailed Design var all = from x in Funs.DB.Editor_TDC where x.EProjectId== epro.EProjectId && x.Type == "D01_IFC" && x.Disc == "00_ALL" && x.ReceiveHC.HasValue select x; if (epro.ProjectControl_JobType != "Other" && epro.PM_MA_ProjectApproval.HasValue && all.Count() == 0) { if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "On Going" || eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start") { epro.ProjectControl_JobStatus = "Detailed Design"; } } // 后加:当PM中Milestone(Actual)的Project Approval不为空并且IFC ALL的ReceiveHC不为空,状态为In Procurement //或者当PM中Milestone(Actual)的Project Approval不为空并且IFC NA的ReceiveHC不为空,状态为In Procurement var con_all = from x in Funs.DB.Editor_TDC where x.EProjectId == epro.EProjectId && x.Type == "D01_IFC" && x.Disc == "00_ALL" && x.ReceiveHC.HasValue select x; var con_na = from x in Funs.DB.Editor_TDC where x.EProjectId == epro.EProjectId && x.Type == "D01_IFC" && x.Disc == "90_NA" && x.ReceiveHC.HasValue select x; if (epro.ProjectControl_JobType != "Other" && epro.PM_MA_ProjectApproval.HasValue && (con_all.Count() > 0 || con_na.Count() > 0)) { if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "Detailed Design" || eproject.ProjectControl_JobStatus == "On Going" || eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start") { epro.ProjectControl_JobStatus = "In Procurement"; } } if (epro.CM_MA_MC.HasValue) { if (eproject.ProjectControl_JobStatus == null || eproject.ProjectControl_JobStatus == "" || eproject.ProjectControl_JobStatus == "In Procurement" || eproject.ProjectControl_JobStatus == "In Construction" || eproject.ProjectControl_JobStatus == "Detailed Design" || eproject.ProjectControl_JobStatus == "On Going" || eproject.ProjectControl_JobStatus == "Study" || eproject.ProjectControl_JobStatus == "Not Start") { epro.ProjectControl_JobStatus = "MC"; } } if ((epro.Permit_PS_SafetyFinalAcc.HasValue && epro.Permit_PA_SafetyFinalACC.HasValue && epro.Permit_PS_FFFinalAcc.HasValue && epro.Permit_PA_FFFinalACC.HasValue && epro.Permit_PS_EnvFinalAcc.HasValue && epro.Permit_PA_EnvFinalACC.HasValue) || (epro.Permit_PS_SafetyFinalAcc.HasValue && epro.Permit_PA_SafetyFinalACC.HasValue && !epro.Permit_PS_FFFinalAcc.HasValue && !epro.Permit_PA_FFFinalACC.HasValue && !epro.Permit_PS_EnvFinalAcc.HasValue && !epro.Permit_PA_EnvFinalACC.HasValue) || (epro.Permit_PS_SafetyFinalAcc.HasValue && epro.Permit_PA_SafetyFinalACC.HasValue && epro.Permit_PS_FFFinalAcc.HasValue && epro.Permit_PA_FFFinalACC.HasValue && !epro.Permit_PS_EnvFinalAcc.HasValue && !epro.Permit_PA_EnvFinalACC.HasValue) || (epro.Permit_PS_SafetyFinalAcc.HasValue && epro.Permit_PA_SafetyFinalACC.HasValue && !epro.Permit_PS_FFFinalAcc.HasValue && !epro.Permit_PA_FFFinalACC.HasValue && epro.Permit_PS_EnvFinalAcc.HasValue && epro.Permit_PA_EnvFinalACC.HasValue) || (!epro.Permit_PS_SafetyFinalAcc.HasValue && !epro.Permit_PA_SafetyFinalACC.HasValue && epro.Permit_PS_FFFinalAcc.HasValue && epro.Permit_PA_FFFinalACC.HasValue && epro.Permit_PS_EnvFinalAcc.HasValue && epro.Permit_PA_EnvFinalACC.HasValue) || (!epro.Permit_PS_SafetyFinalAcc.HasValue && !epro.Permit_PA_SafetyFinalACC.HasValue && !epro.Permit_PS_FFFinalAcc.HasValue && !epro.Permit_PA_FFFinalACC.HasValue && epro.Permit_PS_EnvFinalAcc.HasValue && epro.Permit_PA_EnvFinalACC.HasValue) || (!epro.Permit_PS_SafetyFinalAcc.HasValue && !epro.Permit_PA_SafetyFinalACC.HasValue && !epro.Permit_PS_FFFinalAcc.HasValue && !epro.Permit_PA_FFFinalACC.HasValue && !epro.Permit_PS_EnvFinalAcc.HasValue && !epro.Permit_PA_EnvFinalACC.HasValue)) { #region MOC项目 //MOC项目:最晚的①竣工图接收日期②商务关闭日期③主控文档更新日期④剩余材料登记 if (eproject.ProjectControl_JobType == "MOC") { List closeDateLists = new List(); var built = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D02_AS-BUILT");//竣工图接收日期 if (built != null) { if (built.ReceiveHC.HasValue) { closeDateLists.Add(Convert.ToDateTime(built.ReceiveHC)); } } var md = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D03_MD");//主控文档更新日期 if (md != null) { if (md.ReceivePDF.HasValue) { closeDateLists.Add(Convert.ToDateTime(md.ReceivePDF)); } } if (eproject.ProjectControl_BC_CloseDate.HasValue) { closeDateLists.Add(Convert.ToDateTime(eproject.ProjectControl_BC_CloseDate));//商务关闭日期 } if (eproject.CM_Date_of_Registration.HasValue) { closeDateLists.Add(Convert.ToDateTime(eproject.CM_Date_of_Registration));//剩余材料登记 } closeDateLists.Sort(); if (closeDateLists.Count == 4) { eproject.ProjectControl_ClosedDate = closeDateLists[3]; eproject.ProjectControl_JobStatus = "Closed"; } } #endregion #region 类型为项目和小型投资 //类型为项目和小型投资:最晚的①竣工图接收日期②商务关闭日期③主控文档更新日期④C类尾项消项日期⑤机械竣工签署日期⑥剩余材料登记⑦计划具备开车条件日期⑧大于100万需要FC签署日期 else if (eproject.ProjectControl_JobType == "Small Invest" || eproject.ProjectControl_JobType == "Projects") { List closeDateLists = new List(); var built = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D02_AS-BUILT"); if (built != null) { if (built.ReceiveHC.HasValue) { closeDateLists.Add(Convert.ToDateTime(built.ReceiveHC));//竣工图接收日期 } } if (eproject.ProjectControl_BC_CloseDate.HasValue) { closeDateLists.Add(Convert.ToDateTime(eproject.ProjectControl_BC_CloseDate));//商务关闭日期 } var md = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D03_MD"); if (md != null) { if (md.ReceivePDF.HasValue) { closeDateLists.Add(Convert.ToDateTime(md.ReceivePDF));//主控文档更新日期 } } if (eproject.CM_Punch_CKilledDate.HasValue) { closeDateLists.Add(Convert.ToDateTime(eproject.CM_Punch_CKilledDate));//C类尾项消项日期 } var mc = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D11_MC"); if (mc != null) { if (mc.ReceiveHC.HasValue) { closeDateLists.Add(Convert.ToDateTime(mc.ReceiveHC));//机械竣工签署日期 } } if (eproject.CM_Date_of_Registration.HasValue) { closeDateLists.Add(Convert.ToDateTime(eproject.CM_Date_of_Registration));//剩余材料登记 } var rfsu = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D12_RFSU"); if (rfsu != null) { if (rfsu.ReceiveHC.HasValue) { closeDateLists.Add(Convert.ToDateTime(mc.ReceiveHC));//计划具备开车条件日期 } } // 大于1000000需要FC签署日期 if (eproject.ProjectControl_OrginalBudget != null && eproject.ProjectControl_OrginalBudget > 1000000) { var fc = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D30_FC"); if (fc != null) { if (fc.ReceiveHC.HasValue) { closeDateLists.Add(Convert.ToDateTime(fc.ReceiveHC));//FC签署日期 } } closeDateLists.Sort(); if (closeDateLists.Count == 8) { eproject.ProjectControl_ClosedDate = closeDateLists[7]; eproject.ProjectControl_JobStatus = "Closed"; } } else { closeDateLists.Sort(); if (closeDateLists.Count == 7) { eproject.ProjectControl_ClosedDate = closeDateLists[6]; eproject.ProjectControl_JobStatus = "Closed"; } } } #endregion #region 不用了 //大于100万的项目:最晚的①竣工图接收日期②商务关闭日期③主控文档更新日期④C类尾项消项日期⑤机械竣工签署日期⑥FC签署日期⑦剩余材料登记⑧计划具备开车条件日期 //else if (eproject.ProjectControl_JobType == "Projects") //{ // List closeDateLists = new List(); // var built = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D02_AS-BUILT"); // if (built != null) // { // if (built.ReceiveHC.HasValue) // { // closeDateLists.Add(Convert.ToDateTime(built.ReceiveHC));//竣工图接收日期 // } // } // if (eproject.ProjectControl_BC_CloseDate.HasValue) // { // closeDateLists.Add(Convert.ToDateTime(eproject.ProjectControl_BC_CloseDate));//商务关闭日期 // } // var md = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D03_MD"); // if (md != null) // { // if (md.ReceivePDF.HasValue) // { // closeDateLists.Add(Convert.ToDateTime(md.ReceivePDF));//主控文档更新日期 // } // } // if (eproject.CM_Punch_CKilledDate.HasValue) // { // closeDateLists.Add(Convert.ToDateTime(eproject.CM_Punch_CKilledDate));//C类尾项消项日期 // } // var mc = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D11_MC"); // if (mc != null) // { // if (mc.ReceiveHC.HasValue) // { // closeDateLists.Add(Convert.ToDateTime(mc.ReceiveHC));//机械竣工签署日期 // } // } // var fc = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D30_FC"); // if (fc != null) // { // if (fc.ReceiveHC.HasValue) // { // closeDateLists.Add(Convert.ToDateTime(fc.ReceiveHC));//FC签署日期 // } // } // if (eproject.CM_Date_of_Registration.HasValue) // { // closeDateLists.Add(Convert.ToDateTime(eproject.CM_Date_of_Registration));//剩余材料登记 // } // var rfsu = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D12_RFSU"); // if (rfsu != null) // { // if (rfsu.ReceiveHC.HasValue) // { // closeDateLists.Add(Convert.ToDateTime(mc.ReceiveHC));//计划具备开车条件日期 // } // } // closeDateLists.Sort(); // if (closeDateLists.Count == 8) // { // eproject.ProjectControl_ClosedDate = closeDateLists[7]; // eproject.ProjectControl_JobStatus = "Closed"; // } //} #endregion #region 其他类项目 //其他类项目:最晚的①竣工图接收日期②商务关闭日期③主控文档更新日期 else if (eproject.ProjectControl_JobType == "Other") { List closeDateLists = new List(); var built = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D02_AS-BUILT"); if (built != null) { if (built.ReceiveHC.HasValue) { closeDateLists.Add(Convert.ToDateTime(built.ReceiveHC));//竣工图接收日期 } } if (eproject.ProjectControl_BC_CloseDate.HasValue) { closeDateLists.Add(Convert.ToDateTime(eproject.ProjectControl_BC_CloseDate));//商务关闭日期 } var md = BLL.TDCService.GetTDCByEprojectId(eproject.EProjectId, "D03_MD"); if (md != null) { if (md.ReceivePDF.HasValue) { closeDateLists.Add(Convert.ToDateTime(md.ReceivePDF));//主控文档更新日期 } } closeDateLists.Sort(); if (closeDateLists.Count == 3) { eproject.ProjectControl_ClosedDate = closeDateLists[2]; eproject.ProjectControl_JobStatus = "Closed"; } } #endregion } if (epro.ProjectControl_JobStatus != eproject.ProjectControl_JobStatus) { operationLog += "Job Status 由" + epro.ProjectControl_JobStatus + "修改为" + eproject.ProjectControl_JobStatus + ","; } operationLog += "操作成功!"; BLL.Sys_LogService.AddLog(this.CurrUser.UserId, operationLog); epro.EProjectId = eproject.EProjectId; BLL.EProjectService.UpdateProjectJobStatus(epro); } #endregion #region 邮件发送代码 //--------邮件发送代码开始----- Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId); if (ep != null) { //压力容器报备提醒 if (this.cbPM_PressureVessel.Checked && ep.ProjectControl_JobStatus.Equals("In Construction")) { string title = epro.ProjectControl_JobNo + "-压力管道报备提醒"; var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(title) && x.EmailStatus.Contains("发送成功") select x; if (ema.Count() == 0) { NameValueCollection nameValue = new NameValueCollection(); nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim()); nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim()); EmailSendMessage(eproject, BLL.Const.WPRString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString); } } //压力容器注册提醒 if (this.cbPM_PressureVessel.Checked && ep.ProjectControl_JobStatus.Equals("MC")) { string title = epro.ProjectControl_JobNo + "-压力容器注册提醒"; var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(title) && x.EmailStatus.Contains("发送成功") select x; if (ema.Count() == 0) { NameValueCollection nameValue = new NameValueCollection(); string Notile = ep.ProjectControl_JobTitle.ToString(); nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim()); nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim()); EmailSendMessage(eproject, BLL.Const.PVRRString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString); if (ep.CM_MA_MC.HasValue) //Pressure Vessel的PLAN时间自动 = MC + 3个月 { ep.EProjectId = eprojectId; ep.PM_PP_PressureVessel = ep.CM_MA_MC.Value.AddMonths(3); BLL.EProjectService.UpdateProjectJobTime(ep); } } } //压力管道报备提醒 if (this.cbPM_PressurePiping.Checked && ep.ProjectControl_JobStatus.Equals("In Construction")) { string title = epro.ProjectControl_JobNo + "-压力管道报备提醒"; var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(title) && x.EmailStatus.Contains("发送成功") select x; if (ema.Count() == 0) { NameValueCollection nameValue = new NameValueCollection(); nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim()); nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim()); EmailSendMessage(eproject, BLL.Const.WPPString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString); } } if (this.cbPM_SQIB.Checked)//QIB监检提醒 { string title = epro.ProjectControl_JobNo + "-QIB监检提醒"; var ema = from x in Funs.DB.Email_SendLog where x.EmailTile.Contains(title) && x.EmailStatus.Contains("发送成功") select x; if (ema.Count() == 0) { NameValueCollection nameValue = new NameValueCollection(); nameValue.Add("projectName", eproject.ProjectControl_JobTitle.ToString().Trim()); nameValue.Add("projectNo", eproject.ProjectControl_JobNo.ToString().Trim()); EmailSendMessage(eproject, BLL.Const.QIBIRString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString); } } } //--------邮件发送代码结束----- #endregion ShowNotify("Save Successfully!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } #endregion #region 选择日期勾选复选框 protected void txtPM_PressureVessel_TextChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.txtPM_PressureVessel.Text)) { this.cbPM_PressureVessel.Checked = true; } else { this.cbPM_PressureVessel.Checked = false; } } protected void txtPM_PressurePiping_TextChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.txtPM_PressurePiping.Text)) { this.cbPM_PressurePiping.Checked = true; } else { this.cbPM_PressurePiping.Checked = false; } } protected void txtPM_SQIB_TextChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.txtPM_SQIB.Text)) { this.cbPM_SQIB.Checked = true; } else { this.cbPM_SQIB.Checked = false; } } #endregion #region 勾选复选框加载默认日期 protected void PressureVessel_OnCheckedChanged(object sender, EventArgs e) { string eprojectId = Request.Params["EProjectId"]; if (!string.IsNullOrEmpty(eprojectId)) { Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId); //this.txtPM_PressurePiping.Text = ep.PM_PP_PressurePiping.HasValue ? Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}") : ""; string sQIB = string.Empty; if (cbPM_PressureVessel.Checked) { if (!ep.PM_PP_PressureVessel.HasValue) { if (ep.CM_MA_MC.HasValue) { txtPM_PressureVessel.Text = (ep.CM_MA_MC.Value.AddMonths(3)).ToString("{yyyy-MM-dd}"); } else { txtPM_PressureVessel.Text = ""; } } else { txtPM_PressureVessel.Text = Convert.ToDateTime(ep.PM_PP_PressureVessel).ToString("{yyyy-MM-dd}"); } } else { if (ep.PM_PP_PressureVessel.HasValue) { txtPM_PressureVessel.Text = Convert.ToDateTime(ep.PM_PP_PressureVessel).ToString("{yyyy-MM-dd}"); } else { txtPM_PressureVessel.Text = ""; } } } } protected void PressurePiping_OnCheckedChanged(object sender, EventArgs e) { string eprojectId = Request.Params["EProjectId"]; if (!string.IsNullOrEmpty(eprojectId)) { Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId); //this.txtPM_PressurePiping.Text = ep.PM_PP_PressurePiping.HasValue ? Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}") : ""; string pp = string.Empty; if (cbPM_PressurePiping.Checked) { DateTime curDate = DateTime.Now.Date; int curYear = curDate.Year; if (!ep.PM_PP_PressurePiping.HasValue) { if (curDate <= Convert.ToDateTime(curDate.Year.ToString() + "-03-30")) { pp = curDate.Year.ToString() + "-03-30"; } else { pp = (curDate.Year + 1).ToString() + "-03-30"; } txtPM_PressurePiping.Text = pp; } else { txtPM_PressurePiping.Text = Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}"); } } else { if (ep.PM_PP_PressurePiping.HasValue) { txtPM_PressurePiping.Text = Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}"); } else { txtPM_PressurePiping.Text = ""; } } } } protected void SQIB_OnCheckedChanged(object sender, EventArgs e) { string eprojectId = Request.Params["EProjectId"]; if (!string.IsNullOrEmpty(eprojectId)) { Model.Editor_EProject ep = BLL.EProjectService.GeteProjectById(eprojectId); //this.txtPM_PressurePiping.Text = ep.PM_PP_PressurePiping.HasValue ? Convert.ToDateTime(ep.PM_PP_PressurePiping).ToString("{yyyy-MM-dd}") : ""; string sQIB = string.Empty; if (cbPM_SQIB.Checked) { if (!ep.PM_PP_SQIB.HasValue) { if (ep.ProjectControl_MS_MC.HasValue) { txtPM_SQIB.Text = (ep.ProjectControl_MS_MC.Value.AddMonths(2)).ToString("{yyyy-MM-dd}"); } else { txtPM_SQIB.Text = ""; } } else { txtPM_SQIB.Text = Convert.ToDateTime(ep.PM_PP_SQIB).ToString("{yyyy-MM-dd}"); } } else { if (ep.PM_PP_SQIB.HasValue) { txtPM_SQIB.Text = Convert.ToDateTime(ep.PM_PP_SQIB).ToString("{yyyy-MM-dd}"); } else { txtPM_SQIB.Text = ""; } } } } #endregion #region 计算进度 /// /// 计算进度 /// /// /// protected void btnCalculated_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtPM_LLEP_RevisedStart.Text.Trim()) && !string.IsNullOrEmpty(txtPM_LLEP_RevisedEnd.Text.Trim())) { decimal llep1 = 0; decimal llep2 = 0; llep1 = (DateTime.Now - Convert.ToDateTime(txtPM_LLEP_RevisedStart.Text.Trim())).Days; llep2 = (Convert.ToDateTime(txtPM_LLEP_RevisedEnd.Text.Trim()) - Convert.ToDateTime(txtPM_LLEP_RevisedStart.Text.Trim())).Days; if (llep2 != 0) { decimal progress = llep1 / llep2 * 100; if (progress > 100) { txtPM_LLEP_ActualProgress.Text = "100"; } else if (progress < 0) { txtPM_LLEP_ActualProgress.Text = "0"; } else { txtPM_LLEP_ActualProgress.Text = progress.ToString(); } } } } #endregion #region 权限设置 /// /// 菜单按钮权限 /// private void GetButtonPower() { var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.UserId, BLL.Const.PMEditorMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnSave)) { this.btnSave.Hidden = false; this.btnCalculated.Hidden = false; } } } #endregion #region 格式化字符串 /// /// 获取TDC中IFC专业 /// /// /// protected string ConvertActualIFC(object dis) { if (dis != null) { string eprojectId = Request.Params["EProjectId"]; var tdc = (from x in Funs.DB.Editor_TDC where x.EProjectId == eprojectId && x.Type == "D01_IFC" && x.Disc.Contains(dis.ToString()) select x).FirstOrDefault(); if (tdc != null) { return string.Format("{0:yyyy-MM-dd}", tdc.ReceiveHC); } } return null; } #endregion } }