2022-09-05 16:36:31 +08:00
using BLL ;
using MiniExcelLibs ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Data.SqlClient ;
using System.IO ;
using System.Linq ;
using System.Web.UI.WebControls ;
namespace FineUIPro.Web.HJGL.WeldingManage
{
public partial class WeldingPlan : PageBase
{
2024-10-27 16:30:44 +08:00
2022-09-05 16:36:31 +08:00
protected void Page_Load ( object sender , EventArgs e )
{
ctlAuditFlow . Url = BLL . Project_SysSetService . GetAvevaNetUrl ( this . CurrUser . LoginProjectId ) ;
if ( ! IsPostBack )
{
this . ddlPageSize . SelectedValue = this . Grid1 . PageSize . ToString ( ) ;
this . InitTreeMenu ( ) ; //加载树
}
}
protected void drpProjectId_SelectedIndexChanged ( object sender , EventArgs e )
{
this . InitTreeMenu ( ) ;
}
#region 加 载 树 装 置 - 单 位 - 工 作 区
/// <summary>
/// 加载树
/// </summary>
private void InitTreeMenu ( )
{
this . tvControlItem . Nodes . Clear ( ) ;
TreeNode rootNode1 = new TreeNode ( ) ;
rootNode1 . NodeID = "1" ;
rootNode1 . Text = "建筑工程" ;
rootNode1 . CommandName = "建筑工程" ;
rootNode1 . Selectable = false ;
this . tvControlItem . Nodes . Add ( rootNode1 ) ;
TreeNode rootNode2 = new TreeNode ( ) ;
rootNode2 . NodeID = "2" ;
rootNode2 . Text = "安装工程" ;
rootNode2 . CommandName = "安装工程" ;
rootNode2 . Expanded = true ;
this . tvControlItem . Nodes . Add ( rootNode2 ) ;
var pUnits = ( from x in Funs . DB . Project_ProjectUnit where x . ProjectId = = this . CurrUser . LoginProjectId select x ) . ToList ( ) ;
// 获取当前用户所在单位
var currUnit = pUnits . FirstOrDefault ( x = > x . UnitId = = this . CurrUser . UnitId ) ;
var unitWorkList = ( from x in Funs . DB . WBS_UnitWork
where x . ProjectId = = this . CurrUser . LoginProjectId
& & x . SuperUnitWork = = null & & x . UnitId ! = null & & x . ProjectType ! = null
select x ) . ToList ( ) ;
List < Model . WBS_UnitWork > unitWork1 = null ;
List < Model . WBS_UnitWork > unitWork2 = null ;
2023-08-30 16:19:19 +08:00
//// 当前为施工单位,只能操作本单位的数据
//if (currUnit != null && currUnit.UnitType == Const.ProjectUnitType_2)
//{
// unitWork1 = (from x in unitWorkList
// where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "1"
// select x).ToList();
// unitWork2 = (from x in unitWorkList
// where x.UnitId == this.CurrUser.UnitId && x.ProjectType == "2"
// select x).ToList();
//}
//else
//{
2022-09-05 16:36:31 +08:00
unitWork1 = ( from x in unitWorkList where x . ProjectType = = "1" select x ) . ToList ( ) ;
unitWork2 = ( from x in unitWorkList where x . ProjectType = = "2" select x ) . ToList ( ) ;
2023-08-30 16:19:19 +08:00
//}
2022-09-05 16:36:31 +08:00
if ( unitWork1 . Count ( ) > 0 )
{
foreach ( var q in unitWork1 )
{
2022-12-30 15:36:30 +08:00
int a = ( from x in Funs . DB . HJGL_Pipeline where x . ProjectId = = this . CurrUser . LoginProjectId & & x . UnitWorkId = = q . UnitWorkId select x ) . Count ( ) ;
2023-10-25 19:44:10 +08:00
var unitNamesUnitIds = BLL . UnitService . getUnitNamesUnitIds ( q . UnitId ) ;
2022-09-05 16:36:31 +08:00
TreeNode tn1 = new TreeNode ( ) ;
tn1 . NodeID = q . UnitWorkId ;
tn1 . Text = q . UnitWorkName + "【" + a . ToString ( ) + "】" + "管线" ;
2023-10-25 19:44:10 +08:00
tn1 . ToolTip = "施工单位:" + unitNamesUnitIds ;
2022-09-05 16:36:31 +08:00
tn1 . EnableClickEvent = true ;
rootNode1 . Nodes . Add ( tn1 ) ;
}
}
if ( unitWork2 . Count ( ) > 0 )
{
foreach ( var q in unitWork2 )
{
2022-12-30 15:36:30 +08:00
int a = ( from x in Funs . DB . HJGL_Pipeline where x . ProjectId = = this . CurrUser . LoginProjectId & & x . UnitWorkId = = q . UnitWorkId select x ) . Count ( ) ;
2023-10-25 19:44:10 +08:00
var unitNamesUnitIds = BLL . UnitService . getUnitNamesUnitIds ( q . UnitId ) ;
2022-09-05 16:36:31 +08:00
TreeNode tn2 = new TreeNode ( ) ;
tn2 . NodeID = q . UnitWorkId ;
tn2 . Text = q . UnitWorkName + "【" + a . ToString ( ) + "】" + "管线" ;
2023-10-25 19:44:10 +08:00
tn2 . ToolTip = "施工单位:" + unitNamesUnitIds ;
2022-09-05 16:36:31 +08:00
tn2 . EnableClickEvent = true ;
rootNode2 . Nodes . Add ( tn2 ) ;
}
}
}
#endregion
#region 点 击 TreeView
/// <summary>
/// 点击TreeView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand ( object sender , TreeCommandEventArgs e )
{
this . BindGrid ( ) ;
2023-02-20 21:59:35 +08:00
2022-09-05 16:36:31 +08:00
ctlAuditFlow . BindData ( ) ;
}
#endregion
#region 数 据 绑 定
/// <summary>
/// 数据绑定
/// </summary>
private void BindGrid ( )
{
2022-10-13 18:52:45 +08:00
string strSql = @"select (line.PipelineId+'&'+ISNULL(com.PipelineComponentId,'') ) as ID
2022-09-05 16:36:31 +08:00
,line.PipelineId
2023-12-04 12:11:39 +08:00
,(select ISNULL(SUM(ISNULL(jot.Size,0)),0) FROM dbo.HJGL_WeldJoint jot WHERE jot.PipelineId=line.PipelineId) as TotalSize
,(case when line.PipeArea='1' then (select ISNULL(SUM(ISNULL(jot.Size,0)),0) FROM dbo.HJGL_WeldJoint jot WHERE jot.PipelineId=line.PipelineId and jot.JointAttribute='预制口')
else (select ISNULL(SUM(ISNULL(jot.Size,0)),0) FROM dbo.HJGL_WeldJoint jot WHERE jot.PipelineId=line.PipelineId) end) as TotalYZSize
2022-09-05 16:36:31 +08:00
,line.PipelineCode
,line.ProjectId
,line.UnitWorkId
,line.UnitId
,line.SingleNumber
,line.PipingClassId
,line.MediumId
,line.DetectionRateId
,line.DetectionType
,line.TestPressure
,line.TestMedium
,line.Remark
,line.PressurePipingClassId
,line.PipeLenth
,line.DesignPress
,line.DesignTemperature
,line.PCtype
,line.LeakPressure
,line.LeakMedium
,line.VacuumPressure
,line.PCMedium
,line.MaterialId
,line.SingleName
,line.PipeArea
,line.WBSId
,line.PlanStartDate
,line.PlanEndDate
,line.ActStartDate
2023-12-06 14:41:04 +08:00
,mat.MaterialCode
2022-09-05 16:36:31 +08:00
,line.ActEndDate
,line.IsFinished
2022-11-09 18:16:18 +08:00
,line.FlowingSection
2022-11-16 19:48:03 +08:00
,(case line.State
when 0 then '未开始'
when 1 then '未开始且延误'
when 2 then '开始'
when 3 then '已开始且延误'
when 4 then '完成' else '' end ) as State
2022-09-05 16:36:31 +08:00
,com.PipelineComponentId
,com.PreUnit
,com.PipelineComponentCode
,com.BoxNumber
,com.AssembleUnit
,com.PipeLineMatId
,com.QRCode
,com.PlanStartDate as PlanStartDate_SHOP
,com.PlanEndDate as PlanEndDate_SHOP
,com.ActStartDate as ActStartDate_SHOP
,com.ActEndDate as ActEndDate_SHOP
from HJGL_Pipeline line
left join HJGL_Pipeline_Component com on line.PipelineId=com.PipelineId
LEFT JOIN dbo.Base_Material AS mat ON mat.MaterialId=line.MaterialId
WHERE line.ProjectId= @ProjectId" ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
listStr . Add ( new SqlParameter ( "@ProjectId" , this . CurrUser . LoginProjectId ) ) ;
strSql + = " AND line.UnitWorkId =@UnitWorkId" ;
listStr . Add ( new SqlParameter ( "@UnitWorkId" , this . tvControlItem . SelectedNodeID ) ) ;
if ( ! string . IsNullOrEmpty ( this . txtPipelineCode . Text . Trim ( ) ) )
{
strSql + = " AND line.PipelineCode LIKE @PipelineCode" ;
listStr . Add ( new SqlParameter ( "@PipelineCode" , "%" + this . txtPipelineCode . Text . Trim ( ) + "%" ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . txtSingleName . Text . Trim ( ) ) )
{
strSql + = " AND line.SingleName LIKE @SingleName" ;
listStr . Add ( new SqlParameter ( "@SingleName" , "%" + this . txtSingleName . Text . Trim ( ) + "%" ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . txtDesignPress . Text . Trim ( ) ) )
{
strSql + = " AND line.DesignPress LIKE @DesignPress" ;
listStr . Add ( new SqlParameter ( "@DesignPress" , "%" + this . txtDesignPress . Text . Trim ( ) + "%" ) ) ;
}
if ( ! string . IsNullOrEmpty ( this . txtMaterialCode . Text . Trim ( ) ) )
{
strSql + = " AND mat.MaterialCode LIKE @MaterialCode" ;
listStr . Add ( new SqlParameter ( "@MaterialCode" , "%" + this . txtMaterialCode . Text . Trim ( ) + "%" ) ) ;
}
2022-11-09 18:16:18 +08:00
if ( ! string . IsNullOrEmpty ( this . txtFlowingSection . Text . Trim ( ) ) )
{
strSql + = " AND line.FlowingSection LIKE @FlowingSection" ;
listStr . Add ( new SqlParameter ( "@FlowingSection" , "%" + this . txtFlowingSection . Text . Trim ( ) + "%" ) ) ;
}
2022-09-05 16:36:31 +08:00
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
Grid1 . RecordCount = tb . Rows . Count ;
tb = GetFilteredTable ( Grid1 . FilteredData , tb ) ;
var table = this . GetPagedDataTable ( Grid1 , tb ) ;
Grid1 . DataSource = table ;
Grid1 . DataBind ( ) ;
}
#endregion
#region 分 页 排 序
#region 页 索 引 改 变 事 件
/// <summary>
/// 页索引改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange ( object sender , GridPageEventArgs e )
{
Grid1 . PageIndex = e . NewPageIndex ;
BindGrid ( ) ;
}
#endregion
#region 排 序
/// <summary>
/// 排序
/// </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 ( ) ;
}
#endregion
#region 分 页 选 择 下 拉 改 变 事 件
/// <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 ( ) ;
}
#endregion
#endregion
#region 管 线 信 息 维 护 事 件
/// <summary>
/// Grid双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_RowDoubleClick ( object sender , GridRowClickEventArgs e )
{
if ( BLL . CommonService . GetAllButtonPowerList ( this . CurrUser . LoginProjectId , this . CurrUser . PersonId , BLL . Const . HJGL_PipelineMenuId , BLL . Const . BtnModify ) )
{
PageContext . RegisterStartupScript ( Window1 . GetShowReference ( String . Format ( "PipelineFinish.aspx?PipelineId={0}" , Grid1 . SelectedRowID , "编辑 - " ) ) ) ;
}
else
{
ShowNotify ( "您没有这个权限,请与管理员联系!" , MessageBoxIcon . Warning ) ;
}
}
2022-10-13 18:52:45 +08:00
protected void Grid1_RowClick ( object sender , GridRowClickEventArgs e )
{
var q = PipelineService . GetPipelineByPipelineId ( Grid1 . SelectedRowID . Split ( '&' ) [ 0 ] ) ;
var pipecode = "/" + q . PipelineCode ;
Model . Parameter3D parameter3D = new Model . Parameter3D ( ) ;
Model . ColorModel colorModel = new Model . ColorModel ( ) ;
colorModel = BLL . Project_SysSetService . GetColorModel ( this . CurrUser . LoginProjectId ) ;
parameter3D . ColorModel = colorModel ;
parameter3D . TagNum = pipecode ;
2022-10-19 15:49:56 +08:00
parameter3D . ButtonType = "0" ;
2022-10-13 18:52:45 +08:00
parameter3D . ModelName = HJGL_DataImportService . Getlatest3DModelNameByUnitWorkId ( tvControlItem . SelectedNodeID ) ;
2023-01-05 17:42:44 +08:00
ctlAuditFlow . Url_item = BLL . Project_SysSetService . GetAvevaNetUrl_Item ( this . CurrUser . LoginProjectId ) + parameter3D . ModelName ;
2022-10-13 18:52:45 +08:00
ctlAuditFlow . data = parameter3D ;
ctlAuditFlow . BindData ( ) ;
}
2023-02-20 21:59:35 +08:00
protected void btnrefresh_Click ( object sender , EventArgs e )
{
Model . Parameter3D parameter3D = new Model . Parameter3D ( ) ;
Model . ColorModel colorModel = new Model . ColorModel ( ) ;
colorModel = BLL . Project_SysSetService . GetColorModel ( this . CurrUser . LoginProjectId ) ;
parameter3D . ColorModel = colorModel ;
parameter3D . TagNum = "" ;
parameter3D . ButtonType = "0" ;
parameter3D . ModelName = HJGL_DataImportService . Getlatest3DModelNameByUnitWorkId ( tvControlItem . SelectedNodeID ) ;
// PipelineService.GetPipelinesByUnitWordId(tvControlItem.SelectedNodeID);
ctlAuditFlow . Url_item = BLL . Project_SysSetService . GetAvevaNetUrl_Item ( this . CurrUser . LoginProjectId ) + parameter3D . ModelName ;
ctlAuditFlow . data = parameter3D ;
}
2022-09-05 16:36:31 +08:00
#endregion
#region 关 闭 弹 出 窗 口 及 刷 新 页 面
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close ( object sender , WindowCloseEventArgs e )
{
this . BindGrid ( ) ;
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnQuery_Click ( object sender , EventArgs e )
{
this . BindGrid ( ) ;
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Tree_TextChanged ( object sender , EventArgs e )
{
this . InitTreeMenu ( ) ;
this . BindGrid ( ) ;
}
#endregion
#region 导 出 按 钮
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnOut_Click ( object sender , EventArgs e )
{
string templatePath = Funs . RootPath + @"File\Excel\DataOut\WeldingPlanDataOut2.xlsx" ;
string path = Funs . RootPath + @"File\Excel\DataOut\WeldingPlanDataOut2.xlsx" ;
path = path . Replace ( ".xlsx" , string . Format ( "{0:yyyy-MM-dd-HH-mm}" , DateTime . Now ) + ".xlsx" ) ;
string strSql = @"SELECT PL.ProjectId,PL.UnitWorkId,unit.UnitWorkName,PipelineCode,PlanStartDate,PlanEndDate,ActStartDate,ActEndDate,
WBSId,(CASE WHEN IsFinished='1' THEN '已完成' ELSE '未完成' END) AS IsFinished
FROM dbo.HJGL_Pipeline as PL
left join WBS_UnitWork unit on PL.UnitWorkId=unit.UnitWorkId
WHERE PL.ProjectId= @ProjectId" ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
listStr . Add ( new SqlParameter ( "@ProjectId" , this . CurrUser . LoginProjectId ) ) ;
if ( ! string . IsNullOrEmpty ( this . tvControlItem . SelectedNodeID ) & & tvControlItem . SelectedNodeID ! = "2" )
{
strSql + = " AND PL.UnitWorkId =@UnitWorkId" ;
listStr . Add ( new SqlParameter ( "@UnitWorkId" , this . tvControlItem . SelectedNodeID ) ) ;
}
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
tb . TableName = "Data" ;
var value = new Dictionary < string , object > ( )
{
["Data"] = tb ,
} ;
MiniExcel . SaveAsByTemplate ( path , templatePath , value ) ;
string fileName = "施工实施计划.xlsx" ;
FileInfo info = new FileInfo ( path ) ;
long fileSize = info . Length ;
System . Web . HttpContext . Current . Response . Clear ( ) ;
System . Web . HttpContext . Current . Response . ContentType = "application/x-zip-compressed" ;
System . Web . HttpContext . Current . Response . AddHeader ( "Content-Disposition" , "attachment;filename=" + System . Web . HttpUtility . UrlEncode ( fileName , System . Text . Encoding . UTF8 ) ) ;
System . Web . HttpContext . Current . Response . AddHeader ( "Content-Length" , fileSize . ToString ( ) ) ;
System . Web . HttpContext . Current . Response . TransmitFile ( path , 0 , fileSize ) ;
System . Web . HttpContext . Current . Response . Flush ( ) ;
System . Web . HttpContext . Current . Response . Close ( ) ;
File . Delete ( path ) ;
}
protected void btnSync_Click ( object sender , EventArgs e )
{
string templatePath = Funs . RootPath + @"File\Excel\DataOut\WeldingPlanDataOut.xlsx" ;
string path = Funs . RootPath + @"File\Excel\DataOut\WeldingPlanDataOut.xlsx" ;
path = path . Replace ( ".xlsx" , string . Format ( "{0:yyyy-MM-dd-HH-mm}" , DateTime . Now ) + ".xlsx" ) ;
string strSql = @"SELECT ProjectId,UnitWorkId,PipelineId,PipelineCode,PlanStartDate,PlanEndDate,ActStartDate,ActEndDate,
WBSId,(CASE WHEN IsFinished='1' THEN '已完成' ELSE '未完成' END) AS IsFinished
FROM dbo.HJGL_Pipeline
WHERE ProjectId= @ProjectId" ;
List < SqlParameter > listStr = new List < SqlParameter > ( ) ;
listStr . Add ( new SqlParameter ( "@ProjectId" , this . CurrUser . LoginProjectId ) ) ;
strSql + = " AND UnitWorkId =@UnitWorkId" ;
listStr . Add ( new SqlParameter ( "@UnitWorkId" , this . tvControlItem . SelectedNodeID ) ) ;
if ( ! string . IsNullOrEmpty ( this . txtPipelineCode . Text . Trim ( ) ) )
{
strSql + = " AND PipelineCode LIKE @PipelineCode" ;
listStr . Add ( new SqlParameter ( "@PipelineCode" , "%" + this . txtPipelineCode . Text . Trim ( ) + "%" ) ) ;
}
SqlParameter [ ] parameter = listStr . ToArray ( ) ;
DataTable tb = SQLHelper . GetDataTableRunText ( strSql , parameter ) ;
tb . TableName = "Data" ;
var value = new Dictionary < string , object > ( )
{
["Data"] = tb ,
} ;
MiniExcel . SaveAsByTemplate ( path , templatePath , value ) ;
string fileName = "施工实施计划.xlsx" ;
FileInfo info = new FileInfo ( path ) ;
long fileSize = info . Length ;
System . Web . HttpContext . Current . Response . Clear ( ) ;
System . Web . HttpContext . Current . Response . ContentType = "application/x-zip-compressed" ;
System . Web . HttpContext . Current . Response . AddHeader ( "Content-Disposition" , "attachment;filename=" + System . Web . HttpUtility . UrlEncode ( fileName , System . Text . Encoding . UTF8 ) ) ;
System . Web . HttpContext . Current . Response . AddHeader ( "Content-Length" , fileSize . ToString ( ) ) ;
System . Web . HttpContext . Current . Response . TransmitFile ( path , 0 , fileSize ) ;
System . Web . HttpContext . Current . Response . Flush ( ) ;
System . Web . HttpContext . Current . Response . Close ( ) ;
File . Delete ( path ) ;
}
#endregion
#region 导 入
protected void btnImportFIELD_Click ( object sender , EventArgs e )
{
Model . WBS_UnitWork unitWork = BLL . UnitWorkService . GetUnitWorkByUnitWorkId ( this . tvControlItem . SelectedNodeID ) ;
if ( unitWork ! = null )
{
PageContext . RegisterStartupScript ( Window2 . GetShowReference ( String . Format ( "WeldingPlanIn.aspx?UnitWorkId={0}&Type={1}" , this . tvControlItem . SelectedNodeID , PipelineService . PipeArea_FIELD , "导入 - " ) ) ) ;
}
else
{
ShowNotify ( "请先选择单位工程!" , MessageBoxIcon . Warning ) ;
}
}
protected void btnImportSHOP_Click ( object sender , EventArgs e )
{
Model . WBS_UnitWork unitWork = BLL . UnitWorkService . GetUnitWorkByUnitWorkId ( this . tvControlItem . SelectedNodeID ) ;
if ( unitWork ! = null )
{
PageContext . RegisterStartupScript ( Window2 . GetShowReference ( String . Format ( "WeldingPlanIn.aspx?UnitWorkId={0}&Type={1}" , this . tvControlItem . SelectedNodeID , PipelineService . PipeArea_SHOP , "导入 - " ) ) ) ;
}
else
{
ShowNotify ( "请先选择单位工程!" , MessageBoxIcon . Warning ) ;
}
}
2022-11-16 19:48:03 +08:00
2022-09-05 16:36:31 +08:00
#endregion
2022-11-16 19:48:03 +08:00
protected void btnUpDateState_Click ( object sender , EventArgs e )
{
string unitworkid = this . tvControlItem . SelectedNodeID ;
var pipeline = PipelineService . GetPipelinesByUnitWordId ( unitworkid ) ;
foreach ( var item in pipeline )
{
BLL . PipelineService . GetStateByPipelineId ( item . PipelineId ) ;
2022-09-05 16:36:31 +08:00
2022-11-16 19:48:03 +08:00
}
BindGrid ( ) ;
}
2022-09-05 16:36:31 +08:00
}
}