2024-09-11 15:51:01 +08:00
using BLL ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Data.SqlClient ;
using System.Linq ;
using System.Web.UI.WebControls ;
namespace FineUIPro.Web.CQMS.WBS.Control
{
public partial class DivisionDivideAndCrop : PageBase
{
#region 定 义 变 量
/// <summary>
/// 被选择项列表
/// </summary>
public List < string > SelectedList
{
get
{
return ( List < string > ) ViewState [ "SelectedList" ] ;
}
set
{
ViewState [ "SelectedList" ] = value ;
}
}
/// <summary>
/// 未被选择项列表
/// </summary>
public List < string > NoSelectedList
{
get
{
return ( List < string > ) ViewState [ "NoSelectedList" ] ;
}
set
{
ViewState [ "NoSelectedList" ] = value ;
}
}
#endregion
#region 加 载
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load ( object sender , EventArgs e )
{
if ( ! IsPostBack )
{
this . SelectedList = new List < string > ( ) ;
this . NoSelectedList = new List < string > ( ) ;
GetButtonPower ( ) ;
InitTreeMenu ( ) ;
BindGrid ( ) ;
}
}
#endregion
#region 加 载 树
/// <summary>
/// 加载树
/// </summary>
private void InitTreeMenu ( )
{
this . trUnitWork . Nodes . Clear ( ) ;
this . trUnitWork . ShowBorder = false ;
this . trUnitWork . ShowHeader = false ;
this . trUnitWork . EnableIcons = true ;
this . trUnitWork . AutoScroll = true ;
this . trUnitWork . EnableSingleClickExpand = true ;
List < Model . WBS_UnitWork > supUnitWorkList = BLL . UnitWorkService . GetUnitWorkLists ( this . CurrUser . LoginProjectId ) ;
if ( supUnitWorkList . Count ( ) > 0 )
{
foreach ( var item in supUnitWorkList )
{
TreeNode node = new TreeNode ( ) ;
node . Text = item . UnitWorkName ;
node . NodeID = item . UnitWorkId ;
node . CommandName = "supUnitWork" ;
node . EnableClickEvent = true ;
node . EnableExpandEvent = true ;
this . trUnitWork . Nodes . Add ( node ) ;
TreeNode emptyNode = new TreeNode ( ) ;
emptyNode . Text = "" ;
emptyNode . NodeID = "" ;
node . Nodes . Add ( emptyNode ) ;
}
}
}
#endregion
#region 展 开 树
/// <summary>
/// 展开树
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void trUnitWork_NodeExpand ( object sender , TreeNodeEventArgs e )
{
e . Node . Nodes . Clear ( ) ;
if ( e . Node . CommandName = = "supUnitWork" ) //展开单位工程节点
{
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 节 点 选 择 事 件
/// <summary>
/// tv节点选中事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void trUnitWork_NodeCommand ( object sender , TreeCommandEventArgs e )
{
for ( int i = 0 ; i < this . Grid1 . Rows . Count ; i + + )
{
if ( this . Grid1 . SelectedRowIDArray . Contains ( this . Grid1 . Rows [ i ] . RowID ) )
{
SelectedList . Add ( this . Grid1 . Rows [ i ] . RowID ) ;
}
else
{
NoSelectedList . Add ( this . Grid1 . Rows [ i ] . RowID ) ;
}
}
BindGrid ( ) ;
}
#endregion
#region 数 据 绑 定 和 事 件
/// <summary>
/// 数据绑定
/// </summary>
public void BindGrid ( )
{
string strSql = @"select * from(select a.DivisionId,a.ProjectId,a.ParentId,a.DivisionLevel,a.BranchEngineeringCode,a.BranchEngineeringName,a.SubBranchEngineeringName,a.ProEngineeringCode,a.ProEngineeringName,a.ProEngineeringNum,a.Remark,a.AddUser,a.OperateTime,a.Sort,a.Status from Division_SubProjects as a where isnull(a.ProjectId,'')='' " ;
string strSql1 = @"select a.DivisionId,a.ProjectId,a.ParentId,a.DivisionLevel,a.BranchEngineeringCode,a.BranchEngineeringName,a.SubBranchEngineeringName,a.ProEngineeringCode,a.ProEngineeringName,a.ProEngineeringNum,a.Remark,a.AddUser,a.OperateTime,a.Sort,a.Status from Division_SubProjects as a inner join Base_Project as b on a.ProjectId=b.ProjectId where a.ProjectId=@ProjectId " ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
listStr . Add ( new SqlParameter ( "@ProjectId" , this . CurrUser . LoginProjectId ) ) ;
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
2024-09-28 16:02:26 +08:00
var zxsql = strSql + " union all " + strSql1 + " ) as t order by t.BranchEngineeringCode,t.Sort,t.DivisionLevel,t.ProEngineeringNum asc" ;
2024-09-11 15:51:01 +08:00
DataTable tb = SQLHelper . GetDataTableRunText ( zxsql , parameter ) ;
Grid1 . DataSource = tb ;
Grid1 . DataBind ( ) ;
var selectIds = ( from x in Funs . DB . WBS_DivisionDivide where x . UnitWorkId = = this . trUnitWork . SelectedNodeID select x . DivisionId ) . ToList ( ) ;
if ( selectIds . Count ( ) > 0 )
{
this . Grid1 . SelectedRowIDArray = selectIds . ToArray ( ) ;
}
}
#endregion
#region 保 存
/// <summary>
/// 保存按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click ( object sender , EventArgs e )
{
if ( ! string . IsNullOrEmpty ( this . trUnitWork . SelectedNodeID ) )
{
SelectedList . Clear ( ) ;
NoSelectedList . Clear ( ) ;
for ( int i = 0 ; i < this . Grid1 . Rows . Count ; i + + )
{
if ( this . Grid1 . SelectedRowIDArray . Contains ( this . Grid1 . Rows [ i ] . RowID ) )
{
SelectedList . Add ( this . Grid1 . Rows [ i ] . RowID ) ;
}
else
{
NoSelectedList . Add ( this . Grid1 . Rows [ i ] . RowID ) ;
}
}
foreach ( var item in SelectedList . Distinct ( ) )
{
Model . WBS_DivisionDivide divisionDivide = BLL . DivisionDivideService . GetDivisionDivideByDivisionId ( this . trUnitWork . SelectedNodeID , item ) ;
if ( divisionDivide = = null )
{
Model . WBS_DivisionDivide newdivisiondivide = new Model . WBS_DivisionDivide ( ) ;
newdivisiondivide . DivisionDivideId = SQLHelper . GetNewID ( typeof ( Model . WBS_DivisionDivide ) ) ;
newdivisiondivide . ProjectId = this . CurrUser . LoginProjectId ;
newdivisiondivide . UnitWorkId = this . trUnitWork . SelectedNodeID ;
newdivisiondivide . DivisionId = item ;
BLL . DivisionDivideService . AddDivisionDivide ( newdivisiondivide ) ;
}
}
NoSelectedList = NoSelectedList . Distinct ( ) . ToList ( ) ;
var q = NoSelectedList . Distinct ( ) . ToList ( ) ;
foreach ( var item in q )
{
foreach ( var i in SelectedList . Distinct ( ) )
{
if ( item = = i )
{
NoSelectedList . Remove ( item ) ;
}
}
}
foreach ( var item in NoSelectedList )
{
Model . WBS_DivisionDivide divisionDivide = BLL . DivisionDivideService . GetDivisionDivideByDivisionId ( this . trUnitWork . SelectedNodeID , item ) ;
if ( divisionDivide ! = null )
{
BLL . DivisionDivideService . DeleteDivisionDivideByDivisionId ( item ) ;
}
}
ShowNotify ( "保存成功!" , MessageBoxIcon . Success ) ;
}
else
{
Alert . ShowInTop ( "请先选择单位工程/子单位工程!" , MessageBoxIcon . Warning ) ;
return ;
}
}
#endregion
2024-09-18 16:13:26 +08:00
#region 导 入
/// <summary>
/// 导入
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnImport_Click ( object sender , EventArgs e )
{
PageContext . RegisterStartupScript ( Window1 . GetShowReference ( String . Format ( "DivisionDivideAndCropDataIn.aspx" , "导入 - " ) ) ) ;
}
2024-09-28 16:02:26 +08:00
#endregion
#region 拷 贝
/// <summary>
/// 拷贝
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnCopy_Click ( object sender , EventArgs e )
{
bool isOk = false ;
if ( ! string . IsNullOrEmpty ( this . trUnitWork . SelectedNodeID ) )
{
var unitwork = BLL . UnitWorkService . GetUnitWorkByUnitWorkId ( this . trUnitWork . SelectedNodeID ) ;
if ( unitwork ! = null )
{
Model . WBS_UnitWork newSupUnitWork = new Model . WBS_UnitWork ( ) ;
newSupUnitWork . UnitWorkId = SQLHelper . GetNewID ( typeof ( Model . WBS_UnitWork ) ) ;
newSupUnitWork . UnitWorkCode = unitwork . UnitWorkCode ;
newSupUnitWork . UnitWorkName = unitwork . UnitWorkName ;
newSupUnitWork . ProjectId = this . CurrUser . LoginProjectId ;
newSupUnitWork . SuperUnitWork = unitwork . SuperUnitWork ;
BLL . UnitWorkService . AddUnitWork ( newSupUnitWork ) ;
isOk = true ;
var divisionDivides = BLL . DivisionDivideService . GetDivisionDivideByUnitWorkId ( this . trUnitWork . SelectedNodeID ) ;
if ( divisionDivides ! = null )
{
foreach ( var item in divisionDivides )
{
Model . WBS_DivisionDivide newDivisionDivide = new Model . WBS_DivisionDivide ( ) ;
newDivisionDivide . DivisionDivideId = SQLHelper . GetNewID ( typeof ( Model . WBS_DivisionDivide ) ) ;
newDivisionDivide . ProjectId = this . CurrUser . LoginProjectId ;
newDivisionDivide . UnitWorkId = newSupUnitWork . UnitWorkId ;
newDivisionDivide . DivisionId = item . DivisionId ;
BLL . DivisionDivideService . AddDivisionDivide ( newDivisionDivide ) ;
isOk = true ;
}
}
var unitworkList = BLL . UnitWorkService . GetUnitWorksBySupUnitWork ( this . trUnitWork . SelectedNodeID ) ;
if ( unitworkList . Count ( ) > 0 )
{
foreach ( var item in unitworkList )
{
Model . WBS_UnitWork newUnitWork = new Model . WBS_UnitWork ( ) ;
newUnitWork . UnitWorkId = SQLHelper . GetNewID ( typeof ( Model . WBS_UnitWork ) ) ;
newUnitWork . UnitWorkCode = item . UnitWorkCode ;
newUnitWork . UnitWorkName = item . UnitWorkName ;
newUnitWork . ProjectId = this . CurrUser . LoginProjectId ;
newUnitWork . SuperUnitWork = newSupUnitWork . UnitWorkId ;
BLL . UnitWorkService . AddUnitWork ( newUnitWork ) ;
isOk = true ;
var divisionDivideLists = BLL . DivisionDivideService . GetDivisionDivideByUnitWorkId ( item . UnitWorkId ) ;
if ( divisionDivideLists ! = null )
{
foreach ( var divis in divisionDivideLists )
{
Model . WBS_DivisionDivide newDivisionDivide = new Model . WBS_DivisionDivide ( ) ;
newDivisionDivide . DivisionDivideId = SQLHelper . GetNewID ( typeof ( Model . WBS_DivisionDivide ) ) ;
newDivisionDivide . ProjectId = this . CurrUser . LoginProjectId ;
newDivisionDivide . UnitWorkId = newUnitWork . UnitWorkId ;
newDivisionDivide . DivisionId = divis . DivisionId ;
BLL . DivisionDivideService . AddDivisionDivide ( newDivisionDivide ) ;
isOk = true ;
}
}
}
}
}
}
if ( isOk )
{
ShowNotify ( "拷贝成功!" , MessageBoxIcon . Success ) ;
}
else
{
ShowNotify ( "拷贝失败!" , MessageBoxIcon . Success ) ;
}
}
#endregion
#region 修 改
/// <summary>
/// 修改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnEdit_Click ( object sender , EventArgs e )
{
if ( ! string . IsNullOrEmpty ( this . trUnitWork . SelectedNodeID ) )
{
var unitWork = BLL . UnitWorkService . GetUnitWorkByUnitWorkId ( this . trUnitWork . SelectedNodeID ) ;
if ( unitWork ! = null )
{
PageContext . RegisterStartupScript ( Window2 . GetShowReference ( String . Format ( "../../../ProjectData/UnitWorkEdit.aspx?Id={0}&&SuperId={1}" , this . trUnitWork . SelectedNode . NodeID , unitWork . SuperUnitWork , "编辑 - " ) ) ) ;
}
}
}
#endregion
#region 关 闭 弹 出 窗 体
/// <summary>
/// 关闭弹出窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window2_Close ( object sender , WindowCloseEventArgs e )
{
InitTreeMenu ( ) ;
}
2024-09-18 16:13:26 +08:00
#endregion
2024-09-11 15:51:01 +08:00
#region 获 取 按 钮 权 限
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private void GetButtonPower ( )
{
if ( Request . Params [ "value" ] = = "0" )
{
return ;
}
var buttonList = BLL . CommonService . GetAllButtonList ( this . CurrUser . LoginProjectId , this . CurrUser . UserId , BLL . Const . DivisionDivideAndCropMenuId ) ;
if ( buttonList . Count ( ) > 0 )
{
if ( buttonList . Contains ( BLL . Const . BtnSave ) )
{
this . btnSave . Hidden = false ;
2024-09-18 16:13:26 +08:00
this . btnImport . Hidden = false ;
2024-09-28 16:02:26 +08:00
this . btnCopy . Hidden = false ;
this . btnEdit . Hidden = false ;
2024-09-11 15:51:01 +08:00
}
}
}
2024-09-18 16:13:26 +08:00
2024-09-11 15:51:01 +08:00
#endregion
}
}