This commit is contained in:
commit
b3bc5c357d
|
|
@ -0,0 +1,949 @@
|
|||
namespace FineUIPro.Web
|
||||
{
|
||||
using BLL;
|
||||
using Model;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Specialized;
|
||||
using System.Configuration;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Web;
|
||||
using System.Data;
|
||||
using System.Data.SqlClient;
|
||||
|
||||
public class Global : System.Web.HttpApplication
|
||||
{
|
||||
/// <summary>
|
||||
/// 自动启用插件标志文件路径
|
||||
/// </summary>
|
||||
private static string applicationActiveFlagFilePhysicalPath = String.Empty;
|
||||
|
||||
protected void Application_Start(object sender, EventArgs e)
|
||||
{
|
||||
Application["OnlineUserCount"] = 0;
|
||||
try
|
||||
{
|
||||
Funs.RootPath = Server.MapPath("~/");
|
||||
Funs.ClientId = ConfigurationManager.AppSettings["clientId"];
|
||||
Funs.ClientSecret = ConfigurationManager.AppSettings["clientSecret"];
|
||||
Funs.Redirect_url = ConfigurationManager.AppSettings["redirect_url"];
|
||||
|
||||
// 日志文件所在目录
|
||||
ErrLogInfo.DefaultErrLogFullPath = Server.MapPath("~/ErrLog.txt");
|
||||
//Funs.ConnString = ConfigurationManager.AppSettings["ConnectionString"];
|
||||
Funs.SystemName = ConfigurationManager.AppSettings["SystemName"];
|
||||
Funs.LdapUrl = ConfigurationManager.AppSettings["LdapUrl"];
|
||||
Funs.ConnString = ConfigurationManager.ConnectionStrings["EProjectDBConnectionString"].ConnectionString;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
ErrLogInfo.WriteLog(ex);
|
||||
AppDomain.Unload(AppDomain.CurrentDomain);
|
||||
}
|
||||
|
||||
//每年1月份邮件提醒前一年项目状态为MC的项目,同时PM / EM编辑器的Pressure Piping打勾
|
||||
if (DateTime.Now.Month == 1 && DateTime.Now.Day == 1)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//1小时执行一次
|
||||
aTimer.Interval = 3600000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(PressurePiping);
|
||||
}
|
||||
|
||||
//当Const.Kick - off Meeting不为空时,每月20号发送提醒邮件给CM,当MC不为空时,停止发送提醒邮件。
|
||||
if (DateTime.Now.Day == 20)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//1小时执行一次
|
||||
aTimer.Interval = 3600000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(ConstInfoMaintenance);
|
||||
}
|
||||
|
||||
//计划:邮件26号自动发送提醒,下月5号冻结
|
||||
if (DateTime.Now.Day == 26)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//1小时执行一次
|
||||
aTimer.Interval = 3600000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(PlanProject);
|
||||
}
|
||||
|
||||
//实际:邮件21号自动发送提醒,当月25号冻结。
|
||||
if (DateTime.Now.Day == 21)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//1小时执行一次
|
||||
aTimer.Interval = 3600000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(ActualProject);
|
||||
}
|
||||
//项目状态MC之后1个月时(由5个月改为1个月)
|
||||
if (DateTime.Now.Hour == 10)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//1小时执行一次
|
||||
aTimer.Interval = 3600000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(MCEmial);
|
||||
}
|
||||
|
||||
//填写第二张资源时,第一张资源预留一个月的时候填写人工时(不用了)
|
||||
//以Phase为Study/Concept Planning且PM_MA_ProjectApproval+一个月≤当前时间,人工时Disabled
|
||||
if (DateTime.Now.Hour == 10)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//1小时执行一次
|
||||
aTimer.Interval = 60 * 60 * 1000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(UpdateManHourDisabled);
|
||||
}
|
||||
|
||||
// MC证书提醒
|
||||
if ((DateTime.Now.Day == 1 || DateTime.Now.Day == 16) && DateTime.Now.Hour == 14)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//1小时执行一次
|
||||
aTimer.Interval = 3600000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(MCSigned_AutoSend);
|
||||
}
|
||||
|
||||
// FC证书提醒
|
||||
if ((DateTime.Now.Day == 1 || DateTime.Now.Day == 16) && DateTime.Now.Hour == 10)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//1小时执行一次
|
||||
aTimer.Interval = 3600000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(FCSigned_AutoSend);
|
||||
}
|
||||
|
||||
// Punch_Check_Send
|
||||
if (DateTime.Now.Hour == 10)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//1小时执行一次
|
||||
aTimer.Interval = 60 * 60 * 1000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(Punch_Check_Send);
|
||||
}
|
||||
|
||||
// Design Input
|
||||
if (DateTime.Now.Hour == 9)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//2小时执行一次
|
||||
aTimer.Interval = 120 * 60 * 1000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(Design_Input_Send);
|
||||
}
|
||||
|
||||
// 项目达到条件自动关闭
|
||||
if (DateTime.Now.Hour == 16)
|
||||
{
|
||||
System.Timers.Timer aTimer = new System.Timers.Timer();
|
||||
//2小时执行一次
|
||||
aTimer.Interval = 120 * 60 * 1000;
|
||||
aTimer.Enabled = true;
|
||||
aTimer.Start();
|
||||
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(Auto_Close);
|
||||
}
|
||||
}
|
||||
|
||||
#region 压力管道注册提醒
|
||||
/// <summary>
|
||||
/// 每年1月份邮件提醒前一年项目状态为MC的项目,同时PM/EM编辑器的Pressure Piping打勾
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void PressurePiping(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
int m = DateTime.Now.Month;
|
||||
int d = DateTime.Now.Day;
|
||||
int h = DateTime.Now.Hour;
|
||||
|
||||
if (m == 1 && d == 1 && h == 10)
|
||||
{
|
||||
int y = Convert.ToInt32(DateTime.Now.ToString("yy")) - 1;
|
||||
List<Model.Editor_EProject> eplist = new List<Model.Editor_EProject>();
|
||||
eplist = (from x in Funs.DB.Editor_EProject where x.PM_PressurePipingChecked == true && x.ProjectControl_JobStatus == "MC" && x.ProjectControl_JobNo.Substring(0, 2) == y.ToString() select x).ToList();
|
||||
|
||||
if (eplist.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < eplist.Count; i++)
|
||||
{
|
||||
if (eplist[i].PM_PressurePipingChecked == true)
|
||||
{
|
||||
PageBase bg = new PageBase();
|
||||
NameValueCollection nameValue = new NameValueCollection();
|
||||
nameValue.Add("projectNo", eplist[i].ProjectControl_JobNo.ToString());
|
||||
nameValue.Add("projectName", eplist[i].ProjectControl_JobTitle.ToString());
|
||||
bg.EmailSendMessage(eplist[i], BLL.Const.PPRRString, nameValue, BLL.Const.CustomString, BLL.Const.NoprojectString);
|
||||
|
||||
//Pressure Piping的PLAN自动 = 次年3月1日
|
||||
Editor_EProject editor_EProject = BLL.EProjectService.GeteProjectById(eplist[i].EProjectId);
|
||||
if (editor_EProject != null)
|
||||
{
|
||||
editor_EProject = eplist[i];
|
||||
editor_EProject.PM_PP_PressurePiping = Funs.GetNewDateTime(DateTime.Now.Year + "-03-01");
|
||||
BLL.EProjectService.UpdateProject(editor_EProject, "PM");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 施工信息维护提醒
|
||||
/// <summary>
|
||||
/// 当Const.Kick - off Meeting不为空时,每月20号发送提醒邮件给CM,当MC不为空时,停止发送提醒邮件
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ConstInfoMaintenance(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
int d = DateTime.Now.Day;
|
||||
int h = DateTime.Now.Hour;
|
||||
if (d == 20 && h == 9)
|
||||
{
|
||||
List<Model.Editor_EProject> eplist = new List<Model.Editor_EProject>();
|
||||
eplist = (from x in Funs.DB.Editor_EProject where x.CM_KickOffMetting.HasValue && !x.CM_MA_MC.HasValue select x).ToList();
|
||||
if (eplist.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < eplist.Count; i++)
|
||||
{
|
||||
PageBase bg = new PageBase();
|
||||
NameValueCollection nameValue = new NameValueCollection();
|
||||
nameValue.Add("projectNo", eplist[i].ProjectControl_JobNo.ToString());
|
||||
nameValue.Add("projectName", eplist[i].ProjectControl_JobTitle.ToString());
|
||||
bg.EmailSendMessage(eplist[i], BLL.Const.CIMRString, nameValue, BLL.Const.CustomString, BLL.Const.projectString);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 计划:邮件26号自动发送提醒,下月5号冻结
|
||||
/// <summary>
|
||||
/// 计划:邮件26号自动发送提醒,下月5号冻结
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void PlanProject(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
int d = DateTime.Now.Day;
|
||||
int h = DateTime.Now.Hour;
|
||||
if (d == 26 && h == 9)
|
||||
{
|
||||
PageBase bg = new PageBase();
|
||||
bg.EmailSendMessage(null, BLL.Const.SASString, null, BLL.Const.NoCustomString, BLL.Const.NoprojectString);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 实际:邮件21号自动发送提醒,当月25号冻结。
|
||||
/// <summary>
|
||||
/// 实际:邮件21号自动发送提醒,当月25号冻结。
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void ActualProject(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
int d = DateTime.Now.Day;
|
||||
int h = DateTime.Now.Hour;
|
||||
if (d == 21 && h == 9)
|
||||
{
|
||||
PageBase bg = new PageBase();
|
||||
bg.EmailSendMessage(null, BLL.Const.AASString, null, BLL.Const.NoCustomString, BLL.Const.NoprojectString);
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 项目状态MC之后3个月时发邮件,4个月人工时填写关闭
|
||||
/// <summary>
|
||||
/// 项目状态MC之后1个月时(由5个月改为1个月)
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void MCEmial(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
if (DateTime.Now.Hour == 10)
|
||||
{
|
||||
var eplist = (from x in Funs.DB.Editor_EProject
|
||||
where x.CM_MA_MC.Value.AddMonths(3).Year == DateTime.Now.Year
|
||||
&& x.CM_MA_MC.Value.AddMonths(3).Month == DateTime.Now.Month
|
||||
&& x.CM_MA_MC.Value.AddMonths(3).Day == DateTime.Now.Day
|
||||
select x).ToList();
|
||||
if (eplist.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < eplist.Count; i++)
|
||||
{
|
||||
PageBase bg = new PageBase();
|
||||
NameValueCollection nameValue = new NameValueCollection();
|
||||
nameValue.Add("projectName", eplist[i].ProjectControl_JobTitle.ToString().Trim());
|
||||
nameValue.Add("projectNo", eplist[i].ProjectControl_JobNo.ToString().Trim());
|
||||
nameValue.Add("CM_MA_MC", Convert.ToDateTime(eplist[i].CM_MA_MC).AddMonths(4).ToString("yyyy-MM-dd"));
|
||||
nameValue.Add("BUCode", eplist[i].ProjectControl_BUCode);
|
||||
bg.EmailSendMessage(eplist[i], BLL.Const.FIRILHString, nameValue, BLL.Const.CustomString, BLL.Const.projectString2);
|
||||
}
|
||||
}
|
||||
}
|
||||
//项目的人员的人工时自动关闭(MC时间 + 4个月-- >> 项目成员的人工时disable置为1)(由原来的6个月改为4个月)
|
||||
var eplist1 = (from x in Funs.DB.Editor_EProject
|
||||
where x.CM_MA_MC.Value.AddMonths(4).Year == DateTime.Now.Year
|
||||
&& x.CM_MA_MC.Value.AddMonths(4).Month == DateTime.Now.Month
|
||||
&& x.CM_MA_MC.Value.AddMonths(4).Day == DateTime.Now.Day
|
||||
select x).ToList();
|
||||
if (eplist1.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < eplist1.Count; i++)
|
||||
{
|
||||
List<Model.ManHours_Plan> manHours_Plans = (from x in Funs.DB.ManHours_Plan where x.EProjectId == eplist1[i].EProjectId select x).ToList();
|
||||
if (manHours_Plans.Count > 0)
|
||||
{
|
||||
for (int a = 0; a < manHours_Plans.Count; a++)
|
||||
{
|
||||
var manHours_Plan = Funs.DB.ManHours_Plan.FirstOrDefault(x => x.ManHoursPlanId == manHours_Plans[a].ManHoursPlanId);
|
||||
if (manHours_Plan != null)
|
||||
{
|
||||
manHours_Plan.AccountDisabled = 1;
|
||||
Funs.DB.SubmitChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 1、填写第二张资源时,第一张资源预留一个月的时候填写人工时 2、Cancelled或Hold也预留一个月
|
||||
/// <summary>
|
||||
/// --填写第二张资源时,第一张资源预留一个月的时候填写人工时
|
||||
/// MOC和Projects项目,第一张资源Phase为Study/Concept Planning时PM_MA_ProjectApproval+一个月≤当前时间AccountDisabled为1
|
||||
/// MOC和Projects项目
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
private void UpdateManHourDisabled(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
//有资源的人工时
|
||||
//var eprojects = (from x in Funs.DB.Resource_Plan select x).GroupBy(x => x.EProjectId).ToList();
|
||||
//if (eprojects != null)
|
||||
//{
|
||||
// foreach (var epr in eprojects)
|
||||
// {
|
||||
// var planLists = (from x in Funs.DB.Resource_Plan
|
||||
// join y in Funs.DB.Editor_EProject on x.EProjectId equals y.EProjectId
|
||||
// where x.EProjectId == epr.Key && (y.ProjectControl_JobType == "Projects" || y.ProjectControl_JobType == "MOC")
|
||||
// && x.Phase == "Study/Concept Planning"
|
||||
// orderby x.CreateDate ascending
|
||||
// select new { x.ResourcePlanId, y.PM_MA_ProjectApproval, x.WO }).ToList();
|
||||
// //if (planLists.Count == 2)
|
||||
// //{
|
||||
// if (planLists[0].PM_MA_ProjectApproval.HasValue && planLists[0].PM_MA_ProjectApproval.Value.AddMonths(1) <= DateTime.Now)
|
||||
// {
|
||||
// string resourcePlanId = planLists[0].ResourcePlanId.ToString();
|
||||
// List<ManHours_Plan> manHours_Plan = (from x in Funs.DB.ManHours_Plan where x.EProjectId == epr.Key && x.ResourcePlanId == resourcePlanId select x).ToList();
|
||||
// foreach (var item in manHours_Plan)
|
||||
// {
|
||||
// item.AccountDisabled = 1;
|
||||
// Funs.DB.SubmitChanges();
|
||||
// }
|
||||
// }
|
||||
// //}
|
||||
// }
|
||||
//}
|
||||
//Phase为Study/Concept Planning的人工时Disabled
|
||||
var eprojectLists = (from x in Funs.DB.Editor_EProject
|
||||
where (x.ProjectControl_JobType == "Projects" || x.ProjectControl_JobType == "MOC")
|
||||
&& x.PM_MA_ProjectApproval.HasValue && x.PM_MA_ProjectApproval.Value.AddMonths(1) <= DateTime.Now
|
||||
select x).ToList();
|
||||
foreach (var pro in eprojectLists)
|
||||
{
|
||||
List<ManHours_Plan> manHours_Plan = (from x in Funs.DB.ManHours_Plan where x.EProjectId == pro.EProjectId && x.Phase.Contains("Study/Concept Planning") select x).ToList();
|
||||
foreach (var item in manHours_Plan)
|
||||
{
|
||||
item.AccountDisabled = 1;
|
||||
Funs.DB.SubmitChanges();
|
||||
}
|
||||
}
|
||||
|
||||
var epList = from x in Funs.DB.Editor_EProject
|
||||
where (x.ProjectControl_PC_CancelDate.HasValue && x.ProjectControl_PC_CancelDate.Value.AddMonths(1) <= DateTime.Now && x.ProjectControl_PC_CancelDate.Value.AddMonths(2) >= DateTime.Now)
|
||||
|| (x.Job_Hold.HasValue && x.Job_Hold.Value.AddMonths(1) <= DateTime.Now && x.Job_Hold.Value.AddMonths(2) >= DateTime.Now)
|
||||
select x;
|
||||
foreach (var ep in epList)
|
||||
{
|
||||
var manHours_Plan = (from x in Funs.DB.ManHours_Plan where x.EProjectId == ep.EProjectId && x.AccountDisabled != 1 select x).ToList();
|
||||
if (manHours_Plan.Count > 0)
|
||||
{
|
||||
foreach (var item in manHours_Plan)
|
||||
{
|
||||
item.AccountDisabled = 1;
|
||||
Funs.DB.SubmitChanges();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region MC证书提醒
|
||||
private void MCSigned_AutoSend(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
string strSql = @"SELECT pro.EProjectId,pro.ProjectControl_JobNo,pro.ProjectControl_JobTitle,pro.ProjectControl_ConstManagerId
|
||||
FROM dbo.Editor_EProject pro
|
||||
WHERE pro.CM_MA_MC IS NOT NULL AND DATEDIFF(DAY,pro.CM_MA_MC,GETDATE())>30
|
||||
AND (pro.ProjectControl_JobType='Projects' OR pro.ProjectControl_JobType='Small Invest')
|
||||
AND pro.ProjectControl_JobStatus='MC'
|
||||
AND (SELECT COUNT(*) FROM dbo.Editor_TDC tdc
|
||||
WHERE tdc.EProjectId=pro.EProjectId AND tdc.[Type]='D11_MC' AND tdc.ReceiveHC IS NOT NULL)=0";
|
||||
DataTable dt = BLL.SQLHelper.GetDataTableRunText(strSql, null);
|
||||
if (dt.Rows.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < dt.Rows.Count; i++)
|
||||
{
|
||||
Model.Editor_EProject ep = new Editor_EProject();
|
||||
ep.EProjectId = dt.Rows[i]["EProjectId"].ToString();
|
||||
ep.ProjectControl_JobNo = dt.Rows[i]["ProjectControl_JobNo"].ToString();
|
||||
if (dt.Rows[i]["ProjectControl_ConstManagerId"] != null)
|
||||
{
|
||||
ep.ProjectControl_ConstManagerId = dt.Rows[i]["ProjectControl_ConstManagerId"].ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
ep.ProjectControl_ConstManagerId = string.Empty;
|
||||
}
|
||||
PageBase bg = new PageBase();
|
||||
NameValueCollection nameValue = new NameValueCollection();
|
||||
nameValue.Add("projectNo", dt.Rows[i]["ProjectControl_JobNo"].ToString());
|
||||
nameValue.Add("projectName", dt.Rows[i]["ProjectControl_JobTitle"].ToString());
|
||||
bg.EmailSendMessage(ep, BLL.Const.MCSigned, nameValue, BLL.Const.CustomString, BLL.Const.projectString4);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region FC证书提醒
|
||||
private void FCSigned_AutoSend(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
string strSql = @"SELECT pro.EProjectId,pro.ProjectControl_JobNo,pro.ProjectControl_JobTitle,pro.ProjectControl_ProjectManagerId
|
||||
FROM dbo.Editor_EProject pro
|
||||
WHERE pro.CM_MA_MC IS NOT NULL AND DATEDIFF(DAY,pro.CM_MA_MC,GETDATE())>83
|
||||
AND pro.ProjectControl_JobType='Projects' AND pro.ProjectControl_OrginalBudget>1000000
|
||||
AND pro.ProjectControl_JobStatus='MC'
|
||||
AND (SELECT COUNT(*) FROM dbo.Editor_TDC tdc
|
||||
WHERE tdc.EProjectId=pro.EProjectId AND tdc.[Type]='D30_FC' AND tdc.ReceiveHC IS NOT NULL)=0";
|
||||
DataTable dt = BLL.SQLHelper.GetDataTableRunText(strSql, null);
|
||||
if (dt.Rows.Count > 0)
|
||||
{
|
||||
for (int i = 0; i < dt.Rows.Count; i++)
|
||||
{
|
||||
Model.Editor_EProject ep = new Editor_EProject();
|
||||
ep.EProjectId = dt.Rows[i]["EProjectId"].ToString();
|
||||
ep.ProjectControl_JobNo = dt.Rows[i]["ProjectControl_JobNo"].ToString();
|
||||
if (dt.Rows[i]["ProjectControl_ProjectManagerId"] != null)
|
||||
{
|
||||
ep.ProjectControl_ConstManagerId = dt.Rows[i]["ProjectControl_ProjectManagerId"].ToString();
|
||||
}
|
||||
else
|
||||
{
|
||||
ep.ProjectControl_ConstManagerId = string.Empty;
|
||||
}
|
||||
PageBase bg = new PageBase();
|
||||
NameValueCollection nameValue = new NameValueCollection();
|
||||
nameValue.Add("projectNo", dt.Rows[i]["ProjectControl_JobNo"].ToString());
|
||||
nameValue.Add("projectName", dt.Rows[i]["ProjectControl_JobTitle"].ToString());
|
||||
bg.EmailSendMessage(ep, BLL.Const.FCSigned, nameValue, BLL.Const.CustomString, BLL.Const.projectString4);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Punch_Check_Send
|
||||
private void Punch_Check_Send(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
PageBase bg = new PageBase();
|
||||
|
||||
// 发送给CTECheckerName
|
||||
var punchCTEList = from x in Funs.DB.Editor_Punch
|
||||
join y in Funs.DB.Editor_EProject on x.EProjectId equals y.EProjectId
|
||||
where !x.CTECheckDate.HasValue && x.PlanedFinishDate.HasValue
|
||||
&& (x.CTECheckerId != null && x.CTECheckerId != "")
|
||||
&& (DateTime.Now.AddDays(7).Date == x.PlanedFinishDate.Value.Date
|
||||
|| DateTime.Now.AddDays(3).Date == x.PlanedFinishDate.Value.Date)
|
||||
select new
|
||||
{
|
||||
y.ProjectControl_JobNo,
|
||||
y.ProjectControl_JobTitle,
|
||||
x.CTECheckerId,
|
||||
x.CTECheckerName,
|
||||
x.TagNo,
|
||||
x.Description
|
||||
};
|
||||
if (punchCTEList.Count() > 0)
|
||||
{
|
||||
foreach (var p in punchCTEList)
|
||||
{
|
||||
NameValueCollection nameValue = new NameValueCollection();
|
||||
nameValue.Add("projectNo", p.ProjectControl_JobNo.ToString().Trim());
|
||||
nameValue.Add("projectName", p.ProjectControl_JobTitle.ToString().Trim());
|
||||
nameValue.Add("CheckName", p.CTECheckerName.Trim());
|
||||
nameValue.Add("TagNo", p.TagNo.Trim());
|
||||
nameValue.Add("Description", p.Description.Trim());
|
||||
Model.Sys_User sys_User = new Model.Sys_User();
|
||||
sys_User = BLL.Sys_UserService.GetUsersByUserId(p.CTECheckerId);
|
||||
List<Model.Sys_User> list = new List<Model.Sys_User>();
|
||||
list.Add(sys_User);
|
||||
bg.EmailSendMessage(BLL.Const.CCOCString, nameValue, BLL.Const.CustomString, list, "CTE Check");
|
||||
}
|
||||
}
|
||||
|
||||
// 发送给OwnerCheckerName 去掉
|
||||
//var punchOwnerList = from x in Funs.DB.Editor_Punch
|
||||
// join y in Funs.DB.Editor_EProject on x.EProjectId equals y.EProjectId
|
||||
// where !x.OwnerCheckDate.HasValue && x.CTECheckDate.HasValue
|
||||
// && (x.OwnerCheckerId != null && x.OwnerCheckerId != "")
|
||||
// && x.CTECheckDate.Value.AddDays(7).Date == DateTime.Now.Date
|
||||
// select new
|
||||
// {
|
||||
// y.ProjectControl_JobNo,
|
||||
// y.ProjectControl_JobTitle,
|
||||
// x.OwnerCheckerId,
|
||||
// x.OwnerCheckerName,
|
||||
// x.TagNo,
|
||||
// x.Description
|
||||
// };
|
||||
//if (punchOwnerList.Count() > 0)
|
||||
//{
|
||||
// foreach (var p in punchOwnerList)
|
||||
// {
|
||||
// NameValueCollection nameValue = new NameValueCollection();
|
||||
// nameValue.Add("projectNo", p.ProjectControl_JobNo.ToString().Trim());
|
||||
// nameValue.Add("projectName", p.ProjectControl_JobTitle.ToString().Trim());
|
||||
// nameValue.Add("CheckName", p.OwnerCheckerName.Trim());
|
||||
// nameValue.Add("TagNo", p.TagNo.Trim());
|
||||
// nameValue.Add("Description", p.Description.Trim());
|
||||
// Model.Sys_User sys_User = new Model.Sys_User();
|
||||
// sys_User = BLL.Sys_UserService.GetUsersByUserId(p.OwnerCheckerId);
|
||||
// List<Model.Sys_User> list = new List<Model.Sys_User>();
|
||||
// list.Add(sys_User);
|
||||
// bg.EmailSendMessage(BLL.Const.CCOCString, nameValue, BLL.Const.CustomString, list, "CTE Check");
|
||||
// }
|
||||
//}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 设计输入二次邮件提醒
|
||||
private void Design_Input_Send(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
PageBase bg = new PageBase();
|
||||
|
||||
// 1、 系统在项目计划(改为实际)批准当天自动给项目经理发送提醒邮件,提醒项目经理完成设计输入策划工作,并只适用于CTE设计的项目。
|
||||
var eprojectList = from x in BLL.Funs.DB.Editor_EProject
|
||||
where x.PM_General_CDI == "CTE" && x.ProjectControl_MS_Approval.HasValue &&
|
||||
x.ProjectControl_MS_Approval.Value.Date == DateTime.Now.Date
|
||||
select x;
|
||||
if (eprojectList.Count() > 0)
|
||||
{
|
||||
foreach (var eproject in eprojectList)
|
||||
{
|
||||
BLL.DesignInputService.DesignInputMailSend(eproject.EProjectId, true);
|
||||
NameValueCollection nameValue = new NameValueCollection();
|
||||
nameValue.Add("projectNo", eproject.ProjectControl_JobNo);
|
||||
nameValue.Add("IssuedDiscOrNo", eproject.ProjectControl_JobNo + "-" + eproject.ProjectControl_JobTitle);
|
||||
nameValue.Add("Person_Ch", "");
|
||||
nameValue.Add("Person_En", "");
|
||||
if (!string.IsNullOrEmpty(eproject.ProjectControl_ProjectManagerId))
|
||||
{
|
||||
Model.Sys_User sys_User = new Model.Sys_User();
|
||||
sys_User = BLL.Sys_UserService.GetUsersByUserId(eproject.ProjectControl_ProjectManagerId);
|
||||
nameValue.Add("UserName", sys_User.UserName);
|
||||
List<Model.Sys_User> list = new List<Model.Sys_User>();
|
||||
|
||||
list.Add(sys_User);
|
||||
bg.EmailSendMessage(BLL.Const.DesignPlanString, nameValue, BLL.Const.NoCustomString, list, "");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string strSql = @"SELECT p.ProjectControl_JobNo,p.ProjectControl_JobTitle,u.UserName,u.ChineseName,
|
||||
d.DesignInputId,d.DesignInputNo,d.DesignInputChName,d.DesignInputEnName,d.IssuedMan
|
||||
FROM dbo.Design_Input d
|
||||
LEFT JOIN dbo.Editor_EProject p ON p.EProjectId = d.EProjectId
|
||||
LEFT JOIN dbo.Sys_User u ON u.UserId =p.ProjectControl_ProjectManagerId
|
||||
WHERE (SELECT COUNT(*) FROM dbo.Design_Notice n WHERE d.DesignInputId=n.DesignInputId)=0
|
||||
AND DATEADD(dd,5,d.PlanStartDate)<GETDATE()
|
||||
AND d.MailIsWarn IS NULL
|
||||
AND d.IssuedMan IS NOT NULL AND d.PlanStartDate IS NOT NULL AND d.PlanEndDate IS NOT NULL
|
||||
ORDER BY d.EProjectId";
|
||||
// 查找未完成的设计输入
|
||||
DataTable dt = SQLHelper.GetDataTableRunText(strSql, null);
|
||||
for (int i = 0; i < dt.Rows.Count; i++)
|
||||
{
|
||||
|
||||
NameValueCollection nameValue = new NameValueCollection();
|
||||
nameValue.Add("projectNo", dt.Rows[i]["ProjectControl_JobNo"].ToString());
|
||||
nameValue.Add("IssuedDiscOrNo", dt.Rows[i]["ProjectControl_JobNo"].ToString() + "-" + dt.Rows[i]["ProjectControl_JobTitle"].ToString() + "," + dt.Rows[i]["DesignInputChName"].ToString() + " " + dt.Rows[i]["DesignInputEnName"].ToString() + " " + dt.Rows[i]["DesignInputNo"].ToString());
|
||||
nameValue.Add("Person_Ch", dt.Rows[i]["ChineseName"].ToString());
|
||||
nameValue.Add("Person_En", dt.Rows[i]["UserName"].ToString());
|
||||
|
||||
if (dt.Rows[i]["IssuedMan"].ToString() != "")
|
||||
{
|
||||
// 更新已提醒
|
||||
BLL.DesignInputService.DesignInputEmailIsWarn(dt.Rows[i]["DesignInputId"].ToString(), true);
|
||||
|
||||
Model.Sys_User sys_User = new Model.Sys_User();
|
||||
sys_User = BLL.Sys_UserService.GetUsersByUserId(dt.Rows[i]["IssuedMan"].ToString());
|
||||
nameValue.Add("UserName", sys_User.UserName);
|
||||
List<Model.Sys_User> list = new List<Model.Sys_User>();
|
||||
|
||||
list.Add(sys_User);
|
||||
bg.EmailSendMessage(BLL.Const.DesignInputString, nameValue, BLL.Const.CustomString, list, "");
|
||||
}
|
||||
}
|
||||
|
||||
// 待办人二次邮件提醒
|
||||
string noticeSql = @"SELECT p.ProjectControl_JobNo,p.ProjectControl_JobTitle, input.DesignInputNo,input.DesignInputChName,
|
||||
input.DesignInputEnName,n.MutualIssuedNo,flow.DesignNoticeId,flow.NoticeFlowId,flow.SubmitMan
|
||||
FROM dbo.Design_NoticeFlow flow
|
||||
LEFT JOIN dbo.Design_Notice n ON n.DesignNoticeId = flow.DesignNoticeId
|
||||
LEFT JOIN dbo.Design_Input input ON input.DesignInputId = n.DesignInputId
|
||||
LEFT JOIN dbo.Editor_EProject p ON p.EProjectId = input.EProjectId
|
||||
WHERE flow.HandleState='待办理' AND flow.MailIsWarn IS NULL
|
||||
AND DATEADD(dd,-5,input.PlanEndDate)<GETDATE()
|
||||
ORDER BY input.EProjectId";
|
||||
|
||||
DataTable dt2 = SQLHelper.GetDataTableRunText(noticeSql, null);
|
||||
for (int i = 0; i < dt2.Rows.Count; i++)
|
||||
{
|
||||
string person_Ch = string.Empty;
|
||||
string person_En = string.Empty;
|
||||
string designNoticeId = dt.Rows[i]["DesignNoticeId"].ToString();
|
||||
var noticeFlow = from x in BLL.Funs.DB.Design_NoticeFlow where x.DesignNoticeId == designNoticeId && x.SubmitDate.HasValue orderby x.SubmitDate descending select x;
|
||||
if (noticeFlow.Count() > 0)
|
||||
{
|
||||
var user = from x in BLL.Funs.DB.Sys_User where x.UserId == noticeFlow.First().SubmitMan select x;
|
||||
if (user.Count() > 0)
|
||||
{
|
||||
person_Ch = user.First().ChineseName;
|
||||
person_En = user.First().UserName;
|
||||
}
|
||||
}
|
||||
NameValueCollection nameValue = new NameValueCollection();
|
||||
nameValue.Add("projectNo", dt.Rows[i]["ProjectControl_JobNo"].ToString());
|
||||
nameValue.Add("IssuedDiscOrNo", dt.Rows[i]["ProjectControl_JobNo"].ToString() + "-" + dt.Rows[i]["ProjectControl_JobTitle"].ToString() + "," + dt.Rows[i]["DesignInputChName"].ToString() + " " + dt.Rows[i]["DesignInputEnName"].ToString() + " " + dt.Rows[i]["DesignInputNo"].ToString() + " " + dt.Rows[i]["MutualIssuedNo"].ToString());
|
||||
nameValue.Add("Person_Ch", person_Ch);
|
||||
nameValue.Add("Person_En", person_En);
|
||||
|
||||
if (dt2.Rows[i]["SubmitMan"].ToString() != "")
|
||||
{
|
||||
// 更新已提醒
|
||||
BLL.DesignInputService.NoticeEmailIsWarn(dt2.Rows[i]["NoticeFlowId"].ToString(), true);
|
||||
|
||||
Model.Sys_User sys_User = new Model.Sys_User();
|
||||
sys_User = BLL.Sys_UserService.GetUsersByUserId(dt2.Rows[i]["SubmitMan"].ToString());
|
||||
nameValue.Add("UserName", sys_User.UserName);
|
||||
List<Model.Sys_User> list = new List<Model.Sys_User>();
|
||||
|
||||
list.Add(sys_User);
|
||||
bg.EmailSendMessage(BLL.Const.DesignInputString, nameValue, BLL.Const.CustomString, list, "");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region 项目达到条件自动关闭
|
||||
private void Auto_Close(object sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
var projectList = (from x in Funs.DB.Editor_EProject select x).ToList();
|
||||
foreach (var eproject in projectList)
|
||||
{
|
||||
if ((eproject.Permit_PS_SafetyFinalAcc.HasValue && eproject.Permit_PA_SafetyFinalACC.HasValue
|
||||
&& eproject.Permit_PS_FFFinalAcc.HasValue && eproject.Permit_PA_FFFinalACC.HasValue
|
||||
&& eproject.Permit_PS_EnvFinalAcc.HasValue && eproject.Permit_PA_EnvFinalACC.HasValue)
|
||||
|| (eproject.Permit_PS_SafetyFinalAcc.HasValue && eproject.Permit_PA_SafetyFinalACC.HasValue
|
||||
&& !eproject.Permit_PS_FFFinalAcc.HasValue && !eproject.Permit_PA_FFFinalACC.HasValue
|
||||
&& !eproject.Permit_PS_EnvFinalAcc.HasValue && !eproject.Permit_PA_EnvFinalACC.HasValue)
|
||||
|| (eproject.Permit_PS_SafetyFinalAcc.HasValue && eproject.Permit_PA_SafetyFinalACC.HasValue
|
||||
&& eproject.Permit_PS_FFFinalAcc.HasValue && eproject.Permit_PA_FFFinalACC.HasValue
|
||||
&& !eproject.Permit_PS_EnvFinalAcc.HasValue && !eproject.Permit_PA_EnvFinalACC.HasValue)
|
||||
|| (eproject.Permit_PS_SafetyFinalAcc.HasValue && eproject.Permit_PA_SafetyFinalACC.HasValue
|
||||
&& !eproject.Permit_PS_FFFinalAcc.HasValue && !eproject.Permit_PA_FFFinalACC.HasValue
|
||||
&& eproject.Permit_PS_EnvFinalAcc.HasValue && eproject.Permit_PA_EnvFinalACC.HasValue)
|
||||
|| (!eproject.Permit_PS_SafetyFinalAcc.HasValue && !eproject.Permit_PA_SafetyFinalACC.HasValue
|
||||
&& eproject.Permit_PS_FFFinalAcc.HasValue && eproject.Permit_PA_FFFinalACC.HasValue
|
||||
&& eproject.Permit_PS_EnvFinalAcc.HasValue && eproject.Permit_PA_EnvFinalACC.HasValue)
|
||||
|| (!eproject.Permit_PS_SafetyFinalAcc.HasValue && !eproject.Permit_PA_SafetyFinalACC.HasValue
|
||||
&& !eproject.Permit_PS_FFFinalAcc.HasValue && !eproject.Permit_PA_FFFinalACC.HasValue
|
||||
&& eproject.Permit_PS_EnvFinalAcc.HasValue && eproject.Permit_PA_EnvFinalACC.HasValue)
|
||||
|| (!eproject.Permit_PS_SafetyFinalAcc.HasValue && !eproject.Permit_PA_SafetyFinalACC.HasValue
|
||||
&& !eproject.Permit_PS_FFFinalAcc.HasValue && !eproject.Permit_PA_FFFinalACC.HasValue
|
||||
&& !eproject.Permit_PS_EnvFinalAcc.HasValue && !eproject.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 其他类项目
|
||||
//其他类项目:最晚的①竣工图接收日期②商务关闭日期③主控文档更新日期
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
protected void Session_Start(object sender, EventArgs e)
|
||||
{
|
||||
Session.Timeout = 720;
|
||||
// 这种统计在线人数的做法会有一定的误差
|
||||
Application.Lock();
|
||||
Application["OnlineUserCount"] = (int)Application["OnlineUserCount"] + 1;
|
||||
Application.UnLock();
|
||||
|
||||
// https访问secure设置为true
|
||||
if (Request.IsSecureConnection)
|
||||
{
|
||||
Response.Cookies["ASP.NET_SessionId"].Secure = true;
|
||||
}
|
||||
}
|
||||
|
||||
protected void Application_BeginRequest(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected void Application_AuthenticateRequest(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected void Application_Error(object sender, EventArgs e)
|
||||
{
|
||||
StringBuilder errLog = null;
|
||||
Exception ex = null;
|
||||
try
|
||||
{
|
||||
// 获取错误类
|
||||
ex = Server.GetLastError().InnerException;
|
||||
if (ex == null)
|
||||
{
|
||||
ex = Server.GetLastError().GetBaseException();
|
||||
}
|
||||
|
||||
errLog = new StringBuilder();
|
||||
errLog.Append(String.Format(CultureInfo.InvariantCulture, "出错文件:{0}\r\n", Request.Url.AbsoluteUri));
|
||||
if (Request.UserHostAddress != null)
|
||||
{
|
||||
errLog.Append(String.Format(CultureInfo.InvariantCulture, "IP地址:{0}\r\n", Request.UserHostAddress));
|
||||
}
|
||||
|
||||
if (Session != null && Session["CurrUser"] != null)
|
||||
{
|
||||
errLog.Append(String.Format(CultureInfo.InvariantCulture, "操作人员:{0}\r\n", BLL.Sys_UserService.GetUsersByUserId(((Model.Sys_User)Session["CurrUser"]).UserId).UserName));
|
||||
}
|
||||
else
|
||||
{
|
||||
PageBase.ZXRefresh(Request.ApplicationPath + "/LogOff.aspx");
|
||||
}
|
||||
|
||||
if (ex is HttpRequestValidationException)
|
||||
{
|
||||
PageBase.ZXRefresh(Request.ApplicationPath + "/Wrong.aspx?Message=0");
|
||||
}
|
||||
else if (ex is FriendlyException)
|
||||
{
|
||||
PageBase.ZXRefresh(Request.ApplicationPath + "/Wrong.aspx?MessageText=" + ex.Message);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
try
|
||||
{
|
||||
PageBase.ZXRefresh(Request.ApplicationPath + "/OperationError.aspx");
|
||||
}
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ErrLogInfo.WriteLog(ex, errLog == null ? null : errLog.ToString());
|
||||
Server.ClearError();
|
||||
|
||||
PageBase.ZXRefresh(Request.ApplicationPath + "/OperationError.aspx");
|
||||
}
|
||||
}
|
||||
|
||||
protected void Session_End(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
protected void Application_End(object sender, EventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
<head runat="server">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title></title>
|
||||
</head>
|
||||
<body>
|
||||
|
|
@ -15,14 +15,14 @@
|
|||
<Rows>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtJobNo" runat="server" Label="Job No" Readonly="true">
|
||||
<f:TextBox ID="txtJobNo" runat="server" Label="Job No" Readonly="true" LabelWidth="120px">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:DropDownList ID="drpDiscipline" runat="server" Label="Discipline" EnableGroup="true" EnableEdit="true" ShowRedStar="true" ></f:DropDownList>
|
||||
<f:DropDownList ID="drpDiscipline" runat="server" Label="Discipline" EnableGroup="true" EnableEdit="true" ShowRedStar="true" LabelWidth="120px"></f:DropDownList>
|
||||
<%-- <f:TextBox ID="txtDiscipline" runat="server" Label="Discipline" Readonly="true">
|
||||
</f:TextBox>--%>
|
||||
</Items>
|
||||
|
|
@ -30,22 +30,35 @@
|
|||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtAccount" runat="server" Label="Account" >
|
||||
<f:TextBox ID="txtAccount" runat="server" Label="Account" LabelWidth="120px">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtEngineerName" runat="server" Label="EngineerName" Readonly="true">
|
||||
<f:TextBox ID="txtEngineerName" runat="server" Label="EngineerName" Readonly="true" LabelWidth="120px">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtManHours" runat="server" Label="ManHours">
|
||||
<f:TextBox ID="txtManHours" runat="server" Label="ManHours" LabelWidth="120px">
|
||||
</f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow>
|
||||
<Items>
|
||||
<f:CheckBoxList ID="checkPhase" Label="Phase" runat="server" LabelWidth="120px">
|
||||
<Items>
|
||||
<f:CheckItem Text="Study/Concept Planning" Value="Study/Concept Planning" />
|
||||
<f:CheckItem Text="Execution" Value="Execution" />
|
||||
</Items>
|
||||
<Listeners>
|
||||
<f:Listener Event="change" Handler="onCheckBoxListChange" />
|
||||
</Listeners>
|
||||
</f:CheckBoxList>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
<f:FormRow ColumnWidths="20% 80%">
|
||||
<Items>
|
||||
<f:Label ID="Label1" runat="server"></f:Label>
|
||||
|
|
@ -67,5 +80,15 @@
|
|||
</Toolbars>
|
||||
</f:Form>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
// 同时只能选中一项
|
||||
function onCheckBoxListChange(event, checkbox, isChecked) {
|
||||
var me = this;
|
||||
if (isChecked) {
|
||||
me.setValue(checkbox.getInputValue());
|
||||
}
|
||||
__doPostBack('', 'CheckBoxList1Change');
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -60,12 +60,14 @@ namespace FineUIPro.Web.ManHours
|
|||
if (p.AccountDisabled == 1) {
|
||||
cbNotApplicable1.Checked = true;
|
||||
}
|
||||
if (!string.IsNullOrEmpty(p.Phase))
|
||||
{
|
||||
checkPhase.SelectedValueArray = p.Phase.Split(',');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 提交按钮
|
||||
|
|
|
|||
|
|
@ -86,6 +86,15 @@ namespace FineUIPro.Web.ManHours
|
|||
/// </remarks>
|
||||
protected global::FineUIPro.TextBox txtManHours;
|
||||
|
||||
/// <summary>
|
||||
/// checkPhase 控件。
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// 自动生成的字段。
|
||||
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||
/// </remarks>
|
||||
protected global::FineUIPro.CheckBoxList checkPhase;
|
||||
|
||||
/// <summary>
|
||||
/// Label1 控件。
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -49,10 +49,10 @@
|
|||
<f:FormRow>
|
||||
<Items>
|
||||
<f:CheckBoxList ID="checkPhase" Label="Phase" runat="server" LabelWidth="120px">
|
||||
<Items>
|
||||
<%--<Items>
|
||||
<f:CheckItem Text="Study/Concept Planning" Value="Study/Concept Planning" Selected="true" />
|
||||
<f:CheckItem Text="Execution" Value="Execution" />
|
||||
</Items>
|
||||
</Items>--%>
|
||||
<Listeners>
|
||||
<f:Listener Event="change" Handler="onCheckBoxListChange" />
|
||||
</Listeners>
|
||||
|
|
|
|||
|
|
@ -36,7 +36,32 @@ namespace FineUIPro.Web.ManHours
|
|||
{
|
||||
this.txtAccount.Text = p.ProjectControl_Account;
|
||||
}
|
||||
|
||||
if (p.ProjectControl_JobType == "Projects" || p.ProjectControl_JobType == "MOC")
|
||||
{
|
||||
var plans = BLL.ResourcePlanService.GetResourcePlanByEProjectId(eProjectId);
|
||||
if (plans.Count > 0 && plans.Count < 2 && plans.FirstOrDefault().Phase == "Study/Concept Planning")
|
||||
{
|
||||
checkPhase.Items.Clear();
|
||||
List<string> lists = new List<string>();
|
||||
lists.Add("Study/Concept Planning");
|
||||
checkPhase.DataSource = lists;
|
||||
checkPhase.DataBind();
|
||||
checkPhase.SelectedValueArray = lists[0].Split(',');
|
||||
}
|
||||
else
|
||||
{
|
||||
checkPhase.Items.Clear();
|
||||
List<string> lists = new List<string>();
|
||||
lists.Add("Study/Concept Planning");
|
||||
lists.Add("Execution");
|
||||
checkPhase.DataSource = lists;
|
||||
checkPhase.DataBind();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
checkPhase.Hidden = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -147,10 +172,14 @@ namespace FineUIPro.Web.ManHours
|
|||
pm.IsClose = 0;
|
||||
}
|
||||
|
||||
var epr = BLL.EProjectService.GeteProjectById(eProjectId);
|
||||
if (epr.ProjectControl_JobType == "Projects" || epr.ProjectControl_JobType == "MOC")
|
||||
{
|
||||
if (checkPhase.SelectedValueArray != null)
|
||||
{
|
||||
pm.Phase = checkPhase.SelectedValueArray[0];
|
||||
}
|
||||
}
|
||||
BLL.PlanService.AddPlan(pm);
|
||||
|
||||
// 把设计专业回写到PM_Editor
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@
|
|||
</f:Window>
|
||||
<f:Window ID="Window3" Title="ManHours(Plan)" Hidden="true" EnableIFrame="true" EnableMaximize="false"
|
||||
Target="Parent" EnableResize="false" runat="server" OnClose="Window3_Close" IsModal="true"
|
||||
Width="500px" Height="350px">
|
||||
Width="600px" Height="400px">
|
||||
</f:Window>
|
||||
<f:Window ID="Window4" Title="AddManHours(Plan)" Hidden="true" EnableIFrame="true" EnableMaximize="false"
|
||||
Target="Parent" EnableResize="false" runat="server" OnClose="Window3_Close" IsModal="true"
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ namespace FineUIPro.Web.Report
|
|||
GetButtonPower();//权限设置
|
||||
|
||||
BLL.DepartService.InitCTEDepartDropDownList(this.drpWorkCenter, false);
|
||||
this.txtMonth.Text = string.Format("{0:yyyyMM}", DateTime.Now);
|
||||
|
||||
btnSelectColumns.OnClientClick = Window1.GetShowReference("TimeSheetReportSelectColumn.aspx");
|
||||
|
||||
|
|
|
|||
|
|
@ -723,6 +723,7 @@ namespace FineUIPro.Web.ResourcePlan
|
|||
PM.ManHours = Convert.ToInt32(NumberBox15.Text);
|
||||
PM.IsClose = 0;
|
||||
PM.AccountDisabled = 0;
|
||||
PM.Phase = checkPhase.SelectedValueArray[0];
|
||||
ManHourList.Add(PM);
|
||||
}
|
||||
}
|
||||
|
|
@ -1175,6 +1176,7 @@ namespace FineUIPro.Web.ResourcePlan
|
|||
}
|
||||
ManHoursPlan.IsClose = 0;
|
||||
ManHoursPlan.AccountDisabled = 0;
|
||||
ManHoursPlan.Phase= checkPhase.SelectedValueArray[0];
|
||||
ManHourList.Add(ManHoursPlan);
|
||||
}
|
||||
}
|
||||
|
|
@ -1311,6 +1313,7 @@ namespace FineUIPro.Web.ResourcePlan
|
|||
|
||||
ManHoursPlan.IsClose = 0;
|
||||
ManHoursPlan.AccountDisabled = 0;
|
||||
ManHoursPlan.Phase = checkPhase.SelectedValueArray[0];
|
||||
ManHourList.Add(ManHoursPlan);
|
||||
}
|
||||
}
|
||||
|
|
@ -1438,6 +1441,7 @@ namespace FineUIPro.Web.ResourcePlan
|
|||
|
||||
ManHoursPlan.IsClose = 0;
|
||||
ManHoursPlan.AccountDisabled = 0;
|
||||
ManHoursPlan.Phase= checkPhase.SelectedValueArray[0];
|
||||
ManHourList.Add(ManHoursPlan);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1187,6 +1187,7 @@ namespace FineUIPro.Web.ResourcePlan
|
|||
PM.ManHours = Convert.ToInt32(NumberBox15.Text);
|
||||
PM.IsClose = 0;
|
||||
PM.AccountDisabled = 0;
|
||||
PM.Phase= checkPhase.SelectedValueArray[0];
|
||||
ManHourList.Add(PM);
|
||||
}
|
||||
}
|
||||
|
|
@ -1734,6 +1735,7 @@ namespace FineUIPro.Web.ResourcePlan
|
|||
|
||||
ManHoursPlan.IsClose = 0;
|
||||
ManHoursPlan.AccountDisabled = 0;
|
||||
ManHoursPlan.Phase= checkPhase.SelectedValueArray[0];
|
||||
ManHourList.Add(ManHoursPlan);
|
||||
}
|
||||
}
|
||||
|
|
@ -1870,6 +1872,7 @@ namespace FineUIPro.Web.ResourcePlan
|
|||
|
||||
ManHoursPlan.IsClose = 0;
|
||||
ManHoursPlan.AccountDisabled = 0;
|
||||
ManHoursPlan.Phase= checkPhase.SelectedValueArray[0];
|
||||
ManHourList.Add(ManHoursPlan);
|
||||
}
|
||||
}
|
||||
|
|
@ -1996,6 +1999,7 @@ namespace FineUIPro.Web.ResourcePlan
|
|||
|
||||
ManHoursPlan.IsClose = 0;
|
||||
ManHoursPlan.AccountDisabled = 0;
|
||||
ManHoursPlan.Phase= checkPhase.SelectedValueArray[0];
|
||||
ManHourList.Add(ManHoursPlan);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -195,8 +195,8 @@
|
|||
<f:FormRow>
|
||||
<Items>
|
||||
<f:TextBox ID="txtJobTitle" runat="server" Label="Job Title" LabelWidth="120px"></f:TextBox>
|
||||
<f:TextBox ID="txtPVIPredition" runat="server" Label="PVI Predition" LabelWidth="170px"></f:TextBox>
|
||||
<f:TextBox ID="txtElectrialEng" runat="server" Label="Electrial Eng." LabelWidth="120px"></f:TextBox>
|
||||
<f:TextBox ID="txtPVIPredition" runat="server" Label="PVI Prediction" LabelWidth="170px"></f:TextBox>
|
||||
<f:TextBox ID="txtElectrialEng" runat="server" Label="Electrical Eng." LabelWidth="120px"></f:TextBox>
|
||||
<f:NumberBox ID="txtPendingCost" runat="server" Label="-Pending Cost(RMB)" LabelWidth="160px" EnableCommas="true" Readonly="true"></f:NumberBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
|
|
@ -220,7 +220,7 @@
|
|||
<Items>
|
||||
<f:TextBox ID="txtCategory" runat="server" Label="Category" LabelWidth="120px"></f:TextBox>
|
||||
<f:TextBox ID="txtEngManager" runat="server" Label="Eng.Manager" LabelWidth="170px"></f:TextBox>
|
||||
<f:TextBox ID="txtOutSourceType" runat="server" Label="OutSource Type" LabelWidth="120px"></f:TextBox>
|
||||
<f:TextBox ID="txtOutSourceType" runat="server" Label="Outsource Type" LabelWidth="120px"></f:TextBox>
|
||||
<f:TextBox ID="txtCAPEXPlanNo" runat="server" Label="CAPEX Plan No." LabelWidth="160px"></f:TextBox>
|
||||
</Items>
|
||||
</f:FormRow>
|
||||
|
|
@ -625,10 +625,10 @@
|
|||
FieldType="String" HeaderText="Sch.(Days)" HeaderTextAlign="Center">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="120px" ColumnID="Initiator" DataField="Initiator"
|
||||
FieldType="String" HeaderText="Initator" HeaderTextAlign="Center">
|
||||
FieldType="String" HeaderText="Initiator" HeaderTextAlign="Center">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="150px" ColumnID="CategoryName" DataField="CategoryName"
|
||||
FieldType="String" HeaderText="Catetory" HeaderTextAlign="Center">
|
||||
FieldType="String" HeaderText="category" HeaderTextAlign="Center">
|
||||
</f:RenderField>
|
||||
<f:RenderField Width="110px" ColumnID="TDCRecDate" DataField="TDCRecDate"
|
||||
FieldType="Date" Renderer="Date" HeaderText="Receive Date" HeaderTextAlign="Center">
|
||||
|
|
|
|||
|
|
@ -27681,6 +27681,8 @@ namespace Model
|
|||
|
||||
private System.Nullable<double> _ActHours;
|
||||
|
||||
private string _Phase;
|
||||
|
||||
public View_NewManHours_Plan()
|
||||
{
|
||||
}
|
||||
|
|
@ -28116,6 +28118,22 @@ namespace Model
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Phase", DbType="NVarChar(50)")]
|
||||
public string Phase
|
||||
{
|
||||
get
|
||||
{
|
||||
return this._Phase;
|
||||
}
|
||||
set
|
||||
{
|
||||
if ((this._Phase != value))
|
||||
{
|
||||
this._Phase = value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.View_Project_Closure_Report")]
|
||||
|
|
|
|||
Loading…
Reference in New Issue