333 lines
15 KiB
C#
333 lines
15 KiB
C#
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)));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
} |