using BLL; using System; 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; namespace FineUIPro.Web.HJGL.CheckManage { public partial class CheckManage : PageBase { #region 定义变量 /// /// 检测主键 /// public string CHT_CheckID { get { return (string)ViewState["CHT_CheckID"]; } set { ViewState["CHT_CheckID"] = value; } } /// /// 委托单号 /// public string CH_TrustID { get { return (string)ViewState["CH_TrustID"]; } set { ViewState["CH_TrustID"] = value; } } /// /// 焊口信息 /// public string[] jointInfo { get { return (string[])ViewState["jointInfo"]; } set { ViewState["jointInfo"] = value; } } /// /// 检测类型 /// public string NDTTypeCode { get { return (string)ViewState["NDTTypeCode"]; } set { ViewState["NDTTypeCode"] = value; } } /// /// 检测单细表集合 /// public static List checkItems = new List(); #endregion #region 加载 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BLL.UnitService.InitUnitByProjectIdUnitTypeDropDownList(this.drpCheckUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_5, true);//查询检测单位 //施工单位、装置 //if (BLL.UnitService.GetUnitByUnitId(this.CurrUser.UnitId) == null || BLL.UnitService.GetUnitByUnitId(this.CurrUser.UnitId).UnitTypeId == BLL.Const.ProjectUnitType_1 || BLL.UnitService.GetUnitByUnitId(this.CurrUser.UnitId).UnitTypeId == BLL.Const.ProjectUnitType_5) //{ // BLL.UnitService.InitUnitNameByUnitTypeDropDownList(this.drpUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, true); // BLL.Project_InstallationService.InitInstallationDropDownList(this.drpInstallationId, this.CurrUser.LoginProjectId, true); //} //else //{ // BLL.UnitService.InitSubUnitNameDownList(this.drpUnit, this.CurrUser.LoginProjectId, this.CurrUser.UnitId, true); // BLL.Project_InstallationService.InitInstallationListDownList(this.drpInstallationId, this.CurrUser.LoginProjectId, this.CurrUser.UnitId, true); //} var pUnit = BLL.UnitService.GetUnitByProjectIdUnitTypeList(this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2); if (pUnit != null) { this.drpUnit.DataTextField = "UnitName"; this.drpUnit.DataValueField = "UnitId"; this.drpUnit.DataSource = pUnit; this.drpUnit.DataBind(); this.drpUnit.SelectedValue = this.CurrUser.UnitId; if(this.CurrUser.UnitId !=Const.UnitId_CD && this.CurrUser.UserId != Const.hfnbdId) { this.drpUnit.Enabled = false; } BLL.Project_InstallationService.InitInstallationListDownList(this.drpInstallationId, this.CurrUser.LoginProjectId, this.drpUnit.SelectedValue, true); this.drpInstallationId.SelectedIndex = 0; } BLL.UserService.InitUserDropDownList(this.drpTabler, this.CurrUser.LoginProjectId, true);//制单人 BLL.UserService.InitUserDropDownList(this.ddlAuditMan, this.CurrUser.LoginProjectId, true);//审核人 BLL.UnitService.InitUnitByProjectIdUnitTypeDropDownList(this.drpContractualUnits, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_5, true);//检测单位 if (drpContractualUnits.Items.Count > 1) { drpContractualUnits.SelectedIndex = 1; BLL.UserService.InitUserProjectIdUnitIdDropDownList(this.ddlCheckMan, this.CurrUser.LoginProjectId, drpContractualUnits.SelectedValue, true);//检测人 if (ddlCheckMan.Items.Count > 1) { ddlCheckMan.SelectedIndex = 1; } } this.txtCheckDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); this.txtTableDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); this.drpTabler.SelectedValue = this.CurrUser.UserId; this.txtCheckType.Text = "C1"; this.txtCheckTime.Text = string.Format("{0:yyyy-MM}", DateTime.Now); this.InitTreeMenu();//加载树 } } #endregion #region 加载树装置-单位-工作区 /// /// 加载树 /// 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 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 checkLists = new List(); ///检测单 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 绑定树节点 /// /// 绑定树节点 /// /// private void BindNodes(TreeNode node, List 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 = "" + newNode.Text + ""; node.Text = "" + node.Text + ""; node.ParentNode.Text = "" + node.ParentNode.Text + ""; } newNode.NodeID = item.CHT_CheckID; newNode.EnableClickEvent = true; node.Nodes.Add(newNode); } } } #endregion #region 查询Tree /// /// 按日期、单号查询 /// /// /// 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点击事件 /// /// Tree点击事件 /// /// /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { checkItems = new List(); 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) { 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.drpUnit.SelectedValue = check.UnitId; this.drpInstallationId.Items.Clear(); BLL.Project_InstallationService.InitInstallationListDownList(this.drpInstallationId, this.CurrUser.LoginProjectId, this.drpUnit.SelectedValue, true); this.drpInstallationId.SelectedIndex = 0; } if (!string.IsNullOrEmpty(check.InstallationId)) { this.drpInstallationId.SelectedValue = check.InstallationId; } this.txtCheckType.Text = check.CHT_CheckType; if (!string.IsNullOrEmpty(check.CHT_Tabler)) { this.drpTabler.SelectedValue = 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; } this.txtAuditDate.Text = check.CHT_AuditDate.HasValue ? string.Format("{0:yyyy-MM-dd}", check.CHT_AuditDate) : ""; if (!string.IsNullOrEmpty(check.CHT_CheckMan)) { this.ddlCheckMan.SelectedValue = check.CHT_CheckMan; } if (!string.IsNullOrEmpty(check.ContractualUnits)) { this.drpContractualUnits.SelectedValue = check.ContractualUnits; } this.txtRemark.Text = check.CHT_Remark; List 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 checkItems.Add(checkItem); } } if (checkItems.Count > 0) { if (this.NDTTypeCode == "RT") { this.Grid1.Hidden = false; this.Grid2.Hidden = true; this.Grid1.DataSource = checkItems; this.Grid1.DataBind(); } else { this.Grid1.Hidden = true; this.Grid2.Hidden = false; this.Grid2.DataSource = checkItems; this.Grid2.DataBind(); } } } } else { this.CHT_CheckID = string.Empty; this.Grid1.Hidden = true; this.Grid2.Hidden = true; } } #endregion #region 增加 /// /// 增加按钮 /// /// /// protected void btnAdd_Click(object sender, EventArgs e) { if (this.GetButtonPower(BLL.Const.BtnAdd)) { this.CH_TrustID = string.Empty; this.CHT_CheckID = string.Empty; this.txtCheckCode.Text = string.Empty; //this.drpUnit.SelectedIndex = 0; this.drpInstallationId.SelectedIndex = 0; this.txtCheckDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); this.drpTabler.SelectedValue = this.CurrUser.UserId; this.txtTableDate.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); this.txtCheckType.Text = "C1"; this.ddlAuditMan.Text = string.Empty; this.txtAuditDate.Text = string.Empty; this.ddlCheckMan.Text = string.Empty; this.txtRemark.Text = string.Empty; this.txtCheckTime.Text = string.Format("{0:yyyy-MM}", DateTime.Now); this.lbtnToTrust.Text = string.Empty; checkItems.Clear(); checkItems = new List(); this.Grid1.DataSource = null; this.Grid1.DataBind(); this.Grid2.DataSource = null; this.Grid2.DataBind(); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } #endregion #region 查找 /// /// 查询按钮 /// /// /// protected void btnSearch_Click(object sender, EventArgs e) { if (GetButtonPower(BLL.Const.BtnSave)) { if (this.drpUnit.SelectedValue == BLL.Const._Null || string.IsNullOrEmpty(this.drpUnit.SelectedValue)) { Alert.ShowInTop("请选择施工单位!", MessageBoxIcon.Warning); return; } else if (this.drpInstallationId.SelectedValue == BLL.Const._Null || string.IsNullOrEmpty(this.drpInstallationId.SelectedValue)) { Alert.ShowInTop("请选择装置!", MessageBoxIcon.Warning); return; } else { string window = String.Format("ShowTrust.aspx?unitId={0}&&installationId={1}&&ch_TrustID={2}", this.drpUnit.SelectedValue, this.drpInstallationId.SelectedValue, this.CH_TrustID, "编辑 - "); PageContext.RegisterStartupScript(Window1.GetSaveStateReference(this.hdJOTID.ClientID) + Window1.GetShowReference(window)); } } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); return; } } #endregion #region 关闭弹出窗口 /// /// 关闭弹出窗口 /// /// /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { checkItems = new List(); List stringRes = Funs.GetStrListByStr(hdJOTID.Text, '|'); List infos = Funs.GetStrListByStr(stringRes[0], ','); #region // 由于删除和其他原因造成委托标志没改变,这里处理下(02表示一次委托已审核) foreach (var jotId in infos) { Model.PW_JointInfo jot = Funs.DB.PW_JointInfo.FirstOrDefault(x => x.JOT_ID == jotId); if (jot != null) { if (jot.JOT_TrustFlag == "00") { jot.JOT_TrustFlag = "02"; Funs.DB.SubmitChanges(); } } } #endregion if (string.IsNullOrEmpty( CHT_CheckID ) ) { foreach (var item in infos) { Model.View_CH_CheckItem info = Funs.DB.View_CH_CheckItem.FirstOrDefault(x => x.JOT_ID == item && x.CH_TrustID == stringRes[1]); if (info != null) { this.NDTTypeCode = info.DetectionTypeCode; checkItems.Add(info); } } if (stringRes.Count() > 1) { var trust = Funs.DB.CH_Trust.FirstOrDefault(x => x.CH_TrustID == stringRes[1]); if (trust != null) { this.CH_TrustID = stringRes[1]; lbtnToTrust.Text = trust.CH_TrustCode; } } } else { var viewCheckItems = BLL.CheckItemManageService.GetViewCheckItemByCheckId(this.CHT_CheckID); foreach (var item in viewCheckItems) { checkItems.Add(item); } foreach (var jotid in infos) { Model.CH_CheckItem item = BLL.CheckItemManageService.GetCheckItemByJotId(jotid); if (item == null) { Model.View_CH_CheckItem info = BLL.CheckItemManageService.GetViewCheckItemByJOTID(jotid); this.NDTTypeCode = info.DetectionTypeCode; checkItems.Add(info); } } } if (checkItems.Count > 0) { checkItems = checkItems.OrderBy(x => x.JOT_JointNo).ToList(); if (this.NDTTypeCode == "RT") { this.Grid1.Hidden = false; this.Grid2.Hidden = true; this.Grid1.DataSource = checkItems; this.Grid1.DataBind(); } else { this.Grid1.Hidden = true; this.Grid2.Hidden = false; this.Grid2.DataSource = checkItems; this.Grid2.DataBind(); } } } #endregion #region 右键删除 /// /// 右键删除RT检测单明细 /// /// /// protected void btnMenuDelete_Click(object sender, EventArgs e) { if (this.GetButtonPower(BLL.Const.BtnDelete)) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); return; } foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); var check = BLL.CheckManageService.GetCheckByCHT_CheckID(this.CHT_CheckID); if (check != null && check.CHT_AuditDate.HasValue) { Alert.ShowInTop("此检测单已审核不能删除!", MessageBoxIcon.Warning); return; } else { var item = checkItems.FirstOrDefault(x => x.JOT_ID == rowID); if (item != null) { checkItems.Remove(item); } } } Grid1.DataSource = checkItems; Grid1.DataBind(); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } /// /// 右键删除非RT检测单 /// /// /// protected void btnMenuDelete2_Click(object sender, EventArgs e) { if (this.GetButtonPower(BLL.Const.BtnDelete)) { if (Grid2.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请选择一条记录!", MessageBoxIcon.Warning); return; } foreach (int rowIndex in Grid2.SelectedRowIndexArray) { string rowID = Grid2.DataKeys[rowIndex][0].ToString(); var check = BLL.CheckManageService.GetCheckByCHT_CheckID(this.CHT_CheckID); if (check != null && check.CHT_AuditDate.HasValue) { Alert.ShowInTop("此委托单已审核不能删除!", MessageBoxIcon.Warning); return; } else { //getCheckItems(); var item = checkItems.FirstOrDefault(x => x.JOT_ID == rowID); if (item != null) { checkItems.Remove(item); } } } Grid2.DataSource = checkItems; Grid2.DataBind(); } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } #endregion #region 删除检测单 /// /// 删除按钮 /// /// /// protected void btnDelete_Click(object sender, EventArgs e) { if (this.GetButtonPower(BLL.Const.BtnDelete)) { this.CHT_CheckID = this.tvControlItem.SelectedNodeID; if (!string.IsNullOrEmpty(this.CHT_CheckID)) { var check = BLL.CheckManageService.GetCheckByCHT_CheckID(CHT_CheckID); if (check != null && !check.CHT_AuditDate.HasValue) { BLL.CheckItemManageService.DeleteCheckItemByCheckId(CHT_CheckID); BLL.CheckManageService.DeleteCheck(CHT_CheckID); if (checkItems != null) { foreach (var j in checkItems) { BLL.CheckItemManageService.UpdateJointCheckFlag(j.JOT_ID, "2"); } } checkItems.Clear(); this.CHT_CheckID = null; this.Grid1.DataSource = null; this.Grid1.DataBind(); this.Grid2.DataSource = null; this.Grid2.DataBind(); ShowNotify("删除成功!", MessageBoxIcon.Success); } else { Alert.ShowInTop("此检测单已审核不能删除", MessageBoxIcon.Warning); return; } } else { Alert.ShowInTop("请选择要删除的检测单!", MessageBoxIcon.Warning); } } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } #endregion #region 保存检测单 /// /// 保存按钮 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { if (this.GetButtonPower(BLL.Const.BtnSave)) { var updateCheck = BLL.CheckManageService.GetCheckByCHT_CheckID(CHT_CheckID); if (updateCheck != null && updateCheck.CHT_AuditDate.HasValue) { Alert.ShowInTop("此检测单已审核不能修改!", MessageBoxIcon.Warning); return; } if (string.IsNullOrEmpty(this.txtCheckCode.Text)) { Alert.ShowInTop("请输入探伤单号!", MessageBoxIcon.Warning); return; } if (this.drpUnit.SelectedValue == BLL.Const._Null || string.IsNullOrEmpty(this.drpUnit.SelectedValue)) { Alert.ShowInTop("请选择施工单位!", MessageBoxIcon.Warning); return; } if (this.drpInstallationId.SelectedValue == BLL.Const._Null || string.IsNullOrEmpty(this.drpInstallationId.SelectedValue)) { Alert.ShowInTop("请选择装置!", MessageBoxIcon.Warning); return; } if (this.NDTTypeCode == "RT") { JArray mergedData = Grid1.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); string rowID = values.Value("JOT_ID").ToString(); var item = checkItems.FirstOrDefault(x => x.JOT_ID == rowID); if (item != null) { item.CHT_FilmDate = Funs.GetNewDateTime(values.Value("CHT_FilmDate")); item.CHT_ReportDate = Funs.GetNewDateTime(values.Value("CHT_ReportDate")); item.CHT_RepairLocation = values.Value("CHT_RepairLocation"); item.CHT_TotalFilm = Funs.GetNewInt(values.Value("CHT_TotalFilm")); item.CHT_PassFilm = Funs.GetNewInt(values.Value("CHT_PassFilm")); item.CHT_CheckResult = values.Value("CHT_CheckResult"); item.FilmSpecifications = values.Value("FilmSpecifications"); item.CHT_CheckNo = values.Value("CHT_CheckNo"); item.CHT_Remark = values.Value("CHT_Remark"); } } } else { JArray mergedData = Grid2.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); string rowID = values.Value("JOT_ID").ToString(); var item = checkItems.FirstOrDefault(x => x.JOT_ID == rowID); if (item != null) { item.CHT_FilmDate = Funs.GetNewDateTime(values.Value("CHT_FilmDate")); item.CHT_ReportDate = Funs.GetNewDateTime(values.Value("CHT_ReportDate")); item.JointCount = values.Value("JointCount"); item.DefectLength = Funs.GetNewDecimal(values.Value("DefectLength")); item.CHT_CheckResult = values.Value("CHT_CheckResult"); item.ExtendingRice = Funs.GetNewDecimal(values.Value("ExtendingRice")); item.CHT_CheckNo = values.Value("CHT_CheckNo"); } } } if (checkItems.Count > 0) { foreach (var item in checkItems) { if (this.NDTTypeCode == "RT") { if (item.CHT_FilmDate == null) { Alert.ShowInTop("拍片日期不能为空!", MessageBoxIcon.Warning); return; } if (item.CHT_TotalFilm == null || item.CHT_PassFilm == null) { Alert.ShowInTop("拍片总数和拍片数不能为空!", MessageBoxIcon.Warning); return; } if (item.CHT_TotalFilm < item.CHT_PassFilm) { Alert.ShowInTop("合格片数不能大于拍片总数!", MessageBoxIcon.Warning); return; } } else { if (item.CHT_FilmDate == null) { Alert.ShowInTop("探伤日期不能为空!", MessageBoxIcon.Warning); return; } } } #region 增加主表 Model.CH_Check check = new Model.CH_Check(); check.ProjectId = this.CurrUser.LoginProjectId; check.CHT_CheckCode = this.txtCheckCode.Text.Trim(); //if (checkItems.Count() > 0) //{ // var q = from x in Funs.DB.CH_TrustItem where x.CH_TrustItemID == checkItems.First().CH_TrustItemID select x; // check.CH_TrustID = q.First().CH_TrustID; //} check.CH_TrustID = this.CH_TrustID; check.UnitId = this.drpUnit.SelectedValue; check.InstallationId = this.drpInstallationId.SelectedValue; check.CHT_CheckDate = Funs.GetNewDateTime(this.txtCheckDate.Text); check.CHT_CheckType = this.txtCheckType.Text.Trim(); if (this.drpTabler.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpTabler.SelectedValue)) { check.CHT_Tabler = this.drpTabler.SelectedValue; } check.CHT_TableDate = Funs.GetNewDateTime(this.txtTableDate.Text); if (this.ddlAuditMan.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.ddlAuditMan.SelectedValue)) { check.CHT_AuditMan = this.ddlAuditMan.SelectedValue; } check.CHT_AuditDate = Funs.GetNewDateTime(this.txtAuditDate.Text); if (this.ddlCheckMan.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.ddlCheckMan.SelectedValue)) { check.CHT_CheckMan = this.ddlCheckMan.SelectedValue; } check.CHT_Remark = this.txtRemark.Text.Trim(); if (this.drpContractualUnits.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpContractualUnits.SelectedValue)) { check.ContractualUnits = this.drpContractualUnits.SelectedValue; } if (updateCheck != null && !string.IsNullOrEmpty(CHT_CheckID)) { if (updateCheck.CHT_CheckCode != this.txtCheckCode.Text.Trim()) { if (BLL.CheckManageService.IsExistCheckCode(this.CurrUser.LoginProjectId, this.txtCheckCode.Text.Trim())) { Alert.ShowInTop("此检测单号已经存在!", MessageBoxIcon.Warning); return; } } check.CHT_CheckID = CHT_CheckID; BLL.CheckManageService.UpdateCheck(check); if (jointInfo != null) { foreach (var j in jointInfo) { var chckItem = BLL.CheckItemManageService.GetTrustItemByCheckAndJotId(check.CHT_CheckID, j); if (chckItem != null) { BLL.CheckItemManageService.UpdateJointCheckFlag(j, "2"); } } } BLL.CheckItemManageService.DeleteCheckItemByCheckId(CHT_CheckID); //BLL.LogService.AddLog(this.CurrUser.UserId, "修改检测单信息!"); } else { if (BLL.CheckManageService.IsExistCheckCode(this.CurrUser.LoginProjectId, this.txtCheckCode.Text.Trim())) { Alert.ShowInTop("此检测单号已经存在!", MessageBoxIcon.Warning); return; } check.CHT_CheckID = SQLHelper.GetNewID(typeof(Model.CH_Check)); BLL.CheckManageService.AddCheck(check); //BLL.LogService.AddLog(this.CurrUser.UserId, "添加检测单信息!"); } #endregion #region 增加检测单明细 foreach (var item in checkItems) { Model.CH_CheckItem checkitem = new Model.CH_CheckItem(); checkitem.CHT_CheckID = check.CHT_CheckID; checkitem.JOT_ID = item.JOT_ID; checkitem.CH_TrustItemID = item.CH_TrustItemID; checkitem.CHT_CheckMethod = item.CH_NDTMethod; checkitem.CHT_RequestDate = item.CHT_RequestDate; checkitem.CHT_RepairLocation = item.CHT_RepairLocation; checkitem.CHT_TotalFilm = item.CHT_TotalFilm; checkitem.CHT_PassFilm = item.CHT_PassFilm; checkitem.CHT_CheckResult = item.CHT_CheckResult; checkitem.CHT_CheckNo = item.CHT_CheckNo; checkitem.CHT_FilmDate = item.CHT_FilmDate; checkitem.CHT_ReportDate = item.CHT_ReportDate; checkitem.CHT_Remark = item.CHT_Remark; checkitem.FilmSpecifications = item.FilmSpecifications; checkitem.DefectLength = item.DefectLength; checkitem.ExtendingRice = item.ExtendingRice; BLL.CheckItemManageService.AddCheckItem(checkitem); BLL.CheckItemManageService.UpdateJointCheckFlag(checkitem.JOT_ID, "1"); } #endregion ShowNotify("保存成功!", MessageBoxIcon.Success); checkItems.Clear(); InitTreeMenu(); } else { Alert.ShowInTop("检测单信息不能为空!", MessageBoxIcon.Warning); return; } } else { Alert.ShowInTop("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } #endregion #region DropDownList下拉选择事件 protected void drpContractualUnits_SelectedIndexChanged(object sender, EventArgs e) { ddlCheckMan.Items.Clear(); ddlCheckMan.DataBind(); BLL.UserService.InitUserProjectIdUnitIdDropDownList(this.ddlCheckMan, this.CurrUser.LoginProjectId, drpContractualUnits.SelectedValue, true);//检测人 if (ddlCheckMan.Items.Count > 1) { ddlCheckMan.SelectedIndex = 1; } } /// /// 施工单位下拉选择事件 /// /// /// protected void drpUnit_SelectedIndexChanged(object sender, EventArgs e) { this.drpInstallationId.Items.Clear(); if (!string.IsNullOrEmpty(this.drpUnit.SelectedValue) && this.drpUnit.SelectedValue != BLL.Const._Null) { //if (BLL.WorkAreaService.IsSupervisor(this.CurrUser.UnitId, this.CurrUser.LoginProjectId)) //{ // BLL.Project_InstallationService.InitInstallationBySupervisorUnitIdListDownList(this.drpInstallationId, this.CurrUser.LoginProjectId, this.drpUnit.SelectedValue, this.CurrUser.UnitId, true); // this.drpInstallationId.SelectedIndex = 0; //} //else //{ // BLL.Project_InstallationService.InitInstallationListDownList(this.drpInstallationId, this.CurrUser.LoginProjectId, this.drpUnit.SelectedValue, true); // this.drpInstallationId.SelectedIndex = 0; //} BLL.Project_InstallationService.InitInstallationListDownList(this.drpInstallationId, this.CurrUser.LoginProjectId, this.drpUnit.SelectedValue, true); this.drpInstallationId.SelectedIndex = 0; } else { Funs.FineUIPleaseSelect(this.drpInstallationId); } } #endregion #region 对应委托单 /// /// 对应委托单 /// /// /// 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 获取按钮权限 /// /// 获取按钮权限 /// /// /// private bool GetButtonPower(string button) { return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.HJGL_CheckManageMenuId, button); } #endregion #region 打印 /// /// 打印按钮 /// /// /// protected void btnPrint_Click(object sender, EventArgs e) { string reportId = this.tvControlItem.SelectedNode.NodeID; 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); //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 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 { Alert.ShowInTop("请选择要打印的无损检测单!", MessageBoxIcon.Warning); return; } } #endregion } }