using BLL; using Model; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.YLRQ.HotProessManage { public partial class HardProessTrustConfirm : PageBase { /// /// 热处理委托主键 /// public string HotProessTrustId { get { return (string)ViewState["HotProessTrustId"]; } set { ViewState["HotProessTrustId"] = value; } } #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString(); BridProjectGrid(); this.HotProessTrustId = string.Empty; this.InitTreeMenu();//加载树 rblIsNeedHardTest.SelectedValue = "0"; } } #endregion /// /// 绑定项目 /// public void BridProjectGrid() { GridProject.DataSource = BLL.Base_ProjectService.GetYlrqProjectListByUserId(this.CurrUser.UserId, "2"); GridProject.DataBind(); drpProject.Value = this.CurrUser.LoginProjectId; } /// /// 施工号下拉框 /// protected void drpProject_TextChanged(object sender, EventArgs e) { this.InitTreeMenu(); this.tvControlItem.SelectedNodeID = drpProject.Value; this.BindGrid(); } /// /// 绑定硬度委托单位和委托人 /// public void BridHardTrust(string projectId) { var pUnit = BLL.Base_UnitService.GetUnitsByProjectUnitType(projectId, BLL.Const.UnitType_4); if (pUnit != null) { this.drpUnit.DataTextField = "UnitName"; this.drpUnit.DataValueField = "UnitId"; this.drpUnit.DataSource = pUnit; this.drpUnit.DataBind(); } ///委托人 this.drpTrustMan.DataTextField = "UserName"; this.drpTrustMan.DataValueField = "UserId"; this.drpTrustMan.DataSource = Funs.DB.View_Common_Project_UserList.Where(p => p.ProjectId == projectId); this.drpTrustMan.DataBind(); this.drpTrustMan.SelectedValue = this.CurrUser.UserId; } #region 加载树 /// /// 加载树 /// private void InitTreeMenu() { this.tvControlItem.Nodes.Clear(); TreeNode rootNode = new TreeNode(); rootNode.Text = "项目"; rootNode.NodeID = "0"; rootNode.Expanded = true; rootNode.ToolTip = "红色表示施工号下存在未打印的热处理委托记录"; rootNode.EnableClickEvent = true; this.tvControlItem.Nodes.Add(rootNode); List projects = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "2"); if (this.drpProject.Values.Length > 0) { projects = projects.Where(x => this.drpProject.Values.Contains(x.ProjectId)).ToList(); } List trustLists = new List(); //热处理委托单 if (this.rblPrint.SelectedValue == "2") //全部 { trustLists = Funs.DB.PV_CH_HotProessTrust.Where(p => p.HotProessTrustCode.Contains(txtSearchNo.Text.Trim())).ToList(); } else if (this.rblPrint.SelectedValue == "1") //已打印 { trustLists = Funs.DB.PV_CH_HotProessTrust.Where(p => p.HotProessTrustCode.Contains(txtSearchNo.Text.Trim()) && p.IsPrint == true).ToList(); } else if (this.rblPrint.SelectedValue == "0") //未打印 { trustLists = Funs.DB.PV_CH_HotProessTrust.Where(p => p.HotProessTrustCode.Contains(txtSearchNo.Text.Trim()) && (p.IsPrint == null || p.IsPrint == false)).ToList(); } foreach (var item in projects) { TreeNode rootUnitNode = new TreeNode();//定义根节点 rootUnitNode.NodeID = item.ProjectId; if ((from x in trustLists where x.ProjectId == item.ProjectId && (x.IsPrint == null || x.IsPrint == false) select x).Count() > 0) //存在未打印的委托单 { rootUnitNode.Text = $"{item.ProjectCode},{item.EquipmentName},{item.ProductNum}"; } else { rootUnitNode.Text = $"{item.ProjectCode},{item.EquipmentName},{item.ProductNum}"; } rootUnitNode.ToolTip = item.ProjectName; rootUnitNode.CommandName = "项目名称"; rootUnitNode.EnableClickEvent = true; rootUnitNode.EnableExpandEvent = true; rootNode.Nodes.Add(rootUnitNode); if (!string.IsNullOrEmpty(this.txtSearchNo.Text.Trim())) { var projectTrustLists = (from x in trustLists where x.ProjectId == item.ProjectId orderby x.CreateDate descending select x).ToList(); if (projectTrustLists.Count > 0) { rootUnitNode.Expanded = true; this.BindNodes(rootUnitNode, projectTrustLists); } } else { TreeNode tn = new TreeNode(); tn.NodeID = "temp"; tn.Text = "正在加载..."; rootUnitNode.Nodes.Add(tn); } } } /// /// 绑定树节点 /// private void BindNodes(TreeNode node, List trustList) { foreach (var item in trustList) { TreeNode newNode = new TreeNode(); if (item.IsPrint == true) { newNode.Text = item.HotProessTrustCode; } else { newNode.Text = "" + item.HotProessTrustCode + ""; } newNode.NodeID = item.HotProessTrustId; newNode.ToolTip = item.HotProessTrustCode; newNode.CommandName = "委托单号"; newNode.EnableClickEvent = true; node.Nodes.Add(newNode); } } /// /// 树加载 /// protected void tvControlItem_NodeExpand(object sender, TreeNodeEventArgs e) { if (e.Node.Nodes != null) { e.Node.Nodes.Clear(); } List trustLists = new List(); ///热处理委托单 if (this.rblPrint.SelectedValue == "2") //全部 { trustLists = Funs.DB.PV_CH_HotProessTrust.Where(x => x.HotProessTrustCode.Contains(this.txtSearchNo.Text.Trim()) && x.ProjectId == e.Node.NodeID).OrderBy(p => p.CreateDate).ToList(); } else if (this.rblPrint.SelectedValue == "1") //已打印 { trustLists = Funs.DB.PV_CH_HotProessTrust.Where(x => x.HotProessTrustCode.Contains(this.txtSearchNo.Text.Trim()) && x.ProjectId == e.Node.NodeID && x.IsPrint == true).OrderBy(p => p.CreateDate).ToList(); } else if (this.rblPrint.SelectedValue == "0") //未打印 { trustLists = Funs.DB.PV_CH_HotProessTrust.Where(x => x.HotProessTrustCode.Contains(this.txtSearchNo.Text.Trim()) && x.ProjectId == e.Node.NodeID && (x.IsPrint == null || x.IsPrint == false)).OrderBy(p => p.CreateDate).ToList(); } this.BindNodes(e.Node, trustLists); } /// /// 点击TreeView /// /// /// protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e) { this.HotProessTrustId = tvControlItem.SelectedNodeID; this.BindGrid(); } #endregion #region 数据绑定 /// /// 数据绑定 /// private void BindGrid() { BridHardTrust(drpProject.Value); string strSql = string.Empty; List listStr = new List(); this.SetTextTemp(); //页面输入提交信息 this.PageInfoLoad(); string projectIds = Base_ProjectService.GetStrOnProjectIds(this.CurrUser.UserId, "2"); if (this.tvControlItem.SelectedNode != null) { if (this.tvControlItem.SelectedNode.CommandName == "委托单号") { strSql = @"SELECT * FROM dbo.PV_View_CH_HotProessTrustItem AS Trust WHERE Trust.ProjectId= @ProjectId and Trust.IsOK=1 and ProessTypes=4 AND Trust.HotProessTrustId=@HotProessTrustId "; var trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(e => e.HotProessTrustId == HotProessTrustId); listStr.Add(new SqlParameter("@ProjectId", trust != null ? trust.ProjectId : this.CurrUser.LoginProjectId)); listStr.Add(new SqlParameter("@HotProessTrustId", this.HotProessTrustId)); } else if (this.tvControlItem.SelectedNode.CommandName == "项目名称") { strSql = @"SELECT * FROM dbo.PV_View_CH_HotProessTrustItem AS Trust WHERE Trust.ProjectId= @ProjectId and Trust.IsOK=1 and ProessTypes=4 and Trust.HotProessTrustId is not null "; var trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(e => e.HotProessTrustId == HotProessTrustId); listStr.Add(new SqlParameter("@ProjectId", trust != null ? trust.ProjectId : this.CurrUser.LoginProjectId)); } else //选择项目根节点或没有选择节点 { strSql = @"SELECT * FROM dbo.PV_View_CH_HotProessTrustItem AS Trust WHERE Trust.HotProessTrustId is not null and Trust.IsOK=1 and ProessTypes=4 AND CHARINDEX(Trust.ProjectId,@ProjectId)>0 "; listStr.Add(new SqlParameter("@ProjectId", projectIds)); } if (!string.IsNullOrEmpty(this.txtWeldingCode.Text.Trim())) { strSql += @" and Trust.WeldingCode like '%'+@WeldingCode+'%' "; listStr.Add(new SqlParameter("@WeldingCode", this.txtWeldingCode.Text.Trim())); } //是否确认 if (rblIsNeedHardTest.SelectedValue == "0") { strSql += " and ISNULL(HardProessTrustId,'')='' "; } else { strSql += " and ISNULL(HardProessTrustId,'')!='' "; } SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // 2.获取当前分页数据 Grid1.RecordCount = tb.Rows.Count; var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } } /// /// 加载页面输入提交信息 /// private void PageInfoLoad() { var trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(e => e.HotProessTrustId == this.HotProessTrustId); if (trust != null) { this.txtHotProessTrustCode.Text = trust.HotProessTrustCode; if (!string.IsNullOrEmpty(trust.TrustUnitId)) { var unit = BLL.Base_UnitService.GetUnit(trust.TrustUnitId); if (unit != null) { this.drpCH_TrustUnit.Text = unit.UnitName; } } this.txtProjectName.Text = trust.ProjectName; this.txtConstructionNo.Text = trust.ConstructionNo; if (!string.IsNullOrEmpty(trust.TrstManId)) { var hotHardMan = BLL.Sys_UserService.GetUsersByUserId(trust.TrstManId); if (hotHardMan != null) { this.drpCH_TrustMan.Text = hotHardMan.UserName; } } this.cbIsPrint.Checked = trust.IsPrint != null ? trust.IsPrint.Value : false; this.cbIsPrint.Hidden = false; } } #endregion /// /// 清空 /// private void SetTextTemp() { this.txtHotProessTrustCode.Text = string.Empty; this.drpCH_TrustUnit.Text = string.Empty; this.txtProjectName.Text = string.Empty; this.txtConstructionNo.Text = string.Empty; this.drpCH_TrustMan.Text = string.Empty; this.cbIsPrint.Checked = false; } #region 分页排序 /// /// 页索引改变事件 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } /// /// 排序 /// /// /// protected void Grid1_Sort(object sender, GridSortEventArgs e) { BindGrid(); } /// /// 分页选择下拉改变事件 /// /// /// protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindGrid(); } #endregion #region 关闭弹出窗口及刷新页面 /// /// 查询 /// /// /// protected void Tree_TextChanged(object sender, EventArgs e) { this.InitTreeMenu(); //this.BindGrid(); } #endregion /// /// 是否打印搜索 /// protected void rblPrint_SelectedIndexChanged(object sender, EventArgs e) { this.InitTreeMenu(); SetTextTemp(); } /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { this.BindGrid(); } /// /// 提交 /// protected void btnSave_Click(object sender, EventArgs e) { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.PV_HardProessTrustConfirm, Const.BtnSubmit)) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("最少选中一行!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(this.drpUnit.SelectedValue)) { Alert.ShowInTop("请选择委托单位!", MessageBoxIcon.Warning); return; } if (string.IsNullOrWhiteSpace(this.drpTrustMan.SelectedValue)) { Alert.ShowInTop("请选择委托人!", MessageBoxIcon.Warning); return; } //添加硬度委托单 var projectId = this.tvControlItem.SelectedNodeID; PV_CH_HardProessTrust hardTrust = new PV_CH_HardProessTrust(); hardTrust.HardProessTrustId = SQLHelper.GetNewID(typeof(PV_CH_HardProessTrust)); hardTrust.ProjectId = projectId; hardTrust.HardProessTrustCode = SQLHelper.RunProcNewIdByProjectId("SpGetNewCode2ByProjectIdNoR", "dbo.PV_CH_HardProessTrust", "HardProessTrustCode", projectId, Base_ProjectService.GetProjectCode(projectId) + "-" + string.Format("{0:MMdd}", DateTime.Now) + "-"); hardTrust.ProjectName = this.txtProjectName.Text.Trim(); hardTrust.ConstructionNo = this.txtConstructionNo.Text.Trim(); if (this.drpUnit.SelectedValue != BLL.Const._Null) { hardTrust.TrustUnitId = this.drpUnit.SelectedValue; } if (this.drpTrustMan.SelectedValue != BLL.Const._Null) { hardTrust.TrstManId = this.drpTrustMan.SelectedValue; } hardTrust.TrustType = "1"; //正常口 hardTrust.CreateTime = hardTrust.CreateDate = DateTime.Now; Funs.DB.PV_CH_HardProessTrust.InsertOnSubmit(hardTrust); Funs.DB.SubmitChanges(); Sys_LogService.AddLog(Const.System_4, projectId, this.CurrUser.UserId, "添加硬度委托信息"); var selections = Grid1.SelectedRowIndexArray; foreach (int rowIndex in selections) { JArray mergedData = Grid1.GetMergedData(); var mergedRow = mergedData[rowIndex]; string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); var hotProessTrustItemId = Grid1.DataKeys[rowIndex][0].ToString(); var hotProessResultId = Grid1.DataKeys[rowIndex][1].ToString(); var hotId = Grid1.DataKeys[rowIndex][2].ToString(); var weldingId = Grid1.DataKeys[rowIndex][3].ToString(); var weldingCode = Grid1.DataKeys[rowIndex][5].ToString(); if (!string.IsNullOrEmpty(hotId)) { var hotWeld = Funs.DB.PV_View_HotWeldInformation.FirstOrDefault(p => p.HotId == hotId); if (hotWeld != null) { var trustItems = Funs.DB.PV_CH_HotProessTrustItem.Where(p => p.HotId == hotId).ToList(); if (trustItems.Count > 0) { var yzHotProess = string.Join("", trustItems.ConvertAll(p => p.ProessTypes)); var allHotProess = hotWeld.HeatTreatmentType.Replace("|", "").Replace("1", "").Replace("2", "").Trim(); if (allHotProess.Length > yzHotProess.Length) { ShowNotify("存在未处理的热处理单据!", MessageBoxIcon.Warning); return; } } } } //修改返修数据 if (!string.IsNullOrEmpty(weldingId)) { var again = Funs.DB.PV_CH_AgainHotInfo.Where(p => p.WeldingId == weldingId && p.IsHotProessTrust == false).ToList(); if (again.Count > 0) { foreach (var ag in again) { ag.IsHotProessTrust = true; Funs.DB.SubmitChanges(); } } } var hotResult = Funs.DB.PV_CH_HotProessResult.FirstOrDefault(p => p.HotProessResultId == hotProessResultId); if (hotResult != null) { hotResult.HardProessTrustId = hardTrust.HardProessTrustId; if (!string.IsNullOrEmpty(values.Value("IsNeedHardTest").ToString())) { hotResult.IsNeedHardTest = values.Value("IsNeedHardTest"); } if (!string.IsNullOrEmpty(values.Value("CompleteDate").ToString())) { hotResult.CompleteDate = values.Value("CompleteDate"); } else { hotResult.CompleteDate = null; } } Funs.DB.SubmitChanges(); //添加硬度委托明细 PV_HardProessItem item = new PV_HardProessItem(); item.HardProessItemId = SQLHelper.GetNewID(typeof(PV_HardProessItem)); item.HardProessTrustId = hardTrust.HardProessTrustId; item.ProjectId = projectId; item.HotId = hotId; item.TrustDate = DateTime.Now; item.HotProessTrustId = hotResult.HotProessTrustId; item.HotProessTrustItemId = hotProessTrustItemId; item.WeldingCode = weldingCode; item.HardProessResultId = Guid.NewGuid().ToString(); Funs.DB.PV_HardProessItem.InsertOnSubmit(item); //回写焊口硬度委托时间 PV_WeldInformation newJointInfo = Funs.DB.PV_WeldInformation.FirstOrDefault(s => s.WeldingId == weldingId); if (newJointInfo != null) { newJointInfo.HardProessTrustDate = item.TrustDate; } //进入硬度结果反馈 if (Funs.DB.PV_CH_HardProessResult.Count(x => x.HotId == item.HotId && x.HardProessTrustId == item.HardProessTrustId) == 0) { PV_CH_HardProessResult hardProessResult = new PV_CH_HardProessResult(); hardProessResult.HardProessResultId = item.HardProessResultId; hardProessResult.ProjectId = projectId; hardProessResult.HotId = item.HotId; hardProessResult.HardProessTrustId = item.HardProessTrustId; hardProessResult.HardProessItemId = item.HardProessItemId; hardProessResult.HotProessTrustId = hotResult.HotProessTrustId; hardProessResult.HotProessTrustItemId = hotProessTrustItemId; Funs.DB.PV_CH_HardProessResult.InsertOnSubmit(hardProessResult); } Funs.DB.SubmitChanges(); } #region 注释 //JArray mergedData = Grid1.GetMergedData(); //foreach (JObject mergedRow in mergedData) //{ // string status = mergedRow.Value("status"); // JObject values = mergedRow.Value("values"); // int rowIndex = mergedRow.Value("index"); // var hotProessTrustItemId = Grid1.DataKeys[rowIndex][0].ToString(); // var hotProessResultId = Grid1.DataKeys[rowIndex][1].ToString(); // var hotId = Grid1.DataKeys[rowIndex][2].ToString(); // var weldingId = Grid1.DataKeys[rowIndex][3].ToString(); // if (!string.IsNullOrEmpty(hotId)) // { // var hotWeld = Funs.DB.PV_View_HotWeldInformation.FirstOrDefault(p => p.HotId == hotId); // if (hotWeld != null) // { // var trustItems = Funs.DB.PV_CH_HotProessTrustItem.Where(p => p.HotId == hotId).ToList(); // if (trustItems.Count > 0) // { // var yzHotProess = string.Join("", trustItems.ConvertAll(p => p.ProessTypes)); // var allHotProess = hotWeld.HeatTreatmentType.Replace("|", "").Replace("1", "").Replace("2", "").Trim(); // if (allHotProess.Length > yzHotProess.Length) // { // ShowNotify("存在未处理的热处理单据!", MessageBoxIcon.Warning); // return; // } // } // } // } // //修改返修数据 // if (!string.IsNullOrEmpty(weldingId)) // { // var again = Funs.DB.PV_CH_AgainHotInfo.Where(p => p.WeldingId == weldingId && p.IsHotProessTrust == false).ToList(); // if (again.Count > 0) // { // foreach (var item in again) // { // item.IsHotProessTrust = true; // Funs.DB.SubmitChanges(); // } // } // } // var hotResult = Funs.DB.PV_CH_HotProessResult.FirstOrDefault(p => p.HotProessResultId == hotProessResultId); // if (hotResult != null) // { // if (!string.IsNullOrEmpty(values.Value("IsNeedHardTest").ToString())) // { // hotResult.IsNeedHardTest = values.Value("IsNeedHardTest"); // } // if (!string.IsNullOrEmpty(values.Value("CompleteDate").ToString())) // { // hotResult.CompleteDate = values.Value("CompleteDate"); // } // else // { // hotResult.CompleteDate = null; // } // } // //添加委托明细信息 // Funs.DB.SubmitChanges(); //} #endregion this.HotProessTrustId = tvControlItem.SelectedNodeID; this.BindGrid(); ShowNotify("提交成功!", MessageBoxIcon.Success); } else { ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning); } } /// /// 得到热处理类型 /// /// /// protected string ConvertProessTypes(object ProessTypes) { string proessTypes = string.Empty; if (ProessTypes != null) { proessTypes = BLL.HJGL_PW_JointInfoService.ConvertProessTypes(ProessTypes.ToString()); } return proessTypes; } /// /// 行加载 /// protected void Grid1_RowDataBound(object sender, GridRowEventArgs e) { var hardProessTrustId = Grid1.DataKeys[e.RowIndex][6].ToString(); if (!string.IsNullOrWhiteSpace(hardProessTrustId)) { e.RowSelectable = false; } } } }