20240729 修改单位工程设置

This commit is contained in:
2024-07-29 23:00:57 +08:00
parent 451f040230
commit 857b6c2b5d
11 changed files with 1971 additions and 1607 deletions
+451 -180
View File
@@ -2,170 +2,28 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
namespace FineUIPro.Web.ProjectData
{
public partial class UnitWork : PageBase
{
#region
/// <summary>
/// 项目id
/// 页面加载
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ProjectId = this.CurrUser.LoginProjectId;
GetButtonPower();
ddlPageSize.SelectedValue = Grid1.PageSize.ToString();
// 绑定表格
BindGrid();
btnNew.OnClientClick = Window1.GetShowReference("UnitWorkEdit.aspx") + "return false;";
InitTreeMenu();
}
}
/// <summary>
/// 绑定数据
/// </summary>
#endregion
public void BindGrid()
{
if (!string.IsNullOrEmpty(this.CurrUser.LoginProjectId))
{
DataTable tb = ChecklistData(this.CurrUser.LoginProjectId);
Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
}
protected DataTable ChecklistData(string projectId)
{
string strSql = @"select UnitWorkId,UnitWorkCode,UnitWorkName,Costs,Weights,MainItemAndDesignProfessionalIds,SuperUnitWork,(case IsChild when '1' then 'true' else 'false' end) isChild,(case ProjectType when '1' then '建筑工程' when '2' then '安装工程' else '' end ) ProjectType ,Unit.UnitName AS UnitId,SupervisorUnit.UnitName AS SupervisorUnitId,NDEUnit.UnitName AS NDEUnit from [dbo].[WBS_UnitWork] AS UnitWork
Left join Base_Unit AS Unit on UnitWork.UnitId=Unit.UnitId
Left join Base_Unit AS SupervisorUnit on UnitWork.SupervisorUnitId=SupervisorUnit.UnitId
Left join Base_Unit AS NDEUnit on UnitWork.NDEUnit=NDEUnit.UnitId where ProjectId=@ProjectId ";
List<SqlParameter> listStr = new List<SqlParameter>
{
new SqlParameter("@ProjectId", projectId)
};
if (!string.IsNullOrEmpty(this.txtUnitWorkCode.Text.Trim()))
{
strSql += " AND UnitWorkCode like @UnitWorkCode";
listStr.Add(new SqlParameter("@UnitWorkCode", "%" + this.txtUnitWorkCode.Text.Trim() + "%"));
}
if (!string.IsNullOrEmpty(this.txtUnitWorkName.Text.Trim()))
{
strSql += " AND UnitWorkName like @UnitWorkName";
listStr.Add(new SqlParameter("@UnitWorkName", "%" + this.txtUnitWorkName.Text.Trim() + "%"));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
return tb;
}
protected void btnMenuModify_Click(object sender, EventArgs e)
{
EditData();
}
protected void btnMenuDel_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
string message = string.Empty;
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var unitwork = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(rowID);
if (unitwork != null)
{
string rowMessage= this.judgementDelete(rowID, unitwork.UnitWorkName);
if (string.IsNullOrEmpty(rowMessage))
{
BLL.BreakdownProjectService.DeleteAllBreakdownByUnitWorkId(rowID);
BLL.DivisionProjectService.DeleteDivisionProjectByUnitWorkId(rowID);
BLL.UnitWorkService.DeleteUnitWorkById(rowID);
}
else
{
message += rowMessage;
}
}
}
BindGrid();
if (string.IsNullOrEmpty(message))
{
ShowNotify("删除数据成功!", MessageBoxIcon.Success);
}
else
{
Alert.ShowInParent(message, MessageBoxIcon.Warning);
}
}
}
/// <summary>
/// 判断是否可删除
/// </summary>
/// <param name="rowID"></param>
/// <param name="isShow"></param>
/// <returns></returns>
private string judgementDelete(string rowID,string name)
{
string content = string.Empty;
var inspection = from x in Funs.DB.ProcessControl_InspectionManagement where x.UnitWorkId == rowID select x;
foreach (var item in inspection)
{
content += "共检通知单【"+ item.InspectionCode+ "】";
}
if (!string.IsNullOrEmpty(content))
{
content += "中已使用单位工程【" + name + "】!";
}
return content;
}
/// <summary>
/// 编辑数据方法
/// </summary>
private void EditData()
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning);
return;
}
if (this.btnMenuModify.Hidden) ////双击事件 编辑权限有:编辑页面,无:查看页面 或者状态是完成时查看页面
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("UnitWorkView.aspx?UnitWorkId={0}", Grid1.SelectedRowID, "查看 - ")));
}
else
{
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("UnitWorkEdit.aspx?UnitWorkId={0}", Grid1.SelectedRowID, "编辑 - ")));
}
}
#region
/// <summary>
/// 获取按钮权限
@@ -178,85 +36,498 @@ namespace FineUIPro.Web.ProjectData
{
return;
}
var buttonList = BLL.CommonService.GetAllButtonList(this.ProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId);
var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId);
if (buttonList.Count() > 0)
{
if (buttonList.Contains(BLL.Const.BtnAdd))
{
this.btnNew.Hidden = false;
this.btnMenuAdd.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnModify))
{
this.btnMenuModify.Hidden = false;
this.btnMenuEdit.Hidden = false;
}
if (buttonList.Contains(BLL.Const.BtnDelete))
{
this.btnMenuDel.Hidden = false;
this.btnMenuDelete.Hidden = false;
}
}
}
#endregion
#region
/// <summary>
/// 获取对应主项及设计专业
/// 加载树
/// </summary>
/// <param name="UnitWorks"></param>
/// <returns></returns>
protected string ConvertDesignProfessionalName(object MainItemAndDesignProfessionalIds)
private void InitTreeMenu()
{
string ProfessionalName = string.Empty;
if (MainItemAndDesignProfessionalIds != null)
this.trProjects.Nodes.Clear();
this.trProjects.ShowBorder = false;
this.trProjects.ShowHeader = false;
this.trProjects.EnableIcons = true;
this.trProjects.AutoScroll = true;
this.trProjects.EnableSingleClickExpand = true;
Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
if (project != null)
{
ProfessionalName = UnitWorkService.GetMainItemAndDesignProfessionalName(MainItemAndDesignProfessionalIds.ToString(), CurrUser.LoginProjectId);
TreeNode node = new TreeNode();
node.Text = project.ProjectName;
node.NodeID = project.ProjectId;
node.CommandName = "project";
node.EnableClickEvent = true;
node.EnableExpandEvent = true;
this.trProjects.Nodes.Add(node);
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
node.Nodes.Add(emptyNode);
}
return ProfessionalName;
}
protected void btnSearch_Click(object sender, EventArgs e)
#endregion
#region
/// <summary>
/// 展开树
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void trProjects_NodeExpand(object sender, TreeNodeEventArgs e)
{
e.Node.Nodes.Clear();
if (e.Node.CommandName == "project") //展开项目节点
{
var unitWorks = from x in Funs.DB.WBS_UnitWork
where x.ProjectId == e.Node.NodeID && x.SuperUnitWork == "0"
orderby x.UnitWorkCode
select x;
foreach (var unitWork in unitWorks)
{
TreeNode newNode = new TreeNode();
newNode.Text = unitWork.UnitWorkName;
newNode.NodeID = unitWork.UnitWorkId;
newNode.CommandName = "unitWork";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
e.Node.Nodes.Add(newNode);
var installation2s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork.UnitWorkId orderby x.UnitWorkCode select x;
if (installation2s.Count() > 0)
{
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
newNode.Nodes.Add(emptyNode);
}
}
}
else if (e.Node.CommandName == "unitWork") //展开装置/单元节点
{
var unitWorks = from x in Funs.DB.WBS_UnitWork
where x.SuperUnitWork == e.Node.NodeID
orderby x.UnitWorkCode
select x;
foreach (var unitWork in unitWorks)
{
TreeNode newNode = new TreeNode();
newNode.Text = unitWork.UnitWorkName;
newNode.NodeID = unitWork.UnitWorkId;
newNode.CommandName = "unitWork";
newNode.EnableExpandEvent = true;
newNode.EnableClickEvent = true;
e.Node.Nodes.Add(newNode);
var installation3s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork.UnitWorkId orderby x.UnitWorkCode select x;
if (installation3s.Count() > 0)
{
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
newNode.Nodes.Add(emptyNode);
}
}
}
}
#endregion
#region Tree点击事件
/// <summary>
/// Tree点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void trProjects_NodeCommand(object sender, TreeCommandEventArgs e)
{
if (this.Grid1.Rows.Count > 0)
{
SaveData();
}
BindGrid();
}
#endregion
protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e)
#region
/// <summary>
/// 保存方法
/// </summary>
private void SaveData()
{
EditData();
//string rowId = this.Grid1.Rows[0].RowID;
//string type = this.Grid1.Rows[0].Values[4].ToString();
//if (type == "unitProject")
//{
// Model.Wbs_UnitProjectInit unitProject = BLL.UnitProjectInitService.GetUnitProjectInitByUnitProjectCode(rowId);
// if (unitProject != null)
// {
// BLL.UnitProjectInitService.UpdateUnitProjectInit(unitProject);
// }
//}
//else if (type == "wbsSet")
//{
// Model.WBS_WbsSetInit wbsSet = BLL.WbsSetInitService.GetWbsSetInitByWbsSetCode(rowId);
// if (wbsSet != null)
// {
// var childWbsSets = BLL.WbsSetInitService.GetWbsSetInitsBySuperWbsSetCode(this.trProjects.SelectedNodeID);
// //wbsSet.StartDate = Convert.ToDateTime(this.Grid1.Rows[0].Values[2].ToString());
// //wbsSet.EndDate = Convert.ToDateTime(this.Grid1.Rows[0].Values[3].ToString());
// BLL.WbsSetInitService.UpdateWbsSetInit(wbsSet);
// }
//}
}
#endregion
#region
/// <summary>
/// 关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
ShowNotify("修改成功!", MessageBoxIcon.Success);
getWBSSet();
}
#endregion
#region
/// <summary>
/// 拷贝关闭窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window2_Close(object sender, WindowCloseEventArgs e)
{
ShowNotify("增加成功!", MessageBoxIcon.Success);
getWBSSet();
}
#endregion
#region
/// <summary>
/// 右键修改事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuEdit_Click(object sender, EventArgs e)
{
if (this.trProjects.SelectedNode != null && this.trProjects.SelectedNode.CommandName != "project")
{
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId, BLL.Const.BtnModify))
{
this.hdSelectId.Text = this.trProjects.SelectedNode.NodeID;
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("UnitWorkEdit.aspx?Id={0}", this.trProjects.SelectedNode.NodeID, "编辑 - ")));
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("项目节点无法修改!", MessageBoxIcon.Warning);
}
}
/// <summary>
/// 增加
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuAdd_Click(object sender, EventArgs e)
{
if (this.trProjects.SelectedNode != null)
{
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId, BLL.Const.BtnAdd))
{
string openUrl = String.Format("UnitWorkEdit.aspx?SuperId={0}", this.trProjects.SelectedNode.NodeID, "增加 - ");
PageContext.RegisterStartupScript(Window2.GetSaveStateReference(hdSelectId.ClientID)
+ Window2.GetShowReference(openUrl));
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
}
}
protected void btnMenuView_Click(object sender, EventArgs e)
/// <summary>
/// 右键删除事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length == 0)
if (this.trProjects.SelectedNode != null)
{
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
return;
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.UnitWorkMenuId, BLL.Const.BtnDelete))
{
if (this.trProjects.SelectedNode.CommandName != "project") //非专业节点可以删除
{
string id = this.trProjects.SelectedNode.NodeID;
Model.WBS_UnitWork unitWork = BLL.UnitWorkService.getUnitWorkByUnitWorkId(id);
if (unitWork.SuperUnitWork == "0") //删除一级装置
{
BLL.UnitWorkService.DeleteUnitWorkById(id);
var unitWork2s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == id select x;
foreach (var unitWork2 in unitWork2s)
{
BLL.UnitWorkService.DeleteUnitWorkById(unitWork2.UnitWorkId);
var unitWork3s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork2.UnitWorkId select x;
foreach (var unitWork3 in unitWork3s)
{
BLL.UnitWorkService.DeleteUnitWorkById(unitWork3.UnitWorkId);
}
}
}
else
{
Model.WBS_UnitWork unitWork2 = BLL.UnitWorkService.getUnitWorkByUnitWorkId(id);
Model.WBS_UnitWork unitWork1 = BLL.UnitWorkService.getUnitWorkByUnitWorkId(unitWork2.SuperUnitWork);
if (unitWork1.SuperUnitWork == "0") //删除二级装置
{
BLL.UnitWorkService.DeleteUnitWorkById(id);
var unitWork3s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == id select x;
foreach (var unitWork3 in unitWork3s)
{
BLL.UnitWorkService.DeleteUnitWorkById(unitWork3.UnitWorkId);
}
}
else //删除二级装置
{
BLL.UnitWorkService.DeleteUnitWorkById(id);
}
}
ShowNotify("删除成功!", MessageBoxIcon.Success);
InitTreeMenu();
}
else
{
ShowNotify("项目节点无法删除!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("UnitWorkView.aspx?UnitWorkId={0}", Grid1.SelectedRowID, "查看 - ")));
else
{
ShowNotify("请选择树节点!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 绑定数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_FilterChange(object sender, EventArgs e)
{
BindGrid();
}
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
Grid1.PageIndex = e.NewPageIndex;
BindGrid();
}
/// <summary>
/// Grid1排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
Grid1.SortDirection = e.SortDirection;
Grid1.SortField = e.SortField;
BindGrid();
}
/// <summary>
/// 分页下拉选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
/// <summary>
/// 重置
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnRset_Click(object sender, EventArgs e)
{
txtUnitWorkCode.Text = "";
txtUnitWorkName.Text = "";
BindGrid();
}
protected void Window1_Close(object sender, WindowCloseEventArgs e)
/// <summary>
/// 加载Grid
/// </summary>
private void BindGrid()
{
List<Model.WBS_UnitWork> items = new List<Model.WBS_UnitWork>();
if (this.trProjects.SelectedNode != null)
{
if (this.trProjects.SelectedNode.CommandName == "unitWork")
{
Model.WBS_UnitWork installation = BLL.UnitWorkService.getUnitWorkByUnitWorkId(this.trProjects.SelectedNode.NodeID);
Model.WBS_UnitWork item = new Model.WBS_UnitWork();
if (installation != null)
{
item.UnitWorkId = installation.UnitWorkId;
item.UnitWorkCode = installation.UnitWorkCode;
item.UnitWorkName = installation.UnitWorkName;
//item.ProjectType = "unitWork";
items.Add(item);
}
}
this.Grid1.DataSource = items;
this.Grid1.DataBind();
}
}
#endregion
#region Id定位到对应装置
/// <summary>
/// 根据所给Id定位到对应装置
/// </summary>
private void getWBSSet()
{
string unitWorkId = string.Empty;
string pUnitWorkId = string.Empty;
string ppUnitWorkId = string.Empty;
string projectId = this.CurrUser.LoginProjectId;
string id = this.hdSelectId.Text;
Model.WBS_UnitWork installation = BLL.UnitWorkService.getUnitWorkByUnitWorkId(id);
if (installation.SuperUnitWork == "0") //一级装置
{
ppUnitWorkId = id;
}
else
{
if (BLL.UnitWorkService.IsCanAddUnitWork(id)) //二级装置
{
pUnitWorkId = id;
ppUnitWorkId = installation.SuperUnitWork;
}
else //三级装置
{
unitWorkId = id;
pUnitWorkId = installation.SuperUnitWork;
Model.WBS_UnitWork pInstallation = BLL.UnitWorkService.getUnitWorkByUnitWorkId(installation.SuperUnitWork);
if (pInstallation != null)
{
ppUnitWorkId = pInstallation.SuperUnitWork;
}
}
}
this.trProjects.Nodes.Clear();
this.trProjects.ShowBorder = false;
this.trProjects.ShowHeader = false;
this.trProjects.EnableIcons = true;
this.trProjects.AutoScroll = true;
this.trProjects.EnableSingleClickExpand = true;
Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
if (project != null)
{
TreeNode node = new TreeNode();
node.Text = project.ProjectName;
node.NodeID = project.ProjectId;
node.EnableClickEvent = true;
this.trProjects.Nodes.Add(node);
node.Expanded = true;
var unitWork1s = from x in Funs.DB.WBS_UnitWork
where x.ProjectId == projectId && x.SuperUnitWork == "0"
orderby x.UnitWorkCode
select x;
foreach (var unitWork1 in unitWork1s)
{
TreeNode newNode1 = new TreeNode();
newNode1.Text = unitWork1.UnitWorkName;
newNode1.NodeID = unitWork1.UnitWorkId;
newNode1.CommandName = "unitWork";
newNode1.EnableExpandEvent = true;
newNode1.EnableClickEvent = true;
node.Nodes.Add(newNode1);
if (unitWork1.UnitWorkId == ppUnitWorkId)
{
newNode1.Expanded = true;
var unitWork2s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork1.SuperUnitWork orderby x.UnitWorkCode select x;
foreach (var unitWork2 in unitWork2s)
{
TreeNode newNode2 = new TreeNode();
newNode2.Text = unitWork2.UnitWorkName;
newNode2.NodeID = unitWork2.UnitWorkId;
newNode2.CommandName = "unitWork";
newNode2.EnableExpandEvent = true;
newNode2.EnableClickEvent = true;
newNode1.Nodes.Add(newNode2);
if (unitWork2.UnitWorkId == pUnitWorkId)
{
newNode2.Expanded = true;
var unitWork3s = from x in Funs.DB.WBS_UnitWork where x.SuperUnitWork == unitWork2.UnitWorkId orderby x.UnitWorkCode select x;
foreach (var unitWork3 in unitWork3s)
{
TreeNode newNode3 = new TreeNode();
newNode3.Text = unitWork3.UnitWorkName;
newNode3.NodeID = unitWork3.UnitWorkId;
newNode3.CommandName = "unitWork";
newNode3.EnableExpandEvent = true;
newNode3.EnableClickEvent = true;
newNode2.Nodes.Add(newNode3);
}
}
else
{
if (BLL.UnitWorkService.IsExitsUnitWorkBySuperUnitWork(unitWork2.UnitWorkId))
{
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
newNode2.Nodes.Add(emptyNode);
}
}
}
}
else
{
if (BLL.UnitWorkService.IsExitsUnitWorkBySuperUnitWork(unitWork1.UnitWorkId))
{
TreeNode emptyNode = new TreeNode();
emptyNode.Text = "";
emptyNode.NodeID = "";
newNode1.Nodes.Add(emptyNode);
}
}
}
}
this.trProjects.SelectedNodeID = this.hdSelectId.Text;
BindGrid();
}
#endregion
}
}