using System; using System.Collections.Generic; using System.Linq; using System.Text; using Model; namespace BLL { public static class APIJointInfoService { /// /// 保存焊口信息 /// /// 焊口项 public static void SaveJointInfo(JointInfoItem addItem) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var p = db.Base_Project.FirstOrDefault(z => z.ProjectCode == addItem.ProjectCode); if (p != null) { var iso = db.HJGL_PW_IsoInfo.FirstOrDefault(z => z.ProjectId == p.ProjectId && z.ISO_IsoNo == addItem.ISO_IsoNo.Trim()); if (iso != null) { var jot = db.HJGL_PW_JointInfo.FirstOrDefault(z => z.ProjectId == p.ProjectId && z.ISO_ID == iso.ISO_ID && z.JOT_JointNo==addItem.JOT_JointNo.Trim()); var ins = db.Project_Installation.FirstOrDefault(x => x.InstallationName == addItem.InstallationName.Trim() && x.ProjectId == p.ProjectId); var ste1 = db.HJGL_BS_Steel.FirstOrDefault(z => z.STE_Code == addItem.STE_Name1.Trim()); var ste2 = db.HJGL_BS_Steel.FirstOrDefault(z => z.STE_Code == addItem.STE_Name2); var joty = db.HJGL_BS_JointType.FirstOrDefault(x => x.JOTY_Name == addItem.JOTY_Name.Trim() && x.ProjectSoft == "2"); var slope = db.HJGL_BS_SlopeType.FirstOrDefault(x => x.JST_Code == addItem.JST_Name.Trim()); var wme = db.HJGL_BS_WeldMethod.FirstOrDefault(x => x.WME_Code == addItem.WME_Name.Trim()); Model.HJGL_PW_JointInfo newJot = new Model.HJGL_PW_JointInfo(); newJot.ProjectId = p.ProjectId; newJot.JOT_JointNo = addItem.JOT_JointNo; newJot.ISO_ID = iso.ISO_ID; newJot.IS_Proess = iso.IsHot; newJot.ProessTypes = iso.IsHotType; if (ins != null) { newJot.InstallationId = ins.InstallationId; } else { newJot.InstallationId = null; } if (joty != null) { newJot.JOTY_ID = joty.JOTY_ID; if (joty.JOTY_Group == "1") { newJot.NDTR_ID = iso.Joty_B_Rate; newJot.JOT_QualifiedLevel = iso.Joty_B_Level; } else if (joty.JOTY_Group == "2") { newJot.NDTR_ID = iso.Joty_C_Rate; newJot.JOT_QualifiedLevel = iso.Joty_C_Level; } else if (joty.JOTY_Group == "3") { newJot.NDTR_ID = iso.Joty_D_Rate; newJot.JOT_QualifiedLevel = iso.Joty_D_Level; } } else { newJot.JOTY_ID = null; } if (ste1 != null) { newJot.STE_ID = ste1.STE_ID; } else { if (ste2 != null) { newJot.STE_ID = ste2.STE_ID; } else { newJot.STE_ID = null; } } if (ste2 != null) { newJot.STE_ID2 = ste2.STE_ID; } else { if (ste1 != null) { newJot.STE_ID2 = ste1.STE_ID; } else { newJot.STE_ID2 = null; } } if (slope != null) { newJot.JST_ID = slope.JST_ID; } else { newJot.JST_ID = null; } if (addItem.JOT_JointAttribute == "固定" || addItem.JOT_JointAttribute == "活动") { newJot.JOT_JointAttribute = addItem.JOT_JointAttribute; } else { newJot.JOT_JointAttribute = "活动"; } if (wme != null) { newJot.WME_ID = wme.WME_ID; } else { newJot.WME_ID = null; } newJot.JOT_Dia = addItem.Dia; newJot.JOT_Sch = addItem.Sch; newJot.IsSpecial = false; if (addItem.Dia != null) { if (addItem.Dia >= 500) { newJot.IsSpecial = true; } var inch = HJGL_ControlService.GetSizeByDia(addItem.Dia.Value); if (inch != null) { newJot.JOT_Size = inch; } //焊口规格:Φ外径*壁厚 if (!string.IsNullOrEmpty(addItem.Sch)) { newJot.JOT_JointDesc = "Φ" + addItem.Dia.Value + "×" + addItem.Sch; } } if (jot != null) { List hotProessTrustItems = BLL.HJGL_CH_HotProessTrustService.GetCH_HotProessTrustItemByJOT_ID(jot.JOT_ID); var batch = (from x in Funs.DB.HJGL_BO_Batch join y in Funs.DB.HJGL_BO_BatchDetail on x.BatchId equals y.BatchId where y.JOT_ID == jot.JOT_ID select x).FirstOrDefault(); bool batchIsClosed = false; if (batch != null && batch.BatchIsClosed == true) { batchIsClosed = true; } //存在热处理委托或者批关闭则不能修改焊口信息 if (hotProessTrustItems.Count == 0 && batchIsClosed == false) { newJot.JOT_ID = jot.JOT_ID; BLL.HJGL_PW_JointInfoService.UpdateJointInfo(newJot); } } else { newJot.JOT_ID = SQLHelper.GetNewID(); db.HJGL_PW_JointInfo.InsertOnSubmit(newJot); db.SubmitChanges(); } } } } } #region 批量保存焊口信息 /// /// 批量保存焊口信息 /// /// public static void SaveBatchJointInfo(List addItems) { if (addItems.Count() > 0) { foreach (Model.JointInfoItem addItem in addItems) { SaveJointInfo(addItem); } } } #endregion } }