ChengDa_English/SGGL/FineUIPro.Web/HJGL/WeldingReport/NDTWeekReport.aspx.cs

458 lines
23 KiB
C#
Raw 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 NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.IO;
namespace FineUIPro.Web.HJGL.WeldingReport
{
public partial class NDTWeekReport : PageBase
{
#region
/// <summary>
/// 主键
/// </summary>
public string NDTReportId
{
get
{
return (string)ViewState["NDTReportId"];
}
set
{
ViewState["NDTReportId"] = value;
}
}
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindGrid();
}
}
private void BindGrid()
{
List<SpRpNDTWeekReport> list = new List<SpRpNDTWeekReport>();
List<Model.NDTReport> NDTReportLists = BLL.NDTReportService.GetNDTReportByProjectId(this.CurrUser.LoginProjectId, "1");
foreach (var item in NDTReportLists)
{
SpRpNDTWeekReport t = new SpRpNDTWeekReport();
t.NDTReportId = item.NDTReportId;
t.ProjectId = item.ProjectId;
t.ProjectName = BLL.ProjectService.GetProjectNameByProjectId(item.ProjectId);
t.StaDate = string.Format("{0:yyyy-MM-dd}", item.StartDate) + "至" + string.Format("{0:yyyy-MM-dd}", item.EndDate);
list.Add(t);
}
this.Grid1.DataSource = list;
this.Grid1.DataBind();
}
#endregion
#region
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSearch_Click(object sender, EventArgs e)
{
string projectName = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName;
if (!string.IsNullOrEmpty(this.txtStartDate.Text) && !string.IsNullOrEmpty(this.txtEndDate.Text))
{
string staDate = this.txtStartDate.Text + "至" + this.txtEndDate.Text;
SpRpNDTWeekReport t = new SpRpNDTWeekReport();
this.NDTReportId = SQLHelper.GetNewID(typeof(Model.NDTReport));
t.NDTReportId = this.NDTReportId;
t.ProjectId = this.CurrUser.LoginProjectId;
t.ProjectName = projectName;
t.StaDate = staDate;
List<SpRpNDTWeekReport> list = new List<SpRpNDTWeekReport>();
list.Add(t);
Grid1.DataSource = list;
Grid1.DataBind();
}
else
{
Alert.ShowInTop("日期不能为空!", MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 保存
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtStartDate.Text) && !string.IsNullOrEmpty(this.txtEndDate.Text))
{
Model.NDTReport ndtReport = new Model.NDTReport();
ndtReport.NDTReportId = this.NDTReportId;
ndtReport.ProjectId = this.CurrUser.LoginProjectId;
ndtReport.StartDate = Funs.GetNewDateTime(this.txtStartDate.Text.Trim());
ndtReport.EndDate = Funs.GetNewDateTime(this.txtEndDate.Text.Trim());
ndtReport.RType = "1";
BLL.NDTReportService.AddNDTReort(ndtReport);
ShowNotify("保存成功!", MessageBoxIcon.Success);
BindGrid();
this.txtStartDate.Text = string.Empty;
this.txtEndDate.Text = string.Empty;
}
else
{
Alert.ShowInTop("日期不能为空!", MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 右键删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var rep = BLL.NDTReportService.GetNDTReportById(rowID);
if (rep != null)
{
BLL.NDTReportService.DeleteNDTReportById(rowID);
}
}
ShowNotify("删除成功!", MessageBoxIcon.Success);
BindGrid();
}
}
#endregion
#region
/// <summary>
/// 开始日期选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtStartDate_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtStartDate.Text.Trim()))
{
this.txtEndDate.Text = Funs.GetNewDateTime(this.txtStartDate.Text.Trim()).Value.AddDays(6).ToShortDateString();
}
}
/// <summary>
/// 结束日期选择事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void txtEndDate_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(this.txtEndDate.Text.Trim()))
{
this.txtStartDate.Text = Funs.GetNewDateTime(this.txtEndDate.Text.Trim()).Value.AddDays(-6).ToShortDateString();
}
}
#endregion
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
{
object[] keys = Grid1.DataKeys[e.RowIndex];
string fileId = string.Empty;
if (keys == null)
{
return;
}
else
{
fileId = keys[0].ToString();
}
if (e.CommandName == "print")
{
string dateStr = Grid1.Rows[e.RowIndex].Values[2].ToString();
var dates = dateStr.Split('至');
DateTime begin = DateTime.Parse(dates[0]);
DateTime end = DateTime.Parse(dates[1]);
var projectName = ProjectService.GetProjectNameByProjectId(CurrUser.LoginProjectId);
string rootPath = Server.MapPath("~/") + Const.ExcelUrl;
//模板文件
string TempletFileName = Server.MapPath("~/") + "File/Excel/HJGL_DataOut/无损检测周报.xlsx";
//导出文件
string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string ReportFileName = filePath + "out.xlsx";
FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read);
XSSFWorkbook hssfworkbook = new XSSFWorkbook(file);
ICellStyle styleCenter = hssfworkbook.CreateCellStyle();
styleCenter.VerticalAlignment = VerticalAlignment.Center;
styleCenter.Alignment = HorizontalAlignment.Center;
styleCenter.BorderLeft = BorderStyle.Thin;
styleCenter.BorderTop = BorderStyle.Thin;
styleCenter.BorderRight = BorderStyle.Thin;
styleCenter.BorderBottom = BorderStyle.Thin;
styleCenter.WrapText = true;
IFont font = styleCenter.GetFont(hssfworkbook);
font.FontHeightInPoints = 10;//字体高度与excel中的字号一致
styleCenter.SetFont(font);
XSSFSheet recordSheet = (XSSFSheet)hssfworkbook.GetSheet("无损检测周报");
// recordSheet.AddMergedRegion(new CellRangeAddress(0, 0, 8, 9));
recordSheet.GetRow(2).GetCell(2).SetCellValue(projectName.ToString());
//recordSheet.GetRow(2).GetCell(2).CellStyle = styleCenter;
recordSheet.GetRow(3).GetCell(2).SetCellValue(dateStr);
//recordSheet.GetRow(2).GetCell(16).CellStyle = styleCenter;
List<Base_Unit> units = UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, Const.ProjectUnitType_5);
string unitName = "";
foreach (Base_Unit unit in units)
{
unitName += unit.UnitName + ",";
}
recordSheet.GetRow(4).GetCell(2).SetCellValue(unitName.TrimEnd(','));
//recordSheet.GetRow(3).GetCell(2).CellStyle = styleCenter;
string strSql1 = @"select unit.UnitId,unit.UnitName,workArea.WorkAreaName,workArea.WorkAreaCode,curr.curr_pass_film,curr.curr_total_film,recurr.recurr_pass_film,recurr.recurr_total_film
from Base_Unit unit right join
ProjectData_WorkArea workArea on workArea.UnitId=unit.UnitId
left join
( SELECT WorkAreaId,IsoInfo.UnitId,COUNT(*) AS curr_check_count_total
, SUM(cht_totalfilm) AS curr_total_film
, SUM(cht_passfilm) AS curr_pass_film
FROM CH_Check Checks
LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID
LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID
LEFT JOIN PW_IsoInfo as IsoInfo ON IsoInfo.ISO_ID = JointInfo.ISO_ID
where JointInfo.ProjectId=@ProjectId and (cht_checkdate >= @date1 OR @date1 IS NULL) and(cht_checkdate <= @date2 OR @date2 IS NULL)
group by WorkAreaId,IsoInfo.UnitId) as curr on unit.UnitId= curr.UnitId and workArea.WorkAreaId=curr.WorkAreaId
left join
( SELECT WorkAreaId,IsoInfo.UnitId,COUNT(*) AS recurr_check_count_total
, SUM(cht_totalfilm) AS recurr_total_film
, SUM(cht_passfilm) AS recurr_pass_film
FROM CH_Check Checks
LEFT JOIN CH_CheckItem ON ch_checkitem.CHT_CheckID = Checks.CHT_CheckID
LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = ch_checkitem.JOT_ID
LEFT JOIN PW_IsoInfo as IsoInfo ON IsoInfo.ISO_ID = JointInfo.ISO_ID
LEFT JOIN CH_Trust trust on trust.CH_TrustID = Checks.CH_TrustID
where JointInfo.ProjectId=@ProjectId and trust.CH_TrustType='2' and (cht_checkdate >= @date1 OR @date1 IS NULL) and(cht_checkdate <= @date2 OR @date2 IS NULL)
group by WorkAreaId,IsoInfo.UnitId) as recurr on unit.UnitId= recurr.UnitId and workArea.WorkAreaId=recurr.WorkAreaId
where workArea.ProjectId=@ProjectId ";
List<SqlParameter> listpar = new List<SqlParameter>
{
new SqlParameter("@projectId", this.CurrUser.LoginProjectId)
};
listpar.Add(new SqlParameter("@date1", begin.ToString("yyyy-MM-dd")));
listpar.Add(new SqlParameter("@date2", end.ToString("yyyy-MM-dd")));
SqlParameter[] parameter5 = listpar.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(strSql1, parameter5);
if (dt != null)
{
if (dt.Rows.Count > 16)
{
recordSheet.ShiftRows(8, 25, dt.Rows.Count - 16);
for (int j = 0; j < dt.Rows.Count - 16; j++)
{
recordSheet.CopyRow(7 + j, 8 + j);
}
for (int ii = 1; ii <= dt.Rows.Count; ii++)
{
CellRangeAddress region = new CellRangeAddress(6 + ii, 6 + ii, 1, 2);
recordSheet.AddMergedRegion(region);
}
}
else
{
for (int ii = 1; ii <= 16; ii++)
{
CellRangeAddress region = new CellRangeAddress(6 + ii, 6 + ii, 1, 2);
recordSheet.AddMergedRegion(region);
}
}
int i = 1;
int curr_pass_film = 0;
int curr_total_film = 0;
int recurr_pass_film = 0;
int recurr_total_film = 0;
foreach (DataRow row in dt.Rows)
{
recordSheet.GetRow(6 + i).Height = 29 * 20;
recordSheet.GetRow(6 + i).CreateCell(0).SetCellValue(i + "");
recordSheet.GetRow(6 + i).GetCell(0).CellStyle = styleCenter;
recordSheet.GetRow(6 + i).CreateCell(1).SetCellValue(row["UnitName"].ToString());
recordSheet.GetRow(6 + i).GetCell(1).CellStyle = styleCenter;
recordSheet.GetRow(6 + i).CreateCell(3).SetCellValue(row["WorkAreaCode"].ToString());
recordSheet.GetRow(6 + i).GetCell(3).CellStyle = styleCenter;
recordSheet.GetRow(6 + i).CreateCell(4).SetCellValue(row["WorkAreaName"].ToString());
recordSheet.GetRow(6 + i).GetCell(4).CellStyle = styleCenter;
recordSheet.GetRow(6 + i).CreateCell(5).SetCellValue(row["curr_pass_film"].ToString());
recordSheet.GetRow(6 + i).GetCell(5).CellStyle = styleCenter;
recordSheet.GetRow(6 + i).CreateCell(6).SetCellValue(row["curr_total_film"].ToString());
recordSheet.GetRow(6 + i).GetCell(6).CellStyle = styleCenter;
try
{
curr_pass_film += Funs.GetNewIntOrZero(row["curr_pass_film"].ToString());
curr_total_film += Funs.GetNewIntOrZero(row["curr_total_film"].ToString());
var celCellValue1 = recordSheet.GetRow(6 + i).CreateCell(7);
celCellValue1.CellStyle = styleCenter;
celCellValue1.SetCellValue((100.0 * int.Parse(row["curr_pass_film"].ToString()) / int.Parse(row["curr_total_film"].ToString())).ToString("0.00"));
}
catch (Exception e1)
{ }
recordSheet.GetRow(6 + i).CreateCell(14).SetCellValue(row["recurr_pass_film"].ToString());
recordSheet.GetRow(6 + i).GetCell(14).CellStyle = styleCenter;
recordSheet.GetRow(6 + i).CreateCell(15).SetCellValue(row["recurr_total_film"].ToString());
recordSheet.GetRow(6 + i).GetCell(15).CellStyle = styleCenter;
try
{
recurr_pass_film += Funs.GetNewIntOrZero(row["recurr_pass_film"].ToString());
recurr_total_film += Funs.GetNewIntOrZero(row["recurr_total_film"].ToString());
var celCellValue2 = recordSheet.GetRow(6 + i).CreateCell(16);
celCellValue2.CellStyle = styleCenter;
celCellValue2.SetCellValue((100.0 * int.Parse(row["recurr_pass_film"].ToString()) / int.Parse(row["recurr_total_film"].ToString())).ToString("0.00"));
}
catch (Exception e2)
{ }
i++;
if (dt.Rows.Count > 16)
{
recordSheet.GetRow(dt.Rows.Count + 7).CreateCell(5).SetCellValue(curr_pass_film + "");
recordSheet.GetRow(dt.Rows.Count + 7).GetCell(5).CellStyle = styleCenter;
recordSheet.GetRow(dt.Rows.Count + 7).CreateCell(6).SetCellValue(curr_total_film + "");
recordSheet.GetRow(dt.Rows.Count + 7).GetCell(6).CellStyle = styleCenter;
try
{
if (curr_total_film > 0)
{
var celCellValue1 = recordSheet.GetRow(dt.Rows.Count + 7).CreateCell(7);
celCellValue1.CellStyle = styleCenter;
celCellValue1.SetCellValue((100.0 * curr_pass_film / curr_total_film).ToString("0.00"));
}
}
catch (Exception e1) { }
recordSheet.GetRow(dt.Rows.Count + 7).CreateCell(14).SetCellValue(recurr_pass_film + "");
recordSheet.GetRow(dt.Rows.Count + 7).GetCell(14).CellStyle = styleCenter;
recordSheet.GetRow(dt.Rows.Count + 7).CreateCell(15).SetCellValue(recurr_total_film + "");
recordSheet.GetRow(dt.Rows.Count + 7).GetCell(15).CellStyle = styleCenter;
try
{
if (recurr_total_film > 0)
{
var celCellValue2 = recordSheet.GetRow(dt.Rows.Count + 7).CreateCell(16);
celCellValue2.CellStyle = styleCenter;
celCellValue2.SetCellValue((100.0 * recurr_pass_film / recurr_total_film).ToString("0.00"));
}
}
catch (Exception e2) { }
}
else
{
recordSheet.GetRow(23).CreateCell(5).SetCellValue(curr_pass_film + "");
recordSheet.GetRow(23).GetCell(5).CellStyle = styleCenter;
recordSheet.GetRow(23).CreateCell(6).SetCellValue(curr_total_film + "");
recordSheet.GetRow(23).GetCell(6).CellStyle = styleCenter;
try
{
if (curr_total_film > 0)
{
var celCellValue1 = recordSheet.GetRow(23).CreateCell(7);
celCellValue1.CellStyle = styleCenter;
celCellValue1.SetCellValue((100.0 * curr_pass_film / curr_total_film).ToString("0.00"));
}
}
catch (Exception e3) { }
recordSheet.GetRow(23).CreateCell(14).SetCellValue(recurr_pass_film + "");
recordSheet.GetRow(23).GetCell(14).CellStyle = styleCenter;
recordSheet.GetRow(23).CreateCell(15).SetCellValue(recurr_total_film + "");
recordSheet.GetRow(23).GetCell(15).CellStyle = styleCenter;
try
{
if (recurr_total_film > 0)
{
var celCellValue2 = recordSheet.GetRow(23).CreateCell(16);
celCellValue2.CellStyle = styleCenter;
celCellValue2.SetCellValue((100.0 * recurr_pass_film / recurr_total_film).ToString("0.00"));
}
}
catch (Exception e4) { }
}
}
}
using (FileStream filess = File.OpenWrite(ReportFileName))
{
hssfworkbook.Write(filess);
}
//PageContext.RegisterStartupScript(Window5.GetShowReference(String.Format("../../ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId={3}", BLL.Const.HJGL_JointInfoReportId, isoId, varValue, this.CurrUser.LoginProjectId)));
FileInfo filet = new FileInfo(ReportFileName);
Response.Clear();
Response.Charset = "GB2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
Response.AddHeader("Content-Disposition", "attachment; filename=无损检测周报_" + Server.UrlEncode(DateTime.Now.ToString("yyyyMMddhhmmss") + ".xlsx"));
// 添加头信息,指定文件大小,让浏览器能够显示下载进度
Response.AddHeader("Content-Length", filet.Length.ToString());
// 指定返回的是一个不能被客户端读取的流,必须被下载
Response.ContentType = "application/ms-excel";
// 把文件流发送到客户端
Response.WriteFile(filet.FullName);
// 停止页面的执行
Response.End();
}
}
}
}