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

333 lines
15 KiB
C#
Raw Normal View History

2024-11-19 09:45:27 +08:00
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")
{
var projectName = ProjectService.GetProjectNameByProjectId(CurrUser.LoginProjectId);
string dateStr = Grid1.Rows[e.RowIndex].Values[2].ToString();
Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
keyValuePairs.Add("projectName", projectName);
keyValuePairs.Add("dateStr", dateStr);
List<Base_Unit> units = UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, Const.ProjectUnitType_5);
string unitName = "";
foreach (Base_Unit unit in units)
{
unitName += unit.UnitName + ",";
}
keyValuePairs.Add("unitName", unitName);
BLL.Common.FastReportService.ResetData();
BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
var dates = dateStr.Split('至');
DateTime begin = DateTime.Parse(dates[0]);
DateTime end = DateTime.Parse(dates[1]);
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, 0.0 curr_pass_rate,0.0 recurr_pass_rate
,curr_trust_point.curr_trust_count_total, currpoint.curr_point_count_total, currpoint.curr_pass_point ,0.0 curr_pass_rate_point
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
left join
( SELECT WorkAreaId,IsoInfo.UnitId,COUNT(*) AS curr_point_count_total
, SUM(case when CHT_CheckResult='' then 1 else 0 end) AS curr_pass_point
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 currpoint on unit.UnitId= currpoint.UnitId and workArea.WorkAreaId=currpoint.WorkAreaId
left join (
SELECT WorkAreaId,IsoInfo.UnitId,COUNT(*) AS curr_trust_count_total
FROM CH_Trust trust
LEFT JOIN CH_TrustItem trustitem ON trustitem .CH_TrustID = trust.CH_TrustID
LEFT JOIN PW_JointInfo as JointInfo ON JointInfo.JOT_ID = trustitem.JOT_ID
LEFT JOIN PW_IsoInfo as IsoInfo ON IsoInfo.ISO_ID = JointInfo.ISO_ID
where JointInfo.ProjectId=@ProjectId and (trust.CH_TrustDate >= @date1 OR @date1 IS NULL) and(trust.CH_TrustDate <= @date2 OR @date2 IS NULL)
group by WorkAreaId,IsoInfo.UnitId) as curr_trust_point on unit.UnitId= curr_trust_point.UnitId and workArea.WorkAreaId=curr_trust_point.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)
{
dt.TableName = "Table1";
foreach (DataRow row in dt.Rows)
{
try
{
row["curr_pass_rate"] =1.0 * int.Parse(row["curr_pass_film"].ToString()) / int.Parse(row["curr_total_film"].ToString());
}
catch (Exception e1)
{ }
try
{
row["recurr_pass_rate"] = 1.0 * int.Parse(row["recurr_pass_film"].ToString()) / int.Parse(row["recurr_total_film"].ToString());
}
catch (Exception e2)
{ }
try
{
row["curr_pass_rate_point"] = 1.0 * int.Parse(row["curr_pass_point"].ToString()) / int.Parse(row["curr_point_count_total"].ToString());
}
catch (Exception e3)
{ }
}
}
BLL.Common.FastReportService.AddFastreportTable(dt);
string initTemplatePath = "";
string rootPath = Server.MapPath("~/");
initTemplatePath = "File\\Fastreport\\无损检测周报.frx";
if (File.Exists(rootPath + initTemplatePath))
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
}
}
}
}
}