using System; using System.Collections.Generic; using System.Linq; namespace BLL { /// /// 焊工资质 /// public static class WelderQualifyService { /// /// 根据主键获取焊工资质信息 /// /// /// public static Model.Welder_WelderQualify GetWelderQualifyById(string welderQualifyId) { return Funs.DB.Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifyId == welderQualifyId); } /// /// 根据主键获取焊工资质视图 /// /// /// public static Model.View_Welder_WelderQualify GetViewWelderQualifyById(string welderQualifyId) { return Funs.DB.View_Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifyId == welderQualifyId); } /// /// 根据焊工主键获取焊工资质信息 /// /// /// public static List GetWelderQualifysByWelderId(string welderId) { return (from x in Funs.DB.Welder_WelderQualify where x.WelderId == welderId select x).ToList(); } public static List GetShowWelderQualifysByWelderId(string welderId) { return (from x in Funs.DB.Welder_WelderQualify where x.WelderId == welderId && x.IsPrintShow == true select x).ToList(); } /// /// 添加焊工资质信息 /// /// public static void AddWelderQualify(Model.Welder_WelderQualify welderQualify) { Model.Welder_WelderQualify newWelderQualify = new Model.Welder_WelderQualify(); newWelderQualify.WelderQualifyId = welderQualify.WelderQualifyId; newWelderQualify.WelderId = welderQualify.WelderId; newWelderQualify.QualificationItem = welderQualify.QualificationItem; newWelderQualify.CheckDate = welderQualify.CheckDate; newWelderQualify.LimitDate = welderQualify.LimitDate; newWelderQualify.WeldingMethod = welderQualify.WeldingMethod; newWelderQualify.MaterialType = welderQualify.MaterialType; newWelderQualify.WeldingLocation = welderQualify.WeldingLocation; newWelderQualify.ThicknessMin = welderQualify.ThicknessMin; newWelderQualify.ThicknessMax = welderQualify.ThicknessMax; newWelderQualify.ThicknessMin2 = welderQualify.ThicknessMin2; newWelderQualify.ThicknessMax2 = welderQualify.ThicknessMax2; newWelderQualify.SizesMin = welderQualify.SizesMin; newWelderQualify.SizesMax = welderQualify.SizesMax; newWelderQualify.SizesMin2 = welderQualify.SizesMin2; newWelderQualify.SizesMax2 = welderQualify.SizesMax2; newWelderQualify.WeldType = welderQualify.WeldType; newWelderQualify.IsCanWeldG = welderQualify.IsCanWeldG; newWelderQualify.Remark = welderQualify.Remark; newWelderQualify.IsPrintShow = welderQualify.IsPrintShow; newWelderQualify.WelderMode = welderQualify.WelderMode; newWelderQualify.Level = welderQualify.Level; Funs.DB.Welder_WelderQualify.InsertOnSubmit(newWelderQualify); Funs.DB.SubmitChanges(); } /// /// 修改焊工资质 /// /// public static void UpdateWelderQualify(Model.Welder_WelderQualify welderQualify) { Model.Welder_WelderQualify newWelderQualify = Funs.DB.Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifyId == welderQualify.WelderQualifyId); if (newWelderQualify != null) { newWelderQualify.QualificationItem = welderQualify.QualificationItem; newWelderQualify.CheckDate = welderQualify.CheckDate; newWelderQualify.LimitDate = welderQualify.LimitDate; newWelderQualify.WeldingMethod = welderQualify.WeldingMethod; newWelderQualify.MaterialType = welderQualify.MaterialType; newWelderQualify.WeldingLocation = welderQualify.WeldingLocation; newWelderQualify.ThicknessMin = welderQualify.ThicknessMin; newWelderQualify.ThicknessMax = welderQualify.ThicknessMax; newWelderQualify.ThicknessMin2 = welderQualify.ThicknessMin2; newWelderQualify.ThicknessMax2 = welderQualify.ThicknessMax2; newWelderQualify.SizesMin = welderQualify.SizesMin; newWelderQualify.SizesMax = welderQualify.SizesMax; newWelderQualify.SizesMin2 = welderQualify.SizesMin2; newWelderQualify.SizesMax2 = welderQualify.SizesMax2; newWelderQualify.WeldType = welderQualify.WeldType; newWelderQualify.IsCanWeldG = welderQualify.IsCanWeldG; newWelderQualify.Remark = welderQualify.Remark; newWelderQualify.IsPrintShow = welderQualify.IsPrintShow; newWelderQualify.WelderMode = welderQualify.WelderMode; newWelderQualify.IsAudit = welderQualify.IsAudit; newWelderQualify.AuditMan = welderQualify.AuditMan; newWelderQualify.AuditDate = welderQualify.AuditDate; newWelderQualify.Level = welderQualify.Level; Funs.DB.SubmitChanges(); } } /// /// 根据主键删除焊工资质 /// /// public static void DeleteWelderQualifyById(string welderQualifyId) { Model.Welder_WelderQualify welderQualify = Funs.DB.Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifyId == welderQualifyId); if (welderQualify != null) { Funs.DB.Welder_WelderQualify.DeleteOnSubmit(welderQualify); Funs.DB.SubmitChanges(); } } #region 获取焊工合格项目信息列表 public static List GetWelderQualifyListDataForApi(string personId, int index, int page) { using (var db = new Model.SGGLDB(Funs.ConnString)) { IQueryable q = db.View_Welder_WelderQualify; List ids = new List(); if (!string.IsNullOrEmpty(personId)) { q = q.Where(e => e.WelderId == personId); } var qq1 = from x in q orderby x.PersonName select new { x.WelderQualifyId, x.IsAudit, x.QualificationItem, x.CheckDate, x.LimitDate, x.WeldingMethod, x.MaterialType, x.WeldingLocation, x.Thickness, x.Sizes, x.Thickness2, x.Sizes2, x.WeldType, x.IsCanWeldG, x.Remark, x.PersonName, }; var list = qq1.Skip(index * page).Take(page).ToList(); List listRes = new List(); for (int i = 0; i < list.Count; i++) { Model.View_Welder_WelderQualify x = new Model.View_Welder_WelderQualify(); x.WelderQualifyId = list[i].WelderQualifyId; x.IsAudit = list[i].IsAudit; x.QualificationItem = list[i].QualificationItem; x.CheckDate = list[i].CheckDate; x.LimitDate = list[i].LimitDate; x.WeldingMethod = list[i].WeldingMethod; x.MaterialType = list[i].MaterialType; x.WeldingLocation = list[i].WeldingLocation; x.Thickness = list[i].Thickness; x.Sizes = list[i].Sizes; x.Thickness2 = list[i].Thickness2; x.Sizes2 = list[i].Sizes2; x.WeldType = list[i].WeldType; x.IsCanWeldG = list[i].IsCanWeldG; x.Remark = list[i].Remark; x.PersonName = list[i].PersonName; listRes.Add(x); } return listRes; } } #endregion #region 获取焊工合格项目 public static Model.View_Welder_WelderQualify GetWelderQualify(string welderQualifyId) { using (var db = new Model.SGGLDB(Funs.ConnString)) { Model.View_Welder_WelderQualify x = db.View_Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifyId == welderQualifyId); x.WelderQualifyId = x.WelderQualifyId; x.WelderId = x.WelderId; x.QualificationItem = x.QualificationItem; x.LimitDate = x.LimitDate; x.CheckDate = x.CheckDate; x.ThicknessMin = x.ThicknessMin; x.ThicknessMax = x.ThicknessMax; x.SizesMin = x.SizesMin; x.SizesMax = x.SizesMax; x.ThicknessMin2 = x.ThicknessMin2; x.IsAudit = x.IsAudit; x.AuditMan = x.AuditMan; x.AuditDate = x.AuditDate; x.ThicknessMax2 = x.ThicknessMax2; x.SizesMin2 = x.SizesMin2; x.SizesMax2 = x.SizesMax2; x.Thickness = x.Thickness; x.Sizes = x.Sizes; x.Thickness2 = x.Thickness2; x.Sizes2 = x.Sizes2; x.Remark = x.Remark; x.WelderCode = x.WelderCode; x.PersonName = x.PersonName; x.WeldingMethod = x.WeldingMethod; x.WeldingLocation = x.WeldingLocation; x.MaterialType = x.MaterialType; x.IsPrintShow = x.IsPrintShow; x.WeldType = x.WeldType; x.WelderMode = x.WelderMode; x.IsCanWeldG = x.IsCanWeldG; x.PersonName = x.PersonName; return x; } } #endregion #region 获取焊工合格项目分析取值 public static Model.View_Welder_WelderQualify AnalysisQualificationItem(string qualificationItem) { using (var db = new Model.SGGLDB(Funs.ConnString)) { Model.View_Welder_WelderQualify x = new Model.View_Welder_WelderQualify(); string weldMethod = string.Empty; string materialType = string.Empty; string location = string.Empty; string weldType = string.Empty; bool isCanWeldG = true; string thicknessMin = string.Empty; string thicknessMax = string.Empty; string sizesMin = string.Empty; string sizesMax = string.Empty; string thicknessMin2 = string.Empty; string thicknessMax2 = string.Empty; string sizesMin2 = string.Empty; string sizesMax2 = string.Empty; string[] queProject = qualificationItem.Trim().Split('-'); try { // 焊接方法和钢材类型 weldMethod = queProject[0]; if (queProject.Count() > 1) { if (queProject[1].Trim() == ("FeI") || queProject[1].Trim() == ("FeⅠ")) { materialType = "FeⅠ"; } else if (queProject[1].Trim() == ("FeII") || queProject[1].Trim() == ("FeⅡ")) { materialType = "FeⅡ,FeⅠ"; } else if (queProject[1].Trim() == ("FeIII") || queProject[1].Trim() == ("FeⅢ")) { materialType = "FeⅢ,FeⅡ,FeⅠ"; } else if (queProject[1].Trim() == ("FeIV") || queProject[1].Trim() == ("FeⅣ")) { materialType = "FeⅣ"; } else { materialType = queProject[1].Trim(); } } if (queProject.Count() > 2) { // 焊接位置 if (queProject[2].Contains("6G")) { location = "ALL"; } else if (queProject[2].Contains("2G")) { location = "1G,2G"; } else if (queProject[2].Contains("3G")) { location = "1G,2G,3G"; } else if (queProject[2].Contains("4G")) { location = "1G,3G,4G"; } else if (queProject[2].Contains("5G")) { location = "1G,2G,3G,5G"; } else if (queProject[2].Contains("6FG")) { location = "ALL"; } else if (queProject[2].Contains("5FG")) { location = "2FG,5FG"; } else if (queProject[2].Contains("4FG")) { location = "2FG,4FG"; } else { location = queProject[2]; } if (queProject[2].Contains("1G") || queProject[2].Contains("1F") || queProject[2].Contains("2FR") || queProject[2].Contains("2FRG")) { isCanWeldG = false; } // 1-对接,2-角焊缝,3-支管连接焊缝 if (queProject[2].Contains("F")) { weldType = "角焊缝"; } else { weldType = "对接焊缝,角焊缝"; } } if (queProject.Count() > 3) { // 壁厚和外径 string[] strs = queProject[3].Split('/'); int thickness = Convert.ToInt32(strs[0]); int sizes = 0; if (strs.Count() == 2) { sizes = Convert.ToInt32(strs[1]); } if (queProject[2].Contains("1G") || queProject[2].Contains("2G") || queProject[2].Contains("5G") || queProject[2].Contains("5GX") || queProject[2].Contains("6G") || queProject[2].Contains("6GX")) { //壁厚算法 //对接焊缝算法 B类 if (weldMethod != "OFW") { if (thickness < 12) { thicknessMin = "不限"; thicknessMax = (thickness * 2).ToString(); } else { thicknessMin = "不限"; thicknessMax = "不限"; } } else { thicknessMin = "不限"; thicknessMax = thickness.ToString(); } //角焊缝算法 非B类 thicknessMin2 = "不限"; thicknessMax2 = "不限"; //管径算法 //对接焊缝算法 B类 if (sizes < 25) { sizesMin = sizes.ToString(); sizesMax = "不限"; } else if (sizes >= 25 && sizes < 76) { sizesMin = "25"; sizesMax = "不限"; } else { sizesMin = "76"; sizesMax = "不限"; } //角焊缝算法 非B类 sizesMin2 = "不限"; sizesMax2 = "不限"; } if (queProject[2].Contains("1F") || queProject[2].Contains("2F") || queProject[2].Contains("2FR") || queProject[2].Contains("4F") || queProject[2].Contains("5F") || queProject[2].Contains("2FRG") || queProject[2].Contains("2FG") || queProject[2].Contains("4FG") || queProject[2].Contains("5FG") || queProject[2].Contains("6FG")) { //壁厚算法 //对接焊缝算法 B类 thicknessMin = "0"; thicknessMax = "0"; //角焊缝算法 非B类 if (strs.Length == 2) //外径为:非none(管材),即外径和壁厚间有/ { thicknessMin2 = "不限"; thicknessMax2 = "不限"; } else //外径为:none(管材),即外径和壁厚间没有/ { if (thickness < 5) { thicknessMin2 = thickness.ToString(); thicknessMax2 = (thickness * 2).ToString(); } else if (thickness >= 5 && thickness < 10) { thicknessMin2 = "不限"; thicknessMax2 = "不限"; } } //管径算法 //对接焊缝算法 B类 sizesMin = "0"; sizesMax = "0"; //角焊缝算法 非B类 if (strs.Length == 2) //外径为:非none(管材),即外径和壁厚间有/ { if (sizes < 25) { sizesMin2 = sizes.ToString(); sizesMax2 = "不限"; } else if (sizes >= 25 && sizes < 76) { sizesMin2 = "25"; sizesMax2 = "不限"; } else { sizesMin2 = "76"; sizesMax2 = "不限"; } } else //外径为:none(管材),即外径和壁厚间没有/ { sizesMin2 = "76"; sizesMax2 = "不限"; } } //string[] thickSize = queProject[3].Split('/'); //if (weldMethod != "OFW") //{ // if (thickSize.Count() == 2) // { // int thick = Convert.ToInt32(thickSize[0]); // if (thick < 12) // { // //thicknessMax = "≤" + thick * 2; // thicknessMax = thick * 2; // } // else // { // thicknessMax = 0; // } // int size = Convert.ToInt32(thickSize[1]); // if (size < 25) // { // //sizesMin = "≥" + size; // sizesMin = size; // } // else if (size >= 25 && size < 76) // { // //sizesMin = "≥25"; // sizesMin = 25; // } // else // { // //sizesMin = "≥76"; // sizesMin = 76; // } // } // else if (thickSize.Count() == 1) // { // thicknessMax = 0; // //sizesMin = "≥76"; // sizesMin = 76; // } //} //else //{ // int thick = Convert.ToInt32(thickSize[0]); // thicknessMax = thick; // sizesMin = 0; //} } x.QualificationItem = qualificationItem; x.WeldingMethod = weldMethod; x.MaterialType = materialType; x.WeldingLocation = location; x.Thickness = thicknessMin + "$" + thicknessMax; x.Sizes = sizesMin + "$" + sizesMax; x.Thickness2 = thicknessMin2 + "$" + thicknessMax2; x.Sizes2 = sizesMin2 + "$" + sizesMax2; x.WeldType = weldType; x.IsCanWeldG = isCanWeldG; return x; } catch { x.QualificationItem = "请录入规范数据!"; return x; } } } #endregion #region 保存焊工合格项目 public static void AddWelderQualifyForApi(Model.View_Welder_WelderQualify WelderQualify) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.Welder_WelderQualify newWelderQualify = new Model.Welder_WelderQualify(); newWelderQualify.WelderQualifyId = SQLHelper.GetNewID(typeof(Model.Welder_WelderQualify)); newWelderQualify.WelderId = WelderQualify.WelderId; newWelderQualify.QualificationItem = WelderQualify.QualificationItem; newWelderQualify.CheckDate = Funs.GetNewDateTime(WelderQualify.CheckDate.ToString()); newWelderQualify.LimitDate = Funs.GetNewDateTime(WelderQualify.LimitDate.ToString()); newWelderQualify.WeldingMethod = WelderQualify.WeldingMethod; newWelderQualify.MaterialType = WelderQualify.MaterialType; newWelderQualify.WeldingLocation = WelderQualify.WeldingLocation; if (!string.IsNullOrEmpty(WelderQualify.Thickness)) { string[] strs = WelderQualify.Thickness.Split('$'); if (strs.Length == 2) { newWelderQualify.ThicknessMin = GetDecimalByStr(strs[0]); newWelderQualify.ThicknessMax = GetDecimalByStr(strs[1]); } } if (!string.IsNullOrEmpty(WelderQualify.Sizes)) { string[] strs = WelderQualify.Sizes.Split('$'); if (strs.Length == 2) { newWelderQualify.SizesMin = GetDecimalByStr(strs[0]); newWelderQualify.SizesMax = GetDecimalByStr(strs[1]); } } if (!string.IsNullOrEmpty(WelderQualify.Thickness2)) { string[] strs = WelderQualify.Thickness2.Split('$'); if (strs.Length == 2) { newWelderQualify.ThicknessMin2 = GetDecimalByStr(strs[0]); newWelderQualify.ThicknessMax2 = GetDecimalByStr(strs[1]); } } if (!string.IsNullOrEmpty(WelderQualify.Sizes2)) { string[] strs = WelderQualify.Sizes.Split('$'); if (strs.Length == 2) { newWelderQualify.SizesMin2 = GetDecimalByStr(strs[0]); newWelderQualify.SizesMax2 = GetDecimalByStr(strs[1]); } } newWelderQualify.WeldType = WelderQualify.WeldType; newWelderQualify.IsCanWeldG = WelderQualify.IsCanWeldG; newWelderQualify.IsAudit = null; newWelderQualify.AuditMan = null; newWelderQualify.AuditDate = null; newWelderQualify.WelderMode = WelderQualify.WelderMode; db.Welder_WelderQualify.InsertOnSubmit(newWelderQualify); db.SubmitChanges(); } } public static void UpdateWelderQualifyForApi(Model.View_Welder_WelderQualify WelderQualify) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.Welder_WelderQualify newWelderQualify = db.Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifyId == WelderQualify.WelderQualifyId); if (newWelderQualify != null) { newWelderQualify.WelderId = WelderQualify.WelderId; newWelderQualify.QualificationItem = WelderQualify.QualificationItem; newWelderQualify.CheckDate = Funs.GetNewDateTime(WelderQualify.CheckDate.ToString()); newWelderQualify.LimitDate = Funs.GetNewDateTime(WelderQualify.LimitDate.ToString()); newWelderQualify.WeldingMethod = WelderQualify.WeldingMethod; newWelderQualify.MaterialType = WelderQualify.MaterialType; newWelderQualify.WeldingLocation = WelderQualify.WeldingLocation; if (!string.IsNullOrEmpty(WelderQualify.Thickness)) { string[] strs = WelderQualify.Thickness.Split('$'); if (strs.Length == 2) { newWelderQualify.ThicknessMin = GetDecimalByStr(strs[0]); newWelderQualify.ThicknessMax = GetDecimalByStr(strs[1]); } } if (!string.IsNullOrEmpty(WelderQualify.Sizes)) { string[] strs = WelderQualify.Sizes.Split('$'); if (strs.Length == 2) { newWelderQualify.SizesMin = GetDecimalByStr(strs[0]); newWelderQualify.SizesMax = GetDecimalByStr(strs[1]); } } if (!string.IsNullOrEmpty(WelderQualify.Thickness2)) { string[] strs = WelderQualify.Thickness2.Split('$'); if (strs.Length == 2) { newWelderQualify.ThicknessMin2 = GetDecimalByStr(strs[0]); newWelderQualify.ThicknessMax2 = GetDecimalByStr(strs[1]); } } if (!string.IsNullOrEmpty(WelderQualify.Sizes2)) { string[] strs = WelderQualify.Sizes.Split('$'); if (strs.Length == 2) { newWelderQualify.SizesMin2 = GetDecimalByStr(strs[0]); newWelderQualify.SizesMax2 = GetDecimalByStr(strs[1]); } } newWelderQualify.WeldType = WelderQualify.WeldType; newWelderQualify.IsCanWeldG = WelderQualify.IsCanWeldG; newWelderQualify.IsAudit = null; newWelderQualify.AuditMan = null; newWelderQualify.AuditDate = null; newWelderQualify.WelderMode = WelderQualify.WelderMode; db.SubmitChanges(); } } } private static decimal? GetDecimalByStr(string str) { if (str == "0") { return null; } else { if (str == "不限") { return 0; } else { return Convert.ToDecimal(str); } } } #endregion #region 审核焊工合格项目 public static string AuditWelderQualify(string welderQualifyId,string personId) { string str = string.Empty; using (var db = new Model.SGGLDB(Funs.ConnString)) { Model.Welder_WelderQualify x = db.Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifyId == welderQualifyId); if (x != null) { x.IsAudit = true; x.AuditMan = personId; x.AuditDate = DateTime.Now; db.SubmitChanges(); str = "审核成功"; } } return str; } #endregion } }