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

320 lines
17 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 == "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 == "wbsSet")
{
Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(id);
//wbsSet.IsSelected = true;
//wbsSet.IsApprove = true;
//BLL.WbsSetService.UpdateWbsSet(wbsSet);
var wbsSets = from x in Funs.DB.Wbs_WbsSet where x.SuperWbsSetId == id orderby x.WbsSetCode select x;
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 = wbsSet.SuperWbsSetId;
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.Remark = this.txtRemark.Text.Trim();
newWbsSet1.IsIn = false;
//newWbsSet1.IsSelected = true;
//newWbsSet1.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet1);
var totalWbsSetMatchCostControlInits = from x in Funs.DB.WBS_WbsSetMatchCostControlInit orderby x.WbsSetCode select x;
var totalCostControlInits = from x in Funs.DB.WBS_CostControlInit orderby x.CostControlInitCode select x;
foreach (var noShowWbsSet1 in wbsSets)
{
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.Remark = noShowWbsSet1.Remark;
newWbsSet2.IsIn = false;
//newWbsSet2.IsSelected = true;
//newWbsSet2.IsApprove = true;
BLL.WbsSetService.AddWbsSet(newWbsSet2);
//拷贝费用清单对应关系
var wbsSetMatchCostControlInits = from x in totalWbsSetMatchCostControlInits where x.WbsSetCode == noShowWbsSet1.WbsSetCode orderby x.WbsSetCode select x;
foreach (var wbsSetMatchCostControlInit in wbsSetMatchCostControlInits)
{
Model.WBS_WbsSetMatchCostControl wbsSetMatchCostControl = new Model.WBS_WbsSetMatchCostControl();
wbsSetMatchCostControl.WbsSetMatchCostControlId = SQLHelper.GetNewID();
wbsSetMatchCostControl.WbsSetId = newWbsSet2.WbsSetId;
wbsSetMatchCostControl.CostControlCode = wbsSetMatchCostControlInit.CostControlInitCode;
BLL.WbsSetMatchCostControlService.AddWbsSetMatchCostControl(wbsSetMatchCostControl);
//拷贝费用清单项
var costControlInits = from x in totalCostControlInits where x.CostControlInitCode == wbsSetMatchCostControl.CostControlCode select x;
foreach (var costControlInit in costControlInits)
{
Model.WBS_CostControl costControl = new Model.WBS_CostControl();
costControl.ProjectId = noShowWbsSet1.ProjectId;
costControl.WbsSetId = newWbsSet2.WbsSetId;
costControl.CostControlCode = costControlInit.CostControlInitCode;
costControl.CostControlName = costControlInit.CostControlInitName;
costControl.Unit = costControlInit.Unit;
BLL.CostControlService.AddCostControl(costControl);
}
}
}
//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
}
}