Basf_TCC7/HJGL/BLL/WelderManage/WelderQualifiedService.cs

318 lines
12 KiB
C#
Raw Normal View History

2024-05-08 10:02:08 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
public class WelderQualifiedService
{
/// <summary>
/// 根据人员id和合格项目代号判断是否在明细中
/// </summary>
/// <param name="year"></param>
/// <param name="unitid"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 根据主键获取合格项目明细
/// </summary>
/// <param name="EquipmentQualityAuditDetailId"></param>
/// <returns></returns>
public static Model.Welder_WelderQualify GetWelderQualifiedProjectById(string welderQualifiedProjectId)
{
return Funs.DB.Welder_WelderQualify.FirstOrDefault(e => e.WelderQualifiedProjectId == welderQualifiedProjectId);
}
/// <summary>
/// 人员合格项目明细表增加
/// </summary>
/// <param name="unitShortList"></param>
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();
}
/// <summary>
/// 人员合格项目明细表修改
/// </summary>
/// <param name="teamGroup"></param>
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();
}
}
/// <summary>
/// 根据合格项目明细Id删除焊工对应合格项目明细
/// </summary>
/// <param name="shortListId"></param>
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();
}
}
/// <summary>
/// 根据焊工Id删除所有对应焊工合格项目明细
/// </summary>
/// <param name="welderId"></param>
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();
}
}
2024-06-13 10:42:27 +08:00
#region
public static bool IsOK(List<Model.Welder_WelderQualify> 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;
}
/// <summary>
/// 两种焊接方法的资质判断
/// </summary>
/// <param name="floorWelderQualifys"></param>
/// <param name="cellWelderQualifys"></param>
/// <param name="wmeCode1"></param>
/// <param name="wmeCode2"></param>
/// <param name="location"></param>
/// <param name="ste"></param>
/// <param name="dia"></param>
/// <param name="sch"></param>
/// <returns></returns>
public static bool TwoWmeIsOK(List<Model.Welder_WelderQualify> floorWelderQualifys, List<Model.Welder_WelderQualify> 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
2024-05-08 10:02:08 +08:00
}
}