320 lines
17 KiB
C#
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
|
|
}
|
|
} |