421 lines
23 KiB
C#
421 lines
23 KiB
C#
using BLL;
|
|
using Model;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web.UI.WebControls;
|
|
|
|
namespace FineUIPro.Web.JDGL.WBS
|
|
{
|
|
public partial class WBSSetCopy2 : 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 == "unitProject" || 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;
|
|
if (BLL.WbsSetInitService.GetWbsSetInitsBySuperWbsSetCode(id).Count == 0) //末级节点
|
|
{
|
|
this.trWbsSet2.Hidden = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
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"];
|
|
string handleType = Request.Params["HandleType"];
|
|
if (type == "unitProject")
|
|
{
|
|
Model.Wbs_UnitProject unitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(id);
|
|
if (unitProject != null)
|
|
{
|
|
//拷贝单位工程
|
|
Model.Wbs_UnitProject newUnitProject = new Wbs_UnitProject();
|
|
newUnitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject));
|
|
updateId = newUnitProject.UnitProjectId;
|
|
newUnitProject.UnitProjectCode = txtCode.Text.Trim();
|
|
newUnitProject.UnitProjectName = txtName.Text.Trim();
|
|
newUnitProject.ProjectId = unitProject.ProjectId;
|
|
newUnitProject.CnProfessionId = unitProject.CnProfessionId;
|
|
newUnitProject.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim());
|
|
newUnitProject.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim());
|
|
if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim()))
|
|
{
|
|
newUnitProject.SortIndex = Convert.ToInt32(txtSortIndex.Text.Trim());
|
|
}
|
|
newUnitProject.Remark = txtRemark.Text.Trim();
|
|
newUnitProject.SuperUnitProjectId = unitProject.SuperUnitProjectId;
|
|
newUnitProject.IsIn = false;
|
|
if (string.IsNullOrEmpty(handleType))
|
|
{
|
|
newUnitProject.IsSelected = true;
|
|
}
|
|
else
|
|
{
|
|
newUnitProject.IsApprove = true;
|
|
}
|
|
BLL.UnitProjectService.AddUnitProject(newUnitProject);
|
|
//拷贝子单位工程
|
|
List<Model.Wbs_UnitProject> childUnitProjects = (from x in Funs.DB.Wbs_UnitProject where x.SuperUnitProjectId == unitProject.UnitProjectId orderby x.UnitProjectCode select x).ToList();
|
|
if (childUnitProjects.Count > 0) //存在子单位工程
|
|
{
|
|
foreach (Wbs_UnitProject childUnitProject in childUnitProjects)
|
|
{
|
|
Model.Wbs_UnitProject newChildUnitProject = new Wbs_UnitProject();
|
|
newChildUnitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject));
|
|
newChildUnitProject.UnitProjectCode = GetReplaceCode(childUnitProject.UnitProjectCode, unitProject.UnitProjectCode);
|
|
newChildUnitProject.UnitProjectName = childUnitProject.UnitProjectName;
|
|
newChildUnitProject.ProjectId = childUnitProject.ProjectId;
|
|
newChildUnitProject.CnProfessionId = childUnitProject.CnProfessionId;
|
|
newChildUnitProject.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim());
|
|
newChildUnitProject.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim());
|
|
newChildUnitProject.SortIndex = childUnitProject.SortIndex;
|
|
newChildUnitProject.Remark = txtRemark.Text.Trim();
|
|
newChildUnitProject.SuperUnitProjectId = newUnitProject.UnitProjectId;
|
|
newChildUnitProject.IsIn = false;
|
|
if (string.IsNullOrEmpty(handleType))
|
|
{
|
|
newChildUnitProject.IsSelected = true;
|
|
}
|
|
else
|
|
{
|
|
newChildUnitProject.IsApprove = true;
|
|
}
|
|
BLL.UnitProjectService.AddUnitProject(newChildUnitProject);
|
|
//拷贝分部工程
|
|
var wbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == childUnitProject.UnitProjectId orderby x.WbsSetCode select x;
|
|
foreach (var wbsSet1 in wbsSet1s)
|
|
{
|
|
Model.Wbs_WbsSet newWbsSet1 = new Wbs_WbsSet();
|
|
newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
|
|
//newWbsSet1.WbsSetCode = wbsSet1.WbsSetCode.Replace(unitProject.UnitProjectCode, this.txtCode.Text.Trim());
|
|
newWbsSet1.WbsSetCode = GetReplaceCode(wbsSet1.WbsSetCode, unitProject.UnitProjectCode);
|
|
newWbsSet1.WbsSetName = wbsSet1.WbsSetName;
|
|
newWbsSet1.CnProfessionId = wbsSet1.CnProfessionId;
|
|
newWbsSet1.UnitProjectId = newChildUnitProject.UnitProjectId;
|
|
newWbsSet1.SuperWbsSetId = null;
|
|
newWbsSet1.ProjectId = wbsSet1.ProjectId;
|
|
newWbsSet1.StartDate = wbsSet1.StartDate;
|
|
newWbsSet1.EndDate = wbsSet1.EndDate;
|
|
newWbsSet1.Flag = wbsSet1.Flag;
|
|
newWbsSet1.Way = wbsSet1.Way;
|
|
newWbsSet1.Remark = wbsSet1.Remark;
|
|
newWbsSet1.IsIn = false;
|
|
newWbsSet1.SortIndex = wbsSet1.SortIndex;
|
|
if (string.IsNullOrEmpty(handleType))
|
|
{
|
|
newWbsSet1.IsSelected = true;
|
|
}
|
|
else
|
|
{
|
|
newWbsSet1.IsApprove = true;
|
|
}
|
|
BLL.WbsSetService.AddWbsSet(newWbsSet1);
|
|
this.AddWbsSets(newWbsSet1.WbsSetId, wbsSet1.WbsSetId, unitProject.UnitProjectCode, newChildUnitProject.UnitProjectId);
|
|
}
|
|
}
|
|
}
|
|
else //不存在子单位工程
|
|
{
|
|
//拷贝分部工程
|
|
var wbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == unitProject.UnitProjectId orderby x.WbsSetCode select x;
|
|
if (wbsSet1s.Count() > 0)
|
|
{
|
|
foreach (var wbsSet1 in wbsSet1s)
|
|
{
|
|
Model.Wbs_WbsSet newWbsSet1 = new Wbs_WbsSet();
|
|
newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
|
|
//newWbsSet1.WbsSetCode = wbsSet1.WbsSetCode.Replace(unitProject.UnitProjectCode, this.txtCode.Text.Trim());
|
|
newWbsSet1.WbsSetCode = GetReplaceCode(wbsSet1.WbsSetCode, unitProject.UnitProjectCode);
|
|
newWbsSet1.WbsSetName = wbsSet1.WbsSetName;
|
|
newWbsSet1.CnProfessionId = wbsSet1.CnProfessionId;
|
|
newWbsSet1.UnitProjectId = newUnitProject.UnitProjectId;
|
|
newWbsSet1.SuperWbsSetId = null;
|
|
newWbsSet1.ProjectId = wbsSet1.ProjectId;
|
|
newWbsSet1.StartDate = wbsSet1.StartDate;
|
|
newWbsSet1.EndDate = wbsSet1.EndDate;
|
|
newWbsSet1.SortIndex = wbsSet1.SortIndex;
|
|
newWbsSet1.Flag = wbsSet1.Flag;
|
|
newWbsSet1.Way = wbsSet1.Way;
|
|
newWbsSet1.Remark = wbsSet1.Remark;
|
|
newWbsSet1.IsIn = false;
|
|
if (string.IsNullOrEmpty(handleType))
|
|
{
|
|
newWbsSet1.IsSelected = true;
|
|
}
|
|
else
|
|
{
|
|
newWbsSet1.IsApprove = true;
|
|
}
|
|
BLL.WbsSetService.AddWbsSet(newWbsSet1);
|
|
this.AddWbsSets(newWbsSet1.WbsSetId, wbsSet1.WbsSetId, unitProject.UnitProjectCode, unitProject.UnitProjectId);
|
|
}
|
|
}
|
|
else //单位工程下直接是分项内容,如质量行为
|
|
{
|
|
var wbsSet3s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 3 && x.UnitProjectId == unitProject.UnitProjectId orderby x.WbsSetCode select x;
|
|
if (wbsSet3s.Count() > 0)
|
|
{
|
|
foreach (var wbsSet3 in wbsSet3s)
|
|
{
|
|
Model.Wbs_WbsSet newWbsSet3 = new Wbs_WbsSet();
|
|
newWbsSet3.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
|
|
//newWbsSet1.WbsSetCode = wbsSet1.WbsSetCode.Replace(unitProject.UnitProjectCode, this.txtCode.Text.Trim());
|
|
newWbsSet3.WbsSetCode = GetReplaceCode(wbsSet3.WbsSetCode, unitProject.UnitProjectCode);
|
|
newWbsSet3.WbsSetName = wbsSet3.WbsSetName;
|
|
newWbsSet3.CnProfessionId = wbsSet3.CnProfessionId;
|
|
newWbsSet3.UnitProjectId = newUnitProject.UnitProjectId;
|
|
newWbsSet3.SuperWbsSetId = null;
|
|
newWbsSet3.ProjectId = wbsSet3.ProjectId;
|
|
newWbsSet3.StartDate = wbsSet3.StartDate;
|
|
newWbsSet3.EndDate = wbsSet3.EndDate;
|
|
newWbsSet3.SortIndex = wbsSet3.SortIndex;
|
|
newWbsSet3.Flag = wbsSet3.Flag;
|
|
newWbsSet3.Way = wbsSet3.Way;
|
|
newWbsSet3.Remark = wbsSet3.Remark;
|
|
newWbsSet3.IsIn = false;
|
|
if (string.IsNullOrEmpty(handleType))
|
|
{
|
|
newWbsSet3.IsSelected = true;
|
|
}
|
|
else
|
|
{
|
|
newWbsSet3.IsApprove = true;
|
|
}
|
|
BLL.WbsSetService.AddWbsSet(newWbsSet3);
|
|
this.AddWbsSets(newWbsSet3.WbsSetId, wbsSet3.WbsSetId, unitProject.UnitProjectCode, unitProject.UnitProjectId);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if (type == "childUnitProject")
|
|
{
|
|
Model.Wbs_UnitProject childUnitProject = BLL.UnitProjectService.GetUnitProjectByUnitProjectId(id);
|
|
if (childUnitProject != null)
|
|
{
|
|
//拷贝子单位工程
|
|
Model.Wbs_UnitProject newChildUnitProject = new Wbs_UnitProject();
|
|
newChildUnitProject.UnitProjectId = SQLHelper.GetNewID(typeof(Model.Wbs_UnitProject));
|
|
updateId = newChildUnitProject.UnitProjectId;
|
|
newChildUnitProject.UnitProjectCode = txtCode.Text.Trim();
|
|
newChildUnitProject.UnitProjectName = txtName.Text.Trim();
|
|
newChildUnitProject.ProjectId = childUnitProject.ProjectId;
|
|
newChildUnitProject.CnProfessionId = childUnitProject.CnProfessionId;
|
|
newChildUnitProject.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim());
|
|
newChildUnitProject.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim());
|
|
if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim()))
|
|
{
|
|
newChildUnitProject.SortIndex = Convert.ToInt32(txtSortIndex.Text.Trim());
|
|
}
|
|
newChildUnitProject.Remark = txtRemark.Text.Trim();
|
|
newChildUnitProject.SuperUnitProjectId = childUnitProject.SuperUnitProjectId;
|
|
newChildUnitProject.IsIn = false;
|
|
if (string.IsNullOrEmpty(handleType))
|
|
{
|
|
newChildUnitProject.IsSelected = true;
|
|
}
|
|
else
|
|
{
|
|
newChildUnitProject.IsApprove = true;
|
|
}
|
|
BLL.UnitProjectService.AddUnitProject(newChildUnitProject);
|
|
//拷贝分部工程
|
|
var wbsSet1s = from x in Funs.DB.Wbs_WbsSet where x.Flag == 1 && x.UnitProjectId == childUnitProject.UnitProjectId orderby x.WbsSetCode select x;
|
|
foreach (var wbsSet1 in wbsSet1s)
|
|
{
|
|
Model.Wbs_WbsSet newWbsSet1 = new Wbs_WbsSet();
|
|
newWbsSet1.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
|
|
//newWbsSet1.WbsSetCode = wbsSet1.WbsSetCode.Replace(childUnitProject.UnitProjectCode, this.txtCode.Text.Trim());
|
|
newWbsSet1.WbsSetCode = GetReplaceCode(wbsSet1.WbsSetCode, childUnitProject.UnitProjectCode);
|
|
newWbsSet1.WbsSetName = wbsSet1.WbsSetName;
|
|
newWbsSet1.CnProfessionId = wbsSet1.CnProfessionId;
|
|
newWbsSet1.UnitProjectId = newChildUnitProject.UnitProjectId;
|
|
newWbsSet1.SuperWbsSetId = null;
|
|
newWbsSet1.ProjectId = wbsSet1.ProjectId;
|
|
newWbsSet1.StartDate = wbsSet1.StartDate;
|
|
newWbsSet1.EndDate = wbsSet1.EndDate;
|
|
newWbsSet1.SortIndex = wbsSet1.SortIndex;
|
|
newWbsSet1.Flag = wbsSet1.Flag;
|
|
newWbsSet1.Way = wbsSet1.Way;
|
|
newWbsSet1.Remark = wbsSet1.Remark;
|
|
newWbsSet1.IsIn = false;
|
|
if (string.IsNullOrEmpty(handleType))
|
|
{
|
|
newWbsSet1.IsSelected = true;
|
|
}
|
|
else
|
|
{
|
|
newWbsSet1.IsApprove = true;
|
|
}
|
|
BLL.WbsSetService.AddWbsSet(newWbsSet1);
|
|
this.AddWbsSets(newWbsSet1.WbsSetId, wbsSet1.WbsSetId, childUnitProject.UnitProjectCode, newChildUnitProject.UnitProjectId);
|
|
}
|
|
}
|
|
}
|
|
else if (type == "wbsSet")
|
|
{
|
|
Model.Wbs_WbsSet wbsSet = BLL.WbsSetService.GetWbsSetByWbsSetId(id);
|
|
if (wbsSet != null)
|
|
{
|
|
Model.Wbs_WbsSet newWbsSet = new Wbs_WbsSet();
|
|
newWbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
|
|
updateId = newWbsSet.WbsSetId;
|
|
newWbsSet.WbsSetCode = this.txtCode.Text.Trim();
|
|
newWbsSet.WbsSetName = txtName.Text.Trim();
|
|
newWbsSet.CnProfessionId = wbsSet.CnProfessionId;
|
|
newWbsSet.UnitProjectId = wbsSet.UnitProjectId;
|
|
newWbsSet.IsChild = true;
|
|
newWbsSet.SuperWbsSetId = wbsSet.WbsSetId;
|
|
newWbsSet.ProjectId = wbsSet.ProjectId;
|
|
newWbsSet.StartDate = Convert.ToDateTime(txtStartDate.Text.Trim());
|
|
newWbsSet.EndDate = Convert.ToDateTime(txtEndDate.Text.Trim());
|
|
if (!string.IsNullOrEmpty(txtSortIndex.Text.Trim()))
|
|
{
|
|
newWbsSet.SortIndex = Convert.ToInt32(txtSortIndex.Text.Trim());
|
|
}
|
|
newWbsSet.Flag = wbsSet.Flag + 1;
|
|
newWbsSet.Way = wbsSet.Way;
|
|
newWbsSet.Remark = txtRemark.Text.Trim();
|
|
newWbsSet.IsIn = false;
|
|
newWbsSet.IsApprove = true;
|
|
BLL.WbsSetService.AddWbsSet(newWbsSet);
|
|
this.AddWbsSets(newWbsSet.WbsSetId, wbsSet.WbsSetId, wbsSet.WbsSetCode, wbsSet.UnitProjectId);
|
|
}
|
|
}
|
|
//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.GetIsChildWbsSetsBySuperWbsSetId(oldSuperWbsSetId);
|
|
foreach (var wbsSet in childWbsSets)
|
|
{
|
|
Model.Wbs_WbsSet newWbsSet = new Wbs_WbsSet();
|
|
newWbsSet.WbsSetId = SQLHelper.GetNewID(typeof(Model.Wbs_WbsSet));
|
|
//newWbsSet.WbsSetCode = wbsSet.WbsSetCode.Replace(code, this.txtCode.Text.Trim());
|
|
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;
|
|
newWbsSet.IsApprove = true;
|
|
BLL.WbsSetService.AddWbsSet(newWbsSet);
|
|
this.AddWbsSets(newWbsSet.WbsSetId, wbsSet.WbsSetId, code, unitProjectId);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 获取编号
|
|
/// <summary>
|
|
/// 获取编号
|
|
/// </summary>
|
|
/// <param name="oldStr"></param>
|
|
/// <param name="replaceCode"></param>
|
|
/// <returns></returns>
|
|
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
|
|
}
|
|
} |