SGGL_SHJ/SGGL/BLL/HJGL/PersonManage/WelderQualifyService.cs

685 lines
31 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Linq;
namespace BLL
{
/// <summary>
/// 焊工资质
/// </summary>
public static class WelderQualifyService
{
/// <summary>
/// 根据主键获取焊工资质信息
/// </summary>
/// <param name="welderQualifyId"></param>
/// <returns></returns>
public static Model.Welder_WelderQualify GetWelderQualifyById(string welderQualifyId)
{
return Funs.DB.Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifyId == welderQualifyId);
}
/// <summary>
/// 根据主键获取焊工资质视图
/// </summary>
/// <param name="welderQualifyId"></param>
/// <returns></returns>
public static Model.View_Welder_WelderQualify GetViewWelderQualifyById(string welderQualifyId)
{
return Funs.DB.View_Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifyId == welderQualifyId);
}
/// <summary>
/// 根据焊工主键获取焊工资质信息
/// </summary>
/// <param name="welderQualifyId"></param>
/// <returns></returns>
public static List<Model.Welder_WelderQualify> GetWelderQualifysByWelderId(string welderId)
{
return (from x in Funs.DB.Welder_WelderQualify where x.WelderId == welderId select x).ToList();
}
public static List<Model.Welder_WelderQualify> GetShowWelderQualifysByWelderId(string welderId)
{
return (from x in Funs.DB.Welder_WelderQualify where x.WelderId == welderId && x.IsPrintShow == true select x).ToList();
}
/// <summary>
/// 添加焊工资质信息
/// </summary>
/// <param name="welderQualify"></param>
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();
}
/// <summary>
/// 修改焊工资质
/// </summary>
/// <param name="welderQualify"></param>
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();
}
}
/// <summary>
/// 根据主键删除焊工资质
/// </summary>
/// <param name="welderQualifyId"></param>
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<Model.View_Welder_WelderQualify> GetWelderQualifyListDataForApi(string personId, int index, int page)
{
using (var db = new Model.SGGLDB(Funs.ConnString))
{
IQueryable<Model.View_Welder_WelderQualify> q = db.View_Welder_WelderQualify;
List<string> ids = new List<string>();
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<Model.View_Welder_WelderQualify> listRes = new List<Model.View_Welder_WelderQualify>();
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
}
}