2024-05-08 11:01:54 +08:00
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 ) ;
2024-06-21 17:46:05 +08:00
//txtHold.Text = ep.Job_Hold == null ? "" : string.Format("{0:yyyy-MM-dd}", ep.Job_Hold);
2024-05-08 11:01:54 +08:00
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 ( ) ) ;
2024-06-21 17:46:05 +08:00
//eproject.Job_Hold = Funs.GetNewDateTime(this.txtHold.Text.Trim());
2024-05-08 11:01:54 +08:00
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";
//}
2024-10-10 15:14:29 +08:00
//当项目类型为projects或moc时PM中Milestone(Actual)的Project Approval不为空, 并且Resource_Plan有记录时, 状态为Not Approved 修改于2024.07.04
2024-05-08 11:01:54 +08:00
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-10-10 15:14:29 +08:00
// 增加于2024.07.03
if ( epro . ProjectControl_JobType = = "Other" & & epro . PM_MA_ProjectApproval . HasValue & & ! epro . CM_MA_MC . HasValue )
2024-05-08 11:01:54 +08:00
{
2024-10-10 15:14:29 +08:00
eproject . ProjectControl_JobStatus = "On Going" ;
2024-05-08 11:01:54 +08:00
}
2024-10-10 15:14:29 +08:00
// 去除于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";
// }
//}
2024-05-08 11:01:54 +08:00
//去掉 同时满足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);
2024-10-10 15:14:29 +08:00
// 后加条件 //当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 )
2024-05-08 11:01:54 +08:00
{
if ( eproject . ProjectControl_JobStatus = = null | | eproject . ProjectControl_JobStatus = = "" | | eproject . ProjectControl_JobStatus = = "On Going" | | eproject . ProjectControl_JobStatus = = "Study" | | eproject . ProjectControl_JobStatus = = "Not Start" )
{
2024-10-10 15:14:29 +08:00
epro . ProjectControl_JobStatus = "Detailed Design" ;
2024-05-08 11:01:54 +08:00
}
}
// 后加: 当PM中Milestone(Actual)的Project Approval不为空并且IFC ALL的ReceiveHC不为空, 状态为In Procurement
2025-01-16 17:02:02 +08:00
//或者当PM中Milestone(Actual)的Project Approval不为空并且IFC NA的ReceiveHC不为空, 状态为In Procurement
2024-05-08 11:01:54 +08:00
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 ;
2025-01-16 17:02:02 +08:00
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 ) )
2024-05-08 11:01:54 +08:00
{
2024-10-10 15:14:29 +08:00
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" )
2024-05-08 11:01:54 +08:00
{
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"
2024-10-10 15:14:29 +08:00
| | eproject . ProjectControl_JobStatus = = "Detailed Design" | | eproject . ProjectControl_JobStatus = = "On Going"
2024-05-08 11:01:54 +08:00
| | 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
}
}