using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace BLL { public class WelderQualifiedService { /// /// 根据人员id和合格项目代号判断是否在明细中 /// /// /// /// public static bool IsInQualifiedProject(string welderId, string qualifiedProjectCode) { Model.HJGLDB db = Funs.DB; bool isIn = false; var welderItem = db.Welder_WelderQualify.FirstOrDefault(x => x.WelderId == welderId && x.QualifiedProjectCode == qualifiedProjectCode); if (welderItem != null) { isIn = true; } return isIn; } /// /// 根据主键获取合格项目明细 /// /// /// public static Model.Welder_WelderQualify GetWelderQualifiedProjectById(string welderQualifiedProjectId) { return Funs.DB.Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifiedProjectId == welderQualifiedProjectId); } /// /// 人员合格项目明细表增加 /// /// public static void AddWelderQualifiedProject(Model.Welder_WelderQualify item) { Model.HJGLDB db = Funs.DB; Model.Welder_WelderQualify newWelderQualifiedProject = new Model.Welder_WelderQualify(); newWelderQualifiedProject.WelderQualifiedProjectId = item.WelderQualifiedProjectId; newWelderQualifiedProject.WelderId = item.WelderId; newWelderQualifiedProject.QualifiedProjectCode = item.QualifiedProjectCode; newWelderQualifiedProject.LimitDate = item.LimitDate; newWelderQualifiedProject.CertificateNo = item.CertificateNo; newWelderQualifiedProject.CheckDate = item.CheckDate; newWelderQualifiedProject.WeldType = item.WeldType; newWelderQualifiedProject.ExamProject = item.ExamProject; newWelderQualifiedProject.IsPass = item.IsPass; newWelderQualifiedProject.Remark = item.Remark; Funs.DB.Welder_WelderQualify.InsertOnSubmit(newWelderQualifiedProject); Funs.DB.SubmitChanges(); } /// /// 人员合格项目明细表修改 /// /// public static void UpdateWelderQualifiedProject(Model.Welder_WelderQualify welderQualifiedProject) { Model.HJGLDB db = Funs.DB; Model.Welder_WelderQualify newWelderQualifiedProject = db.Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifiedProjectId == welderQualifiedProject.WelderQualifiedProjectId); if (newWelderQualifiedProject != null) { newWelderQualifiedProject.QualifiedProjectCode = welderQualifiedProject.QualifiedProjectCode; newWelderQualifiedProject.WelderId = welderQualifiedProject.WelderId; newWelderQualifiedProject.CertificateNo = welderQualifiedProject.CertificateNo; newWelderQualifiedProject.WeldingMethodId = welderQualifiedProject.WeldingMethodId; newWelderQualifiedProject.MaterialType = welderQualifiedProject.MaterialType; newWelderQualifiedProject.WeldingLocationId = welderQualifiedProject.WeldingLocationId; newWelderQualifiedProject.ThicknessMax = welderQualifiedProject.ThicknessMax; newWelderQualifiedProject.SizesMin = welderQualifiedProject.SizesMin; newWelderQualifiedProject.LimitDate = welderQualifiedProject.LimitDate; newWelderQualifiedProject.MaterialTypeName = welderQualifiedProject.MaterialTypeName; newWelderQualifiedProject.WeldType = welderQualifiedProject.WeldType; newWelderQualifiedProject.ExamProject = welderQualifiedProject.ExamProject; newWelderQualifiedProject.IsPass = welderQualifiedProject.IsPass; newWelderQualifiedProject.Remark = welderQualifiedProject.Remark; db.SubmitChanges(); } } /// /// 根据合格项目明细Id删除焊工对应合格项目明细 /// /// public static void DeleteWelderQualifiedProjectByWelderQualifiedProjectId(string welderQualifiedProjectId) { Model.HJGLDB db = Funs.DB; var q = (from x in db.Welder_WelderQualify where x.WelderQualifiedProjectId == welderQualifiedProjectId select x).FirstOrDefault(); if (q != null) { db.Welder_WelderQualify.DeleteOnSubmit(q); db.SubmitChanges(); } } /// /// 根据焊工Id删除所有对应焊工合格项目明细 /// /// public static void DeleteWelderQualifiedProjectByWED_ID(string welderId) { Model.HJGLDB db = Funs.DB; var q = (from x in db.Welder_WelderQualify where x.WelderId == welderId select x).ToList(); if (q.Count() > 0) { db.Welder_WelderQualify.DeleteAllOnSubmit(q); db.SubmitChanges(); } } #region 资质分析 public static bool IsOK(List welderQualifys, string wmeCode, string location, string weldTypeGroup, string ste, decimal? dia, decimal? sch) { bool isok = false; foreach (var welderQualify in welderQualifys) { int okNum = 0; if (!string.IsNullOrEmpty(wmeCode)) //焊接方法 { if (wmeCode.Contains(welderQualify.WeldingMethodId)) { okNum++; } } else { okNum++; } if (welderQualify.WeldingLocationId == "ALL") //焊接位置 { okNum++; } else { if (!string.IsNullOrEmpty(location)) { if (welderQualify.WeldingLocationId.Contains(location)) { okNum++; } } else { okNum++; } } if (!string.IsNullOrEmpty(weldTypeGroup)) { if (welderQualify.WeldType.Contains(weldTypeGroup)) { okNum++; } } else { okNum++; } var steel = BLL.Base_MaterialService.GetMaterialByMaterialId(ste); if (steel != null) //钢材类型 { if (welderQualify.MaterialType.Contains(steel.MaterialType ?? "")) { okNum++; } } else { okNum++; } if (weldTypeGroup != "2") // 承插焊 { if (welderQualify.SizesMin == 0) // 0表示不限 { okNum++; } else //最小寸径 { if (dia != null) { if (dia >= welderQualify.SizesMin) { okNum++; } } else { okNum++; } } if (welderQualify.ThicknessMax == 0) // 0表示不限 { okNum++; } else { if (sch != null) //最大壁厚 { if (sch <= welderQualify.ThicknessMax) { okNum++; } } else { okNum++; } } } else // 当为角焊缝时,管径和壁厚不限制 { okNum++; okNum++; } if (okNum == 6) //全部条件符合 { isok = true; break; } } return isok; } /// /// 两种焊接方法的资质判断 /// /// /// /// /// /// /// /// /// /// public static bool TwoWmeIsOK(List floorWelderQualifys, List cellWelderQualifys, string wmeCode1, string wmeCode2, string location, string weldTypeGroup, string ste, decimal? dia, decimal? sch) { bool isok = false; decimal? fThicknessMax = 0; decimal? cThicknessMax = 0; var steel = BLL.Base_MaterialService.GetMaterialByMaterialId(ste); var floorQ = from x in floorWelderQualifys where wmeCode1.Contains(x.WeldingMethodId) && (x.WeldingLocationId == "ALL" || (location == null || location == "" || x.WeldingLocationId.Contains(location))) && (steel == null || x.MaterialType.Contains(steel.MaterialType ?? "")) && (weldTypeGroup == null || x.WeldType.Contains(weldTypeGroup)) // && (dia == null || x.SizesMin<=dia) select x; var cellQ = from x in cellWelderQualifys where wmeCode2.Contains(x.WeldingMethodId) && (x.WeldingLocationId == "ALL" || (location == null || location == "" || x.WeldingLocationId.Contains(location))) && (steel == null || x.MaterialType.Contains(steel.MaterialType ?? "")) && (weldTypeGroup == null || x.WeldType.Contains(weldTypeGroup)) // && (dia == null || x.SizesMin <= dia) select x; if (floorQ.Count() > 0 && cellQ.Count() > 0) { if (weldTypeGroup != "2") // 当为角焊缝时,管径和壁厚不限制 { var floorDiaQ = floorQ.Where(x => x.SizesMin <= dia); var cellDiaQ = cellQ.Where(x => x.SizesMin <= dia); if (floorDiaQ.Count() > 0 && cellDiaQ.Count() > 0) { var fThick = floorDiaQ.Where(x => x.ThicknessMax == 0); var cThick = cellDiaQ.Where(x => x.ThicknessMax == 0); // 只要有一个不限(为0)就通过 if (fThick.Count() > 0 || cThick.Count() > 0) { isok = true; } else { fThicknessMax = floorQ.Max(x => x.ThicknessMax); cThicknessMax = cellQ.Max(x => x.ThicknessMax); if ((fThicknessMax + cThicknessMax) >= sch) { isok = true; } } } } else { isok = true; } } return isok; } #endregion } }