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.TestDataManagement { public partial class QualityRating : PageBase { private string QualityRatingId { get { return (string)ViewState["QualityRatingId"]; } set { ViewState["QualityRatingId"] = value; } } /// /// 委托单号 /// private string EntrustCode { get { return (string)ViewState["EntrustCode"]; } set { ViewState["EntrustCode"] = value; } } /// /// 焊缝主键 /// private string WeldingId { get { return (string)ViewState["WeldingId"]; } set { ViewState["WeldingId"] = value; } } /// /// 检测方法主键 /// private string NdtId { get { return (string)ViewState["NdtId"]; } set { ViewState["NdtId"] = value; } } private static List loadCH_TrustItemIDs; private static List qualityRatings; /// /// 首次加载 /// /// /// protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { loadCH_TrustItemIDs = new List(); qualityRatings = new List(); this.EntrustCode = Request.Params["EntrustCode"]; this.WeldingId = Request.Params["WeldingId"]; this.NdtId = Request.Params["NdtId"]; this.drpEquipment.DataTextField = "EquipmentName"; this.drpEquipment.DataValueField = "EquipmentId"; this.drpEquipment.DataSource = BLL.HJGL_EquipmentService.GetEquipmentList(); this.drpEquipment.DataBind(); this.drpJointNo.DataTextField = "WeldingCode"; this.drpJointNo.DataValueField = "MethodId"; Funs.FineUIPleaseSelect(this.drpEquipment); this.btnNew.Hidden = true; var weldingCodes = (from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join a in Funs.DB.PV_WeldInformation on x.WeldingId equals a.WeldingId where y.EntrustCode == EntrustCode && a.WeldingId == WeldingId && (from z in Funs.DB.PV_BO_QualityRating where z.MethodId == x.MethodId select z).Count() == 0 && y.NdtId == this.NdtId orderby a.WeldingCode select new { x.MethodId, a.WeldingCode }).Distinct(); this.drpJointNo.DataSource = weldingCodes; this.drpJointNo.DataBind(); Funs.FineUIPleaseSelect(this.drpJointNo); var methodIds = from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join j in Funs.DB.PV_WeldInformation on x.WeldingId equals j.WeldingId where y.EntrustCode == this.EntrustCode && j.WeldingId == WeldingId && (from z in Funs.DB.PV_BO_QualityRating where z.MethodId == x.MethodId select z).Count() == 0 && y.NdtId == this.NdtId select x.MethodId; if (methodIds.Count() == 0) { var entrustId = (from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join j in Funs.DB.PV_WeldInformation on x.WeldingId equals j.WeldingId where y.EntrustCode == EntrustCode && j.WeldingId == WeldingId && y.NdtId == this.NdtId select x.EntrustId).FirstOrDefault(); var entrustModel = Funs.DB.PV_EntrustRecord.FirstOrDefault(p => p.Id == entrustId); if (entrustModel != null) { if (!string.IsNullOrEmpty(entrustModel.NdtId)) { //检测方法是选择的 Method_NdtrId 是选择的检测方法,并非压力容器的检测方法主键 var ndt = Funs.DB.PV_TestMethod.FirstOrDefault(p => p.Ndt_Id == entrustModel.NdtId); if (ndt != null) { if (ndt.Ndt_NdtCode.Contains("RT")) { Grid1.Columns[6].Hidden = false;//裂纹 Grid1.Columns[9].Hidden = false;//裂纹 Grid1.Columns[10].Hidden = false;//未熔合 Grid1.Columns[11].Hidden = false;//未焊透 Grid1.Columns[12].Hidden = false;//条状缺陷 Grid1.Columns[13].Hidden = false;//圆形缺陷 Grid1.Columns[14].Hidden = false;//深孔缺陷 Grid1.Columns[15].Hidden = false;//根部内凹 Grid1.Columns[16].Hidden = false;//根部咬边 //Grid1.Columns[19].Hidden = false;//缺陷性质 Grid1.Columns[21].Hidden = false;//缺陷定量 Grid1.Columns[22].Hidden = false;//缺陷位置(定量) Grid1.Columns[22].HeaderText = "超标缺陷部位"; } else if (ndt.Ndt_NdtCode.Contains("UT") || ndt.Ndt_NdtCode.Contains("TOFD")) { if (ndt.Ndt_NdtCode.Contains("PAUT") || ndt.Ndt_NdtCode.Contains("TOFD")) { Grid1.Columns[4].Hidden = true; } Grid2.Columns[2].Hidden = true; Grid1.Columns[3].Hidden = true; Grid1.Columns[17].Hidden = false;//检测长度 Grid1.Columns[18].Hidden = false;//峰值波幅 Grid1.Columns[21].Hidden = false;//缺陷位置 Grid1.Columns[24].Hidden = false;//缺陷深度 Grid1.Columns[27].Hidden = false;//指示长度 } else if (ndt.Ndt_NdtCode.Contains("MT") || ndt.Ndt_NdtCode.Contains("PT")) { Grid2.Columns[2].Hidden = true; Grid1.Columns[3].Hidden = true; Grid1.Columns[19].Hidden = false;//缺陷性质 Grid1.Columns[21].Hidden = false;//缺陷位置 Grid1.Columns[22].Hidden = false;//缺陷尺寸 } } } } } foreach (var itemMethodId in methodIds) { //根据类型不同,显示不同的缺陷 var itemMethod = Funs.DB.PV_ManagementMethod.FirstOrDefault(p => p.MethodId == itemMethodId); var qualityRating = Funs.DB.PV_BO_QualityRating.Where(p => p.MethodId == itemMethodId).ToList(); if (itemMethod != null) { var itemWeldInfo = Funs.DB.PV_WeldInformation.FirstOrDefault(p => p.WeldingId == itemMethod.WeldingId); var itemEntrust = Funs.DB.PV_EntrustRecord.FirstOrDefault(p => p.Id == itemMethod.EntrustId); if (itemEntrust != null) { if (!string.IsNullOrEmpty(itemEntrust.NdtId)) { //检测方法是选择的 Method_NdtrId 是选择的检测方法,并非压力容器的检测方法主键 var ndt = Funs.DB.PV_TestMethod.FirstOrDefault(p => p.Ndt_Id == itemEntrust.NdtId); if (ndt != null) { loadCH_TrustItemIDs.Add(itemMethodId); if (ndt.Ndt_NdtCode.Contains("RT")) { Grid1.Columns[6].Hidden = false;//裂纹 Grid1.Columns[9].Hidden = false;//裂纹 Grid1.Columns[10].Hidden = false;//未熔合 Grid1.Columns[11].Hidden = false;//未焊透 Grid1.Columns[12].Hidden = false;//条状缺陷 Grid1.Columns[13].Hidden = false;//圆形缺陷 Grid1.Columns[14].Hidden = false;//深孔缺陷 Grid1.Columns[15].Hidden = false;//根部内凹 Grid1.Columns[16].Hidden = false;//根部咬边 //Grid1.Columns[19].Hidden = false;//缺陷性质 Grid1.Columns[21].Hidden = false;//缺陷定量 Grid1.Columns[22].Hidden = false;//缺陷位置(定量) Grid1.Columns[22].HeaderText = "超标缺陷部位"; if (qualityRating.Count == 0) { //1:长度2:直径 if (itemWeldInfo.WeldUnit == 1) { //长度 var rowNum = Math.Ceiling(float.Parse(itemWeldInfo.WeldLength.Replace("φ","")) / 250); if (rowNum == 0) rowNum = 1; GetDefaultAddRow(int.Parse(rowNum.ToString()), itemMethodId); } else { //直径 if (int.Parse(itemWeldInfo.WeldLength.Replace("φ", "")) > 100) { GetDefaultAddRow(6, itemMethodId); } else { GetDefaultAddRow(3, itemMethodId); } } } else { BindGrid(); } } else if (ndt.Ndt_NdtCode.Contains("UT") || ndt.Ndt_NdtCode.Contains("TOFD")) { if (ndt.Ndt_NdtCode.Contains("PAUT") || ndt.Ndt_NdtCode.Contains("TOFD")) { Grid1.Columns[4].Hidden = true; } Grid2.Columns[2].Hidden = true; Grid1.Columns[3].Hidden = true; Grid1.Columns[17].Hidden = false;//检测长度 Grid1.Columns[18].Hidden = false;//峰值波幅 Grid1.Columns[21].Hidden = false;//缺陷位置 Grid1.Columns[24].Hidden = false;//缺陷深度 Grid1.Columns[27].Hidden = false;//指示长度 //this.btnNew.Hidden = true; if (qualityRating.Count == 0) { GetDefaultAddRow(1, itemMethodId); } else { BindGrid(); } } else if (ndt.Ndt_NdtCode.Contains("MT") || ndt.Ndt_NdtCode.Contains("PT")) { Grid2.Columns[2].Hidden = true; Grid1.Columns[3].Hidden = true; Grid1.Columns[19].Hidden = false;//缺陷性质 Grid1.Columns[21].Hidden = false;//缺陷位置 Grid1.Columns[22].Hidden = false;//缺陷尺寸 //this.btnNew.Hidden = true; if (qualityRating.Count == 0) { GetDefaultAddRow(1, itemMethodId); } else { BindGrid(); } } } } } //检测设备 if (!string.IsNullOrEmpty(itemMethod.EquipmentId)) { this.drpEquipment.SelectedValue = itemMethod.EquipmentId; } //拍片人员 this.txtShootMan.Text = !string.IsNullOrEmpty(itemMethod.ShootMan) ? itemMethod.ShootMan : this.CurrUser.UserName; //拍片日期 if (itemMethod.ShootDate != null) { this.txtShootDate.Text = itemMethod.ShootDate.Value.ToString(); } else { if (itemEntrust != null) { if (!string.IsNullOrEmpty(itemEntrust.NdtId)) { var ndt = Funs.DB.PV_TestMethod.FirstOrDefault(p => p.Ndt_Id == itemEntrust.NdtId); if (ndt != null) { if (ndt.Ndt_NdtCode.Contains("RT")) { this.txtShootDate.Text = DateTime.Now.Date.AddDays(-1).ToString(); } } } } else { this.txtShootDate.Text = DateTime.Now.Date.ToString(); } } } } this.Grid1.DataSource = qualityRatings; this.Grid1.DataBind(); methodIds = from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join j in Funs.DB.PV_WeldInformation on x.WeldingId equals j.WeldingId where y.EntrustCode == this.EntrustCode && j.WeldingId == this.WeldingId && y.NdtId == this.NdtId select x.MethodId; if (methodIds.Count() > 0) { var r = from x in Funs.DB.PV_CH_RepairItemRecord select x; var repair = from x in r where methodIds.Contains(x.MethodId) select x; if (repair.Count() != 0) { var repairItem = from x in Funs.DB.PV_CH_RepairItemRecord join y in Funs.DB.PV_WeldInformation on x.WeldingId equals y.WeldingId where methodIds.Contains(x.MethodId) select new { x.RepairItemRecordId, y.WeldingCode, x.FilmNum, x.DefectNature, x.MethodId, y.WeldingId }; Grid2.DataSource = repairItem; Grid2.DataBind(); } } } } /// /// 删除选中行的脚本 /// /// private string GetDeleteScript() { return Confirm.GetShowReference("确定移除选中行吗?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty); } #region Grid1绑定前事件 /// /// Grid1绑定前事件 /// /// /// protected void Grid1_PreDataBound(object sender, EventArgs e) { // 设置LinkButtonField的点击客户端事件 LinkButtonField deleteField = Grid1.FindColumn("Delete") as LinkButtonField; deleteField.OnClientClick = GetDeleteScript(); LinkButtonField lbtnRemakeResult = Grid1.FindColumn("RemakeResult") as LinkButtonField; } #endregion #region 行点击事件 /// /// Grid行点击事件 /// /// /// protected void Grid2_RowCommand(object sender, GridCommandEventArgs e) { string repairItemId = Grid2.DataKeys[e.RowIndex][0].ToString(); string methodId = Grid2.DataKeys[e.RowIndex][1].ToString(); if (e.CommandName == "attchUrl") { PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../../AttachFile/webuploader.aspx?toKeyId={0}&path=FileUpload/HJGL/RepairNotice&menuId={1}&edit=1", repairItemId, BLL.Const.HJGL_RepairManageEditMenuId))); } if (e.CommandName == "print") { var repairItemRecord = Funs.DB.PV_CH_RepairItemRecord.FirstOrDefault(s => s.RepairItemRecordId == repairItemId); if (repairItemRecord != null) { string receiveMan = this.CurrUser.UserName; var trustItem = Funs.DB.PV_ManagementMethod.FirstOrDefault(p => p.MethodId == methodId); if (trustItem != null) { Sys_User user = BLL.Sys_UserService.GetUsersByUserId(trustItem.EntrustPeople); if (user != null) { receiveMan = user.UserName; } } repairItemRecord.ReceiveMan = receiveMan; repairItemRecord.ReceiveDate = repairItemRecord.ReceiveDate == null ? DateTime.Now : repairItemRecord.ReceiveDate; Funs.DB.SubmitChanges(); PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("../RepairManage/RepairNoticePrint.aspx?repairItemRecordId={0}", repairItemId, "编辑 - "))); } } if (e.CommandName == "Delete") { if (judgementDelete(repairItemId)) { var repairItemRecord = Funs.DB.PV_CH_RepairItemRecord.FirstOrDefault(s => s.RepairItemRecordId == repairItemId); if (repairItemRecord != null) { Funs.DB.PV_CH_RepairItemRecord.DeleteOnSubmit(repairItemRecord); Funs.DB.SubmitChanges(); } var deleteMethodId = from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join j in Funs.DB.PV_WeldInformation on x.WeldingId equals j.WeldingId where y.EntrustCode == this.EntrustCode && j.WeldingId == this.WeldingId && y.NdtId == this.NdtId select x.MethodId; var repairItem = from x in Funs.DB.PV_CH_RepairItemRecord join y in Funs.DB.PV_WeldInformation on x.WeldingId equals y.WeldingId where deleteMethodId.Contains(x.MethodId) select new { x.RepairItemRecordId, y.WeldingCode, x.FilmNum, x.DefectNature, x.MethodId, y.WeldingId }; //删除返修通知单时判断是否需要重新热处理记录表 if (repairItem.Count() == 0) { var deleteAgain = Funs.DB.PV_CH_AgainHotInfo.Where(p => p.WeldingId == repairItemRecord.WeldingId && p.TrustType == 2 && p.IsHotProessTrust == false); if (deleteAgain.Count() > 0) { Funs.DB.PV_CH_AgainHotInfo.DeleteAllOnSubmit(deleteAgain); Funs.DB.SubmitChanges(); } } Grid2.DataSource = repairItem; Grid2.DataBind(); BLL.Sys_LogService.AddLog(BLL.Const.System_1, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "删除返修通知单信息"); ShowNotify("删除数据成功!(表格数据已重新绑定)"); } } } #endregion #region 判断是否可删除 /// /// 判断是否可以删除 /// /// private bool judgementDelete(string repairItemId) { string content = ""; var repairItemRecord = Funs.DB.PV_CH_RepairItemRecord.FirstOrDefault(e => e.RepairItemRecordId == repairItemId); if (repairItemRecord.IsPrint == true) { content = "返修焊接记录已打印,无法删除"; } if (content == "") { return true; } else { ShowNotify(content); return false; } } #endregion #region 数据绑定 /// /// 数据绑定 /// private void BindGrid() { string ids = string.Empty; List methodIds = new List(); if (this.rblIsFilm.SelectedValue == "0") //未拍片 { methodIds = (from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join j in Funs.DB.PV_WeldInformation on x.WeldingId equals j.WeldingId where y.EntrustCode == this.EntrustCode && j.WeldingId == this.WeldingId && ((from z in Funs.DB.PV_BO_QualityRating where z.MethodId == x.MethodId select z).Count() == 0 || ((from z in Funs.DB.PV_BO_QualityRating where z.MethodId == x.MethodId && (z.DefectResult == "" || z.DefectResult == null) select z).Count() > 0) || x.DetectionStatus == 3) && !loadCH_TrustItemIDs.Contains(x.MethodId) && y.NdtId == this.NdtId select x.MethodId).Distinct().ToList(); } else if (this.rblIsFilm.SelectedValue == "1") //已拍片 { methodIds = (from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join j in Funs.DB.PV_WeldInformation on x.WeldingId equals j.WeldingId where y.EntrustCode == this.EntrustCode && j.WeldingId == WeldingId && (from z in Funs.DB.PV_BO_QualityRating where z.MethodId == x.MethodId select z).Count() > 0 && y.NdtId == this.NdtId select x.MethodId).Distinct().ToList(); } else { methodIds = (from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join j in Funs.DB.PV_WeldInformation on x.WeldingId equals j.WeldingId where y.EntrustCode == this.EntrustCode && j.WeldingId == this.WeldingId && y.NdtId == this.NdtId select x.MethodId).Distinct().ToList(); } ids = string.Join(",", methodIds); if (this.drpJointNo.SelectedValue != BLL.Const._Null) { //检测方法是选择的 Method_NdtrId 是选择的检测方法,并非压力容器的检测方法主键 var ndt = Funs.DB.PV_TestMethod.FirstOrDefault(p => p.Ndt_Id == this.NdtId); this.btnNew.Hidden = false; ids = this.drpJointNo.SelectedValue; if (this.rblIsFilm.SelectedValue == "0") //未拍片 { if (qualityRatings.Count > 0) { this.Grid1.DataSource = qualityRatings.Where(x => x.WeldingCode == this.drpJointNo.SelectedText); this.Grid1.DataBind(); return; } } } string strSql = string.Empty; List listStr = new List(); strSql = @"SELECT QualityRating.QualityRatingId,QualityRating.MethodId,QualityRating.RMaterial, QualityRating.Remake,QualityRating.RemakeResult,QualityRating.WeldingId,QualityRating.FilmNum,QualityRating.RepairTag, QualityRating.Cack,QualityRating.NotFusion,QualityRating.NotPenetration,QualityRating.StripDefects,QualityRating.CircularDefects,QualityRating.DeepHoleDefects,QualityRating.RootsConcave,QualityRating.RootsBiteEdge,QualityRating.PseudoDefects,QualityRating.DefectLength,QualityRating.DefectResult,QualityRating.SignMan,QualityRating.SignDate,QualityRating.Remark,JointInfo.WeldingCode,PvTest.ndt_Level,trust.ProjectId,Project.ProjectCode,(select a.pkidStr from (SELECT STUFF(( SELECT ',' +convert(VARCHAR, WED_Code) FROM (select WED_Code from HJGL_BS_Welder as Welder where Welder.WED_ID in (select Id from StrToTable(JointInfo.BackingWelderId)))t FOR XML PATH('')), 1, 1, '') AS pkidStr) a) as WED_Code,QualityRating.DetectLength,QualityRating.PeakAmplitude,QualityRating.DefectLocation,QualityRating.DefectRation,QualityRating.DepthDefect,QualityRating.IndicatingLength,QualityRating.DefectHeight,QualityRating.DefectsHighSide,QualityRating.DefectSize,QualityRating.DefectNature,QualityRating.IsPass FROM dbo.PV_BO_QualityRating QualityRating LEFT JOIN dbo.PV_ManagementMethod AS trustItem ON trustItem.MethodId = QualityRating.MethodId LEFT JOIN dbo.PV_EntrustRecord AS trust ON trust.Id = trustItem.EntrustId LEFT JOIN dbo.PV_WeldInformation AS JointInfo ON JointInfo.WeldingId = QualityRating.WeldingId LEFT JOIN dbo.Base_Project AS Project ON Project.ProjectId = trust.ProjectId LEFT JOIN dbo.PV_TestMethod as PvTest on PvTest.ndt_Id=trustItem.NdtId WHERE CHARINDEX(QualityRating.MethodId,@MethodIds)>0 "; if (this.rblIsFilm.SelectedValue == "0") //未拍片 { strSql += " and (QualityRating.DefectResult='' or QualityRating.DefectResult is null or QualityRating.Remake=1)"; } if (this.drpJointNo.SelectedValue != BLL.Const._Null) { strSql += " and JointInfo.WeldingCode=@JOT_JointNo"; listStr.Add(new SqlParameter("@JOT_JointNo", this.drpJointNo.SelectedText)); } listStr.Add(new SqlParameter("@MethodIds", ids)); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); // 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 Grid1_Sort(object sender, GridSortEventArgs e) { BindGrid(); } #endregion #region 提交 /// /// 提交 /// /// /// protected void btnSave_Click(object sender, EventArgs e) { SubmitQualityRating(); foreach (JObject mergedRow in Grid1.GetMergedData()) { JObject values = mergedRow.Value("values"); if (Convert.ToBoolean(values.Value("Remake"))) { string qualityRatingId = values.Value("QualityRatingId"); var remakeReason = Funs.DB.PV_BO_RemakeReason.FirstOrDefault(x => x.QualityRatingId == qualityRatingId); if (remakeReason == null) { ShowNotify("重拍口需先编辑重拍记录才可提交!", MessageBoxIcon.Warning); return; } } } ShowNotify("提交成功!", MessageBoxIcon.Success); } /// /// 提交检测 /// private void SubmitQualityRating() { int filmNum = 0; int rMatNum = 0; string changeId = string.Empty; bool b = true; //默认合格 bool needRemake = false; //重拍 foreach (JObject mergedRow in Grid1.GetMergedData()) { JObject values = mergedRow.Value("values"); string methodId = values.Value("MethodId"); if (changeId != methodId) //循环至新的焊口记录 { var oldTrustItem = Funs.DB.PV_ManagementMethod.FirstOrDefault(e => e.MethodId == changeId); if (oldTrustItem != null) { var weldtion = Funs.DB.PV_WeldInformation.FirstOrDefault(s => s.WeldingId == oldTrustItem.WeldingId); if (weldtion != null) { weldtion.RT_FilmNum = filmNum; weldtion.R_Material = weldtion.R_Material == null ? rMatNum : weldtion.R_Material + rMatNum; } //检测方法是选择的 Method_NdtrId 是选择的检测方法,并非压力容器的检测方法主键 var trust1 = Funs.DB.PV_TestMethod.FirstOrDefault(s => s.Ndt_Id == oldTrustItem.NdtId); if (b) { //1:待检测 2:检测合格 3:待重检 4:待返修 oldTrustItem.DetectionStatus = needRemake ? 3 : 2; } else { //待返修 oldTrustItem.DetectionStatus = 4; } oldTrustItem.FeedbackPeople = this.CurrUser.UserName; oldTrustItem.FeedbackData = DateTime.Now; } changeId = methodId; b = true; needRemake = false; filmNum = 0; rMatNum = 0; } var trustItem = Funs.DB.PV_ManagementMethod.FirstOrDefault(s => s.MethodId == methodId); if (this.drpEquipment.SelectedValue != "null") { trustItem.EquipmentId = this.drpEquipment.SelectedValue; } if (!string.IsNullOrEmpty(this.txtShootMan.Text)) { trustItem.ShootMan = this.txtShootMan.Text.Trim(); } if (!string.IsNullOrEmpty(this.txtShootDate.Text)) { trustItem.ShootDate = Convert.ToDateTime(this.txtShootDate.Text); } Funs.DB.SubmitChanges(); var trust = Funs.DB.PV_EntrustRecord.FirstOrDefault(s => s.Id == trustItem.EntrustId); var jot = Funs.DB.PV_WeldInformation.FirstOrDefault(s => s.WeldingId == trustItem.WeldingId); var newQualityRating = new PV_BO_QualityRating(); newQualityRating.MethodId = methodId; newQualityRating.FirstMethodId = methodId; if (!string.IsNullOrEmpty(trustItem.WeldingId)) { newQualityRating.WeldingId = trustItem.WeldingId; } newQualityRating.Remake = Convert.ToBoolean(values.Value("Remake")); newQualityRating.RemakeResult = values.Value("RemakeResult"); if (Grid1.Columns[4].Hidden == true) { newQualityRating.FilmNum = null; } else { newQualityRating.FilmNum = values.Value("FilmNum"); } newQualityRating.RepairTag = values.Value("RepairTag"); newQualityRating.RMaterial = Convert.ToBoolean(values.Value("RMaterial")); newQualityRating.Cack = Convert.ToBoolean(values.Value("Cack")); newQualityRating.NotFusion = Convert.ToBoolean(values.Value("NotFusion")); newQualityRating.NotPenetration = Convert.ToBoolean(values.Value("NotPenetration")); newQualityRating.StripDefects = Convert.ToBoolean(values.Value("StripDefects")); newQualityRating.CircularDefects = Convert.ToBoolean(values.Value("CircularDefects")); newQualityRating.DeepHoleDefects = Convert.ToBoolean(values.Value("DeepHoleDefects")); newQualityRating.RootsConcave = Convert.ToBoolean(values.Value("RootsConcave")); newQualityRating.RootsBiteEdge = Convert.ToBoolean(values.Value("RootsBiteEdge")); newQualityRating.PseudoDefects = Convert.ToBoolean(values.Value("PseudoDefects")); newQualityRating.DefectLength = values.Value("DefectLength"); newQualityRating.DefectResult = values.Value("DefectResult"); newQualityRating.DefectRation = values.Value("DefectRation"); newQualityRating.SignDate = Funs.GetNewDateTime(values.Value("SignDate")); newQualityRating.Remark = values.Value("Remark"); newQualityRating.DetectLength = Funs.GetNewDecimal(values.Value("DetectLength")); newQualityRating.PeakAmplitude = values.Value("PeakAmplitude"); newQualityRating.DefectLocation = values.Value("DefectLocation"); newQualityRating.DepthDefect = Funs.GetNewDecimal(values.Value("DepthDefect")); newQualityRating.IndicatingLength = Funs.GetNewDecimal(values.Value("IndicatingLength")); newQualityRating.DefectHeight = Funs.GetNewDecimal(values.Value("DefectHeight")); newQualityRating.DefectsHighSide = Funs.GetNewDecimal(values.Value("DefectsHighSide")); newQualityRating.DefectSize = Funs.GetNewDecimal(values.Value("DefectSize")); newQualityRating.DefectNature = values.Value("DefectNature"); if (values.Value("IsPass") == "不合格") { b = false; } if (Convert.ToBoolean(values.Value("Remake"))) { needRemake = true; } newQualityRating.IsPass = values.Value("IsPass"); this.QualityRatingId = values.Value("QualityRatingId"); //检测方法是选择的 Method_NdtrId 是选择的检测方法,并非压力容器的检测方法主键 var ndtModel = Funs.DB.PV_TestMethod.FirstOrDefault(s => s.Ndt_Id == trust.NdtId); if (ndtModel.Ndt_NdtCode.Contains("RT"))//RT检测,评定结果不为空才保存拍片记录 { if (!string.IsNullOrEmpty(newQualityRating.DefectResult)) { filmNum++; if (newQualityRating.RMaterial == true) { rMatNum++; } var quatlityRating = Funs.DB.PV_BO_QualityRating.FirstOrDefault(s => s.QualityRatingId == this.QualityRatingId); if (quatlityRating == null) { newQualityRating.QualityRatingId = this.QualityRatingId; Funs.DB.PV_BO_QualityRating.InsertOnSubmit(newQualityRating); } else { newQualityRating.RemakeResult = quatlityRating.RemakeResult; newQualityRating.QualityRatingId = this.QualityRatingId; UpadteQualityRating(newQualityRating); } } } else { var quatlityRating = Funs.DB.PV_BO_QualityRating.FirstOrDefault(s => s.QualityRatingId == this.QualityRatingId); if (quatlityRating == null) { newQualityRating.QualityRatingId = this.QualityRatingId; Funs.DB.PV_BO_QualityRating.InsertOnSubmit(newQualityRating); } else { newQualityRating.RemakeResult = quatlityRating.RemakeResult; newQualityRating.QualityRatingId = this.QualityRatingId; UpadteQualityRating(newQualityRating); } } // 有焊口增加的,对应的检测报告打印要变成未打印状态 var p = from x in Funs.DB.PV_CH_TestingReportPrint where x.WeldingId == jot.WeldingId && x.NdtId == trust.NdtId && x.EntrustId == trust.Id select x; if (p.Count() > 0) { var report = Funs.DB.PV_CH_TestingReportPrint.FirstOrDefault(x => x.TestingReportPrintId == p.First().TestingReportPrintId); report.Printer = null; report.PrintTime = null; } Funs.DB.SubmitChanges(); } //更新列表最后一个口的数据 if (!string.IsNullOrEmpty(changeId)) { var oldTrustItem1 = Funs.DB.PV_ManagementMethod.FirstOrDefault(p => p.MethodId == changeId); var trust1 = Funs.DB.PV_EntrustRecord.FirstOrDefault(p => p.Id == oldTrustItem1.EntrustId); //检测方法是选择的 Method_NdtrId 是选择的检测方法,并非压力容器的检测方法主键 var ndtModel = Funs.DB.PV_TestMethod.FirstOrDefault(s => s.Ndt_Id == trust1.NdtId); if (b) { //1:待检测 2:检测合格 3:待重检 4:待返修 oldTrustItem1.DetectionStatus = needRemake ? 3 : 2; } else { oldTrustItem1.DetectionStatus = 4; //待返修 } oldTrustItem1.FeedbackPeople = this.CurrUser.UserName; oldTrustItem1.FeedbackData = DateTime.Now; //回写返修信息表 var weldtion = Funs.DB.PV_WeldInformation.FirstOrDefault(s => s.WeldingId == oldTrustItem1.WeldingId); if (weldtion != null) { weldtion.R_Material = weldtion.R_Material == null ? rMatNum : weldtion.R_Material + rMatNum; var detectionStatusName = oldTrustItem1.DetectionStatus == 1 ? "待检测" : oldTrustItem1.DetectionStatus == 2 ? "检测合格" : oldTrustItem1.DetectionStatus == 3 ? "待重检" : oldTrustItem1.DetectionStatus == 4 ? "待返修" : ""; if (ndtModel.Ndt_NdtCode == "RT") { weldtion.RT_TrustDate = oldTrustItem1.EntrustData; weldtion.RT_States = detectionStatusName; weldtion.RT_TrustCode = oldTrustItem1.EntrustCode; weldtion.RTFeedbackDate = DateTime.Now; weldtion.RT_FilmNum = filmNum; } if (ndtModel.Ndt_NdtCode == "PT") { weldtion.PT_TrustCode = oldTrustItem1.EntrustCode; weldtion.PT_TrustDate = oldTrustItem1.EntrustData; weldtion.PT_States = detectionStatusName; } if (ndtModel.Ndt_NdtCode == "UT") { weldtion.UT_TrustCode = oldTrustItem1.EntrustCode; weldtion.UT_TrustDate = oldTrustItem1.EntrustData; weldtion.UT_States = detectionStatusName; } if (ndtModel.Ndt_NdtCode == "PAUT") { weldtion.PAUT_TrustCode = oldTrustItem1.EntrustCode; weldtion.PAUT_TrustDate = oldTrustItem1.EntrustData; weldtion.PAUT_States = detectionStatusName; } if (ndtModel.Ndt_NdtCode == "TOFD") { weldtion.TOFD_TrustCode = oldTrustItem1.EntrustCode; weldtion.TOFD_TrustDate = oldTrustItem1.EntrustData; weldtion.TOFD_States = detectionStatusName; } if (ndtModel.Ndt_NdtCode == "MT") { weldtion.MT_TrustCode = oldTrustItem1.EntrustCode; weldtion.MT_TrustDate = oldTrustItem1.EntrustData; weldtion.MT_States = detectionStatusName; } } Funs.DB.SubmitChanges(); } // 删除现有数据 List deletedRows = Grid1.GetDeletedList(); foreach (int rowIndex in deletedRows) { string qualityRatingId = Grid1.DataKeys[rowIndex][0].ToString(); var delQualityModel = Funs.DB.PV_BO_QualityRating.FirstOrDefault(e => e.QualityRatingId == qualityRatingId); Funs.DB.PV_BO_QualityRating.DeleteOnSubmit(delQualityModel); Funs.DB.SubmitChanges(); } } /// /// 修改检测 /// private void SubmitQualityRating(string qualityRatingId) { string changeId = string.Empty; foreach (JObject mergedRow in Grid1.GetMergedData()) { JObject values = mergedRow.Value("values"); string MethodId = values.Value("MethodId"); string qId = values.Value("QualityRatingId"); if (qId == qualityRatingId) { var trustItem = Funs.DB.PV_ManagementMethod.FirstOrDefault(e => e.MethodId == MethodId); if (this.drpEquipment.SelectedValue != "null") { trustItem.EquipmentId = this.drpEquipment.SelectedValue; } if (!string.IsNullOrEmpty(this.txtShootMan.Text)) { trustItem.ShootMan = this.txtShootMan.Text.Trim(); } if (!string.IsNullOrEmpty(this.txtShootDate.Text)) { trustItem.ShootDate = Convert.ToDateTime(this.txtShootDate.Text); } Funs.DB.SubmitChanges(); var trust = Funs.DB.PV_EntrustRecord.FirstOrDefault(p => p.Id == trustItem.EntrustId); var newQualityRating = new Model.PV_BO_QualityRating(); newQualityRating.MethodId = MethodId; if (!string.IsNullOrEmpty(trustItem.WeldingId)) { newQualityRating.WeldingId = trustItem.WeldingId; } newQualityRating.Remake = Convert.ToBoolean(values.Value("Remake")); newQualityRating.RemakeResult = values.Value("RemakeResult"); if (Grid1.Columns[4].Hidden == true) { newQualityRating.FilmNum = null; } else { newQualityRating.FilmNum = values.Value("FilmNum"); } newQualityRating.RepairTag = values.Value("RepairTag"); newQualityRating.RMaterial = Convert.ToBoolean(values.Value("RMaterial")); newQualityRating.Cack = Convert.ToBoolean(values.Value("Cack")); newQualityRating.NotFusion = Convert.ToBoolean(values.Value("NotFusion")); newQualityRating.NotPenetration = Convert.ToBoolean(values.Value("NotPenetration")); newQualityRating.StripDefects = Convert.ToBoolean(values.Value("StripDefects")); newQualityRating.CircularDefects = Convert.ToBoolean(values.Value("CircularDefects")); newQualityRating.DeepHoleDefects = Convert.ToBoolean(values.Value("DeepHoleDefects")); newQualityRating.RootsConcave = Convert.ToBoolean(values.Value("RootsConcave")); newQualityRating.RootsBiteEdge = Convert.ToBoolean(values.Value("RootsBiteEdge")); newQualityRating.PseudoDefects = Convert.ToBoolean(values.Value("PseudoDefects")); newQualityRating.DefectLength = values.Value("DefectLength"); newQualityRating.DefectResult = values.Value("DefectResult"); newQualityRating.DefectRation = values.Value("DefectRation"); newQualityRating.SignDate = Funs.GetNewDateTime(values.Value("SignDate")); newQualityRating.Remark = values.Value("Remark"); newQualityRating.DetectLength = Funs.GetNewDecimal(values.Value("DetectLength")); newQualityRating.PeakAmplitude = values.Value("PeakAmplitude"); newQualityRating.DefectLocation = values.Value("DefectLocation"); newQualityRating.DepthDefect = Funs.GetNewDecimal(values.Value("DepthDefect")); newQualityRating.IndicatingLength = Funs.GetNewDecimal(values.Value("IndicatingLength")); newQualityRating.DefectHeight = Funs.GetNewDecimal(values.Value("DefectHeight")); newQualityRating.DefectsHighSide = Funs.GetNewDecimal(values.Value("DefectsHighSide")); newQualityRating.DefectSize = Funs.GetNewDecimal(values.Value("DefectSize")); newQualityRating.DefectNature = values.Value("DefectNature"); newQualityRating.IsPass = values.Value("IsPass"); this.QualityRatingId = values.Value("QualityRatingId"); var quatlityRating = Funs.DB.PV_BO_QualityRating.FirstOrDefault(e => e.QualityRatingId == qualityRatingId); if (quatlityRating == null) { newQualityRating.QualityRatingId = this.QualityRatingId; Funs.DB.PV_BO_QualityRating.InsertOnSubmit(newQualityRating); } else { var oldQualityRating = Funs.DB.PV_BO_QualityRating.FirstOrDefault(e => e.QualityRatingId == this.QualityRatingId); if (oldQualityRating != null) { newQualityRating.RemakeResult = oldQualityRating.RemakeResult; } newQualityRating.QualityRatingId = this.QualityRatingId; } Funs.DB.SubmitChanges(); break; } } } /// /// 生成返修通知单 /// protected void btnSubmit_Click(object sender, EventArgs e) { bool isExitNotOKItem = false; //是否存在不合格项 var qualityRatingLists = new List(); var methodIds = from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join j in Funs.DB.PV_WeldInformation on x.WeldingId equals j.WeldingId where y.EntrustCode == this.EntrustCode && j.WeldingId == this.WeldingId && y.NdtId == this.NdtId select x.MethodId; //添加返修通知单信息 foreach (var itemMethodId in methodIds) { if (!string.IsNullOrEmpty(itemMethodId)) { var trustItem = Funs.DB.PV_ManagementMethod.FirstOrDefault(p => p.MethodId == itemMethodId); var trust = Funs.DB.PV_EntrustRecord.FirstOrDefault(p => p.Id == trustItem.EntrustId); //检测方法是选择的 Ndt_Id 是选择的检测方法,并非压力容器的检测方法主键 var ndt = Funs.DB.PV_TestMethod.FirstOrDefault(p => p.Ndt_Id == trust.NdtId); string defectNatures = string.Empty; qualityRatingLists = Funs.DB.PV_BO_QualityRating.Where(p => p.MethodId == itemMethodId && p.IsPass == "不合格").ToList(); if (qualityRatingLists.Count > 0) { //添加返修通知单信息 isExitNotOKItem = true; foreach (var item in qualityRatingLists) { var oldRepairItemRecord = (from x in Funs.DB.PV_CH_RepairItemRecord where x.WeldingId == item.WeldingId && x.MethodId == item.MethodId && x.FilmNum == item.FilmNum select x).FirstOrDefault(); if (oldRepairItemRecord == null) { if (ndt != null && ndt.Ndt_NdtCode.Contains("RT")) { if (item.RMaterial == true) { defectNatures += "R母材,"; } if (item.Cack == true) { defectNatures += "裂纹,"; } if (item.NotFusion == true) { defectNatures += "未熔合,"; } if (item.NotPenetration == true) { defectNatures += "未焊透,"; } if (item.StripDefects == true) { defectNatures += "条状缺陷,"; } if (item.CircularDefects == true) { defectNatures += "圆形缺陷,"; } if (item.DeepHoleDefects == true) { defectNatures += "深孔缺陷,"; } if (item.RootsConcave == true) { defectNatures += "根部内凹,"; } if (item.RootsBiteEdge == true) { defectNatures += "根部咬边,"; } if (item.PseudoDefects == true) { defectNatures += "伪缺陷,"; } } else { if (!string.IsNullOrEmpty(item.DefectNature)) { defectNatures = "缺陷性质:" + item.DefectNature + ","; } if (item.DefectLocation != null) { defectNatures = defectNatures + "缺陷位置:" + item.DefectLocation + ","; } if (item.DefectSize != null) { defectNatures = defectNatures + "缺陷尺寸:" + item.DefectSize + ","; } } if (!string.IsNullOrEmpty(defectNatures)) { defectNatures = defectNatures.Substring(0, defectNatures.LastIndexOf(",")); } PV_CH_RepairItemRecord newRepairItemRecord = new PV_CH_RepairItemRecord(); newRepairItemRecord.RepairItemRecordId = SQLHelper.GetNewID(typeof(PV_CH_RepairItemRecord)); newRepairItemRecord.QualityRatingId = item.QualityRatingId; newRepairItemRecord.RepairNum = 1; newRepairItemRecord.FirstRepairItemRecordId = newRepairItemRecord.RepairItemRecordId; newRepairItemRecord.ProjectId = trust.ProjectId; newRepairItemRecord.WeldingId = trustItem.WeldingId; newRepairItemRecord.FilmNum = item.FilmNum; newRepairItemRecord.DefectNature = defectNatures; newRepairItemRecord.DefectResult = item.DefectResult; newRepairItemRecord.MethodId = trustItem.MethodId; newRepairItemRecord.EntrustId = trust.Id; newRepairItemRecord.EntrustCode = trust.EntrustCode; newRepairItemRecord.RepairMark = "R1"; newRepairItemRecord.FeedbackDate = DateTime.Now; newRepairItemRecord.NdtId = trust.NdtId; newRepairItemRecord.SignMan = this.CurrUser.UserName; newRepairItemRecord.SignDate = DateTime.Now; Funs.DB.PV_CH_RepairItemRecord.InsertOnSubmit(newRepairItemRecord); Funs.DB.SubmitChanges(); defectNatures = string.Empty; } } trustItem.ReportNoticeDate = DateTime.Now; Funs.DB.SubmitChanges(); } } } if (isExitNotOKItem) { if (qualityRatingLists.Count > 0) { var quality = qualityRatingLists.FirstOrDefault(); var weld = Funs.DB.PV_WeldInformation.FirstOrDefault(p => p.WeldingId == quality.WeldingId); if (weld != null) { //添加热处理不合格信息 if (Funs.DB.PV_CH_AgainHotInfo.Count(p => p.WeldingId == quality.WeldingId && p.IsHotProessTrust == false) == 0) { var again = new PV_CH_AgainHotInfo(); again.AgainId = Guid.NewGuid().ToString(); again.ProjectId = weld.ProjectId; again.WeldingId = weld.WeldingId; again.TrustType = 2; again.RepairNum = Funs.DB.PV_CH_AgainHotInfo.Count(p => p.WeldingId == quality.WeldingId) + 1; again.IsHotProessTrust = false; Funs.DB.PV_CH_AgainHotInfo.InsertOnSubmit(again); Funs.DB.SubmitChanges(); } } } Alert.ShowInTop("成功生成返修通知单!", MessageBoxIcon.Success); } else { Alert.ShowInTop("无不合格的项,请提交!", MessageBoxIcon.Warning); return; } var repairItem = from x in Funs.DB.PV_CH_RepairItemRecord join y in Funs.DB.PV_WeldInformation on x.WeldingId equals y.WeldingId where methodIds.Contains(x.MethodId) select new { x.RepairItemRecordId, y.WeldingCode, x.MethodId, x.FilmNum, x.DefectNature, y.WeldingId }; Grid2.DataSource = repairItem; Grid2.DataBind(); } #endregion #region 增行 /// /// 增行按钮 /// /// /// protected void btnNew_Click(object sender, EventArgs e) { GetAddRow(); } /// /// 增行方法 /// private void GetAddRow() { string deleteScript = GetDeleteScript(); //// 新增数据初始值 JObject defaultObj = new JObject(); string MethodId = this.drpJointNo.SelectedValue; var trustDetail = Funs.DB.PV_ManagementMethod.FirstOrDefault(p => p.MethodId == MethodId);//BLL.HJGL_TrustManageEditService.GetCH_TrustItemById(cH_TrustItemID); if (trustDetail != null) { defaultObj.Add("MethodId", MethodId); var trust = Funs.DB.PV_EntrustRecord.FirstOrDefault(p => p.Id == trustDetail.EntrustId); //BLL.HJGL_TrustManageEditService.GetCH_TrustByID(trustDetail.CH_TrustID); if (trust != null) { if (!string.IsNullOrEmpty(trust.ProjectId)) { var project = BLL.Base_ProjectService.GetProjectByProjectId(trust.ProjectId); if (project != null) { defaultObj.Add("ProjectCode", project.ProjectCode); } } } if (!string.IsNullOrEmpty(trustDetail.WeldingId)) { var jot = Funs.DB.PV_WeldInformation.FirstOrDefault(p => p.WeldingId == trustDetail.WeldingId); if (jot != null) { //检测方法是选择的 Method_NdtrId 是选择的检测方法,并非压力容器的检测方法主键 var ndt = Funs.DB.PV_TestMethod.FirstOrDefault(p => p.Ndt_Id == trustDetail.NdtId); defaultObj.Add("WeldingCode", jot.WeldingCode); defaultObj.Add("MethodLevel", ndt.Ndt_Level); if (!string.IsNullOrEmpty(jot.BackingWelderId) || !string.IsNullOrEmpty(jot.CoverWelderId)) { var welderIds = string.Format("{0},{1}", jot.BackingWelderId, jot.CoverWelderId).Split(',').ToList(); welderIds.Remove(""); var welders = Funs.DB.HJGL_BS_Welder.Where(x => welderIds.Contains(x.WED_ID)).ToList(); if (welders.Count > 0) { defaultObj.Add("WedCode", string.Join(",", welders.ConvertAll(p => p.WED_Code))); } } } } } //底片编号按ABC自增长 if (Grid1.GetMergedData().Count > 0) { string fileNum = string.Empty; List flimNums = new List(); foreach (JObject mergedRow in Grid1.GetMergedData()) { string fn = string.Empty; JObject values = mergedRow.Value("values"); fn = values.Value("FilmNum"); flimNums.Add(fn); flimNums.Sort(); } //foreach (var item in flimNums) //{ // fileNum = item; //} fileNum = flimNums.LastOrDefault(); if (!string.IsNullOrEmpty(fileNum)) { string nextFilmNum = Convert.ToChar(Convert.ToInt16(fileNum.ToCharArray()[0]) + 1).ToString(); defaultObj.Add("FilmNum", nextFilmNum); } } else { defaultObj.Add("FilmNum", "A"); } //如果有缺陷默认返修R1 bool rMaterial = Convert.ToBoolean(defaultObj.Value("RMaterial")); bool cack = Convert.ToBoolean(defaultObj.Value("Cack")); bool notFusion = Convert.ToBoolean(defaultObj.Value("NotFusion")); bool notPenetration = Convert.ToBoolean(defaultObj.Value("NotPenetration")); bool stripDefects = Convert.ToBoolean(defaultObj.Value("StripDefects")); bool circularDefects = Convert.ToBoolean(defaultObj.Value("CircularDefects")); bool depHoleDefects = Convert.ToBoolean(defaultObj.Value("DeepHoleDefects")); bool rootsConcave = Convert.ToBoolean(defaultObj.Value("RootsConcave")); bool rootsBiteEdge = Convert.ToBoolean(defaultObj.Value("RootsBiteEdge")); bool pseudoDefects = Convert.ToBoolean(defaultObj.Value("PseudoDefects")); if (rMaterial || cack || notFusion || notPenetration || stripDefects || circularDefects || depHoleDefects || rootsConcave || rootsBiteEdge || pseudoDefects) { defaultObj.Add("RepairTag", "R1"); } defaultObj.Add("SignMan", this.CurrUser.UserName); defaultObj.Add("SignDate", DateTime.Now); defaultObj.Add("IsPass", "合格"); this.QualityRatingId = SQLHelper.GetNewID(typeof(PV_BO_QualityRating));//SQLHelper.GetNewID(typeof(Model.HJGL_BO_QualityRating)); defaultObj.Add("QualityRatingId", this.QualityRatingId); defaultObj.Add("Delete", String.Format("", deleteScript, IconHelper.GetResolvedIconUrl(Icon.Delete))); string remakeReasonScript = GetRemakeReasonScript(this.QualityRatingId); defaultObj.Add("RemakeResultEdit", String.Format("", remakeReasonScript, IconHelper.GetResolvedIconUrl(Icon.Pencil))); // 在第一行新增一条数据 Grid1.AddNewRecord(defaultObj, true); } /// /// 默认加载底片方法 /// private void GetDefaultAddRow(int rowNum, string methodId) { //检测方法是选择的 Method_NdtrId 是选择的检测方法,并非压力容器的检测方法主键 var ndtModel = Funs.DB.PV_TestMethod.FirstOrDefault(p => p.Ndt_Id == this.NdtId); string deleteScript = GetDeleteScript(); var trustDetail = Funs.DB.PV_ManagementMethod.FirstOrDefault(p => p.MethodId == methodId);//BLL.HJGL_TrustManageEditService.GetCH_TrustItemById(cH_TrustItemID); string projectCode = string.Empty; string isoNo = string.Empty; string jointNo = string.Empty; string qualifiedLevel = string.Empty; string wedCode = string.Empty; string ndtCode = string.Empty; if (trustDetail != null) { var trust = Funs.DB.PV_EntrustRecord.FirstOrDefault(p => p.Id == trustDetail.EntrustId);//BLL.HJGL_TrustManageEditService.GetCH_TrustByID(trustDetail.CH_TrustID); var ndt = new PV_TestMethod(); if (trust != null) { if (!string.IsNullOrEmpty(trust.ProjectId)) { var project = BLL.Base_ProjectService.GetProjectByProjectId(trust.ProjectId); if (project != null) { projectCode = project.ProjectCode; } } //检测方法是选择的 Method_NdtrId 是选择的检测方法,并非压力容器的检测方法主键 ndt = Funs.DB.PV_TestMethod.FirstOrDefault(p => p.Ndt_Id == trust.NdtId);//BLL.HJGL_TestingService.GetTestingByTestingId(trust.CH_NDTMethod); if (ndt != null) { ndtCode = ndt.Ndt_NdtCode; } } if (!string.IsNullOrEmpty(trustDetail.WeldingId)) { var jot = Funs.DB.PV_WeldInformation.FirstOrDefault(p => p.WeldingId == trustDetail.WeldingId); //BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(trustDetail.JOT_ID); if (jot != null) { //if (!string.IsNullOrEmpty(jot.ISO_ID)) //{ // var iso = BLL.HJGL_PW_IsoInfoService.GetIsoInfoByIsoInfoId(jot.ISO_ID); // if (iso != null) // { // isoNo = iso.ISO_IsoNo; // } //}//管线号不需要了 jointNo = jot.WeldingCode; qualifiedLevel = ndt.Ndt_Level; if (!string.IsNullOrEmpty(jot.BackingWelderId)) { List wedIds = jot.BackingWelderId.Split(',').ToList(); var welder = Funs.DB.HJGL_BS_Welder.Where(p => wedIds.Contains(p.WED_ID)).ToList(); //BLL.HJGL_PersonManageService.GetWelderByWenId(jot.JOT_CellWelder); if (welder.Count > 0) { wedCode = string.Join(",", welder.ConvertAll(p => p.WED_Code)); } } } } } for (int i = 0; i < rowNum; i++) { string nextFilmNum = string.Empty; if (i == 0) { nextFilmNum = "A"; } if (i == 1) { nextFilmNum = "B"; } if (i == 2) { nextFilmNum = "C"; } if (i == 3) { nextFilmNum = "D"; } if (i == 4) { nextFilmNum = "E"; } if (i == 5) { nextFilmNum = "F"; } PV_QualityRatingItem qualityRating = new PV_QualityRatingItem(); qualityRating.ProjectCode = projectCode; //qualityRating.ISO_IsoNo = isoNo; qualityRating.MethodLevel = qualifiedLevel; qualityRating.WeldingCode = jointNo; qualityRating.WedCode = wedCode; if (ndtModel.Ndt_NdtCode == "PAUT" || ndtModel.Ndt_NdtCode == "TOFD") { qualityRating.FilmNum = null; } else { qualityRating.FilmNum = nextFilmNum; } qualityRating.SignMan = this.CurrUser.UserName; qualityRating.SignDate = DateTime.Now; if (rowNum > 1) //RT { qualityRating.IsPass = string.Empty; } else //非RT { if (ndtCode == "PAUT" || ndtCode == "TOFD") { qualityRating.IsPass = null; } else { qualityRating.IsPass = "合格"; } } if (rowNum == 1) { if (ndtCode == "PAUT" || ndtCode == "TOFD") { qualityRating.DefectResult = null; } else { qualityRating.DefectResult = "I"; } } qualityRating.MethodId = methodId; qualityRating.QualityRatingId = SQLHelper.GetNewID(typeof(PV_BO_QualityRating)); qualityRatings.Add(qualityRating); } } #endregion #region 关闭窗口 /// /// 关闭窗口 /// /// /// protected void Window1_Close(object sender, EventArgs e) { } #endregion #region 弹出重拍编辑页面 /// /// 弹出重拍编辑页面 /// /// private string GetRemakeReasonScript(string id) { return Window2.GetShowReference(String.Format("RemakeReasonEdit.aspx?qualityRatingId={0}&shootMan={1}", id, this.txtShootMan.Text, "编辑 - ")); } #endregion #region Grid行点击事件 /// /// Grid行点击事件 /// /// /// protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) { string qualityRatingId = Grid1.DataKeys[e.RowIndex][0].ToString(); if (e.CommandName == "edit") { SubmitQualityRating(qualityRatingId); PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("RemakeReasonEdit.aspx?QualityRatingId={0}", qualityRatingId, "编辑 - "))); } } #endregion /// /// 查询 /// /// /// protected void TextBox_TextChanged(object sender, EventArgs e) { if (this.rblIsFilm.SelectedValue == "0") //未拍片 { var joints = (from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join a in Funs.DB.PV_WeldInformation on x.WeldingId equals a.WeldingId where y.EntrustCode == this.EntrustCode && a.WeldingId == this.WeldingId && (from z in Funs.DB.PV_BO_QualityRating where z.MethodId == x.MethodId select z).Count() == 0 && y.NdtId == this.NdtId orderby a.WeldingCode select new { x.MethodId, a.WeldingCode }).Distinct(); this.drpJointNo.DataSource = joints; this.drpJointNo.DataBind(); Funs.FineUIPleaseSelect(this.drpJointNo); } else if (this.rblIsFilm.SelectedValue == "1") //已拍片 { var joints = (from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join a in Funs.DB.PV_WeldInformation on x.WeldingId equals a.WeldingId where y.EntrustCode == this.EntrustCode && a.WeldingId == this.WeldingId && (from z in Funs.DB.PV_BO_QualityRating where z.MethodId == x.MethodId select z).Count() > 0 && y.NdtId == this.NdtId orderby a.WeldingCode select new { x.MethodId, a.WeldingCode }).Distinct(); this.drpJointNo.DataSource = joints; this.drpJointNo.DataBind(); Funs.FineUIPleaseSelect(this.drpJointNo); } else { var joints = (from x in Funs.DB.PV_ManagementMethod join y in Funs.DB.PV_EntrustRecord on x.EntrustId equals y.Id join a in Funs.DB.PV_WeldInformation on x.WeldingId equals a.WeldingId where y.EntrustCode == this.EntrustCode && a.WeldingId == WeldingId && y.NdtId == this.NdtId orderby a.WeldingCode select new { x.MethodId, a.WeldingCode }).Distinct(); this.drpJointNo.DataSource = joints; this.drpJointNo.DataBind(); Funs.FineUIPleaseSelect(this.drpJointNo); } this.drpJointNo.SelectedValue = BLL.Const._Null; //this.btnNew.Hidden = true; this.BindGrid(); } /// /// 查询 /// /// /// protected void TextBox2_TextChanged(object sender, EventArgs e) { //this.btnNew.Hidden = true; this.BindGrid(); } #region 私有方法 /// /// 修改质量等级评定 /// /// public static void UpadteQualityRating(Model.PV_BO_QualityRating qualityRating) { var newQualityRating = Funs.DB.PV_BO_QualityRating.FirstOrDefault(e => e.QualityRatingId == qualityRating.QualityRatingId); if (newQualityRating != null) { newQualityRating.MethodId = qualityRating.MethodId; newQualityRating.RMaterial = qualityRating.RMaterial; newQualityRating.Remake = qualityRating.Remake; newQualityRating.RemakeResult = qualityRating.RemakeResult; newQualityRating.WeldingId = qualityRating.WeldingId; newQualityRating.FilmNum = qualityRating.FilmNum; newQualityRating.RepairTag = qualityRating.RepairTag; newQualityRating.Cack = qualityRating.Cack; newQualityRating.NotFusion = qualityRating.NotFusion; newQualityRating.NotPenetration = qualityRating.NotPenetration; newQualityRating.StripDefects = qualityRating.StripDefects; newQualityRating.CircularDefects = qualityRating.CircularDefects; newQualityRating.DeepHoleDefects = qualityRating.DeepHoleDefects; newQualityRating.RootsConcave = qualityRating.RootsConcave; newQualityRating.RootsBiteEdge = qualityRating.RootsBiteEdge; newQualityRating.PseudoDefects = qualityRating.PseudoDefects; newQualityRating.DefectLength = qualityRating.DefectLength; newQualityRating.DefectResult = qualityRating.DefectResult; newQualityRating.SignMan = qualityRating.SignMan; newQualityRating.SignDate = qualityRating.SignDate; newQualityRating.Remark = qualityRating.Remark; newQualityRating.DetectLength = qualityRating.DetectLength; newQualityRating.PeakAmplitude = qualityRating.PeakAmplitude; newQualityRating.DefectLocation = qualityRating.DefectLocation; newQualityRating.DepthDefect = qualityRating.DepthDefect; newQualityRating.IndicatingLength = qualityRating.IndicatingLength; newQualityRating.DefectHeight = qualityRating.DefectHeight; newQualityRating.DefectsHighSide = qualityRating.DefectsHighSide; newQualityRating.DefectSize = qualityRating.DefectSize; newQualityRating.DefectNature = qualityRating.DefectNature; newQualityRating.DefectRation = qualityRating.DefectRation; newQualityRating.IsPass = qualityRating.IsPass; Funs.DB.SubmitChanges(); } } #endregion } }