xinjiang/SGGL/FineUIPro.Web/JDGL/WBS/WBSSetCopy.aspx.cs

372 lines
20 KiB
C#

using BLL;
using System;
using System.Linq;
namespace FineUIPro.Web.JDGL.WBS
{
public partial class WBSSetCopy : PageBase
{
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadData();
string id = Request.Params["Id"];
string type = Request.Params["Type"];
if (type == "childUnitProject")
{
Model.Wbs_UnitProject unitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(id);
if (unitProject != null)
{
txtCode.Text = unitProject.UnitProjectCode;
if (unitProject.StartDate != null)
{
txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", unitProject.StartDate);
txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", unitProject.EndDate);
}
txtRemark.Text = unitProject.Remark;
}
}
else if (type == "wbsSet")
{
Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(id);
if (wbsSet != null)
{
txtCode.Text = wbsSet.WbsSetCode;
if (wbsSet.StartDate != null)
{
txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", wbsSet.StartDate);
txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", wbsSet.EndDate);
}
txtRemark.Text = wbsSet.Remark;
}
}
}
}
private void LoadData()
{
btnClose.OnClientClick = ActiveWindow.GetHideReference();
}
#endregion
#region
/// <summary>
/// 获取新编号
/// </summary>
/// <param name="code"></param>
/// <param name="i"></param>
/// <returns></returns>
private string GetNewCode(string code, int i)
{
string newCode = string.Empty;
int codeLast = Convert.ToInt32(code.Substring(code.Length - 1, 1));
if (codeLast == 1)
{
newCode = code.Substring(0, code.Length - 1) + ((i + 2) < 10 ? (i + 2) : 0);
}
else
{
newCode = code.Substring(0, code.Length - 1) + ((codeLast + 1) < 10 ? (codeLast + 1) : 0);
}
return newCode;
}
#endregion
#region
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
string updateId = string.Empty;
string id = Request.Params["Id"];
string type = Request.Params["Type"];
if (type == "childUnitProject")
{
Model.Wbs_UnitProject childUnitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(id);
childUnitProject.IsSelected = true;
childUnitProject.IsApprove = true;
BLL.UnitProjectService.UpdateUnitProject(childUnitProject);
var noShowWbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == childUnitProject.UnitProjectId && x.NoShow == true orderby x.WbsSetCode select x;
if (noShowWbsSet1s.Count() == 0) //首次拷贝
{
noShowWbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == childUnitProject.UnitProjectId orderby x.WbsSetCode select x;
foreach (var noShowWbsSet1 in noShowWbsSet1s)
{
noShowWbsSet1.NoShow = true;
BLL.WbsSetService.UpdateWbsSet(noShowWbsSet1);
}
Model.Wbs_WbsSet newWbsSet1 = new Model.Wbs_WbsSet();
newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
updateId = newWbsSet1.WbsSetId;
newWbsSet1.WbsSetCode = this.txtCode.Text.Trim();
newWbsSet1.WbsSetName = this.txtName.Text.Trim();
newWbsSet1.CnProfessionId = childUnitProject.CnProfessionId;
newWbsSet1.UnitProjectId = childUnitProject.UnitProjectId;
newWbsSet1.InstallationId = childUnitProject.InstallationId;
newWbsSet1.SuperWbsSetId = null;
newWbsSet1.ProjectId = childUnitProject.ProjectId;
newWbsSet1.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim());
newWbsSet1.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim());
if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim()))
{
newWbsSet1.SortIndex = Convert.ToInt32(this.txtSortIndex.Text.Trim());
}
newWbsSet1.Flag = 1;
newWbsSet1.Remark = this.txtRemark.Text.Trim();
newWbsSet1.IsIn = false;
newWbsSet1.IsSelected = true;
newWbsSet1.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet1);
noShowWbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == childUnitProject.UnitProjectId && x.NoShow == true orderby x.WbsSetCode select x;
foreach (var noShowWbsSet1 in noShowWbsSet1s)
{
Model.Wbs_WbsSet newWbsSet2 = new Model.Wbs_WbsSet();
newWbsSet2.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
newWbsSet2.WbsSetCode = GetReplaceCode(noShowWbsSet1.WbsSetCode, childUnitProject.UnitProjectCode);
newWbsSet2.WbsSetName = noShowWbsSet1.WbsSetName;
newWbsSet2.CnProfessionId = noShowWbsSet1.CnProfessionId;
newWbsSet2.UnitProjectId = childUnitProject.UnitProjectId;
newWbsSet2.InstallationId = noShowWbsSet1.InstallationId;
newWbsSet2.SuperWbsSetId = newWbsSet1.WbsSetId;
newWbsSet2.Weights = noShowWbsSet1.Weights;
newWbsSet2.ProjectId = noShowWbsSet1.ProjectId;
newWbsSet2.StartDate = noShowWbsSet1.StartDate;
newWbsSet2.EndDate = noShowWbsSet1.EndDate;
newWbsSet1.SortIndex = noShowWbsSet1.SortIndex;
newWbsSet2.Flag = 2;
newWbsSet2.Remark = noShowWbsSet1.Remark;
newWbsSet2.IsIn = false;
newWbsSet2.IsSelected = true;
newWbsSet2.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet2);
}
}
else //后续拷贝
{
Model.Wbs_WbsSet newWbsSet1 = new Model.Wbs_WbsSet();
newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
updateId = newWbsSet1.WbsSetId;
newWbsSet1.WbsSetCode = this.txtCode.Text.Trim();
newWbsSet1.WbsSetName = this.txtName.Text.Trim();
newWbsSet1.CnProfessionId = childUnitProject.CnProfessionId;
newWbsSet1.UnitProjectId = childUnitProject.UnitProjectId;
newWbsSet1.InstallationId = childUnitProject.InstallationId;
newWbsSet1.SuperWbsSetId = null;
newWbsSet1.ProjectId = childUnitProject.ProjectId;
newWbsSet1.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim());
newWbsSet1.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim());
if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim()))
{
newWbsSet1.SortIndex = Convert.ToInt32(this.txtSortIndex.Text.Trim());
}
newWbsSet1.Flag = 1;
newWbsSet1.Remark = this.txtRemark.Text.Trim();
newWbsSet1.IsIn = false;
newWbsSet1.IsSelected = true;
newWbsSet1.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet1);
foreach (var noShowWbsSet1 in noShowWbsSet1s)
{
Model.Wbs_WbsSet newWbsSet2 = new Model.Wbs_WbsSet();
newWbsSet2.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
newWbsSet2.WbsSetCode = GetReplaceCode(noShowWbsSet1.WbsSetCode, childUnitProject.UnitProjectCode);
newWbsSet2.WbsSetName = noShowWbsSet1.WbsSetName;
newWbsSet2.CnProfessionId = noShowWbsSet1.CnProfessionId;
newWbsSet2.UnitProjectId = childUnitProject.UnitProjectId;
newWbsSet2.InstallationId = noShowWbsSet1.InstallationId;
newWbsSet2.SuperWbsSetId = newWbsSet1.WbsSetId;
newWbsSet2.ProjectId = noShowWbsSet1.ProjectId;
newWbsSet2.Weights = noShowWbsSet1.Weights;
newWbsSet2.StartDate = noShowWbsSet1.StartDate;
newWbsSet2.EndDate = noShowWbsSet1.EndDate;
newWbsSet2.SortIndex = noShowWbsSet1.SortIndex;
newWbsSet2.Flag = 2;
newWbsSet2.Remark = noShowWbsSet1.Remark;
newWbsSet2.IsIn = false;
newWbsSet2.IsSelected = true;
newWbsSet2.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet2);
}
}
}
else if (type == "wbsSet")
{
Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(id);
wbsSet.IsSelected = true;
wbsSet.IsApprove = true;
BLL.WbsSetService.UpdateWbsSet(wbsSet);
var noShowWbsSets = from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == id && x.NoShow == true orderby x.WbsSetCode select x;
if (noShowWbsSets.Count() == 0) //首次拷贝
{
noShowWbsSets = from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == id orderby x.WbsSetCode select x;
foreach (var noShowWbsSet in noShowWbsSets)
{
noShowWbsSet.NoShow = true;
BLL.WbsSetService.UpdateWbsSet(noShowWbsSet);
}
Model.Wbs_WbsSet newWbsSet1 = new Model.Wbs_WbsSet();
newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
updateId = newWbsSet1.WbsSetId;
newWbsSet1.WbsSetCode = this.txtCode.Text.Trim();
newWbsSet1.WbsSetName = this.txtName.Text.Trim();
newWbsSet1.CnProfessionId = wbsSet.CnProfessionId;
newWbsSet1.UnitProjectId = wbsSet.UnitProjectId;
newWbsSet1.InstallationId = wbsSet.InstallationId;
newWbsSet1.SuperWbsSetId = id;
newWbsSet1.ProjectId = wbsSet.ProjectId;
newWbsSet1.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim());
newWbsSet1.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim());
if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim()))
{
newWbsSet1.SortIndex = Convert.ToInt32(this.txtSortIndex.Text.Trim());
}
newWbsSet1.Flag = wbsSet.Flag + 1;
newWbsSet1.Remark = this.txtRemark.Text.Trim();
newWbsSet1.IsIn = false;
newWbsSet1.IsSelected = true;
newWbsSet1.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet1);
noShowWbsSets = from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == id && x.NoShow == true orderby x.WbsSetCode select x;
foreach (var noShowWbsSet1 in noShowWbsSets)
{
Model.Wbs_WbsSet newWbsSet2 = new Model.Wbs_WbsSet();
newWbsSet2.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
newWbsSet2.WbsSetCode = GetReplaceCode(noShowWbsSet1.WbsSetCode, wbsSet.WbsSetCode);
newWbsSet2.WbsSetName = noShowWbsSet1.WbsSetName;
newWbsSet2.CnProfessionId = noShowWbsSet1.CnProfessionId;
newWbsSet2.UnitProjectId = noShowWbsSet1.UnitProjectId;
newWbsSet2.InstallationId = noShowWbsSet1.InstallationId;
newWbsSet2.SuperWbsSetId = newWbsSet1.WbsSetId;
newWbsSet2.ProjectId = noShowWbsSet1.ProjectId;
newWbsSet2.Weights = noShowWbsSet1.Weights;
newWbsSet2.StartDate = noShowWbsSet1.StartDate;
newWbsSet2.EndDate = noShowWbsSet1.EndDate;
newWbsSet2.SortIndex = noShowWbsSet1.SortIndex;
newWbsSet2.Flag = newWbsSet1.Flag + 1;
newWbsSet2.Remark = noShowWbsSet1.Remark;
newWbsSet2.IsIn = false;
newWbsSet2.IsSelected = true;
newWbsSet2.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet2);
}
}
else //后续拷贝
{
Model.Wbs_WbsSet newWbsSet1 = new Model.Wbs_WbsSet();
newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
updateId = newWbsSet1.WbsSetId;
newWbsSet1.WbsSetCode = this.txtCode.Text.Trim();
newWbsSet1.WbsSetName = this.txtName.Text.Trim();
newWbsSet1.CnProfessionId = wbsSet.CnProfessionId;
newWbsSet1.UnitProjectId = wbsSet.UnitProjectId;
newWbsSet1.InstallationId = wbsSet.InstallationId;
newWbsSet1.SuperWbsSetId = id;
newWbsSet1.ProjectId = wbsSet.ProjectId;
newWbsSet1.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim());
newWbsSet1.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim());
if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim()))
{
newWbsSet1.SortIndex = Convert.ToInt32(this.txtSortIndex.Text.Trim());
}
newWbsSet1.Flag = wbsSet.Flag + 1;
newWbsSet1.Remark = this.txtRemark.Text.Trim();
newWbsSet1.IsIn = false;
newWbsSet1.IsSelected = true;
newWbsSet1.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet1);
foreach (var noShowWbsSet1 in noShowWbsSets)
{
Model.Wbs_WbsSet newWbsSet2 = new Model.Wbs_WbsSet();
newWbsSet2.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
newWbsSet2.WbsSetCode = GetReplaceCode(noShowWbsSet1.WbsSetCode, wbsSet.WbsSetCode);
newWbsSet2.WbsSetName = noShowWbsSet1.WbsSetName;
newWbsSet2.CnProfessionId = noShowWbsSet1.CnProfessionId;
newWbsSet2.UnitProjectId = noShowWbsSet1.UnitProjectId;
newWbsSet2.InstallationId = noShowWbsSet1.InstallationId;
newWbsSet2.SuperWbsSetId = newWbsSet1.WbsSetId;
newWbsSet2.ProjectId = noShowWbsSet1.ProjectId;
newWbsSet2.Weights = noShowWbsSet1.Weights;
newWbsSet2.StartDate = noShowWbsSet1.StartDate;
newWbsSet2.EndDate = noShowWbsSet1.EndDate;
newWbsSet2.SortIndex = noShowWbsSet1.SortIndex;
newWbsSet2.Flag = newWbsSet1.Flag + 1;
newWbsSet2.Remark = noShowWbsSet1.Remark;
newWbsSet2.IsIn = false;
newWbsSet2.IsSelected = true;
newWbsSet2.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet2);
}
}
}
//BLL.Sys_LogService.AddLog(BLL.Const.System_1, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "拷贝单位、分部、分项工程");
PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(updateId) + ActiveWindow.GetHidePostBackReference());
}
#endregion
#region
/// <summary>
/// 循环拷贝分部子级
/// </summary>
/// <param name="newSuperWbsSetId"></param>
/// <param name="oldSuperWbsSetId"></param>
/// <param name="code"></param>
/// <param name="unitProjectId"></param>
private void AddWbsSets(string newSuperWbsSetId, string oldSuperWbsSetId, string code, string unitProjectId)
{
var childWbsSets = BLL.WbsSetService.GetWbsSetsBySuperWbsSetId(oldSuperWbsSetId);
foreach (var wbsSet in childWbsSets)
{
Model.Wbs_WbsSet newWbsSet = new Model.Wbs_WbsSet();
newWbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
newWbsSet.WbsSetCode = GetReplaceCode(wbsSet.WbsSetCode, code);
newWbsSet.WbsSetName = wbsSet.WbsSetName;
newWbsSet.CnProfessionId = wbsSet.CnProfessionId;
newWbsSet.UnitProjectId = unitProjectId;
newWbsSet.SuperWbsSetId = newSuperWbsSetId;
newWbsSet.ProjectId = wbsSet.ProjectId;
newWbsSet.StartDate = wbsSet.StartDate;
newWbsSet.EndDate = wbsSet.EndDate;
newWbsSet.SortIndex = wbsSet.SortIndex;
newWbsSet.ControlPoint = wbsSet.ControlPoint;
newWbsSet.Cycle = wbsSet.Cycle;
newWbsSet.Frequency = wbsSet.Frequency;
newWbsSet.Flag = wbsSet.Flag;
newWbsSet.Way = wbsSet.Way;
newWbsSet.Remark = wbsSet.Remark;
newWbsSet.IsIn = false;
if (string.IsNullOrEmpty(Request.Params["HandleType"]))
{
newWbsSet.IsSelected = true;
}
else
{
newWbsSet.IsApprove = true;
}
BLL.WbsSetService.AddWbsSet(newWbsSet);
this.AddWbsSets(newWbsSet.WbsSetId, wbsSet.WbsSetId, code, unitProjectId);
}
}
#endregion
#region
private string GetReplaceCode(string oldStr, string replaceCode)
{
if (oldStr.IndexOf(replaceCode) > -1)
{
oldStr = oldStr.Remove(oldStr.IndexOf(replaceCode), replaceCode.Length).Insert(oldStr.IndexOf(replaceCode), this.txtCode.Text.Trim());
}
return oldStr;
}
#endregion
}
}