407 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			407 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Threading.Tasks; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |     public static class APIPipeJointService | |||
|  |     { | |||
|  |         #region 获取管线信息 | |||
|  |         /// <summary> | |||
|  |         ///  根据单位工程ID获取管线列表 | |||
|  |         /// </summary> | |||
|  |         /// <param name="unitWrokId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.BaseInfoItem> getPipelineList(string unitWrokId) | |||
|  |         { | |||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 var getDataLists = (from x in db.HJGL_Pipeline | |||
|  |                                     where x.UnitWorkId == unitWrokId | |||
|  |                                     orderby x.PipelineCode | |||
|  |                                     select new Model.BaseInfoItem | |||
|  |                                     { | |||
|  |                                         BaseInfoId = x.PipelineId, | |||
|  |                                         BaseInfoCode = x.PipelineCode | |||
|  | 
 | |||
|  |                                     } | |||
|  |                                 ).ToList(); | |||
|  |                 return getDataLists; | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         #endregion  | |||
|  | 
 | |||
|  |         #region 获取未焊接的焊口信息 | |||
|  |         /// <summary> | |||
|  |         ///  根据管线ID获取未焊接的焊口信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="pipeLineId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.BaseInfoItem> GetWeldJointList(string pipeLineId) | |||
|  |         { | |||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 var getData = (from x in db.View_HJGL_NoWeldJointFind | |||
|  |                                where x.PipelineId == pipeLineId  | |||
|  |                                     && x.WeldingDailyId == null  | |||
|  |                                     orderby x.WeldJointCode | |||
|  |                                     select new Model.BaseInfoItem | |||
|  |                                     { | |||
|  |                                         BaseInfoId = x.WeldJointId, | |||
|  |                                         BaseInfoCode = x.WeldJointCode | |||
|  |                                     } | |||
|  |                                 ).ToList(); | |||
|  | 
 | |||
|  | 
 | |||
|  |                 return getData; | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 根据管线ID获取所有焊口信息 | |||
|  |         /// <summary> | |||
|  |         ///  根据管线ID获取所有焊口信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="pipeLineId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.BaseInfoItem> GetAllWeldJointList(string pipeLineId) | |||
|  |         { | |||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 var getDataLists = (from x in db.HJGL_WeldJoint | |||
|  |                                     where x.PipelineId == pipeLineId | |||
|  |                                     orderby x.WeldJointCode | |||
|  |                                     select new Model.BaseInfoItem | |||
|  |                                     { | |||
|  |                                         BaseInfoId = x.WeldJointId, | |||
|  |                                         BaseInfoCode = x.WeldJointCode | |||
|  |                                     } | |||
|  |                                 ).ToList(); | |||
|  |                 return getDataLists; | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 获取焊工列表 | |||
|  |         /// <summary> | |||
|  |         ///  根据管线ID获取焊口列表 | |||
|  |         /// </summary> | |||
|  |         /// <param name="unitWorkId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.BaseInfoItem> getWelderList(string unitWorkId) | |||
|  |         { | |||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 var p = db.WBS_UnitWork.Where(x => x.UnitWorkId == unitWorkId).FirstOrDefault(); | |||
|  |                 var getDataLists = (from x in db.SitePerson_Person | |||
|  |                                     where x.UnitId == p.UnitId && x.WorkPostId == Const.WorkPost_Welder | |||
|  |                                     && x.WelderCode != null | |||
|  |                                     orderby x.WelderCode | |||
|  |                                     select new Model.BaseInfoItem | |||
|  |                                     { | |||
|  |                                         BaseInfoId = x.PersonId, | |||
|  |                                         BaseInfoCode = x.WelderCode | |||
|  |                                     } | |||
|  |                                     ).ToList(); | |||
|  |                 return getDataLists; | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 根据焊口ID获取焊口信息 | |||
|  |         /// <summary> | |||
|  |         ///  根据焊口ID获取焊口信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="weldJointId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static Model.WeldJointItem getWeldJointInfo(string weldJointId) | |||
|  |         { | |||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 var getDateInfo = from x in db.HJGL_WeldJoint | |||
|  |                                   where x.WeldJointId == weldJointId | |||
|  | 
 | |||
|  |                                   select new Model.WeldJointItem | |||
|  |                                   { | |||
|  |                                       WeldJointId = x.WeldJointId, | |||
|  |                                       WeldJointCode = x.WeldJointCode, | |||
|  |                                       PipelineId = x.PipelineId, | |||
|  |                                       PipelineCode = x.PipelineCode, | |||
|  |                                       JointArea = x.JointArea, | |||
|  |                                       JointAttribute = x.JointAttribute, | |||
|  |                                       WeldingMode = x.WeldingMode, | |||
|  |                                       Size = x.Size, | |||
|  |                                       Dia = x.Dia, | |||
|  |                                       Thickness = x.Thickness, | |||
|  |                                       WeldingMethodCode = db.Base_WeldingMethod.First(y => y.WeldingMethodId == x.WeldingMethodId).WeldingMethodCode, | |||
|  |                                       DetectionRate = GetDetectionRate(x.PipelineId), | |||
|  |                                       IsHotProess = x.IsHotProess == true ? "是" : "否", | |||
|  |                                       AttachUrl = x.AttachUrl | |||
|  | 
 | |||
|  |                                   }; | |||
|  |                 return getDateInfo.FirstOrDefault(); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据管线ID获取探伤比例 | |||
|  |         /// </summary> | |||
|  |         /// <param name="pipeLineId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         private static string GetDetectionRate(string pipeLineId) | |||
|  |         { | |||
|  |             string detectionRate = string.Empty; | |||
|  |             var pipe = BLL.PipelineService.GetPipelineByPipelineId(pipeLineId); | |||
|  |             if (pipe != null && !string.IsNullOrEmpty(pipe.DetectionRateId)) | |||
|  |             { | |||
|  |                 var r = BLL.Base_DetectionRateService.GetDetectionRateByDetectionRateId(pipe.DetectionRateId); | |||
|  |                 detectionRate = r.DetectionRateValue + "%"; | |||
|  |             } | |||
|  |             return detectionRate; | |||
|  |         } | |||
|  | 
 | |||
|  |         #region 根据焊口标识获取焊口详细信息 | |||
|  |         /// <summary> | |||
|  |         ///  根据焊口标识获取焊口详细信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="weldJointIdentify">焊口标识</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static Model.WeldJointItem getWeldJointByIdentify(string weldJointIdentify) | |||
|  |         { | |||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 var getDateInfo = from x in db.HJGL_WeldJoint | |||
|  |                                   join y in db.HJGL_WeldingDaily on x.WeldingDailyId equals y.WeldingDailyId | |||
|  |                                   where x.WeldJointIdentify == weldJointIdentify | |||
|  | 
 | |||
|  |                                   select new Model.WeldJointItem | |||
|  |                                   { | |||
|  |                                       WeldJointId = x.WeldJointId, | |||
|  |                                       WeldJointCode = x.WeldJointCode, | |||
|  |                                       WeldJointIdentify = x.WeldJointIdentify, | |||
|  |                                       Position = x.Position, | |||
|  |                                       PipelineId = x.PipelineId, | |||
|  |                                       PipelineCode = x.PipelineCode, | |||
|  |                                       JointArea = x.JointArea, | |||
|  |                                       JointAttribute = x.JointAttribute, | |||
|  |                                       WeldingMode = x.WeldingMode, | |||
|  |                                       Size = x.Size, | |||
|  |                                       Dia = x.Dia, | |||
|  |                                       Thickness = x.Thickness, | |||
|  |                                       WeldingMethodCode = db.Base_WeldingMethod.First(z => z.WeldingMethodId == x.WeldingMethodId).WeldingMethodCode, | |||
|  |                                       WeldingDate = y.WeldingDate, | |||
|  |                                       BackingWelderCode = db.SitePerson_Person.First(z => z.PersonId == x.BackingWelderId).WelderCode, | |||
|  |                                       CoverWelderCode = db.SitePerson_Person.First(z => z.PersonId == x.CoverWelderId).WelderCode, | |||
|  |                                       IsHotProess = x.IsHotProess == true ? "是" : "否", | |||
|  |                                       AttachUrl = x.AttachUrl | |||
|  | 
 | |||
|  |                                   }; | |||
|  |                 return getDateInfo.FirstOrDefault(); | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 保存管线焊口信息 | |||
|  |         /// <summary> | |||
|  |         /// 保存管线焊口信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="addItem"></param> | |||
|  |         public static void SavePipeWeldJoint(Model.WeldJointItem addItem) | |||
|  |         { | |||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 string projectId = string.Empty; | |||
|  |                 string unitId = string.Empty; | |||
|  |                 string pipelineId = string.Empty; | |||
|  | 
 | |||
|  |                 var p = db.HJGL_Pipeline.Where(x => x.ProjectId == addItem.ProjectId && x.UnitWorkId == addItem.UnitWorkId && x.PipelineCode == addItem.PipelineCode).FirstOrDefault(); | |||
|  |                 var w = db.WBS_UnitWork.Where(x => x.UnitWorkId == addItem.UnitWorkId).FirstOrDefault(); | |||
|  |                 if (w != null) | |||
|  |                 { | |||
|  |                     projectId = w.ProjectId; | |||
|  |                     unitId = w.UnitId; | |||
|  |                 } | |||
|  |                 if (p != null) | |||
|  |                 { | |||
|  |                     pipelineId = p.PipelineId; | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     // 保存管线信息 | |||
|  |                     pipelineId = SQLHelper.GetNewID(); | |||
|  |                     var pipeClass = db.Base_PipingClass.FirstOrDefault(z => z.PipingClassCode == addItem.PipingClass); | |||
|  |                     var medium = db.Base_Medium.FirstOrDefault(z => z.MediumCode == addItem.Medium); | |||
|  |                     var detectionRate = db.Base_DetectionRate.FirstOrDefault(z => z.DetectionRateCode == addItem.DetectionRate); | |||
|  |                     var detectionType = db.Base_DetectionType.FirstOrDefault(z => z.DetectionTypeCode == addItem.DetectionType); | |||
|  |                     var testMedium = db.Base_Medium.FirstOrDefault(z => z.MediumCode == addItem.TestMedium); | |||
|  |                     Model.HJGL_Pipeline newPipe = new Model.HJGL_Pipeline(); | |||
|  | 
 | |||
|  |                     newPipe.PipelineId = pipelineId; | |||
|  | 
 | |||
|  |                     newPipe.ProjectId = projectId; | |||
|  |                     newPipe.UnitWorkId = addItem.UnitWorkId; | |||
|  |                     newPipe.UnitId = unitId; | |||
|  |                     newPipe.PipelineCode = addItem.PipelineCode; | |||
|  |                     newPipe.SingleNumber = addItem.SingleNumber; | |||
|  |                     if (pipeClass != null) | |||
|  |                     { | |||
|  |                         newPipe.PipingClassId = pipeClass.PipingClassId; | |||
|  |                     } | |||
|  |                     if (medium != null) | |||
|  |                     { | |||
|  |                         newPipe.MediumId = medium.MediumId; | |||
|  |                     } | |||
|  |                     if (detectionRate != null) | |||
|  |                     { | |||
|  |                         newPipe.DetectionRateId = detectionRate.DetectionRateId; | |||
|  |                     } | |||
|  |                     if (detectionType != null) | |||
|  |                     { | |||
|  |                         newPipe.DetectionType = detectionType.DetectionTypeId; | |||
|  |                     } | |||
|  | 
 | |||
|  |                     newPipe.TestPressure = addItem.TestPressure; | |||
|  |                     if (testMedium != null) | |||
|  |                     { | |||
|  |                         newPipe.TestMedium = testMedium.MediumId; | |||
|  |                     } | |||
|  | 
 | |||
|  |                     db.HJGL_Pipeline.InsertOnSubmit(newPipe); | |||
|  |                     db.SubmitChanges(); | |||
|  | 
 | |||
|  |                 } | |||
|  | 
 | |||
|  |                 var jot = db.HJGL_WeldJoint.Where(x => x.PipelineId == pipelineId && (x.WeldJointCode == addItem.WeldJointCode || x.WeldJointIdentify == addItem.WeldJointIdentify)).FirstOrDefault(); | |||
|  |                 if (jot == null) | |||
|  |                 { | |||
|  |                     var weldType = db.Base_WeldType.FirstOrDefault(z => z.WeldTypeCode == addItem.WeldType); | |||
|  |                     var material1 = db.Base_Material.FirstOrDefault(z => z.MaterialCode == addItem.Material1); | |||
|  |                     var material2 = db.Base_Material.FirstOrDefault(z => z.MaterialCode == addItem.Material2); | |||
|  |                     var weldingMethod = db.Base_WeldingMethod.FirstOrDefault(z => z.WeldingMethodCode == addItem.WeldingMethodCode); | |||
|  |                     var grooveType = db.Base_GrooveType.FirstOrDefault(z => z.GrooveTypeCode == addItem.GrooveType); | |||
|  |                     var weldingLocation = db.Base_WeldingLocation.FirstOrDefault(z => z.WeldingLocationCode == addItem.WeldingLocation); | |||
|  |                     var weldingWire = db.Base_Consumables.FirstOrDefault(z => z.ConsumablesName == addItem.WeldingWire); | |||
|  |                     var weldingRod = db.Base_Consumables.FirstOrDefault(z => z.ConsumablesName == addItem.WeldingRod); | |||
|  | 
 | |||
|  |                     Model.HJGL_WeldJoint newJot = new Model.HJGL_WeldJoint(); | |||
|  | 
 | |||
|  |                     newJot.WeldJointId = SQLHelper.GetNewID(); | |||
|  |                     newJot.WeldJointCode = addItem.WeldJointCode; | |||
|  |                     newJot.WeldJointIdentify = addItem.WeldJointIdentify; | |||
|  |                     newJot.Position = addItem.Position; | |||
|  |                     newJot.ProjectId = projectId; | |||
|  |                     newJot.PipelineId = pipelineId; | |||
|  |                     newJot.PipelineCode = addItem.PipelineCode; | |||
|  | 
 | |||
|  |                     if (weldType != null) | |||
|  |                     { | |||
|  |                         newJot.WeldTypeId = weldType.WeldTypeId; | |||
|  |                     } | |||
|  |                     if (material1 != null) | |||
|  |                     { | |||
|  |                         newJot.Material1Id = material1.MaterialId; | |||
|  |                     } | |||
|  |                     if (material2 != null) | |||
|  |                     { | |||
|  |                         newJot.Material2Id = material2.MaterialId; | |||
|  |                     } | |||
|  |                     if (weldingMethod != null) | |||
|  |                     { | |||
|  |                         newJot.WeldingMethodId = weldingMethod.WeldingMethodId; | |||
|  |                     } | |||
|  | 
 | |||
|  |                     newJot.JointArea = addItem.JointArea; | |||
|  |                     newJot.Dia = addItem.Dia; | |||
|  |                     newJot.Thickness = addItem.Thickness; | |||
|  |                     newJot.Specification = addItem.Specification; | |||
|  |                     newJot.JointAttribute = addItem.JointAttribute; | |||
|  | 
 | |||
|  |                     if (grooveType != null) | |||
|  |                     { | |||
|  |                         newJot.GrooveTypeId = grooveType.GrooveTypeId; | |||
|  |                     } | |||
|  |                     if (weldingLocation != null) | |||
|  |                     { | |||
|  |                         newJot.WeldingLocationId = weldingLocation.WeldingLocationId; | |||
|  |                     } | |||
|  | 
 | |||
|  |                     if (weldingWire != null) | |||
|  |                     { | |||
|  |                         newJot.WeldingWire = weldingWire.ConsumablesId; | |||
|  |                     } | |||
|  |                     if (weldingRod != null) | |||
|  |                     { | |||
|  |                         newJot.WeldingRod = weldingRod.ConsumablesId; | |||
|  |                     } | |||
|  | 
 | |||
|  |                     db.HJGL_WeldJoint.InsertOnSubmit(newJot); | |||
|  |                     db.SubmitChanges(); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         #region 批量保存管线焊口信息 | |||
|  |         /// <summary> | |||
|  |         /// 批量保存管线焊口信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="addItems"></param> | |||
|  |         public static void SavePipeWeldJointList(List<Model.WeldJointItem> addItems) | |||
|  |         { | |||
|  |             if (addItems.Count() > 0) | |||
|  |             { | |||
|  |                 foreach (Model.WeldJointItem addItem in addItems) | |||
|  |                 { | |||
|  |                     SavePipeWeldJoint(addItem); | |||
|  |                 } | |||
|  |             } | |||
|  |         } | |||
|  | 
 | |||
|  |         #endregion | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 保存预提交日报 | |||
|  |         /// </summary> | |||
|  |         /// <param name="addItem"></param> | |||
|  |         public static void SavePreWeldingDaily(Model.WeldJointItem addItem) | |||
|  |         { | |||
|  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | |||
|  |             { | |||
|  |                 string projectId = string.Empty; | |||
|  |                 string unitId = string.Empty; | |||
|  |                 var p = db.WBS_UnitWork.Where(x => x.UnitWorkId == addItem.UnitWorkId).FirstOrDefault(); | |||
|  | 
 | |||
|  |                 if (p != null) | |||
|  |                 { | |||
|  |                     projectId = p.ProjectId; | |||
|  |                     unitId = p.UnitId; | |||
|  |                 } | |||
|  | 
 | |||
|  |                 Model.HJGL_PreWeldingDaily newP = new Model.HJGL_PreWeldingDaily | |||
|  |                 { | |||
|  |                     PreWeldingDailyId = SQLHelper.GetNewID(), | |||
|  |                     ProjectId = projectId, | |||
|  |                     UnitWorkId = addItem.UnitWorkId, | |||
|  |                     UnitId = unitId, | |||
|  |                     WeldJointId = addItem.WeldJointId, | |||
|  |                     WeldingDate = DateTime.Now, | |||
|  |                     BackingWelderId = addItem.BackingWelderId, | |||
|  |                     CoverWelderId = addItem.CoverWelderId, | |||
|  |                     JointAttribute = addItem.JointAttribute, | |||
|  |                     WeldingMode = addItem.WeldingMode, | |||
|  |                     AttachUrl = addItem.AttachUrl | |||
|  | 
 | |||
|  |                 }; | |||
|  |                 db.HJGL_PreWeldingDaily.InsertOnSubmit(newP); | |||
|  |                 db.SubmitChanges(); | |||
|  |             } | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |     } | |||
|  | } |