1396 lines
63 KiB
C#
1396 lines
63 KiB
C#
using System;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Data.SqlClient;
|
||
using System.Linq;
|
||
using System.Web;
|
||
using BLL;
|
||
using System.Text;
|
||
using NPOI.HSSF.Util;
|
||
using NPOI.SS.UserModel;
|
||
using NPOI.SS.Util;
|
||
using NPOI.XSSF.UserModel;
|
||
using System.IO;
|
||
using NPOI.OpenXmlFormats.Wordprocessing;
|
||
|
||
namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||
{
|
||
public partial class JointInfo : PageBase
|
||
{
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
if (!IsPostBack)
|
||
{
|
||
this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
|
||
this.InitTreeMenu();//加载树
|
||
//显示列
|
||
Model.Sys_UserShowColumns c = BLL.UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, "Joint");
|
||
if (c != null)
|
||
{
|
||
this.GetShowColumn(c.Columns);
|
||
}
|
||
}
|
||
}
|
||
|
||
protected void drpProjectId_SelectedIndexChanged(object sender, EventArgs e)
|
||
{
|
||
this.InitTreeMenu();
|
||
}
|
||
|
||
#region 加载树装置-单位-工作区
|
||
/// <summary>
|
||
/// 加载树
|
||
/// </summary>
|
||
private void InitTreeMenu()
|
||
{
|
||
this.tvControlItem.Nodes.Clear();
|
||
var totalInstallation = from x in Funs.DB.Project_Installation select x;
|
||
var totalWorkArea = from x in Funs.DB.Project_WorkArea select x;
|
||
var totalUnit = from x in Funs.DB.Project_Unit select x;
|
||
var totalPipeline = from x in Funs.DB.Pipeline_Pipeline select x;
|
||
////装置
|
||
var pInstallation = (from x in totalInstallation where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
|
||
////区域
|
||
var pWorkArea = (from x in totalWorkArea where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
|
||
////单位
|
||
var pUnits = (from x in totalUnit where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList();
|
||
|
||
var workAreaIdList = (from x in totalPipeline
|
||
where x.ProjectId == this.CurrUser.LoginProjectId && x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim())
|
||
orderby x.PipelineCode
|
||
select x.WorkAreaId).Distinct().ToList();
|
||
pWorkArea = pWorkArea.Where(x => workAreaIdList.Contains(x.WorkAreaId)).OrderBy(x => x.WorkAreaCode).ToList();
|
||
pInstallation = (from x in pInstallation
|
||
join y in pWorkArea on x.InstallationId equals y.InstallationId
|
||
select x).Distinct().ToList();
|
||
pUnits = (from x in pUnits
|
||
join y in pWorkArea on x.UnitId equals y.UnitId
|
||
select x).Distinct().ToList();
|
||
this.BindNodes(null, pInstallation, pWorkArea, pUnits);
|
||
}
|
||
#endregion
|
||
|
||
#region 绑定树节点
|
||
#region 绑定树节点
|
||
/// <summary>
|
||
/// 绑定树节点
|
||
/// </summary>
|
||
/// <param name="node"></param>
|
||
private void BindNodes(TreeNode node, List<Model.Project_Installation> pInstallation, List<Model.Project_WorkArea> pWorkArea, List<Model.Project_Unit> pUnits)
|
||
{
|
||
if (node == null)
|
||
{
|
||
List<Model.Project_Installation> installations = pInstallation;
|
||
var pUnit = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId);
|
||
//if (pUnit != null && !pUnit.UnitType.Contains(Const.UnitType_2) && !pUnit.UnitType.Contains(Const.UnitType_1))
|
||
if (pUnit != null && pUnit.UnitType.Contains(Const.UnitType_5))
|
||
{
|
||
installations = (from x in pInstallation
|
||
join y in pWorkArea on x.InstallationId equals y.InstallationId
|
||
where y.UnitId == this.CurrUser.UnitId
|
||
orderby x.InstallationId
|
||
select x).Distinct().ToList();
|
||
}
|
||
|
||
foreach (var q in installations)
|
||
{
|
||
TreeNode newNode = new TreeNode();
|
||
newNode.NodeID = q.InstallationId;
|
||
newNode.Text = q.InstallationName;
|
||
newNode.ToolTip = Resources.Lan.InstallationName;
|
||
newNode.Expanded = true;
|
||
this.tvControlItem.Nodes.Add(newNode);
|
||
this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
|
||
}
|
||
}
|
||
else if (node.ToolTip == Resources.Lan.InstallationName)
|
||
{
|
||
List<Model.Project_Unit> units = null;
|
||
var pUnitDepth = pUnits.FirstOrDefault(x => x.UnitId == this.CurrUser.UnitId);
|
||
if (pUnitDepth == null || pUnitDepth.UnitType.Contains(Const.UnitType_2) || pUnitDepth.UnitType.Contains(Const.UnitType_1)
|
||
|| pUnitDepth.UnitType == BLL.Const.UnitType_3 || pUnitDepth.UnitType == BLL.Const.UnitType_4)
|
||
{
|
||
units = (from x in pUnits
|
||
join y in pWorkArea on x.UnitId equals y.UnitId
|
||
where y.InstallationId == node.NodeID && x.UnitType == Const.UnitType_5
|
||
select x).ToList();
|
||
}
|
||
else
|
||
{
|
||
units = (from x in pUnits
|
||
join y in pWorkArea on x.UnitId equals y.UnitId
|
||
where y.InstallationId == node.NodeID && x.UnitType == Const.UnitType_5 && x.UnitId == this.CurrUser.UnitId
|
||
select x).ToList();
|
||
}
|
||
|
||
units = units.OrderBy(x => x.InTime).Distinct().ToList();
|
||
foreach (var q in units)
|
||
{
|
||
var unit = BLL.Base_UnitService.GetUnit(q.UnitId);
|
||
if (unit != null)
|
||
{
|
||
TreeNode newNode = new TreeNode();
|
||
newNode.Text = unit.UnitName;
|
||
newNode.NodeID = q.UnitId + "|" + node.NodeID;
|
||
newNode.ToolTip = Resources.Lan.UnitName;
|
||
node.Nodes.Add(newNode);
|
||
this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
|
||
}
|
||
}
|
||
}
|
||
else if (node.ToolTip == Resources.Lan.UnitName)
|
||
{
|
||
var workAreas = (from x in pWorkArea
|
||
where x.InstallationId == node.ParentNode.NodeID && x.UnitId == node.NodeID.Split('|')[0]
|
||
select x);
|
||
workAreas = workAreas.OrderByDescending(x => x.WorkAreaCode);
|
||
var pipelines = from x in Funs.DB.Pipeline_Pipeline select x;
|
||
foreach (var q in workAreas)
|
||
{
|
||
int a = (from x in pipelines where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitId == node.NodeID.Split('|')[0] && x.WorkAreaId == q.WorkAreaId select x).Count();
|
||
TreeNode newNode = new TreeNode();
|
||
newNode.Text = q.WorkAreaCode + "【" + a.ToString() + " " + Resources.Lan.Pipeline + "】";
|
||
newNode.NodeID = q.WorkAreaId;
|
||
newNode.EnableExpandEvent = true;
|
||
newNode.ToolTip = Resources.Lan.Area;
|
||
node.Nodes.Add(newNode);
|
||
this.BindNodes(newNode, pInstallation, pWorkArea, pUnits);
|
||
}
|
||
}
|
||
else if (node.ToolTip == Resources.Lan.Area)
|
||
{
|
||
TreeNode newNode = new TreeNode();
|
||
newNode.Text = Resources.Lan.Pipeline;
|
||
newNode.NodeID = Resources.Lan.Pipeline;
|
||
node.Nodes.Add(newNode);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 树展开事件
|
||
/// <summary>
|
||
/// 树展开事件
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void tvControlItem_TreeNodeExpanded(object sender, TreeNodeEventArgs e)
|
||
{
|
||
if (e.Node.ToolTip == Resources.Lan.Area)
|
||
{
|
||
e.Node.Nodes.Clear();
|
||
List<Model.Pipeline_Pipeline> pipeline = new List<Model.Pipeline_Pipeline>();
|
||
var pipelines = from x in Funs.DB.Pipeline_Pipeline select x;
|
||
pipeline = (from x in pipelines
|
||
where x.ProjectId == this.CurrUser.LoginProjectId && x.WorkAreaId == e.Node.NodeID
|
||
&& x.PipelineCode.Contains(this.txtPipelineCode.Text.Trim())
|
||
orderby x.PipelineCode
|
||
select x).ToList();
|
||
foreach (var item in pipeline)
|
||
{
|
||
var jotCount = (from x in Funs.DB.Pipeline_WeldJoint where x.PipelineId == item.PipelineId select x).Count();
|
||
TreeNode newNode = new TreeNode();
|
||
if (!String.IsNullOrEmpty(item.Sheet))
|
||
{
|
||
newNode.Text = item.PipelineCode + "(" + item.Sheet + ")";
|
||
}
|
||
else
|
||
{
|
||
newNode.Text = item.PipelineCode;
|
||
}
|
||
newNode.Text += "【" + jotCount.ToString() + " " + Resources.Lan.WeldingJoint + "】";
|
||
newNode.ToolTip = Resources.Lan.PipelinePage;
|
||
newNode.NodeID = item.PipelineId;
|
||
newNode.EnableClickEvent = true;
|
||
e.Node.Nodes.Add(newNode);
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
#endregion
|
||
|
||
#region 点击TreeView
|
||
/// <summary>
|
||
/// 点击TreeView
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
|
||
{
|
||
this.BindGrid();
|
||
}
|
||
#endregion
|
||
|
||
#region 数据绑定
|
||
/// <summary>
|
||
/// 数据绑定
|
||
/// </summary>
|
||
private void BindGrid()
|
||
{
|
||
string strSql = @"SELECT WeldJointId,ProjectId,PipelineId,WeldJointCode,WPQCode,DetectionType,
|
||
convert(int,dbo.Fun_GetParseInt(WeldJointCode)) AS ConvertJointNo,
|
||
dbo.Fun_GetParseString(WeldJointCode) AS PreJotNo,Coode1,Coode2,
|
||
PipingClassCode,PipeSegment,JointAttribute,PageNum,
|
||
ComponentsCode1,ComponentsCode2,Is_hjName,IsHotProessStr,Material1Code,Material2Code,
|
||
WeldTypeCode,Specification,HeartNo1,HeartNo2,Size,Dia,Thickness,GrooveTypeCode,
|
||
WeldingMethodCode,WeldSilkId,WeldMatCode,WeldingDate,WeldingDailyCode,DoneDin,
|
||
BackingWelderCode,CoverWelderCode,SystemNumber,TestPackageNo,Remark,
|
||
(CASE WHEN IsCancel=1 THEN '是' ELSE '否' END) AS IsCancel
|
||
FROM View_Pipeline_WeldJoint WHERE 1= 1";
|
||
List<SqlParameter> listStr = new List<SqlParameter>
|
||
{
|
||
|
||
};
|
||
strSql += " AND PipelineId =@PipelineId";
|
||
listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID));
|
||
|
||
if (!string.IsNullOrEmpty(this.txtWeldJointCode.Text.Trim()))
|
||
{
|
||
strSql += " AND WeldJointCode LIKE @WeldJointCode";
|
||
listStr.Add(new SqlParameter("@WeldJointCode", "%" + this.txtWeldJointCode.Text.Trim() + "%"));
|
||
}
|
||
SqlParameter[] parameter = listStr.ToArray();
|
||
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
|
||
|
||
// 2.获取当前分页数据
|
||
Grid1.RecordCount = tb.Rows.Count;
|
||
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)
|
||
{
|
||
BindGrid();
|
||
}
|
||
#endregion
|
||
|
||
#region 排序
|
||
/// <summary>
|
||
/// 排序
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void Grid1_Sort(object sender, GridSortEventArgs e)
|
||
{
|
||
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.UserId, BLL.Const.HJGL_JointInfoMenuId, BLL.Const.BtnModify))
|
||
{
|
||
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("JointInfoEdit.aspx?WeldJointId={0}", Grid1.SelectedRowID, "编辑 - ")));
|
||
}
|
||
else
|
||
{
|
||
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 增加焊口信息
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnNew_Click(object sender, EventArgs e)
|
||
{
|
||
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnAdd))
|
||
{
|
||
var pipeline = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(tvControlItem.SelectedNodeID);
|
||
if (pipeline != null)
|
||
{
|
||
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("JointInfoEdit.aspx?PipelineId={0}", this.tvControlItem.SelectedNodeID, "新增 - ")));
|
||
}
|
||
else
|
||
{
|
||
ShowNotify(Resources.Lan.PleaseSelectPipelinetFirst, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 批量增加焊口信息
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnBatchAdd_Click(object sender, EventArgs e)
|
||
{
|
||
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnAdd))
|
||
{
|
||
var pipeline = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(tvControlItem.SelectedNodeID);
|
||
if (pipeline != null)
|
||
{
|
||
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("JointInfoBatchEdit.aspx?PipelineId={0}", this.tvControlItem.SelectedNodeID, "新增 - ")));
|
||
}
|
||
else
|
||
{
|
||
ShowNotify(Resources.Lan.PleaseSelectPipelinetFirst, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
else
|
||
{
|
||
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
|
||
protected void btnUpdate_Click(object sender, EventArgs e)
|
||
{
|
||
var jotList = (from x in Funs.DB.Pipeline_WeldJoint select x).ToList();
|
||
foreach (var j in jotList)
|
||
{
|
||
decimal? size = j.Size;
|
||
string ansi = j.ANSISCH;
|
||
decimal? dia = j.Dia;
|
||
decimal? sch = j.Thickness;
|
||
string specification = j.Specification;
|
||
|
||
if (size != null && !string.IsNullOrEmpty(ansi))
|
||
{
|
||
var dn = from x in Funs.DB.Base_DNCompare where x.PipeSize == size select x;
|
||
if (dn.Count() > 0)
|
||
{
|
||
if (dn.First().OutSizeDia != null)
|
||
{
|
||
dia = dn.First().OutSizeDia;
|
||
}
|
||
|
||
if (ansi == "5")
|
||
{
|
||
if (dn.First().SCH5 != null)
|
||
{
|
||
sch = dn.First().SCH5;
|
||
}
|
||
}
|
||
if (ansi == "5S")
|
||
{
|
||
if (dn.First().SCH5S != null)
|
||
{
|
||
sch = dn.First().SCH5S;
|
||
}
|
||
}
|
||
if (ansi == "10")
|
||
{
|
||
if (dn.First().SCH10 != null)
|
||
{
|
||
sch = dn.First().SCH10;
|
||
}
|
||
}
|
||
if (ansi == "10S")
|
||
{
|
||
if (dn.First().SCH10S != null)
|
||
{
|
||
sch = dn.First().SCH10S;
|
||
}
|
||
}
|
||
if (ansi == "20")
|
||
{
|
||
if (dn.First().SCH20 != null)
|
||
{
|
||
sch = dn.First().SCH20;
|
||
}
|
||
}
|
||
if (ansi == "30")
|
||
{
|
||
if (dn.First().SCH30 != null)
|
||
{
|
||
sch = dn.First().SCH30;
|
||
}
|
||
}
|
||
if (ansi == "40")
|
||
{
|
||
if (dn.First().SCH40 != null)
|
||
{
|
||
sch = dn.First().SCH40;
|
||
}
|
||
}
|
||
if (ansi == "40S")
|
||
{
|
||
if (dn.First().SCH40S != null)
|
||
{
|
||
sch = dn.First().SCH40S;
|
||
}
|
||
}
|
||
if (ansi == "STD")
|
||
{
|
||
if (dn.First().STD != null)
|
||
{
|
||
sch = dn.First().STD;
|
||
}
|
||
}
|
||
if (ansi == "60")
|
||
{
|
||
if (dn.First().SCH60 != null)
|
||
{
|
||
sch = dn.First().SCH60;
|
||
}
|
||
}
|
||
if (ansi == "80")
|
||
{
|
||
if (dn.First().SCH80 != null)
|
||
{
|
||
sch = dn.First().SCH80;
|
||
}
|
||
}
|
||
if (ansi == "80S")
|
||
{
|
||
if (dn.First().SCH80S != null)
|
||
{
|
||
sch = dn.First().SCH80S;
|
||
}
|
||
}
|
||
if (ansi == "XS")
|
||
{
|
||
if (dn.First().XS != null)
|
||
{
|
||
sch = dn.First().XS;
|
||
}
|
||
}
|
||
if (ansi == "100")
|
||
{
|
||
if (dn.First().SCH100 != null)
|
||
{
|
||
sch = dn.First().SCH100;
|
||
}
|
||
}
|
||
if (ansi == "120")
|
||
{
|
||
if (dn.First().SCH120 != null)
|
||
{
|
||
sch = dn.First().SCH120;
|
||
}
|
||
}
|
||
if (ansi == "140")
|
||
{
|
||
if (dn.First().SCH140 != null)
|
||
{
|
||
sch = dn.First().SCH140;
|
||
}
|
||
}
|
||
if (ansi == "160")
|
||
{
|
||
if (dn.First().SCH160 != null)
|
||
{
|
||
sch = dn.First().SCH160;
|
||
}
|
||
}
|
||
if (ansi == "XXS")
|
||
{
|
||
if (dn.First().XXS != null)
|
||
{
|
||
sch = dn.First().XXS;
|
||
}
|
||
}
|
||
|
||
j.Dia = dia;
|
||
j.Thickness = sch;
|
||
j.Specification = "Φ" + dia + "×" + sch;
|
||
}
|
||
}
|
||
}
|
||
Funs.DB.SubmitChanges();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 焊口信息编辑
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnMenuEdit_Click(object sender, EventArgs e)
|
||
{
|
||
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_JointInfoMenuId, BLL.Const.BtnModify))
|
||
{
|
||
if (Grid1.SelectedRowIndexArray.Length == 0)
|
||
{
|
||
Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("JointInfoEdit.aspx?WeldJointId={0}", Grid1.SelectedRowID, "维护 - ")));
|
||
}
|
||
else
|
||
{
|
||
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 删除按钮
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnMenuDelete_Click(object sender, EventArgs e)
|
||
{
|
||
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnDelete))
|
||
{
|
||
if (Grid1.SelectedRowIndexArray.Length == 0)
|
||
{
|
||
Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
|
||
bool isShow = true;
|
||
if (Grid1.SelectedRowIndexArray.Length > 1)
|
||
{
|
||
isShow = false;
|
||
}
|
||
string rowID = Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString();
|
||
var jot = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(rowID);
|
||
var isoInfo = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(jot.PipelineId);
|
||
var rate = Funs.DB.Base_DetectionRate.FirstOrDefault(x => x.DetectionRateId == isoInfo.DetectionRateId);
|
||
|
||
if (judgementDelete(rowID, isShow))
|
||
{
|
||
BLL.Pipeline_WeldJointService.DeleteWeldJointById(rowID);
|
||
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnDelete, rowID);
|
||
|
||
|
||
// 如固定口比例不足,则在固定口中随机补充缺的部分
|
||
// 已焊接数
|
||
int num = (from x in Funs.DB.Pipeline_WeldJoint
|
||
join y in Funs.DB.Base_WeldType on x.WeldTypeId equals y.WeldTypeId
|
||
where x.PipelineId == jot.PipelineId && y.Flag == "1"
|
||
&& (x.IsCancel == false || x.IsCancel == null)
|
||
&& (x.WeldingDailyId != null && x.WeldingDailyId != "")
|
||
select x).Count();
|
||
// 焊口总数
|
||
int totalNum = (from x in Funs.DB.Pipeline_WeldJoint
|
||
join y in Funs.DB.Base_WeldType on x.WeldTypeId equals y.WeldTypeId
|
||
where x.PipelineId == jot.PipelineId && y.Flag == "1"
|
||
&& (x.IsCancel == false || x.IsCancel == null)
|
||
select x).Count();
|
||
|
||
// 说明这条线已焊完,如固定口比例不足,则在固定口中随机补充缺的部分
|
||
if (num == totalNum)
|
||
{
|
||
// 固定口需要点口数
|
||
int needPointNum = Convert.ToInt32(Math.Ceiling(((double)(totalNum) * (double)(rate.DetectionRateValue) * 0.5) / 100.0));
|
||
// 固定口已点口数
|
||
int GdPointNum = (from x in Funs.DB.Pipeline_WeldJoint
|
||
join y in Funs.DB.Batch_PointBatchItem on x.WeldJointId equals y.WeldJointId
|
||
join z in Funs.DB.Batch_PointBatch on y.PointBatchId equals z.PointBatchId
|
||
join n in Funs.DB.Base_DetectionType on z.DetectionTypeId equals n.DetectionTypeId
|
||
where x.PipelineId == jot.PipelineId && x.WeldingDailyId != null && (x.IsCancel == false || x.IsCancel == null)
|
||
&& y.PointState == "1" && n.SysType == "射线检测" && x.JointAttribute == "固定F"
|
||
select y.PointBatchItemId).Count();
|
||
if (GdPointNum < needPointNum)
|
||
{
|
||
int d = needPointNum - GdPointNum;
|
||
// 没有点口的固定口
|
||
var GdNoPoint = from x in Funs.DB.Batch_PointBatchItem
|
||
join y in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals y.WeldJointId
|
||
join z in Funs.DB.Base_WeldType on y.WeldTypeId equals z.WeldTypeId
|
||
where y.PipelineId == jot.PipelineId && y.WeldingDailyId != null
|
||
&& (y.IsCancel == false || y.IsCancel == null)
|
||
&& x.PointState == null && z.Flag == "1" && y.JointAttribute == "固定F"
|
||
select x;
|
||
int gdMaxValue = GdNoPoint.Count();
|
||
if (gdMaxValue > 0)
|
||
{
|
||
string random = string.Empty;
|
||
int[] r = Funs.GetRandomNum(d, 1, gdMaxValue);
|
||
var q = from x in r orderby x select x;
|
||
foreach (int i in q)
|
||
{
|
||
if (i <= gdMaxValue)
|
||
{
|
||
random = random + i.ToString() + ",";
|
||
}
|
||
}
|
||
|
||
int j = 1;
|
||
foreach (var g in GdNoPoint)
|
||
{
|
||
if (random.Contains(j.ToString()))
|
||
{
|
||
BLL.Batch_PointBatchItemService.UpdatePointBatchItem(g.PointBatchItemId, "1", System.DateTime.Now, null);
|
||
}
|
||
j++;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
ShowNotify(Resources.Lan.DeletedSuccessfully, MessageBoxIcon.Success);
|
||
this.BindGrid();
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Alert.ShowInTop(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
|
||
protected void btnMenuDeleteAll_Click(object sender, EventArgs e)
|
||
{
|
||
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnDeleteAll))
|
||
{
|
||
if (Grid1.SelectedRowIndexArray.Length == 1)
|
||
{
|
||
string rowID = Grid1.DataKeys[Grid1.SelectedRowIndex][0].ToString();
|
||
BLL.Batch_NDEItemService.DeleteWeldJointAllInfo(rowID);
|
||
|
||
ShowNotify(Resources.Lan.DeletedSuccessfully, MessageBoxIcon.Success);
|
||
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_JointInfoMenuId, Const.BtnDeleteAll, rowID);
|
||
this.BindGrid();
|
||
}
|
||
else
|
||
{
|
||
Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
}
|
||
else
|
||
{
|
||
Alert.ShowInTop(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
|
||
|
||
protected void btnMenuCopy_Click(object sender, EventArgs e)
|
||
{
|
||
if (BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_JointInfoMenuId, BLL.Const.BtnAdd))
|
||
{
|
||
if (Grid1.SelectedRowIndexArray.Length == 0)
|
||
{
|
||
Alert.ShowInTop(Resources.Lan.SelectLeastOneRecord, MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
PageContext.RegisterStartupScript(Window8.GetShowReference(String.Format("JointInfoCopy.aspx?WeldJointId={0}", Grid1.SelectedRowID, "增口复制 - ")));
|
||
}
|
||
else
|
||
{
|
||
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 报表打印
|
||
/// <summary>
|
||
/// 报表打印
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnPrint_Click(object sender, EventArgs e)
|
||
{
|
||
string pipelineId = this.tvControlItem.SelectedNodeID;
|
||
var q = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(pipelineId);
|
||
|
||
if (q != null)
|
||
{
|
||
string varValue = string.Empty;
|
||
var project = BLL.Base_ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
|
||
var ins = BLL.Project_InstallationService.GetProject_InstallationNameByInstallationId(q.InstallationId);
|
||
if (project != null)
|
||
{
|
||
varValue = "工程名称:" + project.ProjectName;
|
||
if (ins != null)
|
||
{
|
||
string insName = "单位工程名称:" + ins.ToString();
|
||
varValue = varValue + "|" + insName;
|
||
}
|
||
}
|
||
List<SqlParameter> listStr = new List<SqlParameter>();
|
||
listStr.Add(new SqlParameter("@IsoIds", pipelineId));
|
||
listStr.Add(new SqlParameter("@Flag", "0"));
|
||
SqlParameter[] parameter = listStr.ToArray();
|
||
DataTable tb = BLL.SQLHelper.GetDataTableRunProc("HJGL_spJointWorkRecordNew", parameter);
|
||
string page = Funs.GetPagesCountByPageSize(11, 16, tb.Rows.Count).ToString();
|
||
|
||
|
||
varValue = varValue + "|" + page;
|
||
|
||
if (!string.IsNullOrEmpty(varValue))
|
||
{
|
||
varValue = HttpUtility.UrlEncodeUnicode(varValue);
|
||
}
|
||
if (tb.Rows.Count <= 11)
|
||
{
|
||
PageContext.RegisterStartupScript(Window6.GetShowReference(String.Format("../../Common/ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId=0", BLL.Const.WeldingRecordReport1, pipelineId, varValue)));
|
||
}
|
||
else
|
||
{
|
||
PageContext.RegisterStartupScript(Window7.GetShowReference(String.Format("../../Common/ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId=0", BLL.Const.WeldingRecordReport2, pipelineId, varValue)));
|
||
PageContext.RegisterStartupScript(Window6.GetShowReference(String.Format("../../Common/ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId=0", BLL.Const.WeldingRecordReport1, pipelineId, varValue)));
|
||
}
|
||
}
|
||
|
||
else
|
||
{
|
||
ShowNotify(Resources.Lan.PleaseSelectPipeline, MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 关闭弹出窗口及刷新页面
|
||
/// <summary>
|
||
/// 关闭弹出窗口
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
||
{
|
||
this.InitTreeMenu();//加载树
|
||
this.BindGrid();
|
||
}
|
||
|
||
protected void Window8_Close(object sender, WindowCloseEventArgs e)
|
||
{
|
||
this.BindGrid();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查询
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void TextBox_TextChanged(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>
|
||
/// 判断是否可以删除
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
private bool judgementDelete(string id, bool isShow)
|
||
{
|
||
string content = string.Empty;
|
||
if (!string.IsNullOrEmpty(BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(id).WeldingDailyId))
|
||
{
|
||
content = "该焊口已焊接,不能删除!";
|
||
}
|
||
if (BLL.Funs.DB.HotProess_TrustItem.FirstOrDefault(x => x.WeldJointId == id) != null)
|
||
{
|
||
content = "热处理已经使用了该焊口,不能删除!";
|
||
}
|
||
//if (BLL.Funs.DB.HJGL_CH_CheckItem.FirstOrDefault(x => x.WeldJointId == id) != null)
|
||
//{
|
||
// content = "检测单已经使用了该焊口,不能删除!";
|
||
//}
|
||
if (string.IsNullOrEmpty(content))
|
||
{
|
||
return true;
|
||
}
|
||
else
|
||
{
|
||
if (isShow)
|
||
{
|
||
Alert.ShowInTop(content, MessageBoxIcon.Error);
|
||
}
|
||
return false;
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 导出焊口信息
|
||
/// <summary>
|
||
/// 导出焊口信息
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnOut_Click(object sender, EventArgs e)
|
||
{
|
||
var iso = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(this.tvControlItem.SelectedNodeID);
|
||
var workArea = BLL.Project_WorkAreaService.GetProject_WorkAreaByWorkAreaId(this.tvControlItem.SelectedNodeID);
|
||
if (iso != null)
|
||
{
|
||
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("JointInfoOut.aspx?PipelineId={0}", this.tvControlItem.SelectedNodeID, "导出 - ")));
|
||
}
|
||
else if (workArea != null)
|
||
{
|
||
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("JointInfoOut.aspx?WorkAreaId={0}", this.tvControlItem.SelectedNodeID, "导出 - ")));
|
||
}
|
||
else
|
||
{
|
||
Alert.ShowInTop(Resources.Lan.PleaseSelectPipelineOrArea, MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出焊口初始信息
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnOut2_Click(object sender, EventArgs e)
|
||
{
|
||
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
|
||
//导出文件
|
||
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
|
||
if (!Directory.Exists(filePath))
|
||
{
|
||
Directory.CreateDirectory(filePath);
|
||
}
|
||
string ReportFileName = filePath + "管道焊接工作记录.xlsx";
|
||
|
||
string sqlStr = @"SELECT WeldSilkId,PipelineId,WorkAreaId,a.ProjectName,a.WeldJointCode,a.Specification,a.Material1Code,a.WeldingMethodCode,a.WeldingDate,a.WeldSilkCode,a.WeldMatCode,a.BackingWelderCode,a.CoverWelderCode,a.IsHotProess,(case a.IsHotProess when 1 then '是' else '否' end) as IsHotProessName,PrepareTemp,WeldingLocationCode FROM View_Pipeline_WeldJoint as a WHERE 1= 1 AND PipelineId =@PipelineId and Is_hjName='是' ";
|
||
List<SqlParameter> listStr = new List<SqlParameter>();
|
||
listStr.Add(new SqlParameter("@PipelineId", this.tvControlItem.SelectedNodeID));
|
||
SqlParameter[] parameter = listStr.ToArray();
|
||
DataTable tb = SQLHelper.GetDataTableRunText(sqlStr, parameter);
|
||
|
||
var titleQuery = from a in Funs.DB.Pipeline_Pipeline
|
||
join b in Funs.DB.Base_Project on a.ProjectId equals b.ProjectId
|
||
join c in Funs.DB.Base_Unit on a.UnitId equals c.UnitId
|
||
select new { a.PipelineId, a.PipelineCode, b.ProjectName, c.UnitName };
|
||
var titleModel = titleQuery.FirstOrDefault();
|
||
if (titleModel != null && tb.Rows.Count > 0)
|
||
{
|
||
int rowIndex = 0;
|
||
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
|
||
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("管道焊接工作记录");
|
||
|
||
#region 列宽
|
||
|
||
ws.SetColumnWidth(0, 18 * 256);
|
||
ws.SetColumnWidth(1, 13 * 256);
|
||
ws.SetColumnWidth(2, 10 * 256);
|
||
ws.SetColumnWidth(3, 18 * 256);
|
||
ws.SetColumnWidth(4, 13 * 256);
|
||
ws.SetColumnWidth(5, 16 * 256);
|
||
ws.SetColumnWidth(6, 13 * 256);
|
||
ws.SetColumnWidth(7, 13 * 256);
|
||
ws.SetColumnWidth(8, 9 * 256);
|
||
ws.SetColumnWidth(9, 13 * 256);
|
||
ws.SetColumnWidth(10, 13 * 256);
|
||
ws.SetColumnWidth(11, 17 * 256);
|
||
ws.SetColumnWidth(12, 13 * 256);
|
||
|
||
#endregion
|
||
|
||
var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false);
|
||
|
||
var tbNum = tb.Rows.Count;
|
||
var pageNum =
|
||
tbNum < 17 ? 1
|
||
: Math.Ceiling((float)(tbNum - 16) / 16) + 1;
|
||
|
||
//循环页
|
||
for (int i = 1; i <= pageNum; i++)
|
||
{
|
||
#region 头部
|
||
|
||
ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 5, style, 0, 12, true);
|
||
//行0
|
||
CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 2);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J415-1");
|
||
region = new CellRangeAddress(rowIndex, rowIndex + 3, 3, 9);
|
||
ws.AddMergedRegion(region);
|
||
string titleStr = i == 1 ? "管道焊接工作记录\r\nPiping Welding Record" : "管道焊接工作记录(续)\r\nPiping Welding Record";
|
||
ws.GetRow(rowIndex).GetCell(3).SetCellValue(titleStr);
|
||
ws.GetRow(rowIndex).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
|
||
region = new CellRangeAddress(rowIndex, rowIndex, 10, 12);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex).GetCell(10).SetCellValue($"工程名称:{titleModel.ProjectName}");
|
||
ws.GetRow(rowIndex).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false);
|
||
|
||
//行1
|
||
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 10, 12);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("Project Name:");
|
||
ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 9, true, false);
|
||
|
||
//行2
|
||
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 10, 12);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue($"单位工程名称:{titleModel.UnitName}");
|
||
ws.GetRow(rowIndex + 2).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false);
|
||
|
||
//行3
|
||
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 10, 12);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 3).GetCell(10).SetCellValue("Unit Name:");
|
||
ws.GetRow(rowIndex + 3).GetCell(10).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false);
|
||
|
||
//行4行5
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 0, 0);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No");
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 1, 2);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("焊口编号\r\nWeld No.");
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 3, 3);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("焊工代号\r\nWelder's Stamp No.");
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 4, 4);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("规格mm\r\nSpecification\r\nmm");
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 5, 5);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("材质\r\nMaterial");
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 6, 6);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("焊接位置\r\nWelding\r\nPosition");
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 7, 8);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("焊接方法\r\nWelding Process");
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 9, 10);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("焊材牌号\r\nWelding Material Designation");
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 11, 11);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("实际预热温度℃\r\nActual Preheating Temperature ℃");
|
||
region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 12, 12);
|
||
ws.AddMergedRegion(region);
|
||
ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("焊接日期\r\nWelding Date");
|
||
|
||
#endregion
|
||
|
||
#region 表格
|
||
|
||
ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 21, style, 0, 12);
|
||
var dataTit = rowIndex + 6;
|
||
var tIndex = 5 + 16;
|
||
var dStart = 0;
|
||
var dEnd = 0;
|
||
if (i == 1)
|
||
{
|
||
dStart = 0;
|
||
dEnd = 16;
|
||
}
|
||
else
|
||
{
|
||
dStart = i == 2 ? 16 : ((i - 2) * 16) + 16;
|
||
dEnd = ((i - 1) * 16) + 16;
|
||
}
|
||
|
||
//合并单元格
|
||
for (int hb = dataTit; hb <= rowIndex + tIndex; hb++)
|
||
{
|
||
region = new CellRangeAddress(hb, hb, 1, 2);
|
||
ws.AddMergedRegion(region);
|
||
region = new CellRangeAddress(hb, hb, 7, 8);
|
||
ws.AddMergedRegion(region);
|
||
region = new CellRangeAddress(hb, hb, 9, 10);
|
||
ws.AddMergedRegion(region);
|
||
}
|
||
|
||
//获取当前页数据
|
||
var pageTb = GetPageToTable(tb, dStart, dEnd);
|
||
for (int j = 0; j < pageTb.Rows.Count; j++)
|
||
{
|
||
int dataIndex = dataTit + j;
|
||
//管道编号/单线号
|
||
ws.GetRow(dataIndex).GetCell(0).SetCellValue(titleModel.PipelineCode);
|
||
//焊口编号
|
||
ws.GetRow(dataIndex).GetCell(1).SetCellValue(tb.Rows[i]["WeldJointCode"].ToString());
|
||
//焊工代号
|
||
List<string> welderStr = new List<string>();
|
||
if (!string.IsNullOrWhiteSpace(tb.Rows[i]["BackingWelderCode"].ToString()))
|
||
{
|
||
welderStr.Add(tb.Rows[i]["BackingWelderCode"].ToString());
|
||
}
|
||
if (!string.IsNullOrWhiteSpace(tb.Rows[i]["CoverWelderCode"].ToString()))
|
||
{
|
||
welderStr.Add(tb.Rows[i]["CoverWelderCode"].ToString());
|
||
}
|
||
if (welderStr.Count > 0) welderStr = welderStr.GroupBy(x => x).Select(x => x.Key).ToList();
|
||
ws.GetRow(dataIndex).GetCell(3).SetCellValue(string.Join("/", welderStr));
|
||
//规格mm
|
||
ws.GetRow(dataIndex).GetCell(4).SetCellValue(tb.Rows[i]["Specification"].ToString());
|
||
//材质
|
||
ws.GetRow(dataIndex).GetCell(5).SetCellValue(tb.Rows[i]["Material1Code"].ToString());
|
||
//焊接位置
|
||
ws.GetRow(dataIndex).GetCell(6).SetCellValue(tb.Rows[i]["WeldingLocationCode"].ToString());
|
||
//焊接方法
|
||
ws.GetRow(dataIndex).GetCell(7).SetCellValue(tb.Rows[i]["WeldingMethodCode"].ToString());
|
||
//焊材牌号
|
||
List<string> silkMats = new List<string>();
|
||
if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldSilkCode"].ToString()))
|
||
{
|
||
silkMats.Add(tb.Rows[i]["WeldSilkCode"].ToString());
|
||
}
|
||
if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldMatCode"].ToString()))
|
||
{
|
||
silkMats.Add(tb.Rows[i]["WeldMatCode"].ToString());
|
||
}
|
||
if (silkMats.Count > 0) silkMats = silkMats.GroupBy(x => x).Select(x => x.Key).ToList();
|
||
ws.GetRow(dataIndex).GetCell(9).SetCellValue(string.Join("/", silkMats));
|
||
//实际预热温度
|
||
ws.GetRow(dataIndex).GetCell(11).SetCellValue(tb.Rows[i]["PrepareTemp"].ToString());
|
||
//焊接日期
|
||
ws.GetRow(dataIndex).GetCell(12).SetCellValue(tb.Rows[i]["WeldingDate"].ToString());
|
||
}
|
||
|
||
rowIndex += tIndex;
|
||
|
||
#endregion
|
||
|
||
#region 尾部
|
||
|
||
ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 7, style, 0, 12, false, true);
|
||
|
||
//合并单元格
|
||
for (int hb = rowIndex + 1; hb <= rowIndex + 7; hb++)
|
||
{
|
||
for (int c = 0; c <= 12; c++)
|
||
{
|
||
if (hb >= rowIndex + 1 && hb <= rowIndex + 6)
|
||
{
|
||
ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false);
|
||
}
|
||
if (hb == rowIndex + 7)
|
||
{
|
||
ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false);
|
||
}
|
||
}
|
||
region = new CellRangeAddress(hb, hb, 0, 3);
|
||
ws.AddMergedRegion(region);
|
||
region = new CellRangeAddress(hb, hb, 4, 8);
|
||
ws.AddMergedRegion(region);
|
||
region = new CellRangeAddress(hb, hb, 9, 12);
|
||
ws.AddMergedRegion(region);
|
||
}
|
||
|
||
//行1
|
||
ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("建设/监理单位");
|
||
ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor");
|
||
ws.GetRow(rowIndex + 1).GetCell(9).SetCellValue("施工单位\r\nConstruction Contractor");
|
||
//行2
|
||
ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:");
|
||
ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("专业工程师\r\nDiscipline Engineer:");
|
||
ws.GetRow(rowIndex + 2).GetCell(9).SetCellValue("记录人 :\r\nRecord Prepared by:");
|
||
//行3
|
||
ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("质量检查员:\r\nQuality Inspector:");
|
||
//行5
|
||
ws.GetRow(rowIndex + 6).GetCell(9).SetCellValue("焊接责任工程师:\r\nWelding Engineer:");
|
||
//行6
|
||
ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("日期Date: 年 月 日");
|
||
ws.GetRow(rowIndex + 7).GetCell(4).SetCellValue("日期Date: 年 月 日");
|
||
ws.GetRow(rowIndex + 7).GetCell(9).SetCellValue("日期Date: 年 月 日");
|
||
|
||
#endregion
|
||
|
||
ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 8, rowIndex + 8, style, 0, 12, false, false, true);
|
||
rowIndex += 9;
|
||
}
|
||
|
||
ws.SetMargin(MarginType.LeftMargin, 0.3);
|
||
ws.SetMargin(MarginType.RightMargin, 0.2);
|
||
ws.PrintSetup.Landscape = true;
|
||
ws.PrintSetup.Scale = 75;
|
||
ws.PrintSetup.PaperSize = 9;
|
||
ws.ForceFormulaRecalculation = true;
|
||
|
||
using (FileStream filess = System.IO.File.OpenWrite(ReportFileName))
|
||
{
|
||
hssfworkbook.Write(filess);
|
||
}
|
||
FileInfo filet = new FileInfo(ReportFileName);
|
||
Response.Clear();
|
||
Response.Charset = "GB2312";
|
||
Response.ContentEncoding = System.Text.Encoding.UTF8;
|
||
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
|
||
Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("管道焊接工作记录.xlsx"));
|
||
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
|
||
Response.AddHeader("Content-Length", filet.Length.ToString());
|
||
// 指定返回的是一个不能被客户端读取的流,必须被下载
|
||
Response.ContentType = "application/ms-excel";
|
||
// 把文件流发送到客户端
|
||
Response.WriteFile(filet.FullName);
|
||
// 停止页面的执行
|
||
Response.End();
|
||
}
|
||
else
|
||
{
|
||
Alert.ShowInTop("无数据!", MessageBoxIcon.Warning);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 导出方法
|
||
/// </summary>
|
||
/// <param name="grid"></param>
|
||
/// <returns></returns>
|
||
private string GetGridTableHtml(Grid grid)
|
||
{
|
||
StringBuilder sb = new StringBuilder();
|
||
sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
|
||
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
|
||
sb.Append("<tr>");
|
||
foreach (GridColumn column in grid.Columns)
|
||
{
|
||
if (column.HeaderText != Resources.Lan.SerialNumber)
|
||
{
|
||
sb.AppendFormat("<td>{0}</td>", column.HeaderText);
|
||
}
|
||
}
|
||
sb.Append("</tr>");
|
||
foreach (GridRow row in grid.Rows)
|
||
{
|
||
sb.Append("<tr>");
|
||
foreach (GridColumn column in grid.Columns)
|
||
{
|
||
string html = row.Values[column.ColumnIndex].ToString();
|
||
if (column.ColumnID != "tfNumber")
|
||
{
|
||
//html = (row.FindControl("lblNumber") as AspNet.Label).Text;
|
||
sb.AppendFormat("<td>{0}</td>", html);
|
||
}
|
||
//sb.AppendFormat("<td>{0}</td>", html);
|
||
}
|
||
|
||
sb.Append("</tr>");
|
||
}
|
||
|
||
sb.Append("</table>");
|
||
|
||
return sb.ToString();
|
||
}
|
||
#endregion
|
||
|
||
#region 选择要显示列
|
||
/// <summary>
|
||
/// 选择显示列
|
||
/// </summary>
|
||
/// <param name="sender"></param>
|
||
/// <param name="e"></param>
|
||
protected void btnSelectColumn_Click(object sender, EventArgs e)
|
||
{
|
||
PageContext.RegisterStartupScript(Window4.GetShowReference(String.Format("JointShowColumn.aspx", "显示列 - ")));
|
||
}
|
||
#endregion
|
||
|
||
#region 格式化字符串
|
||
/// <summary>
|
||
/// 转换探伤类型
|
||
/// </summary>
|
||
/// <param name="pt"></param>
|
||
/// <returns></returns>
|
||
protected string ConvertDetectionType(object detectionType)
|
||
{
|
||
string detectionTypeName = string.Empty;
|
||
if (detectionType != null)
|
||
{
|
||
string[] ndtList = detectionType.ToString().Split('|');
|
||
foreach (string r in ndtList)
|
||
{
|
||
var q = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(r);
|
||
if (q != null)
|
||
{
|
||
detectionTypeName = detectionTypeName + q.DetectionTypeCode + ",";
|
||
}
|
||
}
|
||
}
|
||
if (detectionTypeName.Length > 0)
|
||
{
|
||
detectionTypeName = detectionTypeName.Substring(0, detectionTypeName.Length - 1);
|
||
}
|
||
return detectionTypeName;
|
||
}
|
||
|
||
protected string ConvertWeldSilkCode(object WeldSilkId)
|
||
{
|
||
string weldSilkCode = string.Empty;
|
||
if (WeldSilkId != null)
|
||
{
|
||
weldSilkCode = BLL.Pipeline_WeldingDailyService.GetWeldSilkCode(WeldSilkId.ToString());
|
||
}
|
||
return weldSilkCode;
|
||
}
|
||
#endregion
|
||
|
||
#region 显示列
|
||
protected void Window4_Close(object sender, WindowCloseEventArgs e)
|
||
{
|
||
this.BindGrid();
|
||
//显示列
|
||
Model.Sys_UserShowColumns c = BLL.UserShowColumnsService.GetColumnsByUserId(this.CurrUser.UserId, "Joint");
|
||
if (c != null)
|
||
{
|
||
this.GetShowColumn(c.Columns);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 显示的列
|
||
/// </summary>
|
||
/// <param name="column"></param>
|
||
private void GetShowColumn(string column)
|
||
{
|
||
if (!string.IsNullOrEmpty(column))
|
||
{
|
||
this.Grid1.Columns[1].Hidden = true;
|
||
this.Grid1.Columns[2].Hidden = true;
|
||
this.Grid1.Columns[3].Hidden = true;
|
||
this.Grid1.Columns[4].Hidden = true;
|
||
this.Grid1.Columns[5].Hidden = true;
|
||
this.Grid1.Columns[6].Hidden = true;
|
||
this.Grid1.Columns[7].Hidden = true;
|
||
this.Grid1.Columns[8].Hidden = true;
|
||
this.Grid1.Columns[9].Hidden = true;
|
||
this.Grid1.Columns[10].Hidden = true;
|
||
this.Grid1.Columns[11].Hidden = true;
|
||
this.Grid1.Columns[12].Hidden = true;
|
||
this.Grid1.Columns[13].Hidden = true;
|
||
this.Grid1.Columns[14].Hidden = true;
|
||
this.Grid1.Columns[15].Hidden = true;
|
||
this.Grid1.Columns[16].Hidden = true;
|
||
this.Grid1.Columns[17].Hidden = true;
|
||
this.Grid1.Columns[18].Hidden = true;
|
||
this.Grid1.Columns[19].Hidden = true;
|
||
this.Grid1.Columns[20].Hidden = true;
|
||
this.Grid1.Columns[21].Hidden = true;
|
||
this.Grid1.Columns[22].Hidden = true;
|
||
this.Grid1.Columns[23].Hidden = true;
|
||
this.Grid1.Columns[24].Hidden = true;
|
||
this.Grid1.Columns[25].Hidden = true;
|
||
this.Grid1.Columns[26].Hidden = true;
|
||
this.Grid1.Columns[27].Hidden = true;
|
||
this.Grid1.Columns[28].Hidden = true;
|
||
this.Grid1.Columns[29].Hidden = true;
|
||
this.Grid1.Columns[30].Hidden = true;
|
||
this.Grid1.Columns[31].Hidden = true;
|
||
this.Grid1.Columns[32].Hidden = true;
|
||
this.Grid1.Columns[33].Hidden = true;
|
||
this.Grid1.Columns[34].Hidden = true;
|
||
List<string> columns = column.Split(',').ToList();
|
||
foreach (var item in columns)
|
||
{
|
||
if (!string.IsNullOrEmpty(item))
|
||
{
|
||
this.Grid1.Columns[Convert.ToInt32(item)].Hidden = false;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
#endregion
|
||
|
||
#region 私有方法
|
||
|
||
/// <summary>
|
||
/// 获取某一列的所有值
|
||
/// </summary>
|
||
/// <typeparam name="T">列数据类型</typeparam>
|
||
/// <param name="dtSource">数据表</param>
|
||
/// <param name="filedName">列名</param>
|
||
/// <returns></returns>
|
||
public static List<T> GetColumnValues<T>(DataTable dtSource, string filedName)
|
||
{
|
||
return (from r in dtSource.AsEnumerable() select r.Field<T>(filedName)).ToList<T>();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 创建列
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
private XSSFSheet ExcelCreateRow(XSSFSheet ws, XSSFWorkbook hssfworkbook, int sRows, int eRows, ICellStyle style, int cStart, int cEnd, bool istitle = false, bool isend = false, bool isnobk = false)
|
||
{
|
||
for (int i = sRows; i <= eRows; i++)
|
||
{
|
||
ws.CreateRow(i);
|
||
if (istitle)
|
||
{
|
||
ws.GetRow(i).HeightInPoints =
|
||
i <= (sRows + 5) ? 25f :
|
||
19.95f;
|
||
}
|
||
else
|
||
{
|
||
if (isnobk)
|
||
{
|
||
ws.GetRow(i).HeightInPoints = 16f;
|
||
}
|
||
else
|
||
{
|
||
ws.GetRow(i).HeightInPoints = isend ? 25f : 19.95f;
|
||
}
|
||
}
|
||
for (int j = cStart; j <= cEnd; j++)
|
||
{
|
||
ws.GetRow(i).CreateCell(j);
|
||
|
||
if (isnobk)
|
||
{
|
||
ws.GetRow(i).GetCell(j).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, false);
|
||
}
|
||
else
|
||
{
|
||
ws.GetRow(i).GetCell(j).CellStyle = style;
|
||
}
|
||
}
|
||
}
|
||
return ws;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 查询指定条数分页
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public static DataTable GetPageToTable(DataTable dt, int StartNum, int EndNum)
|
||
{
|
||
//0页代表每页数据,直接返回
|
||
if (EndNum == 0) return dt;
|
||
//数据源为空返回空DataTable
|
||
if (dt == null) return new DataTable();
|
||
|
||
DataTable newdt = dt.Copy();
|
||
newdt.Clear();//copy dt的框架
|
||
|
||
if (StartNum >= dt.Rows.Count)
|
||
return newdt;//源数据记录数小于等于要显示的记录,直接返回dt
|
||
|
||
if (EndNum > dt.Rows.Count)
|
||
EndNum = dt.Rows.Count;
|
||
for (int i = StartNum; i <= EndNum - 1; i++)
|
||
{
|
||
DataRow newdr = newdt.NewRow();
|
||
DataRow dr = dt.Rows[i];
|
||
foreach (DataColumn column in dt.Columns)
|
||
{
|
||
newdr[column.ColumnName] = dr[column.ColumnName];
|
||
}
|
||
newdt.Rows.Add(newdr);
|
||
}
|
||
return newdt;
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
} |