ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/YLRQ/HotProessManage/HotProessTrust.aspx.cs

1030 lines
49 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System.IO;
namespace FineUIPro.Web.YLRQ.HotProessManage
{
public partial class HotProessTrust : PageBase
{
/// <summary>
/// 热处理委托主键
/// </summary>
public string HotProessTrustId { get { return (string)ViewState["HotProessTrustId"]; } set { ViewState["HotProessTrustId"] = value; } }
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
drpProessTypes.DataTextField = "Name";
drpProessTypes.DataValueField = "Id";
drpProessTypes.DataSource = HJGL_PW_JointInfoService.GetProessTypes();
drpProessTypes.DataBind();
Funs.FineUIPleaseSelect(drpProessTypes);
BridProjectGrid();
this.HotProessTrustId = string.Empty;
this.InitTreeMenu();//加载树
}
}
#endregion
/// <summary>
/// 绑定项目
/// </summary>
public void BridProjectGrid()
{
GridProject.DataSource = BLL.Base_ProjectService.GetYlrqProjectListByUserId(this.CurrUser.UserId, "2");
GridProject.DataBind();
drpProject.Value = this.CurrUser.LoginProjectId;
}
/// <summary>
/// 施工号下拉框
/// </summary>
protected void drpProject_TextChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
this.tvControlItem.SelectedNodeID = drpProject.Value;
this.BindGrid();
}
///// <summary>
///// 施工号筛选
///// </summary>
//protected void drpProjectId_SelectedIndexChanged(object sender, EventArgs e)
//{
// this.InitTreeMenu();
//}
#region
/// <summary>
/// 加载树
/// </summary>
private void InitTreeMenu()
{
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "项目";
rootNode.NodeID = "0";
rootNode.Expanded = true;
rootNode.ToolTip = "红色表示施工号下存在未打印的热处理委托记录";
rootNode.EnableClickEvent = true;
this.tvControlItem.Nodes.Add(rootNode);
List<Base_Project> projects = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "2");
if (this.drpProject.Values.Length > 0)
{
projects = projects.Where(x => this.drpProject.Values.Contains(x.ProjectId)).ToList();
}
List<PV_CH_HotProessTrust> trustLists = new List<PV_CH_HotProessTrust>(); ///热处理委托单
if (this.rblPrint.SelectedValue == "2") //全部
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(p => p.HotProessTrustCode.Contains(txtSearchNo.Text.Trim())).ToList();
}
else if (this.rblPrint.SelectedValue == "1") //已打印
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(p => p.HotProessTrustCode.Contains(txtSearchNo.Text.Trim()) && p.IsPrint == true).ToList();
}
else if (this.rblPrint.SelectedValue == "0") //未打印
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(p => p.HotProessTrustCode.Contains(txtSearchNo.Text.Trim()) && (p.IsPrint == null || p.IsPrint == false)).ToList();
}
foreach (var item in projects)
{
TreeNode rootUnitNode = new TreeNode();//定义根节点
rootUnitNode.NodeID = item.ProjectId;
if ((from x in trustLists where x.ProjectId == item.ProjectId && (x.IsPrint == null || x.IsPrint == false) select x).Count() > 0) //存在未打印的委托单
{
rootUnitNode.Text = $"<font color='#FF7575'>{item.ProjectCode},{item.EquipmentName},{item.ProductNum}</font>";
}
else
{
rootUnitNode.Text = $"{item.ProjectCode},{item.EquipmentName},{item.ProductNum}";
}
rootUnitNode.ToolTip = item.ProjectName;
rootUnitNode.CommandName = "项目名称";
rootUnitNode.EnableClickEvent = true;
rootUnitNode.EnableExpandEvent = true;
rootNode.Nodes.Add(rootUnitNode);
if (!string.IsNullOrEmpty(this.txtSearchNo.Text.Trim()))
{
var projectTrustLists = (from x in trustLists where x.ProjectId == item.ProjectId orderby x.CreateDate descending select x).ToList();
if (projectTrustLists.Count > 0)
{
rootUnitNode.Expanded = true;
this.BindNodes(rootUnitNode, projectTrustLists);
}
}
else
{
TreeNode tn = new TreeNode();
tn.NodeID = "temp";
tn.Text = "正在加载...";
rootUnitNode.Nodes.Add(tn);
}
}
}
/// <summary>
/// 绑定树节点
/// </summary>
private void BindNodes(TreeNode node, List<PV_CH_HotProessTrust> trustList)
{
foreach (var item in trustList)
{
TreeNode newNode = new TreeNode();
if (item.IsPrint == true)
{
newNode.Text = item.HotProessTrustCode;
}
else
{
newNode.Text = "<font color='#FF7575'>" + item.HotProessTrustCode + "</font>";
}
newNode.NodeID = item.HotProessTrustId;
newNode.ToolTip = item.HotProessTrustCode;
newNode.CommandName = "委托单号";
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
}
}
/// <summary>
/// 数加载
/// </summary>
protected void tvControlItem_NodeExpand(object sender, TreeNodeEventArgs e)
{
if (e.Node.Nodes != null)
{
e.Node.Nodes.Clear();
}
List<PV_CH_HotProessTrust> trustLists = new List<PV_CH_HotProessTrust>(); ///热处理委托单
if (this.rblPrint.SelectedValue == "2") //全部
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(x => x.HotProessTrustCode.Contains(this.txtSearchNo.Text.Trim()) && x.ProjectId == e.Node.NodeID).OrderBy(p => p.CreateDate).ToList();
}
else if (this.rblPrint.SelectedValue == "1") //已打印
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(x => x.HotProessTrustCode.Contains(this.txtSearchNo.Text.Trim()) && x.ProjectId == e.Node.NodeID && x.IsPrint == true).OrderBy(p => p.CreateDate).ToList();
}
else if (this.rblPrint.SelectedValue == "0") //未打印
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(x => x.HotProessTrustCode.Contains(this.txtSearchNo.Text.Trim()) && x.ProjectId == e.Node.NodeID && (x.IsPrint == null || x.IsPrint == false)).OrderBy(p => p.CreateDate).ToList();
}
this.BindNodes(e.Node, trustLists);
}
/// <summary>
/// 点击TreeView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
this.HotProessTrustId = tvControlItem.SelectedNodeID;
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 数据绑定
/// </summary>
private void BindGrid()
{
string strSql = string.Empty;
List<SqlParameter> listStr = new List<SqlParameter>();
this.SetTextTemp();
//页面输入提交信息
this.PageInfoLoad();
string projectIds = Base_ProjectService.GetStrOnProjectIds(this.CurrUser.UserId, "2");
if (this.tvControlItem.SelectedNode != null)
{
if (this.tvControlItem.SelectedNode.CommandName == "委托单号")
{
strSql = @"SELECT * FROM dbo.PV_View_CH_HotProessTrustItem AS Trust WHERE Trust.ProjectId= @ProjectId AND Trust.HotProessTrustId=@HotProessTrustId";
var trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(e => e.HotProessTrustId == HotProessTrustId);
listStr.Add(new SqlParameter("@ProjectId", trust != null ? trust.ProjectId : this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@HotProessTrustId", this.HotProessTrustId));
}
else if (this.tvControlItem.SelectedNode.CommandName == "项目名称")
{
strSql = @"SELECT * FROM dbo.PV_View_CH_HotProessTrustItem AS Trust WHERE Trust.ProjectId= @ProjectId and Trust.HotProessTrustId is not null";
var trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(e => e.HotProessTrustId == HotProessTrustId);
listStr.Add(new SqlParameter("@ProjectId", trust != null ? trust.ProjectId : this.CurrUser.LoginProjectId));
}
else //选择项目根节点或没有选择节点
{
strSql = @"SELECT * FROM dbo.PV_View_CH_HotProessTrustItem AS Trust WHERE Trust.HotProessTrustId is not null AND CHARINDEX(Trust.ProjectId,@ProjectId)>0";
listStr.Add(new SqlParameter("@ProjectId", projectIds));
}
if (this.drpProessTypes.SelectedValue != BLL.Const._Null)
{
strSql += @" and Trust.ProessTypes=@ProessTypes ";
listStr.Add(new SqlParameter("@ProessTypes", this.drpProessTypes.SelectedValue));
}
if (!string.IsNullOrEmpty(this.txtWeldingCode.Text.Trim()))
{
strSql += @" and Trust.WeldingCode like '%'+@WeldingCode+'%' ";
listStr.Add(new SqlParameter("@WeldingCode", this.txtWeldingCode.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();
}
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
#region
/// <summary>
/// 加载页面输入提交信息
/// </summary>
private void PageInfoLoad()
{
this.btnEdit.Hidden = true;
this.btnDelete.Hidden = true;
this.btnPrint.Hidden = true;
var trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(e => e.HotProessTrustId == this.HotProessTrustId);
if (trust != null)
{
this.txtHotProessTrustCode.Text = trust.HotProessTrustCode;
if (!string.IsNullOrEmpty(trust.TrustUnitId))
{
var unit = BLL.Base_UnitService.GetUnit(trust.TrustUnitId);
if (unit != null)
{
this.drpCH_TrustUnit.Text = unit.UnitName;
}
}
this.txtProjectName.Text = trust.ProjectName;
this.txtConstructionNo.Text = trust.ConstructionNo;
if (!string.IsNullOrEmpty(trust.TrstManId))
{
var hotHardMan = BLL.Sys_UserService.GetUsersByUserId(trust.TrstManId);
if (hotHardMan != null)
{
this.drpCH_TrustMan.Text = hotHardMan.UserName;
}
}
this.btnEdit.Hidden = false;
if (trust.IsPrint == true)
{
this.cbIsPrint.Checked = true;
this.btnEdit.Hidden = true;
}
else
{
this.cbIsPrint.Checked = false;
}
this.btnPrint.Hidden = false;
this.cbIsPrint.Hidden = false;
this.btnDelete.Hidden = false;
}
}
#endregion
/// <summary>
/// 情况
/// </summary>
private void SetTextTemp()
{
this.txtHotProessTrustCode.Text = string.Empty;
this.drpCH_TrustUnit.Text = string.Empty;
this.txtProjectName.Text = string.Empty;
this.txtConstructionNo.Text = string.Empty;
this.drpCH_TrustMan.Text = string.Empty;
this.cbIsPrint.Checked = false;
}
/// <summary>
/// 页索引改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
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();
}
#endregion
#region
/// <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.PV_HotProessTrust, Const.BtnAdd))
{
if (this.tvControlItem.SelectedNode != null && this.tvControlItem.SelectedNode.CommandName == "项目名称")
{
this.SetTextTemp();
string window = String.Format("HotProessTrustEdit.aspx?HotProessTrustId={0}&ProjectId={1}", string.Empty, this.tvControlItem.SelectedNodeID, "新增 - ");
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(this.hdTrustID.ClientID)
+ Window1.GetShowReference(window));
}
else
{
ShowNotify("请先选择项目!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
/// <summary>
/// 编辑热处理委托
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnEdit_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.PV_HotProessTrust, Const.BtnEdit))
{
var trustManage = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(p => p.HotProessTrustId == this.HotProessTrustId);
if (trustManage != null)
{
string window = String.Format("HotProessTrustEdit.aspx?HotProessTrustId={0}", this.HotProessTrustId, "编辑 - ");
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(this.hdTrustID.ClientID)
+ Window1.GetShowReference(window));
}
else
{
ShowNotify("请选择要修改的热处理委托记录!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
/// <summary>
/// 删除热处理委托
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnDelete_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.PV_HotProessTrust, Const.BtnDelete))
{
var trustManage = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(p => p.HotProessTrustId == this.HotProessTrustId);
if (trustManage != null)
{
if (trustManage.IsPrint == true)
{
ShowNotify("热处理委托已打印,无法删除!", MessageBoxIcon.Warning);
return;
}
//删除热处理结果反馈表
var items = from x in Funs.DB.PV_CH_HotProessResult where x.HotProessTrustId == this.HotProessTrustId select x;
if (items != null)
{
var hotIds = items.Select(p => p.HotId).Distinct();
var hots = Funs.DB.PV_View_HotWeldInformation.Where(p => hotIds.Contains(p.HotId)).ToList();
if (hots.Count > 0)
{
var weldIds = hots.ConvertAll(p => p.WeldingId);
var welds = Funs.DB.PV_WeldInformation.Where(p => weldIds.Contains(p.WeldingId));
foreach (var itemId in weldIds)
{
var itemWeld = welds.FirstOrDefault(p => p.WeldingId == itemId);
if (itemWeld != null)
{
itemWeld.HotResultDate = null;
itemWeld.HotProessResultOK = null;
Funs.DB.SubmitChanges();
}
}
}
}
Funs.DB.PV_CH_HotProessResult.DeleteAllOnSubmit(items);
var itemHotProess = from x in Funs.DB.PV_CH_HotProessTrustItem where x.HotProessTrustId == this.HotProessTrustId select x;
if (itemHotProess != null)
{
Funs.DB.PV_CH_HotProessTrustItem.DeleteAllOnSubmit(itemHotProess);
}
Funs.DB.PV_CH_HotProessTrust.DeleteOnSubmit(trustManage);
Funs.DB.SubmitChanges();
Alert.ShowInTop("删除成功!", MessageBoxIcon.Success);
this.InitTreeMenu();
SetTextTemp();
this.Grid1.DataSource = null;
this.Grid1.DataBind();
}
else
{
ShowNotify("请选择要删除的热处理委托记录!", MessageBoxIcon.Warning);
}
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
this.InitTreeMenu();
this.HotProessTrustId = this.hdTrustID.Text;
this.tvControlItem.SelectedNodeID = this.HotProessTrustId;
this.BindGrid();
this.hdTrustID.Text = string.Empty;
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Tree_TextChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
//this.BindGrid();
}
/// <summary>
/// 是否打印
/// </summary>
protected void cbIsPrint_CheckedChanged(object sender, CheckedEventArgs e)
{
if (this.tvControlItem.SelectedNode.CommandName == "委托单号")
{
Model.PV_CH_HotProessTrust trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(p => p.HotProessTrustId == this.HotProessTrustId);
if (trust != null)
{
if (this.cbIsPrint.Checked)
{
trust.IsPrint = true;
}
else
{
trust.IsPrint = false;
}
Funs.DB.SubmitChanges();
}
}
}
/// <summary>
/// 是否打印搜索
/// </summary>
protected void rblPrint_SelectedIndexChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
SetTextTemp();
}
#endregion
#region
/// <summary>
/// 热处理委托表打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnPrint_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.PV_HotProessTrust, Const.BtnPrint))
{
if (string.IsNullOrWhiteSpace(this.HotProessTrustId))
{
Alert.ShowInTop("请选择委托单号!", MessageBoxIcon.Warning);
return;
}
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "out1.xlsx";
if (Grid1.Rows.Count > 0)
{
int rowIndex = 0;
XSSFWorkbook hssfworkbook = new XSSFWorkbook();
XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("热处理通知单");
#region
//所有列宽 8.08
ws.SetColumnWidth(0, 9 * 256);
ws.SetColumnWidth(1, 9 * 256);
ws.SetColumnWidth(2, 9 * 256);
ws.SetColumnWidth(3, 9 * 256);
ws.SetColumnWidth(4, 9 * 256);
ws.SetColumnWidth(5, 9 * 256);
ws.SetColumnWidth(6, 9 * 256);
ws.SetColumnWidth(7, 9 * 256);
ws.SetColumnWidth(8, 9 * 256);
ws.SetColumnWidth(9, 9 * 256);
#endregion
//获取委托单信息
var trust = (from a in Funs.DB.PV_CH_HotProessTrust
join b in Funs.DB.Base_Unit on a.TrustUnitId equals b.UnitId into temp
from t in temp.DefaultIfEmpty()
where a.HotProessTrustId == this.HotProessTrustId
select new
{
a.HotProessTrustId,
a.ConstructionNo,
a.HotProessTrustCode,
t.UnitName,
a.ProjectName
}).FirstOrDefault();
if (trust == null)
{
Alert.ShowInTop("委托单信息错误!", MessageBoxIcon.Warning);
return;
}
//更新打印状态
var trustModel = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(p => p.HotProessTrustId == this.HotProessTrustId);
if (trustModel != null)
{
trustModel.IsPrint = true;
Funs.DB.SubmitChanges();
}
//获取委托明细信息
var trustItems = Funs.DB.PV_View_CH_HotProessTrustItem.Where(p => p.HotProessTrustId == this.HotProessTrustId).OrderBy(p => p.WeldingCode).ToList();
var tbNum = trustItems.Count;
CellRangeAddress region;
var pageNum =
tbNum < 10 ? 1
: Math.Ceiling((float)(tbNum - 10) / 10) + 1;
//尾部增加行
var endaddNum = 1;
#region
//头部样式大文字居中文字加粗
ICellStyle titleMaxBoldStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true);
//头部样式大文字居中文字不加粗
ICellStyle titleMaxStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, false);
//头部样式居中无边框
ICellStyle titleNbCenterStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true);
//头部样式靠左上左右边框
ICellStyle titleToStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true);
//头部样式靠左下左右边框
ICellStyle titleBoStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true);
//头部样式靠左左右边框
ICellStyle titlelfStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true);
//头部样式居中
ICellStyle titleStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true);
//公共样式
ICellStyle style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true);
//页码样式
ICellStyle pageStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 7, true);
//文字靠左
ICellStyle leftStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true);
#endregion
//循环页
for (int i = 1; i <= pageNum; i++)
{
#region
//行1
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleNbCenterStyle, rowIndex, rowIndex + 2, 0, 9);
region = new CellRangeAddress(rowIndex, rowIndex, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex).GetCell(0).SetCellValue("镇 海 石 化 建 安 工 程 有 限 公 司");
ws.GetRow(rowIndex).GetCell(0).CellStyle = titleMaxStyle;
//行2
region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("热 处 理 通 知 单");
ws.GetRow(rowIndex + 1).GetCell(0).CellStyle = titleMaxBoldStyle;
//行3
region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue($"共 {pageNum} 页 第 {i} 页");
ws.GetRow(rowIndex + 2).GetCell(0).CellStyle = titleNbCenterStyle;
//行4
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 3, rowIndex + 4, 0, 9);
ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("施工号");
ws.GetRow(rowIndex + 3).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 1, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(1).SetCellValue(trust.ConstructionNo);
ws.GetRow(rowIndex + 3).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 3, 4);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("工艺编号");
ws.GetRow(rowIndex + 3).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 6);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue(trust.HotProessTrustCode);
ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = titleStyle;
ws.GetRow(rowIndex + 3).GetCell(7).SetCellValue("委托单位");
ws.GetRow(rowIndex + 3).GetCell(7).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 8, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 3).GetCell(8).SetCellValue(trust.UnitName);
ws.GetRow(rowIndex + 3).GetCell(8).CellStyle = titleStyle;
//行5
ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("产品名称");
ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 1, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue(trust.ProjectName);
ws.GetRow(rowIndex + 4).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 3, 4);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("要求完成日期");
ws.GetRow(rowIndex + 4).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 6);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue(" ");
ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = titleStyle;
ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("随炉试件数");
ws.GetRow(rowIndex + 4).GetCell(7).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 8, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("");
ws.GetRow(rowIndex + 4).GetCell(8).CellStyle = titleStyle;
//行6
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleToStyle, rowIndex + 5, rowIndex + 5, 0, 9);
region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("1本产品热处理前工序全部完工自检合格。");
ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = titleToStyle;
//行7
ws = ExcelCreateRowTitle(ws, hssfworkbook, titlelfStyle, rowIndex + 6, rowIndex + 8, 0, 9);
region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("2流字卡及焊接记录内容正确签字齐全。");
ws.GetRow(rowIndex + 6).GetCell(0).CellStyle = titlelfStyle;
//行8
region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("3热处理后硬度检测要求□需要 □不需要 ");
ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = titlelfStyle;
//行9
region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("");
ws.GetRow(rowIndex + 8).GetCell(0).CellStyle = titlelfStyle;
//行10
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleBoStyle, rowIndex + 9, rowIndex + 9, 0, 9);
region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue(" 施工单位技术负责人/日期:");
ws.GetRow(rowIndex + 9).GetCell(0).CellStyle = titleBoStyle;
//行11
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleToStyle, rowIndex + 10, rowIndex + 10, 0, 9);
region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 10).GetCell(0).SetCellValue("热处理之前的施工记录、资料报告齐全,外观检验合格。");
ws.GetRow(rowIndex + 10).GetCell(0).CellStyle = titleToStyle;
//行12
ws = ExcelCreateRowTitle(ws, hssfworkbook, titlelfStyle, rowIndex + 11, rowIndex + 11, 0, 9);
region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 11).GetCell(0).SetCellValue(" 检 验 员 / 日 期: ");
ws.GetRow(rowIndex + 11).GetCell(0).CellStyle = titlelfStyle;
//行13
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleBoStyle, rowIndex + 12, rowIndex + 12, 0, 9);
region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 12).GetCell(0).SetCellValue("");
ws.GetRow(rowIndex + 12).GetCell(0).CellStyle = titleBoStyle;
//行14
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleToStyle, rowIndex + 13, rowIndex + 13, 0, 9);
region = new CellRangeAddress(rowIndex + 13, rowIndex + 13, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 13).GetCell(0).SetCellValue("");
ws.GetRow(rowIndex + 13).GetCell(0).CellStyle = titleToStyle;
//行15
ws = ExcelCreateRowTitle(ws, hssfworkbook, titlelfStyle, rowIndex + 14, rowIndex + 17, 0, 9);
region = new CellRangeAddress(rowIndex + 14, rowIndex + 14, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 14).GetCell(0).SetCellValue("经审核,本产品可转入热处理工序,请:口①制造分公司热处理");
ws.GetRow(rowIndex + 14).GetCell(0).CellStyle = titlelfStyle;
//行16
region = new CellRangeAddress(rowIndex + 15, rowIndex + 15, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue(" 口②经营科外协热处理");
ws.GetRow(rowIndex + 15).GetCell(0).CellStyle = titlelfStyle;
//行17
region = new CellRangeAddress(rowIndex + 16, rowIndex + 16, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue(" 口③现场热处理");
ws.GetRow(rowIndex + 16).GetCell(0).CellStyle = titlelfStyle;
//行18
region = new CellRangeAddress(rowIndex + 17, rowIndex + 17, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 17).GetCell(0).SetCellValue("热处理责任工程师/日期:");
ws.GetRow(rowIndex + 17).GetCell(0).CellStyle = titlelfStyle;
//行19
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleBoStyle, rowIndex + 18, rowIndex + 18, 0, 9);
region = new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 18).GetCell(0).SetCellValue("");
ws.GetRow(rowIndex + 18).GetCell(0).CellStyle = titleBoStyle;
//行20
ws = ExcelCreateRowTitle(ws, hssfworkbook, titleStyle, rowIndex + 19, rowIndex + 19, 0, 9);
ws.GetRow(rowIndex + 19).GetCell(0).SetCellValue("序号");
ws.GetRow(rowIndex + 19).GetCell(0).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 19, rowIndex + 19, 1, 2);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 19).GetCell(1).SetCellValue("焊缝编号");
ws.GetRow(rowIndex + 19).GetCell(1).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 19, rowIndex + 19, 3, 4);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 19).GetCell(3).SetCellValue("材质");
ws.GetRow(rowIndex + 19).GetCell(3).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 19, rowIndex + 19, 5, 7);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 19).GetCell(5).SetCellValue("规格");
ws.GetRow(rowIndex + 19).GetCell(5).CellStyle = titleStyle;
region = new CellRangeAddress(rowIndex + 19, rowIndex + 19, 8, 9);
ws.AddMergedRegion(region);
ws.GetRow(rowIndex + 19).GetCell(8).SetCellValue("备注");
ws.GetRow(rowIndex + 19).GetCell(8).CellStyle = titleStyle;
#endregion
//分页开始和结束
var dStart = i;
var dEnd = 10;
//创建行开始和结束
var tStart = rowIndex + 20;
var tEnd = rowIndex + (i == 1 ? 29 : 29);
#region
//创建数据行和列
ws = ExcelCreateRow(ws, hssfworkbook, tStart, tEnd, style, 0, 9);
//获取当前页数据
if (trustItems.Count > 0)
{
var pageTb = PageList(trustItems, out int total, dStart, dEnd);
int j = 0;
foreach (var item in pageTb)
{
var dataRow = tStart + j;
ws.GetRow(dataRow).GetCell(0).SetCellValue(j + 1);
ws.GetRow(dataRow).GetCell(1).SetCellValue(item.WeldingCode);
ws.GetRow(dataRow).GetCell(3).SetCellValue(item.STE_Code);
ws.GetRow(dataRow).GetCell(5).SetCellValue(item.JointDesc);
ws.GetRow(dataRow).GetCell(8).SetCellValue(item.Remark);
j++;
}
}
#endregion
#region
ICellStyle wbtitleNbStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true);
ws = ExcelCreateRowTitle(ws, hssfworkbook, wbtitleNbStyle, tEnd + 1, tEnd + 1, 0, 9);
region = new CellRangeAddress(tEnd + 1, tEnd + 1, 0, 9);
ws.AddMergedRegion(region);
ws.GetRow(tEnd + 1).GetCell(0).SetCellValue("注:本单一式二份,一份委托单位自存,一份交远安公司");
ws.GetRow(tEnd + 1).GetCell(0).CellStyle = wbtitleNbStyle;
#endregion
rowIndex = tEnd + 1 + endaddNum;
}
ws.SetMargin(MarginType.LeftMargin, 0.5);
ws.SetMargin(MarginType.RightMargin, 0.5);
//ws.SetMargin(MarginType.BottomMargin, 1);
//ws.SetMargin(MarginType.TopMargin, 1);
//ws.SetMargin(MarginType.FooterMargin, 0.5);
//ws.SetMargin(MarginType.HeaderMargin, 0.5);
ws.PrintSetup.Landscape = false;
ws.PrintSetup.PaperSize = 9;
ws.ForceFormulaRecalculation = true;
using (FileStream filess = 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
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 数据行和列
/// </summary>
/// <returns></returns>
private XSSFSheet ExcelCreateRow(XSSFSheet ws, XSSFWorkbook hssfworkbook, int sRows, int eRows, ICellStyle style, int cStart, int cEnd)
{
CellRangeAddress region;
for (int i = sRows; i <= eRows; i++)
{
ws.CreateRow(i);
ws.GetRow(i).HeightInPoints = 21.8f;
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).GetCell(j).CellStyle = style;
}
region = new CellRangeAddress(i, i, 1, 2);
ws.AddMergedRegion(region);
region = new CellRangeAddress(i, i, 3, 4);
ws.AddMergedRegion(region);
region = new CellRangeAddress(i, i, 5, 7);
ws.AddMergedRegion(region);
region = new CellRangeAddress(i, i, 8, 9);
ws.AddMergedRegion(region);
}
return ws;
}
/// <summary>
/// 创建头部
/// </summary>
/// <returns></returns>
private XSSFSheet ExcelCreateRowTitle(XSSFSheet ws, XSSFWorkbook hssfworkbook, ICellStyle style, int sRows, int eRows, int cStart, int cEnd)
{
for (int i = sRows; i <= eRows; i++)
{
ws.CreateRow(i);
ws.GetRow(i).HeightInPoints =
i == sRows ? 25.5f :
i == (sRows + 1) ? 25.5f :
i == (sRows + 2) ? 24f :
i == (sRows + 3) ? 24f :
21.8f;
for (int j = cStart; j <= cEnd; j++)
{
ws.GetRow(i).CreateCell(j);
ws.GetRow(i).CreateCell(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;
}
/// <summary>
/// 分页
/// </summary>
/// <returns></returns>
public static List<T> PageList<T>(List<T> list, out int total, int pageIndex = 1, int pageSize = 10)
{
total = 0;
pageIndex = pageIndex - 1;
if (list == null || list.Count == 0)
return new List<T>();
total = list.Count;
int startIndex = pageIndex * pageSize;
if (startIndex + pageSize > list.Count)
{
pageSize = list.Count - startIndex;
}
return list.GetRange(startIndex, pageSize);
}
/// <summary>
/// 得到热处理类型
/// </summary>
/// <returns></returns>
protected string ConvertProessTypes(object ProessTypes)
{
string proessTypes = string.Empty;
if (ProessTypes != null)
{
proessTypes = BLL.HJGL_PW_JointInfoService.ConvertProessTypes(ProessTypes.ToString());
}
return proessTypes;
}
#endregion
}
}