1227 lines
67 KiB
C#
1227 lines
67 KiB
C#
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 定义集合
|
||
/// <summary>
|
||
/// 定义计划工程师明细集合
|
||
/// </summary>
|
||
private List<Model.Editor_PM> projectControlLists = new List<Model.Editor_PM>();
|
||
#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<Model.Editor_PM> 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绑定事件
|
||
/// <summary>
|
||
/// Grid1中PID、Document、Cost Estimate不允许操作
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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 保存
|
||
/// <summary>
|
||
/// 保存按钮
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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<Model.Editor_PM> list = new List<Model.Editor_PM>();
|
||
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<JObject>("values");
|
||
|
||
DateTime? ss = Funs.GetNewDateTime(values.Value<string>("SchStart").ToString());
|
||
DateTime? se = Funs.GetNewDateTime(values.Value<string>("SchEnd").ToString());
|
||
DateTime? rs = Funs.GetNewDateTime(values.Value<string>("RevisedStart").ToString());
|
||
DateTime? re = Funs.GetNewDateTime(values.Value<string>("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<string>("RevisedStartIsAct"));
|
||
pm.RevisedEndIsAct= Convert.ToBoolean(values.Value<string>("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<DateTime> closeDateLists = new List<DateTime>();
|
||
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<DateTime> closeDateLists = new List<DateTime>();
|
||
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<DateTime> closeDateLists = new List<DateTime>();
|
||
// 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<DateTime> closeDateLists = new List<DateTime>();
|
||
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 计算进度
|
||
/// <summary>
|
||
/// 计算进度
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
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 权限设置
|
||
/// <summary>
|
||
/// 菜单按钮权限
|
||
/// </summary>
|
||
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 格式化字符串
|
||
/// <summary>
|
||
/// 获取TDC中IFC专业
|
||
/// </summary>
|
||
/// <param name="dis"></param>
|
||
/// <returns></returns>
|
||
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
|
||
}
|
||
} |