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
}
}