using BLL; using Model; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.YLRQ.HardProessManage { public partial class HardProessTrustEdit : PageBase { /// /// 硬度委托主键 /// public string HardProessTrustId { get { return (string)ViewState["HardProessTrustId"]; } set { ViewState["HardProessTrustId"] = value; } } /// /// 项目主键 /// public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } } #region 加载页面 /// /// 加载页面 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.HardProessTrustId = Request.Params["HardProessTrustId"]; this.ProjectId = Request.Params["ProjectId"]; var trust = Funs.DB.PV_CH_HardProessTrust.FirstOrDefault(p => p.HardProessTrustId == this.HardProessTrustId); if (trust != null) this.ProjectId = trust.ProjectId; var pUnit = BLL.Base_UnitService.GetUnitsByProjectUnitType(this.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 == this.ProjectId); this.drpTrustMan.DataBind(); Funs.FineUIPleaseSelect(this.drpTrustMan); this.drpTrustMan.SelectedValue = this.CurrUser.UserId; this.PageInfoLoad(); ///加载页面 List lists = Funs.DB.PV_View_CH_HardProessTrustItem.Where(x => x.ProjectId == this.ProjectId && x.HardProessTrustId == this.HardProessTrustId).ToList(); this.BindGrid(lists); //初始化页面 } } #endregion #region 加载页面输入提交信息 /// /// 加载页面输入提交信息 /// private void PageInfoLoad() { var trust = Funs.DB.PV_CH_HardProessTrust.FirstOrDefault(e => e.HardProessTrustId == this.HardProessTrustId); if (trust != null) { this.ProjectId = trust.ProjectId; this.txtProjectName.Text = trust.ProjectName; this.txtHardProessTrustCode.Text = trust.HardProessTrustCode; if (!string.IsNullOrEmpty(trust.TrustUnitId)) { this.drpUnit.SelectedValue = trust.TrustUnitId; } this.txtConstructionNo.Text = trust.ConstructionNo; if (!string.IsNullOrEmpty(trust.TrstManId)) { this.drpTrustMan.SelectedValue = trust.TrstManId; } } else { //重置所有字段 this.SimpleForm1.Reset(); //委托单号自动生成,规则:施工号-日期(1127)-两位流水 this.txtHardProessTrustCode.Text = SQLHelper.RunProcNewIdByProjectId("SpGetNewCode2ByProjectIdNoR", "dbo.PV_CH_HardProessTrust", "HardProessTrustCode", this.ProjectId, Base_ProjectService.GetProjectCode(this.ProjectId) + "-" + string.Format("{0:MMdd}", DateTime.Now) + "-"); Base_Project project = BLL.Base_ProjectService.GetProjectByProjectId(this.ProjectId); if (project != null) { this.txtProjectName.Text = project.ProjectName; this.txtConstructionNo.Text = project.ProjectCode; } if (this.CurrUser.UserId != Const.GlyId) { this.drpTrustMan.SelectedValue = this.CurrUser.UserId; } } } #endregion #region 数据绑定 /// /// 数据绑定 /// private void BindGrid(List lists) { DataTable tb = this.LINQToDataTable(lists); // 2.获取当前分页数据 Grid1.RecordCount = tb.Rows.Count; tb = GetFilteredTable(Grid1.FilteredData, tb); var table = this.GetPagedDataTable(Grid1, tb); Grid1.DataSource = table; Grid1.DataBind(); } #endregion #region 硬度委托 提交事件 /// /// 编辑硬度委托 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { if (Funs.DB.PV_CH_HardProessTrust.Count(x => x.HardProessTrustCode == this.txtHardProessTrustCode.Text && x.ProjectId == this.ProjectId && x.HardProessTrustId != this.HardProessTrustId) > 0) { ShowNotify("委托单号已存在,请重新录入!", MessageBoxIcon.Warning); return; } PV_CH_HardProessTrust newHardProessTrust = new PV_CH_HardProessTrust(); if (!string.IsNullOrEmpty(this.HardProessTrustId)) { newHardProessTrust = Funs.DB.PV_CH_HardProessTrust.FirstOrDefault(p => p.HardProessTrustId == this.HardProessTrustId); if (newHardProessTrust == null) { ShowNotify("修改传递数据存在错误!", MessageBoxIcon.Warning); return; } } newHardProessTrust.ProjectId = this.ProjectId; newHardProessTrust.HardProessTrustCode = this.txtHardProessTrustCode.Text.Trim(); if (this.drpUnit.SelectedValue != BLL.Const._Null) { newHardProessTrust.TrustUnitId = this.drpUnit.SelectedValue; } newHardProessTrust.ProjectName = this.txtProjectName.Text.Trim(); newHardProessTrust.ConstructionNo = this.txtConstructionNo.Text.Trim(); if (this.drpTrustMan.SelectedValue != BLL.Const._Null) { newHardProessTrust.TrstManId = this.drpTrustMan.SelectedValue; } if (!string.IsNullOrEmpty(this.HardProessTrustId)) { newHardProessTrust.HardProessTrustId = this.HardProessTrustId; Funs.DB.SubmitChanges(); Sys_LogService.AddLog(BLL.Const.System_4, this.ProjectId, this.CurrUser.UserId, "修改硬度委托信息"); } else { this.HardProessTrustId = SQLHelper.GetNewID(typeof(PV_CH_HardProessTrust)); newHardProessTrust.HardProessTrustId = this.HardProessTrustId; newHardProessTrust.TrustType = "1"; //正常口 newHardProessTrust.CreateTime = newHardProessTrust.CreateDate = DateTime.Now; Funs.DB.PV_CH_HardProessTrust.InsertOnSubmit(newHardProessTrust); Funs.DB.SubmitChanges(); Sys_LogService.AddLog(Const.System_4, this.ProjectId, this.CurrUser.UserId, "添加硬度委托信息"); } //删除委托明细 var cH_Trust = Funs.DB.PV_HardProessItem.Where(x => x.HardProessTrustId == this.HardProessTrustId); if (cH_Trust != null) { Funs.DB.PV_HardProessItem.DeleteAllOnSubmit(cH_Trust); Funs.DB.SubmitChanges(); } this.CollectGridJointInfo(); ShowNotify("提交成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(newHardProessTrust.HardProessTrustId) + ActiveWindow.GetHidePostBackReference()); } #endregion #region 收集Grid页面信息,提交明细 /// /// 收集Grid页面信息,提交明细 /// /// private void CollectGridJointInfo() { JArray mergedData = Grid1.GetMergedData(); foreach (JObject mergedRow in mergedData) { string status = mergedRow.Value("status"); JObject values = mergedRow.Value("values"); int rowIndex = mergedRow.Value("index"); string hotProessTrustItemId = Grid1.DataKeys[rowIndex][1].ToString(); string hotProessTrustId = Grid1.DataKeys[rowIndex][2].ToString(); string weldingCode = Grid1.DataKeys[rowIndex][4].ToString(); string str = string.Empty; PV_HardProessItem item = new PV_HardProessItem(); item.HardProessTrustId = this.HardProessTrustId; item.ProjectId = this.ProjectId; item.HotId = values.Value("HotId").ToString(); item.TrustDate = Funs.GetNewDateTime(values.Value("TrustDate").ToString()); item.Remark = values.Value("Remark").ToString(); item.HotProessTrustId = hotProessTrustId; item.HotProessTrustItemId = hotProessTrustItemId; item.WeldingCode = weldingCode; if (!string.IsNullOrEmpty(values.Value("HardProessResultId").ToString())) { item.HardProessResultId = values.Value("HardProessResultId").ToString(); } item.HardProessItemId = SQLHelper.GetNewID(typeof(PV_HardProessItem)); if (Funs.DB.PV_HardProessItem.Count(x => x.HotId == item.HotId && x.HardProessTrustId == item.HardProessTrustId) == 0) { Funs.DB.PV_HardProessItem.InsertOnSubmit(item); Funs.DB.SubmitChanges(); } //回写焊口硬度委托时间 PV_WeldInformation newJointInfo = Funs.DB.PV_WeldInformation.FirstOrDefault(e => e.WeldingCode == weldingCode); if (newJointInfo != null) { newJointInfo.HardProessTrustDate = item.TrustDate; Funs.DB.SubmitChanges(); } //进入硬度结果反馈 if (Funs.DB.PV_CH_HardProessResult.Count(x => x.HotId == item.HotId && x.HardProessTrustId == this.HardProessTrustId) == 0) { PV_CH_HardProessResult hardProessResult = new PV_CH_HardProessResult(); hardProessResult.HardProessResultId = Guid.NewGuid().ToString(); hardProessResult.ProjectId = this.ProjectId; hardProessResult.HotId = item.HotId; hardProessResult.HardProessTrustId = this.HardProessTrustId; hardProessResult.HardProessItemId = item.HardProessItemId; hardProessResult.HotProessTrustId = hotProessTrustId; hardProessResult.HotProessTrustItemId = hotProessTrustItemId; Funs.DB.PV_CH_HardProessResult.InsertOnSubmit(hardProessResult); Funs.DB.SubmitChanges(); } } } #endregion #region Grid 关闭弹出窗口事件 /// /// 关闭弹出窗口 /// /// /// protected void Window1_Close(object sender, WindowCloseEventArgs e) { List list = Funs.GetStrListByStr(hdItemsString.Text, '|'); List lists = GetHardProessTrustAddItem(this.hdItemsString.Text); this.BindGrid(lists); } #endregion #region 右键删除事件 /// /// 右键删除事件 /// /// /// protected void btnMenuDelete_Click(object sender, EventArgs e) { var trust = Funs.DB.PV_CH_HardProessTrust.FirstOrDefault(p => p.HardProessTrustId == this.HardProessTrustId); if (trust != null && trust.IsPrint == true) { ShowNotify("硬度委托已打印,无法删除!", MessageBoxIcon.Warning); return; } if (Grid1.SelectedRowIndexArray.Length > 0) { List GetHardProessTrustItem = new List(); if (!string.IsNullOrEmpty(this.hdItemsString.Text)) { GetHardProessTrustItem = GetHardProessTrustAddItem(this.hdItemsString.Text); } else if (string.IsNullOrEmpty(this.hdItemsString.Text) && this.HardProessTrustId != null) { GetHardProessTrustItem = Funs.DB.PV_View_CH_HardProessTrustItem.Where(p => p.ProjectId == this.ProjectId && p.HardProessTrustId == this.HardProessTrustId).ToList(); } foreach (int rowIndex in Grid1.SelectedRowIndexArray) { string rowID = Grid1.DataKeys[rowIndex][0].ToString(); var item = GetHardProessTrustItem.FirstOrDefault(x => x.HotId == rowID); if (item != null) { //新增记录可直接删除 if (string.IsNullOrEmpty(this.HardProessTrustId)) { GetHardProessTrustItem.Remove(item); this.hdItemsString.Text = this.hdItemsString.Text.Replace(rowID, ""); } else//修改记录时只能删除未处理的硬度记录 { var result = Funs.DB.PV_CH_HardProessResult.FirstOrDefault(x => x.HardProessTrustId == item.HardProessTrustId && x.HotId == item.HotId); if (result != null) { if (result.IsOK == null) { GetHardProessTrustItem.Remove(item); this.hdItemsString.Text = this.hdItemsString.Text.Replace(rowID, ""); } else { ShowNotify("硬度结果已反馈,无法删除!", MessageBoxIcon.Warning); } //删除硬度反馈明细 Funs.DB.PV_CH_HardProessResult.DeleteOnSubmit(result); Funs.DB.SubmitChanges(); } } } } BindGrid(GetHardProessTrustItem); ShowNotify("操作完成!", MessageBoxIcon.Success); } } #endregion /// /// 查找未焊接焊口 /// /// /// protected void ckSelect_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(this.drpUnit.SelectedValue) && this.drpUnit.SelectedValue != BLL.Const._Null) { string hotProessTrustItemIds = string.Empty; for (int i = 0; i < Grid1.Rows.Count; i++) { string hotProessTrustItemId = Grid1.DataKeys[i][1].ToString(); if (!string.IsNullOrEmpty(hotProessTrustItemId)) { hotProessTrustItemId += "," + hotProessTrustItemId; } hotProessTrustItemIds += hotProessTrustItemId + "|"; } if (!string.IsNullOrEmpty(hotProessTrustItemIds)) { hotProessTrustItemIds = hotProessTrustItemIds.Substring(0, hotProessTrustItemIds.Length - 1); } string strList = this.drpUnit.SelectedValue + "|" + this.HardProessTrustId + "|" + this.ProjectId; string window = String.Format("HardProessTrustItemEdit.aspx?strList={0}&hotProessTrustItemIds={1}", strList, hotProessTrustItemIds, "编辑 - "); PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdItemsString.ClientID) + Window1.GetShowReference(window)); } else { Alert.ShowInTop("请选择单位!", MessageBoxIcon.Warning); } } /// /// 查找后返回集合增加到列表集团中 /// /// /// public List GetHardProessTrustAddItem(string hdItemsString) { var jointInfos = Funs.DB.PV_View_HotWeldInformation.Where(p => p.ProjectId == this.ProjectId); List returnViewMatch = new List(); if (!string.IsNullOrEmpty(hdItemsString)) { List jotIds = Funs.GetStrListByStr(hdItemsString, '|'); foreach (var jotItem in jotIds) { string[] strs = jotItem.Split(','); var jotInfo = jointInfos.FirstOrDefault(x => x.HotId == strs[0]); if (jotInfo != null) { PV_View_CH_HardProessTrustItem newItem = new PV_View_CH_HardProessTrustItem(); newItem.HardProessTrustId = SQLHelper.GetNewID(typeof(PV_View_CH_HardProessTrustItem)); newItem.HotId = jotInfo.HotId; newItem.WeldingCode = jotInfo.WeldingCode; newItem.JointDesc = jotInfo.JointDesc; newItem.STE_Code = jotInfo.STE_Code; newItem.TrustDate = DateTime.Now; newItem.ProjectId = this.ProjectId; newItem.RepairFalg = jotInfo.RepairFalg; if (strs.Length > 1) { newItem.HotProessTrustId = strs[1]; } if (strs.Length > 2) { newItem.HotProessTrustItemId = strs[2]; var data = Funs.DB.PV_CH_HotProessResult.FirstOrDefault(p => p.HotProessTrustItemId == newItem.HotProessTrustItemId); if (data != null) { newItem.CompleteDate = data.CompleteDate; } var dataItem = Funs.DB.PV_CH_HotProessTrustItem.FirstOrDefault(p => p.HotProessTrustItemId == newItem.HotProessTrustItemId); if (dataItem != null) { newItem.HotTrustDate = dataItem.TrustDate; } } returnViewMatch.Add(newItem); } } } return returnViewMatch; } } }