2121
This commit is contained in:
commit
74a2cd0399
|
@ -117,5 +117,201 @@ namespace BLL
|
||||||
db.SubmitChanges();
|
db.SubmitChanges();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,7 +50,9 @@
|
||||||
System.Threading.Thread LoadServiceData = new System.Threading.Thread(new System.Threading.ThreadStart(ExpirePoint));
|
System.Threading.Thread LoadServiceData = new System.Threading.Thread(new System.Threading.ThreadStart(ExpirePoint));
|
||||||
LoadServiceData.Start();
|
LoadServiceData.Start();
|
||||||
|
|
||||||
|
// 开启超焊信息提取
|
||||||
|
System.Threading.Thread LoadServiceSuperQue = new System.Threading.Thread(new System.Threading.ThreadStart(SuperQueWelding));
|
||||||
|
LoadServiceData.Start();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ExpirePoint()
|
private void ExpirePoint()
|
||||||
|
@ -147,6 +149,126 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SuperQueWelding()
|
||||||
|
{
|
||||||
|
//定义一个定时器,并开启和配置相关属性
|
||||||
|
System.Timers.Timer ExpirePoint = new System.Timers.Timer();
|
||||||
|
//执行任务的周期 ,3小时
|
||||||
|
ExpirePoint.Interval = 1000 * 60 * 60 * 3;
|
||||||
|
ExpirePoint.Enabled = true;
|
||||||
|
ExpirePoint.Start();
|
||||||
|
ExpirePoint.Elapsed += new System.Timers.ElapsedEventHandler(SuperQueWelding_Elapsed);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SuperQueWelding_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
|
||||||
|
{
|
||||||
|
bool canWPS = true;
|
||||||
|
var jotList = (from x in Funs.DB.Pipeline_WeldJoint where x.WeldingDailyId != null && x.WeldingMethodId != null select x).ToList();
|
||||||
|
foreach (var jot in jotList)
|
||||||
|
{
|
||||||
|
var wps = BLL.WPQListServiceService.GetWPQById(jot.WPQId);
|
||||||
|
string floorWelder = jot.BackingWelderId;
|
||||||
|
string cellWelder = jot.CoverWelderId;
|
||||||
|
if (wps != null)
|
||||||
|
{
|
||||||
|
// 验证焊工WPS资质
|
||||||
|
if (floorWelder == cellWelder)
|
||||||
|
{
|
||||||
|
if (!wps.WelderIds.Contains(floorWelder))
|
||||||
|
{
|
||||||
|
canWPS = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!wps.WelderIds.Contains(floorWelder))
|
||||||
|
{
|
||||||
|
canWPS = false;
|
||||||
|
}
|
||||||
|
if (!wps.WelderIds.Contains(cellWelder))
|
||||||
|
{
|
||||||
|
canWPS = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证焊工合格项目资质
|
||||||
|
bool canSave = false;
|
||||||
|
var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(jot.WeldTypeId);
|
||||||
|
var mat = BLL.Base_WeldingMethodService.GetWeldingMethodByWeldingMethodId(jot.WeldingMethodId);
|
||||||
|
var loc = BLL.Base_WeldingLocationServie.GetWeldingLocationById(jot.WeldingLocationId);
|
||||||
|
string weldTypeGroup = joty.Flag;
|
||||||
|
string weldTypeCode = joty.WeldTypeCode;
|
||||||
|
decimal? dia = jot.Dia;
|
||||||
|
decimal? sch = jot.Thickness;
|
||||||
|
|
||||||
|
string[] wmeCodes = mat.WeldingMethodCode.Split('+');
|
||||||
|
string location = loc.WeldingLocationCode;
|
||||||
|
string ste = jot.Material1Id;
|
||||||
|
|
||||||
|
List<Model.Welder_WelderQualify> floorWelderQualifys = (from x in Funs.DB.Welder_WelderQualify
|
||||||
|
where x.WelderId == floorWelder && x.WeldingMethodId != null
|
||||||
|
&& x.WeldingLocationId != null && x.MaterialType != null
|
||||||
|
&& x.WeldType != null
|
||||||
|
&& x.ThicknessMax != null && x.SizesMin != null
|
||||||
|
select x).ToList();
|
||||||
|
|
||||||
|
List<Model.Welder_WelderQualify> cellWelderQualifys = (from x in Funs.DB.Welder_WelderQualify
|
||||||
|
where x.WelderId == cellWelder && x.WeldingMethodId != null
|
||||||
|
&& x.WeldingLocationId != null && x.MaterialType != null
|
||||||
|
&& x.WeldType != null
|
||||||
|
&& x.ThicknessMax != null && x.SizesMin != null
|
||||||
|
select x).ToList();
|
||||||
|
// 打底和盖面同一焊工
|
||||||
|
if (floorWelder == cellWelder)
|
||||||
|
{
|
||||||
|
if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0)
|
||||||
|
{
|
||||||
|
if (wmeCodes.Count() <= 1) // 一种焊接方法
|
||||||
|
{
|
||||||
|
canSave = BLL.WelderQualifiedService.IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
else // 大于一种焊接方法,如氩电联焊
|
||||||
|
{
|
||||||
|
canSave = BLL.WelderQualifiedService.TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 打底和盖面焊工不同
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool isok1 = false;
|
||||||
|
bool isok2 = false;
|
||||||
|
|
||||||
|
if (wmeCodes.Count() <= 1) // 一种焊接方法
|
||||||
|
{
|
||||||
|
if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0)
|
||||||
|
{
|
||||||
|
isok1 = BLL.WelderQualifiedService.IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0)
|
||||||
|
{
|
||||||
|
isok2 = BLL.WelderQualifiedService.IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
if (isok1 && isok2)
|
||||||
|
{
|
||||||
|
canSave = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
canSave = BLL.WelderQualifiedService.TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (canWPS == false || canSave == false)
|
||||||
|
{
|
||||||
|
jot.IsSuperQueWelding = true;
|
||||||
|
Funs.DB.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected void Session_Start(object sender, EventArgs e)
|
protected void Session_Start(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
</f:FormRow>
|
</f:FormRow>
|
||||||
<f:FormRow>
|
<f:FormRow>
|
||||||
<Items>
|
<Items>
|
||||||
<f:DropDownList ID="drpMaterialType" Label="<%$ Resources:Lan,SteelMaterialType %>"
|
<f:DropDownList ID="drpMaterialType" Label="<%$ Resources:Lan,MaterialSpecificationType %>"
|
||||||
runat="server" LabelAlign="right" LabelWidth="200px">
|
runat="server" LabelAlign="right" LabelWidth="200px">
|
||||||
</f:DropDownList>
|
</f:DropDownList>
|
||||||
</Items>
|
</Items>
|
||||||
|
|
|
@ -33,6 +33,9 @@
|
||||||
<f:Button ID="btnExport" OnClick="btnExport_Click" runat="server" Text="导出" ToolTip="导出"
|
<f:Button ID="btnExport" OnClick="btnExport_Click" runat="server" Text="导出" ToolTip="导出"
|
||||||
Icon="NoteGo" EnableAjax="false" DisableControlBeforePostBack="false">
|
Icon="NoteGo" EnableAjax="false" DisableControlBeforePostBack="false">
|
||||||
</f:Button>
|
</f:Button>
|
||||||
|
<f:Button ID="btnExtract" Text="提取可焊焊工" Icon="ChartPie"
|
||||||
|
runat="server" OnClick="BtnExtract_Click">
|
||||||
|
</f:Button>
|
||||||
</Items>
|
</Items>
|
||||||
</f:Toolbar>
|
</f:Toolbar>
|
||||||
</Toolbars>
|
</Toolbars>
|
||||||
|
|
|
@ -4,6 +4,7 @@ using System.Data.SqlClient;
|
||||||
using BLL;
|
using BLL;
|
||||||
using System.Data;
|
using System.Data;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.Linq;
|
||||||
using AspNet = System.Web.UI.WebControls;
|
using AspNet = System.Web.UI.WebControls;
|
||||||
|
|
||||||
namespace FineUIPro.Web.PublicInfo.WPQ
|
namespace FineUIPro.Web.PublicInfo.WPQ
|
||||||
|
@ -330,6 +331,48 @@ namespace FineUIPro.Web.PublicInfo.WPQ
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region 提取可焊焊工
|
||||||
|
protected void BtnExtract_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (Grid1.SelectedRowIndexArray.Length == 0)
|
||||||
|
{
|
||||||
|
Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string wpsId = Grid1.SelectedRowID;
|
||||||
|
var wps=BLL.WPQListServiceService.GetWPQById(wpsId);
|
||||||
|
var welderList = from x in Funs.DB.Welder_ProjectWelder where x.ProjectId == this.CurrUser.LoginProjectId select x;
|
||||||
|
|
||||||
|
if (welderList.Count() > 0)
|
||||||
|
{
|
||||||
|
string testWelder = string.Empty;
|
||||||
|
// 焊工考试情况
|
||||||
|
foreach (var welder in welderList)
|
||||||
|
{
|
||||||
|
var welderTestList = from x in Funs.DB.Welder_TestInfo where x.WelderId == welder.WelderId select x;
|
||||||
|
if (welderTestList.Count() > 0)
|
||||||
|
{
|
||||||
|
foreach (var t in welderTestList)
|
||||||
|
{
|
||||||
|
if (wps.MaterialId1.Contains(t.MaterialId) && wps.WeldingMethodId != null && wps.WeldingMethodId.Contains(t.WeldMethodId) && t.IsPass == true)
|
||||||
|
{
|
||||||
|
testWelder += welder.WelderId+"|";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
if (testWelder != string.Empty)
|
||||||
|
{
|
||||||
|
testWelder = testWelder.Substring(0, testWelder.Length - 1);
|
||||||
|
wps.WelderIds = testWelder;
|
||||||
|
Funs.DB.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
#region 格式化字符串
|
#region 格式化字符串
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -7,10 +7,12 @@
|
||||||
// </自动生成>
|
// </自动生成>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace FineUIPro.Web.PublicInfo.WPQ {
|
namespace FineUIPro.Web.PublicInfo.WPQ
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
public partial class WPQList {
|
public partial class WPQList
|
||||||
|
{
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// form1 控件。
|
/// form1 控件。
|
||||||
|
@ -102,6 +104,15 @@ namespace FineUIPro.Web.PublicInfo.WPQ {
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
protected global::FineUIPro.Button btnExport;
|
protected global::FineUIPro.Button btnExport;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// btnExtract 控件。
|
||||||
|
/// </summary>
|
||||||
|
/// <remarks>
|
||||||
|
/// 自动生成的字段。
|
||||||
|
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
|
||||||
|
/// </remarks>
|
||||||
|
protected global::FineUIPro.Button btnExtract;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// lblNumber 控件。
|
/// lblNumber 控件。
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -4,14 +4,16 @@
|
||||||
|
|
||||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||||
<head runat="server">
|
<head runat="server">
|
||||||
<style>
|
|
||||||
.f-grid-row-summary .f-grid-cell-inner {
|
|
||||||
font-weight: bold;
|
|
||||||
color: red;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
<title>超资质焊接预警</title>
|
<title>超资质焊接预警</title>
|
||||||
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
|
<link href="../../res/css/common.css" rel="stylesheet" type="text/css" />
|
||||||
|
<style type="text/css">
|
||||||
|
.f-grid-row.color1,
|
||||||
|
.f-grid-row.color1 .f-icon,
|
||||||
|
.f-grid-row.color1 a {
|
||||||
|
background-color: red;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<form id="form1" runat="server">
|
<form id="form1" runat="server">
|
||||||
|
@ -23,7 +25,7 @@
|
||||||
EnableCollapse="true" runat="server" BoxFlex="1" EnableColumnLines="true"
|
EnableCollapse="true" runat="server" BoxFlex="1" EnableColumnLines="true"
|
||||||
AllowSorting="true" SortField="PipelineCode,WeldJointCode" OnSort="Grid1_Sort"
|
AllowSorting="true" SortField="PipelineCode,WeldJointCode" OnSort="Grid1_Sort"
|
||||||
AllowPaging="true" IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange"
|
AllowPaging="true" IsDatabasePaging="true" PageSize="15" OnPageIndexChange="Grid1_PageIndexChange"
|
||||||
EnableTextSelection="True" EnableSummary="true" SummaryPosition="Flow">
|
EnableTextSelection="True" OnRowDataBound="Grid1_RowDataBound">
|
||||||
<Toolbars>
|
<Toolbars>
|
||||||
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left">
|
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left">
|
||||||
<Items>
|
<Items>
|
||||||
|
@ -46,7 +48,7 @@
|
||||||
<f:Button ID="BtnAnalyse" Text="查询" Icon="ChartPie"
|
<f:Button ID="BtnAnalyse" Text="查询" Icon="ChartPie"
|
||||||
runat="server" OnClick="BtnAnalyse_Click">
|
runat="server" OnClick="BtnAnalyse_Click">
|
||||||
</f:Button>
|
</f:Button>
|
||||||
<f:Button ID="btnExtract" Text="提取数据" Icon="ChartPie"
|
<f:Button ID="btnExtract" Text="提取超焊信息" Icon="ChartPie"
|
||||||
runat="server" OnClick="BtnExtract_Click">
|
runat="server" OnClick="BtnExtract_Click">
|
||||||
</f:Button>
|
</f:Button>
|
||||||
</Items>
|
</Items>
|
||||||
|
@ -71,6 +73,10 @@
|
||||||
DataField="WeldJointCode" SortField="WeldJointCode" FieldType="String" HeaderTextAlign="Center"
|
DataField="WeldJointCode" SortField="WeldJointCode" FieldType="String" HeaderTextAlign="Center"
|
||||||
Width="120px">
|
Width="120px">
|
||||||
</f:RenderField>
|
</f:RenderField>
|
||||||
|
<f:RenderField HeaderText="WPS" ColumnID="WPQCode"
|
||||||
|
DataField="WPQCode" SortField="WPQCode" FieldType="String" HeaderTextAlign="Center"
|
||||||
|
Width="120px">
|
||||||
|
</f:RenderField>
|
||||||
<f:RenderField HeaderText="材质1" ColumnID="MaterialCode1"
|
<f:RenderField HeaderText="材质1" ColumnID="MaterialCode1"
|
||||||
DataField="MaterialCode1" SortField="MaterialCode1" FieldType="String"
|
DataField="MaterialCode1" SortField="MaterialCode1" FieldType="String"
|
||||||
HeaderTextAlign="Center" Width="150px">
|
HeaderTextAlign="Center" Width="150px">
|
||||||
|
@ -87,8 +93,8 @@
|
||||||
DataField="WeldingLocationCode" FieldType="String" HeaderTextAlign="Center"
|
DataField="WeldingLocationCode" FieldType="String" HeaderTextAlign="Center"
|
||||||
Width="100px">
|
Width="100px">
|
||||||
</f:RenderField>
|
</f:RenderField>
|
||||||
<f:RenderField HeaderText="焊接方法<br>Weld Process" ColumnID="WeldingMethodName"
|
<f:RenderField HeaderText="焊接方法" ColumnID="WeldingMethodCode"
|
||||||
DataField="WeldingMethodName" SortField="WeldingMethodName" FieldType="String"
|
DataField="WeldingMethodCode" SortField="WeldingMethodCode" FieldType="String"
|
||||||
HeaderTextAlign="Center" Width="120px">
|
HeaderTextAlign="Center" Width="120px">
|
||||||
</f:RenderField>
|
</f:RenderField>
|
||||||
<f:RenderField HeaderText="寸径" ColumnID="Size" DataField="Size"
|
<f:RenderField HeaderText="寸径" ColumnID="Size" DataField="Size"
|
||||||
|
@ -105,7 +111,7 @@
|
||||||
DataField="CoverWelderCode" SortField="CoverWelderCode" FieldType="String"
|
DataField="CoverWelderCode" SortField="CoverWelderCode" FieldType="String"
|
||||||
HeaderTextAlign="Center" Width="120px">
|
HeaderTextAlign="Center" Width="120px">
|
||||||
</f:RenderField>
|
</f:RenderField>
|
||||||
<f:RenderField HeaderText="焊接日期<br>Welding Date" ColumnID="WeldingDate"
|
<f:RenderField HeaderText="焊接日期" ColumnID="WeldingDate"
|
||||||
DataField="WeldingDate" SortField="WeldingDate" FieldType="String" HeaderTextAlign="Center"
|
DataField="WeldingDate" SortField="WeldingDate" FieldType="String" HeaderTextAlign="Center"
|
||||||
Width="170px">
|
Width="170px">
|
||||||
</f:RenderField>
|
</f:RenderField>
|
||||||
|
|
|
@ -10,6 +10,7 @@ using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using Newtonsoft.Json.Linq;
|
using Newtonsoft.Json.Linq;
|
||||||
using BorderStyle = NPOI.SS.UserModel.BorderStyle;
|
using BorderStyle = NPOI.SS.UserModel.BorderStyle;
|
||||||
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
{
|
{
|
||||||
|
@ -38,13 +39,12 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private DataTable GetDataTable()
|
private DataTable GetDataTable()
|
||||||
{
|
{
|
||||||
string strSql = @"SELECT weldJoint.WeldJointId,weldJoint.ProjectId,WorkArea.WorkAreaId,
|
string strSql = @"SELECT weldJoint.WeldJointId,weldJoint.ProjectId,WorkArea.WorkAreaId,wps.WPQCode,
|
||||||
WorkArea.WorkAreaCode,pipeline.SingleNumber,pipeline.PipelineCode,weldJoint.WeldJointCode,
|
WorkArea.WorkAreaCode,pipeline.SingleNumber,pipeline.PipelineCode,weldJoint.WeldJointCode,
|
||||||
weldType.WeldTypeCode,wl.WeldingLocationCode,weldJoint.Size,weldJoint.Thickness,
|
weldType.WeldTypeCode,wl.WeldingLocationCode,weldJoint.Size,weldJoint.Thickness,
|
||||||
weldJoint.Specification,mat1.MaterialCode AS MaterialCode1,mat2.MaterialCode AS MaterialCode2,
|
weldJoint.Specification,mat1.MaterialCode AS MaterialCode1,mat2.MaterialCode AS MaterialCode2,
|
||||||
WeldMethod.WeldingMethodName,cw.WelderCode AS CoverWelderCode,fw.WelderCode AS BackingWelderCode,
|
WeldMethod.WeldingMethodCode,cw.WelderCode AS CoverWelderCode,fw.WelderCode AS BackingWelderCode,
|
||||||
weldJoint.BackingWelderId,weldJoint.CoverWelderId,weldingDaily.WeldingDate,
|
weldingDaily.WeldingDate, weldJoint.IsSuperQueWelding
|
||||||
weldJoint.IsSuperQueWelding
|
|
||||||
FROM Pipeline_WeldJoint AS weldJoint
|
FROM Pipeline_WeldJoint AS weldJoint
|
||||||
LEFT JOIN Pipeline_Pipeline AS pipeline ON pipeline.PipelineId = weldJoint.PipelineId
|
LEFT JOIN Pipeline_Pipeline AS pipeline ON pipeline.PipelineId = weldJoint.PipelineId
|
||||||
LEFT JOIN Project_WorkArea AS WorkArea ON WorkArea.WorkAreaId = pipeline.WorkAreaId
|
LEFT JOIN Project_WorkArea AS WorkArea ON WorkArea.WorkAreaId = pipeline.WorkAreaId
|
||||||
|
@ -54,8 +54,9 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
LEFT JOIN dbo.Base_WeldType weldType ON weldType.WeldTypeId = weldJoint.WeldTypeId
|
LEFT JOIN dbo.Base_WeldType weldType ON weldType.WeldTypeId = weldJoint.WeldTypeId
|
||||||
LEFT JOIN dbo.Base_WeldingLocation wl ON wl.WeldingLocationId = weldJoint.WeldingLocationId
|
LEFT JOIN dbo.Base_WeldingLocation wl ON wl.WeldingLocationId = weldJoint.WeldingLocationId
|
||||||
LEFT JOIN Pipeline_WeldingDaily AS weldingDaily ON weldingDaily.WeldingDailyId = weldJoint.WeldingDailyId
|
LEFT JOIN Pipeline_WeldingDaily AS weldingDaily ON weldingDaily.WeldingDailyId = weldJoint.WeldingDailyId
|
||||||
left join Welder_Welder AS fw on weldJoint.BackingWelderId = fw.WelderId
|
LEFT JOIN Welder_Welder AS fw on weldJoint.BackingWelderId = fw.WelderId
|
||||||
left join Welder_Welder AS cw on weldJoint.CoverWelderId = cw.WelderId
|
LEFT JOIN Welder_Welder AS cw on weldJoint.CoverWelderId = cw.WelderId
|
||||||
|
LEFT JOIN dbo.WPQ_WPQList wps ON wps.WPQId = weldJoint.WPQId
|
||||||
WHERE weldJoint.WeldingDailyId IS NOT NULL AND weldJoint.ProjectId=@projectId";
|
WHERE weldJoint.WeldingDailyId IS NOT NULL AND weldJoint.ProjectId=@projectId";
|
||||||
|
|
||||||
List<SqlParameter> listStr = new List<SqlParameter>();
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
||||||
|
@ -98,13 +99,138 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
BindGrid();
|
BindGrid();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
protected void BtnExtract_Click(object sender, EventArgs e)
|
protected void BtnExtract_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
DataTable dt = GetDataTable();
|
bool canWPS = true;
|
||||||
|
var jotList = (from x in Funs.DB.Pipeline_WeldJoint where x.ProjectId == this.CurrUser.LoginProjectId && x.WeldingDailyId != null && x.WeldingMethodId != null select x).ToList();
|
||||||
|
foreach (var jot in jotList)
|
||||||
|
{
|
||||||
|
var wps = BLL.WPQListServiceService.GetWPQById(jot.WPQId);
|
||||||
|
string floorWelder = jot.BackingWelderId;
|
||||||
|
string cellWelder = jot.CoverWelderId;
|
||||||
|
if (wps != null)
|
||||||
|
{
|
||||||
|
// 验证焊工WPS资质
|
||||||
|
if (floorWelder == cellWelder)
|
||||||
|
{
|
||||||
|
if (!wps.WelderIds.Contains(floorWelder))
|
||||||
|
{
|
||||||
|
canWPS = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!wps.WelderIds.Contains(floorWelder))
|
||||||
|
{
|
||||||
|
canWPS = false;
|
||||||
|
}
|
||||||
|
if (!wps.WelderIds.Contains(cellWelder))
|
||||||
|
{
|
||||||
|
canWPS = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 验证焊工合格项目资质
|
||||||
|
bool canSave = false;
|
||||||
|
var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(jot.WeldTypeId);
|
||||||
|
var mat=BLL.Base_WeldingMethodService.GetWeldingMethodByWeldingMethodId(jot.WeldingMethodId);
|
||||||
|
var loc=BLL.Base_WeldingLocationServie.GetWeldingLocationById(jot.WeldingLocationId);
|
||||||
|
string weldTypeGroup = joty.Flag;
|
||||||
|
string weldTypeCode = joty.WeldTypeCode;
|
||||||
|
decimal? dia = jot.Dia;
|
||||||
|
decimal? sch = jot.Thickness;
|
||||||
|
|
||||||
|
string[] wmeCodes = mat.WeldingMethodCode.Split('+');
|
||||||
|
string location = loc.WeldingLocationCode;
|
||||||
|
string ste = jot.Material1Id;
|
||||||
|
|
||||||
|
List<Model.Welder_WelderQualify> floorWelderQualifys = (from x in Funs.DB.Welder_WelderQualify
|
||||||
|
where x.WelderId == floorWelder && x.WeldingMethodId != null
|
||||||
|
&& x.WeldingLocationId != null && x.MaterialType != null
|
||||||
|
&& x.WeldType != null
|
||||||
|
&& x.ThicknessMax != null && x.SizesMin != null
|
||||||
|
select x).ToList();
|
||||||
|
|
||||||
|
List<Model.Welder_WelderQualify> cellWelderQualifys = (from x in Funs.DB.Welder_WelderQualify
|
||||||
|
where x.WelderId == cellWelder && x.WeldingMethodId != null
|
||||||
|
&& x.WeldingLocationId != null && x.MaterialType != null
|
||||||
|
&& x.WeldType != null
|
||||||
|
&& x.ThicknessMax != null && x.SizesMin != null
|
||||||
|
select x).ToList();
|
||||||
|
// 打底和盖面同一焊工
|
||||||
|
if (floorWelder == cellWelder)
|
||||||
|
{
|
||||||
|
if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0)
|
||||||
|
{
|
||||||
|
if (wmeCodes.Count() <= 1) // 一种焊接方法
|
||||||
|
{
|
||||||
|
canSave = BLL.WelderQualifiedService.IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
else // 大于一种焊接方法,如氩电联焊
|
||||||
|
{
|
||||||
|
canSave = BLL.WelderQualifiedService.TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 打底和盖面焊工不同
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bool isok1 = false;
|
||||||
|
bool isok2 = false;
|
||||||
|
|
||||||
|
if (wmeCodes.Count() <= 1) // 一种焊接方法
|
||||||
|
{
|
||||||
|
if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0)
|
||||||
|
{
|
||||||
|
isok1 = BLL.WelderQualifiedService.IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0)
|
||||||
|
{
|
||||||
|
isok2 = BLL.WelderQualifiedService.IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
if (isok1 && isok2)
|
||||||
|
{
|
||||||
|
canSave = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
canSave = BLL.WelderQualifiedService.TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (canWPS==false || canSave == false)
|
||||||
|
{
|
||||||
|
jot.IsSuperQueWelding = true;
|
||||||
|
Funs.DB.SubmitChanges();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ShowNotify("提取完成");
|
||||||
|
return;
|
||||||
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
|
||||||
|
{
|
||||||
|
DataRowView row = e.DataItem as DataRowView;
|
||||||
|
|
||||||
|
if (row["IsSuperQueWelding"].ToString() != "")
|
||||||
|
{
|
||||||
|
Boolean isSup = Convert.ToBoolean(row["IsSuperQueWelding"]);
|
||||||
|
if (isSup==true)
|
||||||
|
{
|
||||||
|
e.RowCssClass = "color1";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
#region
|
#region
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 改变索引事件
|
/// 改变索引事件
|
||||||
|
|
|
@ -1307,11 +1307,11 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
{
|
{
|
||||||
if (wmeCodes.Count() <= 1) // 一种焊接方法
|
if (wmeCodes.Count() <= 1) // 一种焊接方法
|
||||||
{
|
{
|
||||||
canSave = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
canSave = BLL.WelderQualifiedService.IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
else // 大于一种焊接方法,如氩电联焊
|
else // 大于一种焊接方法,如氩电联焊
|
||||||
{
|
{
|
||||||
canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
canSave = BLL.WelderQualifiedService.TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1325,11 +1325,11 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
{
|
{
|
||||||
if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0)
|
if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0)
|
||||||
{
|
{
|
||||||
isok1 = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
isok1 = BLL.WelderQualifiedService.IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0)
|
if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0)
|
||||||
{
|
{
|
||||||
isok2 = IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
isok2 = BLL.WelderQualifiedService.IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
if (isok1 && isok2)
|
if (isok1 && isok2)
|
||||||
{
|
{
|
||||||
|
@ -1338,7 +1338,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
canSave = BLL.WelderQualifiedService.TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1650,201 +1650,6 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 资质分析
|
|
||||||
private 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>
|
|
||||||
private 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
|
|
||||||
|
|
||||||
#region 关闭弹出窗口及刷新页面
|
#region 关闭弹出窗口及刷新页面
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 关闭弹出窗口
|
/// 关闭弹出窗口
|
||||||
|
|
|
@ -471,11 +471,11 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
{
|
{
|
||||||
if (wmeCodes.Count() <= 1) // 一种焊接方法
|
if (wmeCodes.Count() <= 1) // 一种焊接方法
|
||||||
{
|
{
|
||||||
canSave = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
canSave = BLL.WelderQualifiedService.IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
else // 大于一种焊接方法,如氩电联焊
|
else // 大于一种焊接方法,如氩电联焊
|
||||||
{
|
{
|
||||||
canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
canSave = BLL.WelderQualifiedService.TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -489,11 +489,11 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
{
|
{
|
||||||
if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0)
|
if (floorWelderQualifys != null && floorWelderQualifys.Count() > 0)
|
||||||
{
|
{
|
||||||
isok1 = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
isok1 = BLL.WelderQualifiedService.IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0)
|
if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0)
|
||||||
{
|
{
|
||||||
isok2 = IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
isok2 = BLL.WelderQualifiedService.IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
if (isok1 && isok2)
|
if (isok1 && isok2)
|
||||||
{
|
{
|
||||||
|
@ -502,7 +502,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
canSave = BLL.WelderQualifiedService.TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1412,201 +1412,6 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region 资质分析
|
|
||||||
private 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>
|
|
||||||
private 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
|
|
||||||
|
|
||||||
#region 查找
|
#region 查找
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 查找未焊接焊口
|
/// 查找未焊接焊口
|
||||||
|
|
Loading…
Reference in New Issue