xinjiang/SGGL/FineUIPro.Web/HJGL/CheckManage/CheckManageAudit.aspx.cs

1136 lines
56 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 System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using Newtonsoft.Json.Linq;
using System.IO;
using NPOI.XSSF.UserModel;
using NPOI.SS.UserModel;
using System.Runtime.Serialization;
using NPOI.SS.Util;
using NPOI.HSSF.UserModel;
using FineUIPro.Web.CQMS.Check;
namespace FineUIPro.Web.HJGL.CheckManage
{
public partial class CheckManageAudit : PageBase
{
#region
/// <summary>
/// 检测主键
/// </summary>
public string CHT_CheckID
{
get
{
return (string)ViewState["CHT_CheckID"];
}
set
{
ViewState["CHT_CheckID"] = value;
}
}
/// <summary>
/// 委托单号
/// </summary>
public string CH_TrustID
{
get
{
return (string)ViewState["CH_TrustID"];
}
set
{
ViewState["CH_TrustID"] = value;
}
}
/// <summary>
/// 检测类型
/// </summary>
public string NDTTypeCode
{
get
{
return (string)ViewState["NDTTypeCode"];
}
set
{
ViewState["NDTTypeCode"] = value;
}
}
/// <summary>
/// 检测单细表集合
/// </summary>
public static Dictionary<string, List<Model.View_CH_CheckItem>> checkItems = new Dictionary<string, List<Model.View_CH_CheckItem>>();
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.txtCheckTime.Text = string.Format("{0:yyyy-MM}", DateTime.Now);
BLL.UnitService.InitUnitByProjectIdUnitTypeDropDownList(this.drpCheckUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_5, true);//查询检测单位
BLL.UserService.InitUserDropDownList(this.ddlAuditMan, this.CurrUser.LoginProjectId, true);//审核人
this.InitTreeMenu();//加载树
//报表类型
this.drpPrintType.DataTextField = "Text";
this.drpPrintType.DataValueField = "Value";
this.drpPrintType.DataSource = BLL.DropListService.NDTCheckSelectPrint();
this.drpPrintType.DataBind();
//Funs.FineUIPleaseSelect(this.drpPrintType);
}
}
#endregion
#region --
/// <summary>
/// 加载树
/// </summary>
private void InitTreeMenu()
{
if (!string.IsNullOrEmpty(this.txtCheckTime.Text.Trim()))
{
DateTime? startTime = Funs.GetNewDateTime(this.txtCheckTime.Text.Trim());
DateTime? endTime = startTime.HasValue ? startTime.Value.AddMonths(1) : System.DateTime.Now;
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "单位-装置-月份";
rootNode.NodeID = "0";
rootNode.Expanded = true;
this.tvControlItem.Nodes.Add(rootNode);
List<Model.Base_Unit> units = null;
var unit = BLL.ProjectUnitService.GetProjectUnitByUnitIdProjectId(this.CurrUser.LoginProjectId, this.CurrUser.UnitId);
if (unit == null || unit.UnitType == BLL.Const.ProjectUnitType_1 || unit.UnitType == BLL.Const.ProjectUnitType_5 || unit.UnitType == BLL.Const.ProjectUnitType_3)
{
if (BLL.WorkAreaService.IsSupervisor(this.CurrUser.UnitId, this.CurrUser.LoginProjectId))
{
units = (from x in Funs.DB.Base_Unit
join y in Funs.DB.ProjectData_WorkArea on x.UnitId equals y.UnitId
where (x.UnitId == this.CurrUser.UnitId || y.SupervisorUnitId == this.CurrUser.UnitId) && y.ProjectId == this.CurrUser.LoginProjectId
select x).Distinct().ToList();
}
else
{
units = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, "2");
}
}
else
{
units = (from x in Funs.DB.Base_Unit where x.UnitId == this.CurrUser.UnitId select x).ToList();
}
List<Model.CH_Check> checkLists = new List<Model.CH_Check>(); ///检测单
if (!this.txtCheckTime.Hidden)
{
checkLists = (from x in Funs.DB.CH_Check
where x.ProjectId == this.CurrUser.LoginProjectId && x.CHT_CheckDate >= startTime && x.CHT_CheckDate < endTime
select x).ToList();
}
else
{
checkLists = (from x in Funs.DB.CH_Check
where x.ProjectId == this.CurrUser.LoginProjectId && x.CHT_CheckCode.Contains(this.txtSearchCode.Text.Trim())
select x).ToList();
}
if (this.drpCheckUnit.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpCheckUnit.SelectedValue))
{
checkLists = (from x in Funs.DB.CH_Check
where x.ProjectId == this.CurrUser.LoginProjectId && x.ContractualUnits == this.drpCheckUnit.SelectedValue
select x).ToList();
}
if (units != null)
{
foreach (var item in units)
{
TreeNode rootUnitNode = new TreeNode();//定义根节点
rootUnitNode.Text = item.UnitName;
rootUnitNode.NodeID = item.UnitId;
rootUnitNode.Expanded = true;
rootUnitNode.ToolTip = "施工单位";
rootNode.Nodes.Add(rootUnitNode);
var checkList = checkLists.Where(x => x.UnitId == item.UnitId).ToList();
this.BindNodes(rootUnitNode, checkList);
}
}
else
{
Alert.ShowInTop("请先增加施工单位!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("请选择检测报告月份!", MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 绑定树节点
/// </summary>
/// <param name="node"></param>
private void BindNodes(TreeNode node, List<Model.CH_Check> checkList)
{
if (node.ToolTip == "施工单位")
{
var installId = (from x in checkList select x.InstallationId).Distinct();
if (installId.Count() > 0)
{
var install = from x in Funs.DB.Project_Installation where installId.Contains(x.InstallationId) orderby x.InstallationCode select x;
foreach (var q in install)
{
TreeNode newNode = new TreeNode();
newNode.Text = q.InstallationName;
newNode.NodeID = q.InstallationId + "|" + node.NodeID; ;
newNode.ToolTip = "装置";
newNode.Expanded = true;
node.Nodes.Add(newNode);
this.BindNodes(newNode, checkList);
}
}
}
else if (node.ToolTip == "装置")
{
string installationId = Funs.GetStrListByStr(node.NodeID, '|')[0];
var pointListMonth = (from x in checkList
where x.InstallationId == installationId && x.UnitId == node.ParentNode.NodeID
select string.Format("{0:yyyy-MM}", x.CHT_CheckDate)).Distinct();
foreach (var item in pointListMonth)
{
TreeNode newNode = new TreeNode();
newNode.Text = item;
newNode.NodeID = item + "|" + node.NodeID; ;
newNode.ToolTip = "月份";
node.Nodes.Add(newNode);
this.BindNodes(newNode, checkList);
}
}
else if (node.ToolTip == "月份")
{
string installationId = Funs.GetStrListByStr(node.ParentNode.NodeID, '|')[0];
var days = (from x in checkList
where x.InstallationId == installationId && x.UnitId == node.ParentNode.ParentNode.NodeID
orderby x.CHT_CheckDate descending
select x.CHT_CheckDate).Distinct();
foreach (var item in days)
{
TreeNode newNode = new TreeNode();
newNode.Text = string.Format("{0:yyyy-MM-dd}", item);
newNode.NodeID = item.ToString() + "|" + node.NodeID; ;
newNode.ToolTip = "日期";
node.Nodes.Add(newNode);
this.BindNodes(newNode, checkList);
}
}
else if (node.ToolTip == "日期")
{
string installationId = Funs.GetStrListByStr(node.ParentNode.ParentNode.NodeID, '|')[0];
var dReports = from x in checkList
where x.InstallationId == installationId && x.UnitId == node.ParentNode.ParentNode.ParentNode.NodeID
&& x.CHT_CheckDate == Funs.GetNewDateTime(node.Text)
orderby x.CHT_CheckCode descending
select x;
foreach (var item in dReports)
{
TreeNode newNode = new TreeNode();
if (!string.IsNullOrEmpty(item.CHT_CheckCode))
{
newNode.Text = item.CHT_CheckCode;
}
else
{
newNode.Text = "未知";
}
if (!item.CHT_AuditDate.HasValue || string.IsNullOrEmpty(item.CHT_AuditMan))
{
newNode.Text = "<font color='#FF7575'>" + newNode.Text + "</font>";
node.Text = "<font color='#FF7575'>" + node.Text + "</font>";
node.ParentNode.Text = "<font color='#FF7575'>" + node.ParentNode.Text + "</font>";
}
newNode.NodeID = item.CHT_CheckID;
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
}
}
}
#endregion
#region Tree
/// <summary>
/// 按日期、单号查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ckFind_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.ckFind.SelectedValue == "0")
{
this.txtCheckTime.Hidden = false;
this.txtSearchCode.Hidden = true;
if (string.IsNullOrEmpty(this.txtCheckTime.Text))
{
this.txtCheckTime.Text = string.Format("{0:yyyy-MM}", DateTime.Now);
}
}
else
{
this.txtCheckTime.Hidden = true;
this.txtSearchCode.Hidden = false;
}
this.InitTreeMenu();
}
protected void Tree_TextChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
}
#endregion
#region Tree点击事件
/// <summary>
/// Tree点击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
if (checkItems.ContainsKey(this.CurrUser.UserId))
{
checkItems[CurrUser.UserId].Clear();
}
else
{
checkItems.Add(this.CurrUser.UserId, new List<Model.View_CH_CheckItem>());
}
var tempCheckItems = checkItems[CurrUser.UserId];
this.CHT_CheckID = this.tvControlItem.SelectedNodeID;
if (!string.IsNullOrEmpty(this.CHT_CheckID))
{
Model.CH_Check check = BLL.CheckManageService.GetCheckByCHT_CheckID(this.CHT_CheckID);
if (check != null)
{
if (!string.IsNullOrEmpty(check.CHT_AuditMan) && check.CHT_AuditDate.HasValue)
{
this.btnCancelAudit.Hidden = false;
this.btnAudit.Hidden = true;
}
else
{
this.btnAudit.Hidden = false;
this.btnCancelAudit.Hidden = true;
}
CH_TrustID = check.CH_TrustID;
if (BLL.TrustManageEditService.GetCH_TrustByID(CH_TrustID) != null)
{
this.lbtnToTrust.Text = BLL.TrustManageEditService.GetCH_TrustByID(CH_TrustID).CH_TrustCode;
}
this.txtCheckCode.Text = check.CHT_CheckCode;
if (!string.IsNullOrEmpty(check.UnitId))
{
this.txtUnitName.Text = BLL.UnitService.GetUnitNameByUnitId(check.UnitId);
}
if (!string.IsNullOrEmpty(check.InstallationId))
{
this.txtInstallationName.Text = BLL.Project_InstallationService.GetInstallationByInstallationId(check.InstallationId).InstallationName;
}
this.txtCheckType.Text = check.CHT_CheckType;
if (!string.IsNullOrEmpty(check.CHT_Tabler))
{
this.txtTabler.Text = BLL.UserService.GetUserNameByUserId(check.CHT_Tabler);
}
this.txtTableDate.Text = check.CHT_TableDate.HasValue ? string.Format("{0:yyyy-MM-dd}", check.CHT_TableDate) : "";
this.txtCheckDate.Text = check.CHT_CheckDate.HasValue ? string.Format("{0:yyyy-MM-dd}", check.CHT_CheckDate) : "";
if (!string.IsNullOrEmpty(check.CHT_AuditMan))
{
this.ddlAuditMan.SelectedValue = check.CHT_AuditMan;
}
else
{
this.ddlAuditMan.SelectedValue = this.CurrUser.UserId;
}
this.txtAuditDate.Text = check.CHT_AuditDate.HasValue ? string.Format("{0:yyyy-MM-dd}", check.CHT_AuditDate) : string.Format("{0:yyyy-MM-dd}", DateTime.Now);
if (!string.IsNullOrEmpty(check.CHT_CheckMan))
{
this.txtCheckMan.Text = BLL.UserService.GetUserNameByUserId(check.CHT_CheckMan);
}
if (!string.IsNullOrEmpty(check.ContractualUnits))
{
this.txtContractualUnits.Text = BLL.UnitService.GetUnitNameByUnitId(check.ContractualUnits);
}
this.txtRemark.Text = check.CHT_Remark;
List<Model.CH_CheckItem> items = BLL.CheckItemManageService.GetTrustItemByCheck(CHT_CheckID);
foreach (var t in items)
{
var checkItem = BLL.CheckItemManageService.GetTrustItemByCheckItem(t.CHT_CheckItemID);
if (checkItem != null)
{
#region
if (!string.IsNullOrEmpty(t.CH_TrustItemID))
{
var trustId = (from x in Funs.DB.CH_TrustItem where x.CH_TrustItemID == t.CH_TrustItemID select x.CH_TrustID).FirstOrDefault();
if (!string.IsNullOrEmpty(trustId))
{
var trust = BLL.TrustManageEditService.GetCH_TrustByID(trustId);
if (trust != null)
{
if (!string.IsNullOrEmpty(trust.CH_NDTMethod))
{
var ndtt = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(trust.CH_NDTMethod);
if (ndtt != null)
{
this.NDTTypeCode = ndtt.DetectionTypeCode;
}
}
}
}
}
#endregion
tempCheckItems.Add(checkItem);
}
}
if (tempCheckItems.Count > 0)
{
if (this.NDTTypeCode == "RT")
{
this.Grid1.Hidden = false;
this.Grid2.Hidden = true;
this.Grid1.DataSource = tempCheckItems;
this.Grid1.DataBind();
}
else
{
this.Grid1.Hidden = true;
this.Grid2.Hidden = false;
this.Grid2.DataSource = tempCheckItems;
this.Grid2.DataBind();
}
}
}
}
}
#endregion
private void updateTreeMenu()
{
var checkLists = (from x in Funs.DB.CH_Check
where x.ProjectId == this.CurrUser.LoginProjectId
select x).ToList();
foreach (TreeNode item in this.tvControlItem.Nodes)
{
updateChildTreeMenu(item, checkLists);
}
}
private void updateChildTreeMenu(TreeNode node, List<Model.CH_Check> trustLists)
{
bool hasRed = false;
foreach (TreeNode item in node.Nodes)
{
if (string.IsNullOrEmpty(item.ToolTip))
{
var t = trustLists.FirstOrDefault(x => x.CHT_CheckID == item.NodeID);
if (t != null && (!t.CHT_AuditDate.HasValue || string.IsNullOrEmpty(t.CHT_AuditMan)))
{
hasRed = true;
item.Text = "<font color='#FF7575'>" + item.Text + "</font>";
item.ParentNode.Text = "<font color='#FF7575'>" + item.ParentNode.Text + "</font>";
if (item.ParentNode.ParentNode != null)
{
item.ParentNode.ParentNode.Text = "<font color='#FF7575'>" + item.ParentNode.ParentNode.Text + "</font>";
}
}
else
{
item.Text = item.Text.Replace("<font color='#FF7575'>", "").Replace("</font>", "");
}
}
else
{
updateChildTreeMenu(item, trustLists);
}
}
if (!hasRed)
{
node.Text = node.Text.Replace("<font color='#FF7575'>", "").Replace("</font>", "");
if (node.ParentNode != null)
{
bool hasRed1 = false;
foreach (TreeNode item1 in node.ParentNode.Nodes)
{
if (item1.Text.Contains("font"))
{
hasRed1 = true;
}
}
if (!hasRed1)
{
node.ParentNode.Text = node.ParentNode.Text.Replace("<font color='#FF7575'>", "").Replace("</font>", "");
}
}
}
}
#region
/// <summary>
/// 审核
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAudit_Click(object sender, EventArgs e)
{
if (this.GetButtonPower(BLL.Const.BtnAuditing))
{
if (BLL.CheckManageService.GetCheckByCHT_CheckID(CHT_CheckID) != null)
{
Model.CH_Check check = new Model.CH_Check();
check.CHT_CheckID = CHT_CheckID;
var q = from x in BLL.Funs.DB.CH_CheckItem where x.CHT_CheckID == CHT_CheckID select x;
if (q.Count() > 0)
{
int checkNum = q.Count();
string trustItemId = q.First().CH_TrustItemID;
string trustId = (from x in BLL.Funs.DB.CH_TrustItem where x.CH_TrustItemID == trustItemId select x.CH_TrustID).FirstOrDefault();
int trustNum = (from x in BLL.Funs.DB.CH_TrustItem
join y in BLL.Funs.DB.PW_JointInfo on x.JOT_ID equals y.JOT_ID
where x.CH_TrustID == trustId
&& y.JOT_JointStatus != "104" //不包括切除口
select x).Count();
if (checkNum == trustNum)
{
if (!string.IsNullOrEmpty(this.txtAuditDate.Text) && this.ddlAuditMan.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.ddlAuditMan.SelectedValue))
{
check.CHT_AuditMan = this.ddlAuditMan.SelectedValue;
check.CHT_AuditDate = DateTime.Parse(this.txtAuditDate.Text);
BLL.CheckManageService.UpdateCheckAudit(check);
BLL.CheckItemManageService.UpdateCheckItemAudioTime(CHT_CheckID, "1");
foreach (var item in q)
{
BLL.CheckItemManageService.UpdateJointCheckFlag(item.JOT_ID, "1");
var trust = BLL.CheckItemManageService.GetViewCheckItemByJOTID(item.JOT_ID);
if ((item.CHT_PassFilm != item.CHT_TotalFilm && trust.DetectionTypeCode == "RT") || (item.CHT_CheckResult == "不合格" && trust.DetectionTypeCode != "RT"))
{
BLL.RepairService.UpdateNewJointNo(item.JOT_ID, "R");
}
}
this.btnCancelAudit.Hidden = false;
this.btnAudit.Hidden = true;
ShowNotify("审核完成!", MessageBoxIcon.Success);
updateTreeMenu();
}
else
{
Alert.ShowInTop("请填写审核人和审核日期!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("对应的委托单还未检测完,不能审核!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("检测单没有任何明细,审核未完成!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("请选择要审核的单据!", MessageBoxIcon.Warning);
return;
}
}
else
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 取消审核
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnCancelAudit_Click(object sender, EventArgs e)
{
if (this.GetButtonPower(BLL.Const.BtnCancelAuditing))
{
if (!string.IsNullOrEmpty(CHT_CheckID))
{
if (BLL.CheckManageService.GetCheckByCHT_CheckID(CHT_CheckID) != null)
{
Model.CH_Check check = new Model.CH_Check();
check.CHT_CheckID = CHT_CheckID;
check.CHT_AuditMan = null;
check.CHT_AuditDate = null;
this.btnCancelAudit.Hidden = true;
this.btnAudit.Hidden = false;
BLL.CheckManageService.UpdateCheckAudit(check);
BLL.CheckItemManageService.UpdateCheckItemAudioTime(CHT_CheckID, "2");
var checks = from x in Funs.DB.CH_CheckItem where x.CHT_CheckID == this.CHT_CheckID select x;
foreach (var item in checks)
{
BLL.CheckItemManageService.UpdateJointCheckFlag(item.JOT_ID, "2");
if (item.CHT_PassFilm != item.CHT_TotalFilm)
{
BLL.RepairService.UpdateCancelAuditJointNo(item.JOT_ID);
}
}
ShowNotify("取消审核完成!", MessageBoxIcon.Success);
updateTreeMenu();
}
}
}
else
{
Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
#endregion
#region
/// <summary>
/// 对应委托单
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void lbtnToTrust_Click(object sender, EventArgs e)
{
if (!String.IsNullOrEmpty(this.CH_TrustID))
{
PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("../TrustManage/ShowTrustItem.aspx?CH_TrustID={0}", this.CH_TrustID, "编辑 - ")));
}
else
{
Alert.ShowInTop("没有对应的委托单号!", MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 获取按钮权限
/// </summary>
/// <param name="button"></param>
/// <returns></returns>
private bool GetButtonPower(string button)
{
return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_CheckManageAuditMenuId, button);
}
#endregion
#region
/// <summary>
/// 打印按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnPrint_Click(object sender, EventArgs e)
{
string reportId = string.Empty;
if (this.tvControlItem.SelectedNode != null)
{
reportId = this.tvControlItem.SelectedNode.NodeID;
if (drpPrintType.SelectedValue == BLL.Const.CheckReport1Id || drpPrintType.SelectedValue == BLL.Const.CheckReport2Id)
{
if (!string.IsNullOrEmpty(reportId))
{
var q = BLL.CheckManageService.GetCheckByCHT_CheckID(this.CHT_CheckID);
string varValue = string.Empty;
var projectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId);
var installationName = BLL.Project_InstallationService.GetInstallationByInstallationId(q.InstallationId).InstallationName;
var unitName = BLL.UnitService.GetUnitNameByUnitId(q.UnitId);
BLL.Common.FastReportService.ResetData();
Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
keyValuePairs.Add("projectName", projectName);
keyValuePairs.Add("installationName", installationName);
keyValuePairs.Add("unitName", unitName);
keyValuePairs.Add("NDTTypeCode", this.NDTTypeCode);
keyValuePairs.Add("CHT_CheckCode", q.CHT_CheckCode);
BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
string strSql = @"select CH_TrustCode,CHT_CheckCode,checkItem.ISO_IsoNumber,checkItem.JOT_JointNo,checkItem.WelderCode,checkItem.CHT_CheckResult,checkItem.CHT_RepairLocation,DefectLength
from View_CH_CheckItem checkItem left join CH_Check chcheck on checkItem.CHT_CheckID=chcheck.CHT_CheckID
where checkItem.CHT_CheckID =@CHT_CheckID order by dbo.Fun_GetParseInt(JOT_JointNo)";
List<SqlParameter> listpar = new List<SqlParameter>
{
new SqlParameter("@CHT_CheckID", this.CHT_CheckID)
};
SqlParameter[] parameter = listpar.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
if (dt != null)
{
dt.TableName = "Table1";
}
BLL.Common.FastReportService.AddFastreportTable(dt);
string initTemplatePath = "";
string rootPath = Server.MapPath("~/");
if (drpPrintType.SelectedValue == BLL.Const.CheckReport1Id)
{
initTemplatePath = "File\\Fastreport\\管道焊口无损检测结果通知单.frx";
}
if (drpPrintType.SelectedValue == BLL.Const.CheckReport2Id)
{
initTemplatePath = "File\\Fastreport\\设备焊口无损检测结果通知单.frx";
}
if (File.Exists(rootPath + initTemplatePath))
{
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
}
////varValue = installationName + "|" + unitName + "|" + projectName + "|" + q.PW_PointDate.Value.ToString("yyyy-MM-dd") + "|" + q.PW_PointNo;
////if (!string.IsNullOrEmpty(varValue))
////{
//// varValue = Microsoft.JScript.GlobalObject.escape(varValue.Replace("/", ","));
////}
////PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("../../ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId={3}", BLL.Const.CheckReportId, reportId, varValue, this.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;
//XSSFSheet recordSheet = (XSSFSheet)hssfworkbook.GetSheet("管道焊口无损检测结果通知单");
//// recordSheet.AddMergedRegion(new CellRangeAddress(0, 0, 8, 9));
//recordSheet.GetRow(0).CreateCell(7).SetCellValue(projectName.ToString());
//recordSheet.GetRow(0).GetCell(7).CellStyle = styleCenter;
//recordSheet.GetRow(1).CreateCell(7).SetCellValue(installationName);
//recordSheet.GetRow(1).GetCell(7).CellStyle = styleCenter;
//recordSheet.GetRow(2).CreateCell(1).SetCellValue(unitName);
//recordSheet.GetRow(2).GetCell(1).CellStyle = styleCenter;
//recordSheet.GetRow(2).CreateCell(4).SetCellValue(this.NDTTypeCode);
//recordSheet.GetRow(2).GetCell(4).CellStyle = styleCenter;
//recordSheet.GetRow(2).CreateCell(7).SetCellValue(q.CHT_CheckCode);
//recordSheet.GetRow(2).GetCell(7).CellStyle = styleCenter;
//int i = 0;
//List<Model.CH_CheckItem> items = BLL.CheckItemManageService.GetTrustItemByCheck(CHT_CheckID);
//if (items.Count > 12)
//{
// recordSheet.ShiftRows(8, 27, items.Count - 12);
// for (int j = 0; j < items.Count - 12; j++)
// {
// recordSheet.CopyRow(4 + j, 5 + j);
// }
//}
//foreach (var t in items)
//{
// var checkItem = BLL.CheckItemManageService.GetTrustItemByCheckItem(t.CHT_CheckItemID);
// if (checkItem != null)
// {
// #region 查找委托中的检测类型并赋给检测类型变量
// if (!string.IsNullOrEmpty(t.CH_TrustItemID))
// {
// var trustId = (from x in Funs.DB.CH_TrustItem where x.CH_TrustItemID == t.CH_TrustItemID select x.CH_TrustID).FirstOrDefault();
// if (!string.IsNullOrEmpty(trustId))
// {
// var trust = BLL.TrustManageEditService.GetCH_TrustByID(trustId);
// if (trust != null)
// {
// if (!string.IsNullOrEmpty(trust.CH_NDTMethod))
// {
// var ndtt = BLL.Base_DetectionTypeService.GetDetectionTypeByDetectionTypeId(trust.CH_NDTMethod);
// }
// recordSheet.GetRow(i + 4).CreateCell(0).SetCellValue(trust.CH_TrustCode);
// recordSheet.GetRow(i + 4).GetCell(0).CellStyle = styleCenter;
// }
// }
// }
// #endregion
// // checkItems.Add(checkItem);
// recordSheet.GetRow(i + 4).CreateCell(1).SetCellValue(q.CHT_CheckCode);
// recordSheet.GetRow(i + 4).GetCell(1).CellStyle = styleCenter;
// recordSheet.GetRow(i + 4).CreateCell(2).SetCellValue(checkItem.ISO_IsoNumber);
// recordSheet.GetRow(i + 4).GetCell(2).CellStyle = styleCenter;
// recordSheet.GetRow(i + 4).CreateCell(4).SetCellValue(checkItem.JOT_JointNo);
// recordSheet.GetRow(i + 4).GetCell(4).CellStyle = styleCenter;
// recordSheet.GetRow(i + 4).CreateCell(5).SetCellValue(checkItem.WelderCode);
// recordSheet.GetRow(i + 4).GetCell(5).CellStyle = styleCenter;
// recordSheet.GetRow(i + 4).CreateCell(6).SetCellValue(checkItem.CHT_CheckResult);
// recordSheet.GetRow(i + 4).GetCell(6).CellStyle = styleCenter;
// recordSheet.GetRow(i + 4).CreateCell(7).SetCellValue(checkItem.CHT_RepairLocation);
// recordSheet.GetRow(i + 4).GetCell(7).CellStyle = styleCenter;
// i++;
// }
//}
//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();
}
}
else if (drpPrintType.SelectedValue == BLL.Const.WeldJointCheckReportId)
{
var q = BLL.CheckManageService.GetCheckByCHT_CheckID(this.CHT_CheckID);
string varValue = string.Empty;
var projectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId);
var installationName = BLL.Project_InstallationService.GetInstallationByInstallationId(q.InstallationId).InstallationName;
var unitName = BLL.UnitService.GetUnitNameByUnitId(q.UnitId);
//varValue = installationName + "|" + unitName + "|" + projectName + "|" + q.PW_PointDate.Value.ToString("yyyy-MM-dd") + "|" + q.PW_PointNo;
//if (!string.IsNullOrEmpty(varValue))
//{
// varValue = Microsoft.JScript.GlobalObject.escape(varValue.Replace("/", ","));
//}
//PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("../../ReportPrint/ExReportPrint.aspx?ispop=1&reportId={0}&replaceParameter={1}&varValue={2}&projectId={3}", BLL.Const.CheckReportId, reportId, varValue, this.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.Color = 10;//颜色
font.FontHeightInPoints = 10;//字体高度与excel中的字号一致
styleCenter.SetFont(font);
XSSFSheet recordSheet = (XSSFSheet)hssfworkbook.GetSheet("管道焊接接头报检检查记录");
// recordSheet.AddMergedRegion(new CellRangeAddress(0, 0, 8, 9));
recordSheet.GetRow(0).CreateCell(14).SetCellValue(projectName.ToString());
recordSheet.GetRow(0).GetCell(14).CellStyle = styleCenter;
recordSheet.GetRow(2).CreateCell(14).SetCellValue(installationName);
recordSheet.GetRow(2).GetCell(14).CellStyle = styleCenter;
recordSheet.GetRow(2).CreateCell(1).SetCellValue(unitName);
recordSheet.GetRow(2).GetCell(1).CellStyle = styleCenter;
recordSheet.GetRow(3).CreateCell(8).SetCellValue(this.NDTTypeCode);
recordSheet.GetRow(3).GetCell(8).CellStyle = styleCenter;
recordSheet.GetRow(2).CreateCell(7).SetCellValue(q.CHT_CheckCode);
recordSheet.GetRow(2).GetCell(7).CellStyle = styleCenter;
int i = 0;
List<Model.CH_CheckItem> items = BLL.CheckItemManageService.GetTrustItemByCheck(CHT_CheckID);
recordSheet.GetRow(3).CreateCell(14).SetCellValue(items.Count + "个");
recordSheet.GetRow(3).GetCell(14).CellStyle = styleCenter;
if (items.Count > 12)
{
recordSheet.ShiftRows(8, 27, items.Count - 12);
for (int j = 0; j < items.Count - 12; j++)
{
recordSheet.CopyRow(4 + j, 5 + j);
}
}
foreach (var t in items)
{
var checkItem = BLL.CheckItemManageService.GetTrustItemByCheckItem(t.CHT_CheckItemID);
if (checkItem != null)
{
if (i == 0)
{
var iso = BLL.PW_IsoInfoService.GetIsoInfoByIsoInfoId(checkItem.ISO_ID);
if (iso != null)
{
var dDetectionRate = Funs.DB.Base_DetectionRate.FirstOrDefault(x => x.DetectionRateId == iso.DetectionRateId);
if (dDetectionRate != null)
{
recordSheet.GetRow(3).CreateCell(18).SetCellValue(dDetectionRate.DetectionRateValue + "%");
recordSheet.GetRow(3).GetCell(18).CellStyle = styleCenter;
}
}
}
recordSheet.GetRow(i + 6).CreateCell(0).SetCellValue((i + 1) + "");
recordSheet.GetRow(i + 6).GetCell(0).CellStyle = styleCenter;
recordSheet.GetRow(i + 6).CreateCell(1).SetCellValue(checkItem.ISO_IsoNo);
recordSheet.GetRow(i + 6).GetCell(1).CellStyle = styleCenter;
recordSheet.GetRow(i + 6).CreateCell(3).SetCellValue(checkItem.JOT_JointNo);
recordSheet.GetRow(i + 6).GetCell(3).CellStyle = styleCenter;
recordSheet.GetRow(i + 6).CreateCell(4).SetCellValue(checkItem.WelderCode);
recordSheet.GetRow(i + 6).GetCell(4).CellStyle = styleCenter;
#region
if (!string.IsNullOrEmpty(t.CH_TrustItemID))
{
var trust = (from x in Funs.DB.View_JointInfo where x.JOT_ID == t.JOT_ID select x).FirstOrDefault();
if (trust != null)
{
recordSheet.GetRow(i + 6).CreateCell(6).SetCellValue(trust.JOT_JointDesc);
recordSheet.GetRow(i + 6).GetCell(6).CellStyle = styleCenter;
recordSheet.GetRow(i + 6).CreateCell(7).SetCellValue(trust.STE_Name1);
recordSheet.GetRow(i + 6).GetCell(7).CellStyle = styleCenter;
recordSheet.GetRow(i + 6).CreateCell(11).SetCellValue(trust.WeldingMethodName);
recordSheet.GetRow(i + 6).GetCell(11).CellStyle = styleCenter;
if (trust.JOT_PrepareTemp.HasValue)
{
recordSheet.GetRow(i + 6).CreateCell(14).SetCellValue(trust.JOT_PrepareTemp.Value.ToString("##.#"));
recordSheet.GetRow(i + 6).GetCell(14).CellStyle = styleCenter;
}
}
}
#endregion
// checkItems.Add(checkItem);
i++;
}
}
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();
}
else if (drpPrintType.SelectedValue == BLL.Const.CheckReport3Id)
{
var q = BLL.CheckManageService.GetCheckByCHT_CheckID(this.CHT_CheckID);
string varValue = string.Empty;
var projectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId);
var installationName = BLL.Project_InstallationService.GetInstallationByInstallationId(q.InstallationId).InstallationName;
var unitName = BLL.UnitService.GetUnitNameByUnitId(q.UnitId);
Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
keyValuePairs.Add("projectName", projectName);
keyValuePairs.Add("installationName", installationName);
keyValuePairs.Add("conUnit", unitName);
var supUnitList = UnitService.GetUnitByProjectIdUnitTypeList(q.ProjectId, Const.ProjectUnitType_3);
string supUnitName = "";
foreach (var unit in supUnitList)
{
supUnitName += unit.UnitName + ",";
}
keyValuePairs.Add("supUnit", supUnitName);
var trust = TrustManageEditService.GetCH_TrustByID(q.CH_TrustID);
keyValuePairs.Add("checkStandard", trust.CH_NDTCriteria);
BLL.Common.FastReportService.ResetData();
BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
string strSql = @"select ISO_ID ,CH_TrustCode,CHT_CheckCode,checkItem.ISO_IsoNumber,checkItem.JOT_JointNo,checkItem.WelderCode,checkItem.CHT_CheckResult,checkItem.CHT_RepairLocation
from View_CH_CheckItem checkItem left join CH_Check chcheck on checkItem.CHT_CheckID=chcheck.CHT_CheckID
where checkItem.CHT_CheckID =@CHT_CheckID order by dbo.Fun_GetParseInt(JOT_JointNo)";
List<SqlParameter> listpar = new List<SqlParameter>
{
new SqlParameter("@CHT_CheckID", this.CHT_CheckID)
};
SqlParameter[] parameter = listpar.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
if (dt != null)
{
dt.TableName = "Table1";
}
BLL.Common.FastReportService.AddFastreportTable(dt);
string initTemplatePath = "";
string rootPath = Server.MapPath("~/");
initTemplatePath = "File\\Fastreport\\管道无损检测结果汇总表.frx";
if (File.Exists(rootPath + initTemplatePath))
{
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
}
}
else if (drpPrintType.SelectedValue == BLL.Const.CheckReport4Id)
{
var q = BLL.CheckManageService.GetCheckByCHT_CheckID(this.CHT_CheckID);
string varValue = string.Empty;
var projectName = BLL.ProjectService.GetProjectNameByProjectId(this.CurrUser.LoginProjectId);
var installation = BLL.Project_InstallationService.GetInstallationByInstallationId(q.InstallationId);
var unitName = BLL.UnitService.GetUnitNameByUnitId(q.UnitId);
var workarea = WorkAreaService.GetWorkAreaByProjectIdAndInstalltionIdAndUnitId(this.CurrUser.LoginProjectId, q.InstallationId, q.UnitId);
Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();
keyValuePairs.Add("projectName", projectName);
keyValuePairs.Add("install", installation != null ? installation.InstallationName : "");
keyValuePairs.Add("conUnit", unitName);
keyValuePairs.Add("workarea", workarea != null ? workarea.WorkAreaName : "");
keyValuePairs.Add("DetectCode", "CG");
var trust = TrustManageEditService.GetCH_TrustByID(q.CH_TrustID);
if (trust != null)
{
keyValuePairs.Add("CH_NDTCriteria", trust.CH_NDTCriteria);//检测标志着
}
var supUnitList = UnitService.GetUnitByProjectIdUnitTypeList(q.ProjectId, Const.ProjectUnitType_3);
string supUnitName = "";
foreach (var unit in supUnitList)
{
supUnitName += unit.UnitName + ",";
}
keyValuePairs.Add("supUnit", supUnitName);
BLL.Common.FastReportService.ResetData();
BLL.Common.FastReportService.AddFastreportParameter(keyValuePairs);
string strSql = @"select distinct ISO_IsoNo
from View_CH_CheckItem checkItem left join CH_Check chcheck on checkItem.CHT_CheckID=chcheck.CHT_CheckID
where checkItem.CHT_CheckID =@CHT_CheckID ";
List<SqlParameter> listpar = new List<SqlParameter>
{
new SqlParameter("@CHT_CheckID", this.CHT_CheckID)
};
SqlParameter[] parameter = listpar.ToArray();
DataTable dt = SQLHelper.GetDataTableRunText(strSql, parameter);
if (dt != null)
{
dt.TableName = "Table1";
foreach (DataRow row in dt.Rows)
{
if (!string.IsNullOrEmpty(row["PA1"].ToString()))
{
keyValuePairs.Add("DetectCode", "CG TOFD PA");
break;
}
}
}
BLL.Common.FastReportService.AddFastreportTable(dt);
string initTemplatePath = "";
string rootPath = Server.MapPath("~/");
initTemplatePath = "File\\Fastreport\\管道无损检测数量统计表.frx";
if (File.Exists(rootPath + initTemplatePath))
{
PageContext.RegisterStartupScript(Window3.GetShowReference(String.Format("../TrustManage/Fastreport.aspx?ReportPath={0}", rootPath + initTemplatePath)));
}
}
}
else
{
Alert.ShowInTop("请选择要打印的无损检测单!", MessageBoxIcon.Warning);
return;
}
}
#endregion
}
}