using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BLL { public class LeakVacuumEditService { /// /// 根据试压Id获取用于试压信息 /// /// /// public static Model.HJGL_LV_LeakVacuum GetLeakVacuumByID(string LeakVacuumId) { var view = Funs.DB.HJGL_LV_LeakVacuum.FirstOrDefault(e => e.LeakVacuumId == LeakVacuumId); return view; } /// /// 根据试压Id获取用于管线明细信息 /// /// /// public static List GetPipeLineListByLeakVacuumId(string LeakVacuumId) { Model.SGGLDB db = Funs.DB; var view = from x in db.HJGL_Pipeline join y in db.HJGL_LV_Pipeline on x.PipelineId equals y.PipelineId where y.LeakVacuumId == LeakVacuumId select x; return view.ToList(); } /// /// 增加试压信息 /// /// 试压实体 public static void AddLeakVacuum(Model.HJGL_LV_LeakVacuum LeakVacuum) { Model.SGGLDB db = Funs.DB; Model.HJGL_LV_LeakVacuum newLeakVacuum = new Model.HJGL_LV_LeakVacuum(); newLeakVacuum.LeakVacuumId = LeakVacuum.LeakVacuumId; newLeakVacuum.UnitWorkId = LeakVacuum.UnitWorkId; newLeakVacuum.UnitId = LeakVacuum.UnitId; newLeakVacuum.SysNo = LeakVacuum.SysNo; newLeakVacuum.SysName = LeakVacuum.SysName; newLeakVacuum.Finisher = LeakVacuum.Finisher; newLeakVacuum.FinishDate = LeakVacuum.FinishDate; newLeakVacuum.Tabler = LeakVacuum.Tabler; newLeakVacuum.TableDate = LeakVacuum.TableDate; newLeakVacuum.Auditer = LeakVacuum.Auditer; newLeakVacuum.AduditDate = LeakVacuum.AduditDate; newLeakVacuum.Remark = LeakVacuum.Remark; newLeakVacuum.ProjectId = LeakVacuum.ProjectId; newLeakVacuum.Check1 = LeakVacuum.Check1; newLeakVacuum.Check2 = LeakVacuum.Check2; newLeakVacuum.Check3 = LeakVacuum.Check3; newLeakVacuum.Check4 = LeakVacuum.Check4; newLeakVacuum.Check5 = LeakVacuum.Check5; db.HJGL_LV_LeakVacuum.InsertOnSubmit(newLeakVacuum); db.SubmitChanges(); } /// /// 修改试压信息 /// /// 试压实体 public static void UpdateLeakVacuum(Model.HJGL_LV_LeakVacuum LeakVacuum) { Model.SGGLDB db = Funs.DB; Model.HJGL_LV_LeakVacuum newLeakVacuum = db.HJGL_LV_LeakVacuum.First(e => e.LeakVacuumId == LeakVacuum.LeakVacuumId); newLeakVacuum.UnitId = LeakVacuum.UnitId; newLeakVacuum.UnitWorkId = LeakVacuum.UnitWorkId; newLeakVacuum.SysNo = LeakVacuum.SysNo; newLeakVacuum.SysName = LeakVacuum.SysName; newLeakVacuum.Finisher = LeakVacuum.Finisher; newLeakVacuum.FinishDate = LeakVacuum.FinishDate; newLeakVacuum.Tabler = LeakVacuum.Tabler; newLeakVacuum.TableDate = LeakVacuum.TableDate; newLeakVacuum.Auditer = LeakVacuum.Auditer; newLeakVacuum.AduditDate = LeakVacuum.AduditDate; newLeakVacuum.Remark = LeakVacuum.Remark; newLeakVacuum.ProjectId = LeakVacuum.ProjectId; newLeakVacuum.Check1 = LeakVacuum.Check1; newLeakVacuum.Check2 = LeakVacuum.Check2; newLeakVacuum.Check3 = LeakVacuum.Check3; newLeakVacuum.Check4 = LeakVacuum.Check4; newLeakVacuum.Check5 = LeakVacuum.Check5; db.SubmitChanges(); } /// /// 根据主键删除试压信息 /// /// 试压主键 public static void DeleteLeakVacuum(string LeakVacuumID) { Model.SGGLDB db = Funs.DB; Model.HJGL_LV_LeakVacuum LeakVacuum = db.HJGL_LV_LeakVacuum.First(e => e.LeakVacuumId == LeakVacuumID); db.HJGL_LV_LeakVacuum.DeleteOnSubmit(LeakVacuum); db.SubmitChanges(); } /// /// 根据主键删除试压信息明细 /// /// 试压主键 public static void DeletePipelineListByLeakVacuumId(string LeakVacuumID) { Model.SGGLDB db = Funs.DB; var LeakVacuum = from x in db.HJGL_LV_Pipeline where x.LeakVacuumId == LeakVacuumID select x; if (LeakVacuum != null) { foreach (var item in LeakVacuum) { var ItemCheck = from x in db.HJGL_LV_ItemEndCheck where x.LV_PipeId == item.LV_PipeId select x; if (ItemCheck != null) { db.HJGL_LV_ItemEndCheck.DeleteAllOnSubmit(ItemCheck); db.SubmitChanges(); } } db.HJGL_LV_Pipeline.DeleteAllOnSubmit(LeakVacuum); db.SubmitChanges(); } } /// /// 增加试压信息明细 /// /// 试压明细实体 public static void AddPipelineList(Model.HJGL_LV_Pipeline IsoList) { Model.SGGLDB db = Funs.DB; Model.HJGL_LV_Pipeline newPipelineList = new Model.HJGL_LV_Pipeline(); newPipelineList.LV_PipeId = SQLHelper.GetNewID(typeof(Model.HJGL_LV_Pipeline)); newPipelineList.LeakVacuumId = IsoList.LeakVacuumId; newPipelineList.PipelineId = IsoList.PipelineId; newPipelineList.DesignPress = IsoList.DesignPress; newPipelineList.DesignTemperature = IsoList.DesignTemperature; newPipelineList.AmbientTemperature = IsoList.AmbientTemperature; newPipelineList.LeakPressure = IsoList.LeakPressure; newPipelineList.LeakMedium = IsoList.LeakMedium; newPipelineList.VacuumPressure = IsoList.VacuumPressure; newPipelineList.VacuumMedium = IsoList.VacuumMedium; newPipelineList.TestMediumTemperature = IsoList.TestMediumTemperature; db.HJGL_LV_Pipeline.InsertOnSubmit(newPipelineList); db.SubmitChanges(); } /// /// 修改试压信息明细 /// /// 试压明细实体 public static void UpdatePipelineList(Model.HJGL_LV_Pipeline IsoList) { Model.SGGLDB db = Funs.DB; Model.HJGL_LV_Pipeline newPipelineList = db.HJGL_LV_Pipeline.FirstOrDefault(e => e.LV_PipeId == IsoList.LV_PipeId); newPipelineList.LeakVacuumId = IsoList.LeakVacuumId; newPipelineList.PipelineId = IsoList.PipelineId; newPipelineList.DesignPress = IsoList.DesignPress; newPipelineList.DesignTemperature = IsoList.DesignTemperature; newPipelineList.AmbientTemperature = IsoList.AmbientTemperature; newPipelineList.LeakPressure = IsoList.LeakPressure; newPipelineList.LeakMedium = IsoList.LeakMedium; newPipelineList.VacuumPressure = IsoList.VacuumPressure; newPipelineList.VacuumMedium = IsoList.VacuumMedium; newPipelineList.TestMediumTemperature = IsoList.TestMediumTemperature; db.SubmitChanges(); } /// /// 根据单位获取试压 /// /// /// public static int GetLeakVacuumByUnitId(string unitId) { var q = (from x in Funs.DB.HJGL_LV_LeakVacuum where x.UnitId == unitId select x).ToList(); return q.Count(); } /// /// 根据装置获取试压 /// /// /// //public static int GetLeakVacuumByInstallationId(string installationId) //{ // var q = (from x in Funs.DB.HJGL_LV_LeakVacuum where x.InstallationId == installationId select x).ToList(); // return q.Count(); //} /// /// 试压包编号是否存在 /// /// /// /// public static bool IsExistLeakVacuumCode(string SysNo, string LeakVacuumId, string projectId) { var q = Funs.DB.HJGL_LV_LeakVacuum.FirstOrDefault(x => x.SysNo == SysNo && x.ProjectId == projectId && x.LeakVacuumId != LeakVacuumId); if (q != null) { return true; } else { return false; } } /// /// 试压包是否全部(需要热处理或硬度处理的已经全部处理) /// /// /// public static string IsExistNoHotHardItem(string LeakVacuumId) { string isohot = string.Empty; var pipelineList = from x in Funs.DB.HJGL_LV_Pipeline where x.LeakVacuumId == LeakVacuumId select x; if (pipelineList.Count() > 0) { foreach (var pipe in pipelineList) { var jots = from x in Funs.DB.HJGL_WeldJoint where x.PipelineId == pipe.PipelineId && x.IsHotProess == true select x; if (jots.Count() > 0) { string jotMessage = string.Empty; foreach (var jotItem in jots) { var hotProssItem = Funs.DB.HJGL_HotProess_TrustItem.FirstOrDefault(x => x.WeldJointId == jotItem.WeldJointId); if (hotProssItem == null) { jotMessage += "焊口:" + jotItem.WeldJointCode + "未作热处理;"; } else { var hotHardItem = Funs.DB.HJGL_Hard_TrustItem.FirstOrDefault(x => x.WeldJointId == jotItem.WeldJointId); if (hotHardItem == null) { jotMessage += "焊口:" + jotItem.WeldJointCode + "未作硬度检测;"; } } } if (!string.IsNullOrEmpty(jotMessage)) { var isoinfo = BLL.PipelineService.GetPipelineByPipelineId(pipe.PipelineId); if (isoinfo != null) { isohot += "管线:" + isoinfo.PipelineCode + "中" + jotMessage; } } } } } return isohot; } /// /// 检验试压包检测率(管线中设置的每个检测方法的检测比例是否达标) /// /// /// public static string InspectionIsoRate(string LeakVacuumId) { Model.SGGLDB db = Funs.DB; string isoRate = string.Empty; var pipelineList = from x in db.HJGL_LV_Pipeline where x.LeakVacuumId == LeakVacuumId select x; if (pipelineList.Count() > 0) { foreach (var isoInfo in pipelineList) { var isoinfo = BLL.PipelineService.GetPipelineByPipelineId(isoInfo.PipelineId); if (isoinfo != null) { int jotCouts = (from x in db.HJGL_WeldJoint where x.PipelineId == isoinfo.PipelineId select x).Count(); //焊口总数 if (jotCouts > 0) { int? raleValue = null; var rates = BLL.Base_DetectionRateService.GetDetectionRateByDetectionRateId(isoinfo.DetectionRateId); //探伤比例 if (rates != null) { raleValue = rates.DetectionRateValue; } if (raleValue.HasValue) { var checkJotCout = (from x in db.HJGL_Batch_NDEItem join y in db.HJGL_Batch_BatchTrustItem on x.TrustBatchItemId equals y.TrustBatchItemId join z in db.HJGL_Batch_BatchTrust on y.TrustBatchId equals z.TrustBatchId join d in db.Base_DetectionType on z.DetectionTypeId equals d.DetectionTypeId join e in db.HJGL_WeldJoint on y.WeldJointId equals e.WeldJointId where e.PipelineId == isoInfo.PipelineId && d.SysType == "射线检测" select y.WeldJointId).Distinct().Count(); decimal? realRaleValue = Convert.ToDecimal(checkJotCout / jotCouts) * 100; if (realRaleValue < raleValue) { isoRate += "管线:" + isoinfo.PipelineCode + "的RT实际检测比例小于应检测比例值。"; } } } } } } return isoRate; } } }