Basf_TCC11/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReportEdit.aspx.cs

1409 lines
70 KiB
C#
Raw Normal View History

2024-05-08 16:27:28 +08:00
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
2024-06-05 08:24:19 +08:00
using System.Web.UI.WebControls;
2024-05-08 16:27:28 +08:00
using BLL;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.WeldingProcess.WeldingManage
{
public partial class WeldReportEdit : PageBase
{
#region
/// <summary>
/// 焊接日报主键
/// </summary>
public string WeldingDailyId
{
get
{
return (string)ViewState["WeldingDailyId"];
}
set
{
ViewState["WeldingDailyId"] = value;
}
}
/// <summary>
/// 项目主键
/// </summary>
public string ProjectId
{
get
{
return (string)ViewState["ProjectId"];
}
set
{
ViewState["ProjectId"] = value;
}
}
#endregion
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ProjectId = Request.Params["ProjectId"];
this.WeldingDailyId = Request.Params["WeldingDailyId"];
///焊缝类型
Base_WeldTypeService.InitWeldTypeDropDownList(this.drpWeldType, Resources.Lan.PleaseSelect, false);
this.drpWeldType.DataTextField = "WeldTypeCode";
this.drpWeldType.DataValueField = "WeldTypeCode";
this.drpWeldType.DataSource = from x in Funs.DB.Base_WeldType orderby x.WeldTypeCode select x;
this.drpWeldType.DataBind();
2024-06-05 08:24:19 +08:00
2024-05-08 16:27:28 +08:00
///焊接位置
this.drpWeldingLocationId.DataTextField = "WeldingLocationCode";
this.drpWeldingLocationId.DataValueField = "WeldingLocationCode";
this.drpWeldingLocationId.DataSource = from x in Funs.DB.Base_WeldingLocation orderby x.WeldingLocationCode select x;
this.drpWeldingLocationId.DataBind();
this.drpWeldingLocationId.SelectedIndex = 0;
// 焊接方法
this.drpWeldingMethod.DataTextField = "WeldingMethodCode";
this.drpWeldingMethod.DataValueField = "WeldingMethodCode";
this.drpWeldingMethod.DataSource = from x in Funs.DB.Base_WeldingMethod orderby x.WeldingMethodCode select x;
this.drpWeldingMethod.DataBind();
this.drpWeldingMethod.SelectedIndex = 0;
///材质1
Base_MaterialService.InitMaterialDropDownList(this.drpMaterial1);
///材质2
Base_MaterialService.InitMaterialDropDownList(this.drpMaterial2);
// 组件1
this.drpComponents1.DataTextField = "ComponentsCode";
this.drpComponents1.DataValueField = "ComponentsCode";
this.drpComponents1.DataSource = from x in Funs.DB.Base_Components orderby x.ComponentsCode select x;
this.drpComponents1.DataBind();
this.drpComponents1.SelectedIndex = 0;
// 组件2
this.drpComponents2.DataTextField = "ComponentsCode";
this.drpComponents2.DataValueField = "ComponentsCode";
this.drpComponents2.DataSource = from x in Funs.DB.Base_Components orderby x.ComponentsCode select x;
this.drpComponents2.DataBind();
this.drpComponents2.SelectedIndex = 0;
// 焊丝
this.drpWeldSilkCode.DataTextField = "ConsumablesCode";
this.drpWeldSilkCode.DataValueField = "ConsumablesCode";
this.drpWeldSilkCode.DataSource = from x in Funs.DB.Base_Consumables where x.ConsumablesType=="1" orderby x.ConsumablesCode select x;
this.drpWeldSilkCode.DataBind();
Funs.FineUIPleaseSelect(drpWeldSilkCode);
//this.drpWeldSilkCode.SelectedIndex = 0;
// 焊条
this.drpWeldMatCode.DataTextField = "ConsumablesCode";
this.drpWeldMatCode.DataValueField = "ConsumablesCode";
this.drpWeldMatCode.DataSource = from x in Funs.DB.Base_Consumables where x.ConsumablesType == "2" orderby x.ConsumablesCode select x;
this.drpWeldMatCode.DataBind();
Funs.FineUIPleaseSelect(drpWeldMatCode);
this.drpWeldMatCode.SelectedIndex = 0;
///焊接属性
this.drpJointAttribute.DataTextField = "Text";
this.drpJointAttribute.DataValueField = "Value";
this.drpJointAttribute.DataSource = BLL.DropListService.HJGL_JointAttributeItem();
this.drpJointAttribute.DataBind();
var wpsList = from x in Funs.DB.WPQ_WPQList where x.ProjectId == CurrUser.LoginProjectId select x;
drpWPS.DataValueField = "WPQCode";
drpWPS.DataTextField = "WPQCode";
drpWPS.DataSource = wpsList.ToList().OrderBy(x => x.WPQCode);
drpWPS.DataBind();
Funs.FineUIPleaseSelect(drpWPS);
2024-06-05 08:24:19 +08:00
// 物料码
BLL.MaterialCoodeService.InitMaterialCoodeDropDownList(this.drpCoode1, this.CurrUser.LoginProjectId, true, Resources.Lan.PleaseSelect);//Coode1
BLL.MaterialCoodeService.InitMaterialCoodeDropDownList(this.drpCoode2, this.CurrUser.LoginProjectId, true, Resources.Lan.PleaseSelect);//Coode2
2024-05-08 16:27:28 +08:00
List<Model.SpWeldingDailyItem> GetWeldingDailyItem = BLL.Pipeline_WeldingDailyService.GetWeldingDailyItem(this.WeldingDailyId);
this.BindGrid(GetWeldingDailyItem); // 初始化页面
this.PageInfoLoad(); // 加载页面
this.CalculationAmount();
}
}
#endregion
#region
/// <summary>
/// 超量焊工提示
/// </summary>
private void CalculationAmount()
{
this.lbAmount.Hidden = true;
this.lbAmount.Text = string.Empty;
DateTime? date = Funs.GetNewDateTime(this.txtWeldingDate.Text);
string txtValue = string.Empty;
if (date.HasValue)
{
var weldJoints = BLL.Pipeline_WeldJointService.GetWeldlinesByWeldingDailyId(this.WeldingDailyId);
foreach (var item in weldJoints)
{
bool cWelder = BLL.Pipeline_WeldJointService.GetWelderLimitDN(this.ProjectId, item.CoverWelderId, date.Value);
bool bWelder = cWelder;
if (item.BackingWelderId != item.CoverWelderId)
{
bWelder = BLL.Pipeline_WeldJointService.GetWelderLimitDN(this.ProjectId, item.BackingWelderId, date.Value);
}
if (cWelder || bWelder)
{
if (cWelder)
{
var coverWelder = BLL.WelderService.GetWelderById(item.CoverWelderId);
if (coverWelder != null)
{
string txt = coverWelder.WelderCode + "";
if (!txtValue.Contains(txt))
{
txtValue += txt;
}
}
}
if (bWelder)
{
var floorWelder = BLL.WelderService.GetWelderById(item.BackingWelderId);
if (floorWelder != null)
{
string txt = floorWelder.WelderCode + "";
if (!txtValue.Contains(txt))
{
txtValue += txt;
}
}
}
}
}
}
if (!string.IsNullOrEmpty(txtValue))
{
this.lbAmount.Text = txtValue;
this.lbAmount.Hidden = false;
}
}
#endregion
#region
/// <summary>
/// 加载页面输入提交信息
/// </summary>
private void PageInfoLoad()
{
var report = BLL.Pipeline_WeldingDailyService.GetPipeline_WeldingDailyByWeldingDailyId(this.WeldingDailyId);
if (report != null)
{
this.ProjectId = report.ProjectId;
BLL.Base_UnitService.InitProjectUnitDropDownList(this.drpUnit, true, this.ProjectId, BLL.Const.UnitType_5, Resources.Lan.PleaseSelect);
BLL.Project_InstallationService.InitInstallationDropDownList(this.drpInstallation, true, this.ProjectId, Resources.Lan.PleaseSelect);
this.txtWeldingDailyCode.Text = report.WeldingDailyCode;
if (!string.IsNullOrEmpty(report.UnitId))
{
this.drpUnit.SelectedValue = report.UnitId;
BLL.WelderService.InitProjectWelderCodeDropDownList(this.drpCoverWelderId, false, this.ProjectId, this.drpUnit.SelectedValue, Resources.Lan.PleaseSelect);
BLL.WelderService.InitProjectWelderCodeDropDownList(this.drpBackingWelderId, false, this.ProjectId, this.drpUnit.SelectedValue, Resources.Lan.PleaseSelect);
}
if (!string.IsNullOrEmpty(report.InstallationId))
{
this.drpInstallation.SelectedValue = report.InstallationId;
}
this.txtWeldingDate.Text = string.Format("{0:yyyy-MM-dd}", report.WeldingDate);
this.hdTablerId.Text = report.Tabler;
Model.Sys_User tabler = BLL.Sys_UserService.GetUsersByUserId(report.Tabler);
if (tabler != null)
{
this.txtTabler.Text = tabler.UserName;
}
this.txtTableDate.Text = string.Format("{0:yyyy-MM-dd}", report.TableDate);
this.txtRemark.Text = report.Remark;
}
else
{
BLL.Base_UnitService.InitProjectUnitDropDownList(this.drpUnit, true, this.ProjectId, BLL.Const.UnitType_5, Resources.Lan.PleaseSelect);
var u = BLL.Project_UnitService.GetProject_UnitByProjectIdUnitId(CurrUser.LoginProjectId, CurrUser.UnitId);
if (u != null && u.UnitType == BLL.Const.UnitType_5)
{
BLL.Project_InstallationService.InitInstallationDropDownList(this.drpInstallation, true, CurrUser.LoginProjectId, CurrUser.UnitId, Resources.Lan.PleaseSelect);
drpUnit.SelectedValue = CurrUser.UnitId;
drpUnit.Enabled = false;
}
else
{
BLL.Project_InstallationService.InitInstallationDropDownList(this.drpInstallation, true, this.ProjectId, Resources.Lan.PleaseSelect);
}
this.SimpleForm1.Reset(); ///重置所有字段
this.txtTabler.Text = this.CurrUser.UserName;
this.hdTablerId.Text = this.CurrUser.UserId;
this.txtWeldingDate.Text = string.Format("{0:yyyy-MM-dd}", System.DateTime.Now);
this.txtTableDate.Text = string.Format("{0:yyyy-MM-dd}", System.DateTime.Now);
string perfix = string.Format("{0:yyyyMMdd}", System.DateTime.Now) + "-";
this.txtWeldingDailyCode.Text = BLL.SQLHelper.RunProcNewId("SpGetThreeNumber", "dbo.Pipeline_WeldingDaily", "WeldingDailyCode", this.CurrUser.LoginProjectId, perfix);
}
}
#endregion
#region
/// <summary>
/// 单位下拉框变化加载对应的焊工信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void drpUnit_SelectedIndexChanged(object sender, EventArgs e)
{
this.drpCoverWelderId.Items.Clear();
this.drpBackingWelderId.Items.Clear();
if (this.drpUnit.SelectedValue != BLL.Const._Null)
{
BLL.Project_InstallationService.InitInstallationDropDownList(this.drpInstallation, true, CurrUser.LoginProjectId, drpUnit.SelectedValue, Resources.Lan.PleaseSelect);
BLL.WelderService.InitProjectWelderCodeDropDownList(this.drpCoverWelderId, false, this.ProjectId, this.drpUnit.SelectedValue, Resources.Lan.PleaseSelect);
BLL.WelderService.InitProjectWelderCodeDropDownList(this.drpBackingWelderId, false, this.ProjectId, this.drpUnit.SelectedValue, Resources.Lan.PleaseSelect);
}
}
#endregion
#region
/// <summary>
/// 数据绑定
/// </summary>
private void BindGrid(List<Model.SpWeldingDailyItem> GetWeldingDailyItem)
{
DataTable tb = this.LINQToDataTable(GetWeldingDailyItem);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(GridNewDynamic, tb1);
Grid1.RecordCount = tb.Rows.Count;
tb = GetFilteredTable(Grid1.FilteredData, tb);
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
#region
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
List<Model.SpWeldingDailyItem> GetWeldingDailyItem = this.CollectGridJointInfo();
this.BindGrid(GetWeldingDailyItem);
}
#endregion
private static bool canSave; //是否可以保存
#region
/// <summary>
/// 编辑焊接日报
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.ProjectId, this.CurrUser.UserId, Const.HJGL_WeldReportMenuId, Const.BtnSave))
{
if (BLL.Pipeline_WeldingDailyService.IsExistWeldingDailyCode(this.txtWeldingDailyCode.Text, !string.IsNullOrEmpty(this.WeldingDailyId) ? this.WeldingDailyId : "", this.ProjectId))
{
ShowNotify(Resources.Lan.WeldingReportExists, MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrEmpty(this.txtWeldingDate.Text) || string.IsNullOrEmpty(this.txtWeldingDailyCode.Text.Trim()))
{
ShowNotify(Resources.Lan.WeldingNumDateIsNotNull, MessageBoxIcon.Warning);
return;
}
string eventArg = string.Empty;
List<Model.SpWeldingDailyItem> GetWeldingDailyItem = this.CollectGridJointInfo();
2024-06-05 08:24:19 +08:00
// 判断Coode数量
string coodeNumError = string.Empty;
var coode1Group = GetWeldingDailyItem.GroupBy(x => x.CoodeHeartNo1).Select(g => g.Key);
var coode2Group = GetWeldingDailyItem.GroupBy(x => x.CoodeHeartNo2).Select(g => g.Key);
var coodeListGroup = coode1Group.Union(coode2Group).Distinct();
string[] jotList= GetWeldingDailyItem.Select(x=>x.WeldJointId).ToArray();
foreach (var c in coodeListGroup)
{
if (c.Contains(":"))
{
string coode = c.Split(':')[0];
string heartNo = c.Split(':')[1];
var coodeNum = from x in Funs.DB.Base_MaterialCoode
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.Coode == coode && x.HeartNo == heartNo
select x;
int daily1 = (from x in GetWeldingDailyItem where x.CoodeHeartNo1 == c select x).Count();
int daily2 = (from x in GetWeldingDailyItem where x.CoodeHeartNo2 == c select x).Count();
int jotCoode1 = (from x in Funs.DB.Pipeline_WeldJoint
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.Coode1 == coode && x.HeartNo1 == heartNo
&& !jotList.Contains(x.WeldJointId)
select x).Count();
int jotCoode2 = (from x in Funs.DB.Pipeline_WeldJoint
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.Coode2 == coode && x.HeartNo2 == heartNo
&& !jotList.Contains(x.WeldJointId)
select x).Count();
if (coodeNum.Count() > 0 && coodeNum.First().Amount != null)
{
if (daily1 + daily2 + jotCoode1 + jotCoode2 > coodeNum.First().Amount.Value)
{
coodeNumError += "Coode:" + coode + "对应的炉批号:" + heartNo + "的数量已超出,";
}
}
}
}
if (!string.IsNullOrEmpty(coodeNumError))
{
coodeNumError = coodeNumError + "请检查后再导入";
}
2024-07-01 09:29:35 +08:00
#region
foreach (var item in GetWeldingDailyItem)
{
bool canSave = false;
var jot = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(item.WeldJointId);
var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(jot.WeldTypeId);
string weldTypeGroup = joty.Flag;
string weldTypeCode = joty.WeldTypeCode;
string floorWelder = item.BackingWelderId;
string cellWelder = item.CoverWelderId;
decimal? dia = item.Dia;
decimal? sch = item.Thickness;
//string wme = item.WeldingMethodCode;
//string wmeCode = string.Empty;
//var wm = BLL.HJGL_WeldingMethodService.GetWeldMethodByWMEID(item.WME_ID);
//if (wm != null)
//{
// wmeCode = wm.WME_Code;
//}
string[] wmeCodes = item.WeldingMethodCode.Split('+');
string location = item.WeldingLocationCode;
string ste = jot.Material1Id;
var projectWelder = BLL.Welder_ProjectWelderService.GetProjectWelderByProjectIdAndWelderId(this.ProjectId, item.BackingWelderId);
var projectUnit = BLL.Project_UnitService.GetProject_UnitByProjectIdUnitId(this.ProjectId, projectWelder.UnitId);
if (projectUnit != null && projectUnit.WelderQueIsUse == true)
{
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 = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
}
else // 大于一种焊接方法,如氩电联焊
{
canSave = 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 = IsOK(floorWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
}
if (cellWelderQualifys != null && cellWelderQualifys.Count() > 0)
{
isok2 = IsOK(cellWelderQualifys, wmeCodes[0], location, weldTypeGroup, ste, dia, sch);
}
if (isok1 && isok2)
{
canSave = true;
}
}
else
{
canSave = TwoWmeIsOK(floorWelderQualifys, cellWelderQualifys, wmeCodes[0], wmeCodes[1], location, weldTypeGroup, ste, dia, sch);
}
}
}
else
{
canSave = true;
}
if (canSave == false)
{
eventArg = eventArg + jot.WeldJointCode + ",";
}
}
2024-05-08 16:27:28 +08:00
#endregion
#region 线
//var pro = BLL.Base_ProjectService.GetProjectByProjectId(this.ProjectId);
//// 生成管线的随机数
//var romPipe = (from x in GetWeldingDailyItem
// join y in Funs.DB.Pipeline_WeldJoint on x.WeldJointId equals y.WeldJointId
// select y.PipelineId).Distinct();
//if (romPipe.Count() > 0)
//{
// foreach (string pipeId in romPipe)
// {
// var iso = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(pipeId);
// var pipe = Funs.DB.View_Pipeline_Random.FirstOrDefault(x => x.PipelineId == pipeId);
// int rate = Convert.ToInt32(pipe.DetectionRateValue);
// if (rate != 0)
// {
// // RT 随机数
// int rtTotalJotNum = Convert.ToInt32(pipe.RTTotalJointCount);
// // 已焊焊口数
// int rtWeldingJotNum = Convert.ToInt32(pipe.RTWeldingCount);
// // 已点口数
// int rtPointNum = Convert.ToInt32(pipe.RtPointCount);
// int rtMinValue = rtWeldingJotNum + 1;
// int rtMaxValue = rtTotalJotNum;
// if (pro.ProjectArea == "2")
// {
// // RT 活动口按管线比例
// int rtPointTotalNum = Convert.ToInt32(Math.Ceiling((double)(rtTotalJotNum * rate) / (double)100));
// int rtnum = rtPointTotalNum - rtPointNum;
// if (rtnum > 0)
// {
// int[] r = Funs.GetRandomNum(rtnum, rtMinValue, rtMaxValue);
// var q = from x in r orderby x select x;
// string random = string.Empty;
// foreach (int i in q)
// {
// if (i <= rtMaxValue)
// {
// random = random + i.ToString() + ",";
// }
// }
// if (random.Length > 0)
// {
// string randomNum = random.Substring(0, random.Length - 1);
// Pipeline_PipelineService.UpdatePipelineRTRandom(pipeId, randomNum);
// }
// }
// }
// else //福建: RT检测先按比例分段点口
// {
// int oldRandomNum = 0;
// if (iso != null && !string.IsNullOrEmpty(iso.RandomNum))
// {
// oldRandomNum = iso.RandomNum.Split(',').Count();
// }
// int totalJotNum = Convert.ToInt32(pipe.TotalJointCount);
// // 分段num1为向上取整
// int num1 = Convert.ToInt32(Math.Ceiling((double)(totalJotNum * rate) / (double)100));
// // num2为向下取整
// int num2 = Convert.ToInt32(Math.Floor((double)(totalJotNum * rate) / (double)100));
// // 如相等说明随机数已产生,并符合数量,否则重新计算
// if (oldRandomNum != num1)
// {
// int min = 1;
// int max = Convert.ToInt32(Math.Ceiling((double)(100) / (double)(rate)));
// string random = string.Empty;
// for (int i = 1; i <= num2; i++)
// {
// int[] r = Funs.GetRandomNum(1, min, max);
// random = random + r[0] + ",";
// }
// if (num1 > num2)
// {
// int y = totalJotNum - (num2 * max);
// int[] r = Funs.GetRandomNum(1, min, y);
// random = random + r[0] + ",";
// }
// if (random.Length > 0)
// {
// string randomNum = random.Substring(0, random.Length - 1);
// Pipeline_PipelineService.UpdatePipelineRTRandom(pipeId, randomNum);
// }
// }
// #region 暂不用:固定口(大于管线检测比例的40%这里按50%计算) 随机数
// // 先优先点固定口(大于管线检测比例的40%这里按50%计算) 随机数
// //int gdTotalJotNum = Convert.ToInt32(pipe.GDTotalJointCount);
// //int gdWeldingJotNum = Convert.ToInt32(pipe.GDWeldingCount);
// //int gdPointNum = Convert.ToInt32(pipe.GDPointCount);
// //int gdMinValue = gdWeldingJotNum + 1;
// //int gdMaxValue = gdTotalJotNum;
// //int gdPointTotalNum = Convert.ToInt32(Math.Ceiling((double)(totalJotNum * rate * 0.5) / (double)100));
// //int gdnum = gdPointTotalNum - gdPointNum;
// //int gdRandomCount = 0;
// //if (gdnum > 0)
// //{
// // string random = string.Empty;
// // if (gdnum > gdMaxValue) // 说明固定口数量不够,所以所有固定口都点
// // {
// // for (int i = gdMinValue; i <= gdMaxValue; i++)
// // {
// // random = random + i.ToString() + ",";
// // }
// // gdRandomCount = gdMaxValue - gdMinValue + 1;
// // }
// // else
// // {
// // int[] r = Funs.GetRandomNum(gdnum, gdMinValue, gdMaxValue);
// // var q = from x in r orderby x select x;
// // foreach (int i in q)
// // {
// // if (i <= gdMaxValue)
// // {
// // random = random + i.ToString() + ",";
// // }
// // }
// // gdRandomCount = q.Count();
// // }
// // if (random.Length > 0)
// // {
// // string randomNum = random.Substring(0, random.Length - 1);
// // Pipeline_PipelineService.UpdatePipelineGDRandom(pipeId, randomNum);
// // }
// //}
// //// 活动口
// //// RT 活动口按管线比例
// //int pointTotalNum = Convert.ToInt32(Math.Ceiling((double)(totalJotNum * rate) / (double)100));
// //int rtnum = pointTotalNum - rtPointNum - gdPointNum - gdRandomCount;
// //if (rtnum > 0)
// //{
// // string random = string.Empty;
// // if (rtnum > rtMaxValue) // 说明活动口数量不够,所以所有活动口都点
// // {
// // for (int i = rtMinValue; i <= rtMaxValue; i++)
// // {
// // random = random + i.ToString() + ",";
// // }
// // }
// // else
// // {
// // int[] r = Funs.GetRandomNum(rtnum, rtMinValue, rtMaxValue);
// // var q = from x in r orderby x select x;
// // foreach (int i in q)
// // {
// // if (i <= rtMaxValue)
// // {
// // random = random + i.ToString() + ",";
// // }
// // }
// // }
// // if (random.Length > 0)
// // {
// // string randomNum = random.Substring(0, random.Length - 1);
// // Pipeline_PipelineService.UpdatePipelineRTRandom(pipeId, randomNum);
// // }
// //}
// #endregion
// }
// // PT 随机数
// int ptTotalJotNum = Convert.ToInt32(pipe.PTTotalJointCount);
// int ptWeldingJotNum = Convert.ToInt32(pipe.PTWeldingCount);
// int ptPointNum = Convert.ToInt32(pipe.PtPointCount);
// int ptMinValue = ptWeldingJotNum + 1;
// int ptMaxValue = ptTotalJotNum;
// int ptPointTotalNum = Convert.ToInt32(Math.Ceiling((double)(ptTotalJotNum * rate) / (double)100));
// int ptnum = ptPointTotalNum - ptPointNum;
// if (ptnum > 0)
// {
// int[] r = Funs.GetRandomNum(ptnum, ptMinValue, ptMaxValue);
// var q = from x in r orderby x select x;
// string random = string.Empty;
// foreach (int i in q)
// {
// if (i <= ptMaxValue)
// {
// random = random + i.ToString() + ",";
// }
// }
// if (random.Length > 0)
// {
// string randomNum = random.Substring(0, random.Length - 1);
// Pipeline_PipelineService.UpdatePipelinePTRandom(pipeId, randomNum);
// }
// }
// }
// }
//}
#endregion
2024-06-05 08:24:19 +08:00
if (!string.IsNullOrEmpty(coodeNumError))
{
ShowNotify(coodeNumError, MessageBoxIcon.Warning, 10000);
return;
}
2024-05-08 16:27:28 +08:00
// 焊工资质都符合条件
2024-06-05 08:24:19 +08:00
else if (eventArg == string.Empty)
2024-05-08 16:27:28 +08:00
{
Model.Pipeline_WeldingDaily newWeldingDaily = new Model.Pipeline_WeldingDaily();
newWeldingDaily.WeldingDailyCode = this.txtWeldingDailyCode.Text.Trim();
newWeldingDaily.ProjectId = this.ProjectId;
if (this.drpInstallation.SelectedValue != BLL.Const._Null)
{
newWeldingDaily.InstallationId = this.drpInstallation.SelectedValue;
}
newWeldingDaily.UnitId = this.drpUnit.SelectedValue;
DateTime? weldDate = Funs.GetNewDateTime(this.txtWeldingDate.Text);
if (weldDate.HasValue)
{
newWeldingDaily.WeldingDate = weldDate.Value;
}
else
{
newWeldingDaily.WeldingDate = System.DateTime.Now;
}
newWeldingDaily.Tabler = this.hdTablerId.Text;
newWeldingDaily.TableDate = Funs.GetNewDateTime(this.txtTableDate.Text);
newWeldingDaily.Remark = this.txtRemark.Text.Trim();
if (!string.IsNullOrEmpty(this.WeldingDailyId))
{
newWeldingDaily.WeldingDailyId = this.WeldingDailyId;
BLL.Pipeline_WeldingDailyService.UpdatePipeline_WeldingDaily(newWeldingDaily);
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_WeldReportMenuId, Const.BtnModify, this.WeldingDailyId);
}
else
{
this.WeldingDailyId = SQLHelper.GetNewID(typeof(Model.Pipeline_WeldingDaily));
newWeldingDaily.WeldingDailyId = this.WeldingDailyId;
BLL.Pipeline_WeldingDailyService.AddPipeline_WeldingDaily(newWeldingDaily);
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_WeldReportMenuId, Const.BtnAdd, this.WeldingDailyId);
}
foreach (var item in GetWeldingDailyItem)
{
var newWeldJoint = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(item.WeldJointId);
//var pipeline = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(newWeldJoint.PipelineId);
//var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(item.WeldTypeId);
//string weldTypeCode = joty.WeldTypeCode;
newWeldJoint.WeldingDailyId = this.WeldingDailyId;
newWeldJoint.WeldingDailyCode = this.txtWeldingDailyCode.Text.Trim();
newWeldJoint.CoverWelderId = item.CoverWelderId;
newWeldJoint.BackingWelderId = item.BackingWelderId;
newWeldJoint.Size = item.Size;
newWeldJoint.DoneDin = item.Size;
newWeldJoint.Dia = item.Dia;
newWeldJoint.Thickness = item.Thickness;
if (item.Dia != null && item.Thickness != null)
{
newWeldJoint.Specification = "Φ" + Funs.GetClearZero(item.Dia.Value) + "×" + Funs.GetClearZero(item.Thickness.Value);
}
newWeldJoint.JointAttribute = item.JointAttribute;
newWeldJoint.JointArea = item.JointArea;
newWeldJoint.WeldingLocationId = item.WeldingLocationId;
newWeldJoint.Material1Id = item.MaterialId1;
newWeldJoint.Material2Id = item.MaterialId2;
2024-06-05 08:24:19 +08:00
if (item.CoodeHeartNo1.Contains(":"))
{
newWeldJoint.Coode1 = item.CoodeHeartNo1.Split(':')[0];
newWeldJoint.HeartNo1 = item.CoodeHeartNo1.Split(':')[1];
}
if (item.CoodeHeartNo2.Contains(":"))
{
newWeldJoint.Coode2 = item.CoodeHeartNo2.Split(':')[0];
newWeldJoint.HeartNo2 = item.CoodeHeartNo2.Split(':')[1];
}
2024-05-08 16:27:28 +08:00
newWeldJoint.PipeAssembly1Id = item.Components1Id;
newWeldJoint.PipeAssembly2Id = item.Components2Id;
newWeldJoint.WeldingMethodId = item.WeldingMethodId;
newWeldJoint.WeldMatId = item.WeldMatId;
newWeldJoint.WeldSilkId = item.WeldSilkId;
newWeldJoint.WeldingDate = newWeldingDaily.WeldingDate;
newWeldJoint.PipeSegment = item.PipeSegment;
newWeldJoint.WPQId = item.WPQId;
BLL.Pipeline_WeldJointService.UpdateWeldJoint(newWeldJoint);
//更新焊口号 修改固定焊口号后 +G
//BLL.Pipeline_WeldJointService.UpdateWeldJointAddG(newWeldJoint.WeldJointId, newWeldJoint.JointAttribute, Const.BtnAdd);
2024-06-05 08:24:19 +08:00
BLL.Batch_PointBatchItemService.InsertPointBatch(this.ProjectId, this.drpUnit.SelectedValue, this.drpInstallation.SelectedValue, item.BackingWelderId, item.CoverWelderId, item.WeldJointId, newWeldingDaily.WeldingDate);
2024-05-08 16:27:28 +08:00
}
#region 60
//// 新建日报
//if (weldlines.Count() == 0)
//{
// foreach (var item in GetWeldingDailyItem)
// {
// errlog += InsertWeldingDailyItem(item, newWeldingDaily.WeldingDate, true);
// }
//}
//// 日报已存在的情况
//else
//{
// var weldJoints = from x in weldlines select x.WeldJointId;
// foreach (var item in GetWeldingDailyItem)
// {
// // 如日报明细存在则只更新焊口信息,如进批条件改变,则只有删除后再重新增加
// if (weldJoints.Contains(item.WeldJointId))
// {
// var newWeldJoint = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(item.WeldJointId);
// newWeldJoint.WeldingDailyId = this.WeldingDailyId;
// newWeldJoint.WeldingDailyCode = this.txtWeldingDailyCode.Text.Trim();
// //newWeldJoint.CoverWelderId = item.CoverWelderId;
// //newWeldJoint.BackingWelderId = item.BackingWelderId;
// newWeldJoint.WeldTypeId = item.WeldTypeId;
// //newWeldJoint.JointArea = item.JointArea;
// newWeldJoint.DoneDin = item.DoneDin;
// if (!string.IsNullOrEmpty(item.JointAttribute))
// {
// newWeldJoint.JointAttribute = item.JointAttribute;
// if (item.JointAttribute == "活动S")
// {
// newWeldJoint.JointArea = "S";
// }
// else
// {
// newWeldJoint.JointArea = "F";
// }
// }
// newWeldJoint.WeldingLocationId = item.WeldingLocationId;
// BLL.Pipeline_WeldJointService.UpdateWeldJoint(newWeldJoint);
// //更新焊口号 修改固定焊口号后 +G
// //BLL.Pipeline_WeldJointService.UpdateWeldJointAddG(newWeldJoint.WeldJointId, newWeldJoint.JointAttribute, Const.BtnAdd);
// }
// else
// {
// errlog += InsertWeldingDailyItem(item, newWeldingDaily.WeldingDate, true);
// }
// }
//}
// 焊工每天超过60达因的提示暂不用
//foreach (var item in GetWeldingDailyItem)
//{
// if (!string.IsNullOrEmpty(item.CoverWelderId) && !string.IsNullOrEmpty(item.BackingWelderId))
// {
// bool cWelder = BLL.Pipeline_WeldJointService.GetWelderLimitDN(this.ProjectId, item.CoverWelderId, newWeldingDaily.WeldingDate.Value);
// bool bWelder = cWelder;
// if (item.CoverWelderId != item.BackingWelderId)
// {
// bWelder = BLL.Pipeline_WeldJointService.GetWelderLimitDN(this.ProjectId, item.BackingWelderId, newWeldingDaily.WeldingDate.Value);
// }
// if (cWelder || bWelder)
// {
// if (cWelder)
// {
// var coverWelder = BLL.WelderService.GetWelderById(item.CoverWelderId);
// if (coverWelder != null)
// {
// string txt = Resources.Lan.WelderCode + coverWelder.WelderCode + Resources.Lan.WeldingDiameter;
// if (!errlog.Contains(txt))
// {
// errlog += txt;
// }
// }
// }
// if (bWelder)
// {
// var backingWelder = BLL.WelderService.GetWelderById(item.BackingWelderId);
// if (backingWelder != null)
// {
// string txt = Resources.Lan.WelderCode + backingWelder.WelderCode + Resources.Lan.WeldingDiameter;
// if (!errlog.Contains(txt))
// {
// errlog += txt;
// }
// }
// }
// }
// }
//}
#endregion
ShowNotify(Resources.Lan.SaveSuccessfully, MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
}
else
{
Alert.ShowInTop(Resources.Lan.NoQualification + "【" + eventArg + "】" + Resources.Lan.WeldingConditions, Resources.Lan.SubmitResults, MessageBoxIcon.Warning);
}
}
else
{
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
return;
}
}
#endregion
#region
/// <summary>
/// 日报明细插入(更新焊口信息),组批等
/// </summary>
/// <param name="item"></param>
/// <param name="weldingDailyId"></param>
/// <returns></returns>
private string InsertWeldingDailyItem(Model.SpWeldingDailyItem item, DateTime? weldingDate, bool isSave)
{
string errlog = string.Empty;
var newWeldJoint = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(item.WeldJointId);
var pipeline = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(newWeldJoint.PipelineId);
if (newWeldJoint != null && string.IsNullOrEmpty(newWeldJoint.WeldingDailyId))
{
if (!string.IsNullOrEmpty(item.CoverWelderId) && !string.IsNullOrEmpty(item.BackingWelderId))
{
canSave = true;
if (canSave ==true) //全部条件符合
{
if (isSave)
{
newWeldJoint.WeldingDailyId = this.WeldingDailyId;
newWeldJoint.WeldingDailyCode = this.txtWeldingDailyCode.Text.Trim();
newWeldJoint.CoverWelderId = item.CoverWelderId;
newWeldJoint.BackingWelderId = item.BackingWelderId;
newWeldJoint.WeldTypeId = item.WeldTypeId;
newWeldJoint.JointArea = item.JointArea;
newWeldJoint.DoneDin = item.DoneDin;
newWeldJoint.JointAttribute = item.JointAttribute;
newWeldJoint.WeldingLocationId = item.WeldingLocationId;
BLL.Pipeline_WeldJointService.UpdateWeldJoint(newWeldJoint);
//更新焊口号 修改固定焊口号后 +G
//BLL.Pipeline_WeldJointService.UpdateWeldJointAddG(newWeldJoint.WeldJointId, newWeldJoint.JointAttribute, Const.BtnAdd);
// 进批
//BLL.Batch_PointBatchItemService.InsertPointBatch(this.ProjectId, this.drpUnit.SelectedValue, this.drpInstallation.SelectedValue, item.CoverWelderId, item.WeldJointId, weldingDate);
}
}
else
{
errlog = Resources.Lan.NoQualification + "【" + newWeldJoint.WeldJointCode + "】" + Resources.Lan.WeldingConditions;
}
}
else
{
errlog = Resources.Lan.WeldingJoint + "【" + newWeldJoint.WeldJointCode + "】" + Resources.Lan.NoWelderSelected;
}
}
return errlog;
}
#endregion
#region Grid页面信息
/// <summary>
/// 收集Grid页面信息
/// </summary>
/// <returns></returns>
private List<Model.SpWeldingDailyItem> CollectGridJointInfo()
{
List<Model.SpWeldingDailyItem> GetWeldingDailyItem = null;
List<Model.SpWeldingDailyItem> getNewWeldReportItem = new List<Model.SpWeldingDailyItem>();
if (!string.IsNullOrEmpty(this.hdItemsString.Text))
{
GetWeldingDailyItem = BLL.Pipeline_WeldingDailyService.GetWeldReportAddItem(this.hdItemsString.Text);
}
else if (string.IsNullOrEmpty(this.hdItemsString.Text) && this.WeldingDailyId != null)
{
GetWeldingDailyItem = BLL.Pipeline_WeldingDailyService.GetWeldingDailyItem(this.WeldingDailyId);
}
JArray mergedData = Grid1.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
string rowID = values.Value<string>("WeldJointId").ToString();
var item = GetWeldingDailyItem.FirstOrDefault(x => x.WeldJointId == rowID);
if (item != null)
{
var coverWelderCode = (from x in Funs.DB.Welder_Welder
join y in Funs.DB.Welder_ProjectWelder
on x.WelderId equals y.WelderId
where y.ProjectId == this.ProjectId && x.WelderCode == values.Value<string>("CoverWelderId")
select x).FirstOrDefault();
if (coverWelderCode != null)
{
item.CoverWelderCode = coverWelderCode.WelderCode;
item.CoverWelderId = coverWelderCode.WelderId;
}
var backingWelderCode = (from x in Funs.DB.Welder_Welder
join y in Funs.DB.Welder_ProjectWelder
on x.WelderId equals y.WelderId
where y.ProjectId == this.ProjectId && x.WelderCode == values.Value<string>("BackingWelderId")
select x).FirstOrDefault();
if (backingWelderCode != null)
{
item.BackingWelderCode = backingWelderCode.WelderCode;
item.BackingWelderId = backingWelderCode.WelderId;
}
var weldType = (from x in Funs.DB.Base_WeldType
where x.WeldTypeCode == values.Value<string>("WeldTypeId")
select x).FirstOrDefault();
if (weldType != null)
{
item.WeldTypeId = weldType.WeldTypeId;
}
//item.JointArea = values.Value<string>("JointArea").ToString();
if (!string.IsNullOrEmpty(values.Value<string>("JointAttribute")))
{
item.JointAttribute = values.Value<string>("JointAttribute").ToString();
2024-06-05 08:24:19 +08:00
if (item.JointAttribute == "S")
2024-05-08 16:27:28 +08:00
{
item.JointArea = "S";
}
else
{
item.JointArea = "F";
}
}
2024-06-05 08:24:19 +08:00
2024-05-08 16:27:28 +08:00
var weldingLocation = (from x in Funs.DB.Base_WeldingLocation
where x.WeldingLocationCode == values.Value<string>("WeldingLocationId")
select x).FirstOrDefault();
if (weldingLocation != null)
{
item.WeldingLocationId = weldingLocation.WeldingLocationId;
}
item.Size = Funs.GetNewDecimalOrZero(values.Value<string>("DoneDin").ToString());
item.DoneDin = Funs.GetNewDecimalOrZero(values.Value<string>("DoneDin").ToString());
2024-06-05 08:24:19 +08:00
item.CoodeHeartNo1 = values.Value<string>("CoodeHeartNo1").ToString();
item.CoodeHeartNo2 = values.Value<string>("CoodeHeartNo2").ToString();
2024-05-08 16:27:28 +08:00
var wmt = (from x in Funs.DB.Base_WeldingMethod
where x.WeldingMethodCode == values.Value<string>("WeldingMethodCode")
select x).FirstOrDefault();
if (wmt != null)
{
item.WeldingMethodId = wmt.WeldingMethodId;
}
var mat1= (from x in Funs.DB.Base_Material
where x.MaterialCode == values.Value<string>("Material1Code")
select x).FirstOrDefault();
if (mat1 != null)
{
item.MaterialId1 = mat1.MaterialId;
}
var mat2 = (from x in Funs.DB.Base_Material
where x.MaterialCode == values.Value<string>("Material2Code")
select x).FirstOrDefault();
if (mat2 != null)
{
item.MaterialId2 = mat2.MaterialId;
}
var com1 = (from x in Funs.DB.Base_Components
where x.ComponentsCode == values.Value<string>("Components1Code")
select x).FirstOrDefault();
if (com1 != null)
{
item.Components1Id = com1.ComponentsId;
}
var com2 = (from x in Funs.DB.Base_Components
where x.ComponentsCode == values.Value<string>("Components2Code")
select x).FirstOrDefault();
if (com2 != null)
{
item.Components2Id = com2.ComponentsId;
}
//var weldSilk = (from x in Funs.DB.Base_Consumables
// where x.ConsumablesCode == values.Value<string>("WeldSilkCode")
// select x).FirstOrDefault();
string WeldSilkCodes = values.Value<string>("WeldSilkCode");
if (!string.IsNullOrEmpty(WeldSilkCodes))
{
string weldSilkIds = string.Empty;
string[] weldSilkCodes = WeldSilkCodes.Split(',');
if (weldSilkCodes.Count() > 0)
{
foreach (string s in weldSilkCodes)
{
var silk = Funs.DB.Base_Consumables.FirstOrDefault(e => e.ConsumablesCode == s);
if (silk != null)
{
weldSilkIds = weldSilkIds + silk.ConsumablesId + ',';
}
}
if (weldSilkIds.Length > 0)
{
weldSilkIds = weldSilkIds.Substring(0, weldSilkIds.Length - 1);
}
}
item.WeldSilkId = weldSilkIds;
}
//if (weldSilk != null)
//{
// item.WeldSilkId = weldSilk.ConsumablesId;
//}
var weldMat = (from x in Funs.DB.Base_Consumables
where x.ConsumablesCode == values.Value<string>("WeldMatCode")
select x).FirstOrDefault();
if (weldMat != null)
{
item.WeldMatId = weldMat.ConsumablesId;
}
item.PipeSegment = values.Value<string>("PipeSegment").ToString();
var wps = (from x in Funs.DB.WPQ_WPQList
where x.WPQCode == values.Value<string>("WPQCode") && x.ProjectId==CurrUser.LoginProjectId
select x).FirstOrDefault();
if (wps != null)
{
item.WPQId = wps.WPQId;
}
getNewWeldReportItem.Add(item);
}
}
return getNewWeldReportItem;
}
#endregion
#region Grid
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
List<Model.SpWeldingDailyItem> GetWeldingDailyItem = BLL.Pipeline_WeldingDailyService.GetWeldReportAddItem(this.hdItemsString.Text);
this.BindGrid(GetWeldingDailyItem);
//SetDrpByDrpUnitChange();
//this.hdItemsString.Text = string.Empty;
}
#endregion
#region
/// <summary>
/// 右键删除事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
List<Model.SpWeldingDailyItem> GetWeldingDailyItem = this.CollectGridJointInfo();
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
var item = GetWeldingDailyItem.FirstOrDefault(x => x.WeldJointId == rowID);
if (item != null && !BLL.Batch_NDEItemService.IsCheckedByWeldJoint(rowID))
{
GetWeldingDailyItem.Remove(item);
// 删除焊口所在批和委托检测里信息
BLL.Batch_NDEItemService.DeleteAllNDEInfoToWeldJoint(item.WeldJointId);
// 更新焊口信息
var updateWeldJoint = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(item.WeldJointId);
if (updateWeldJoint != null)
{
updateWeldJoint.WeldingDailyId = null;
updateWeldJoint.WeldingDailyCode = null;
updateWeldJoint.CoverWelderId = null;
updateWeldJoint.BackingWelderId = null;
BLL.Pipeline_WeldJointService.UpdateWeldJoint(updateWeldJoint);
}
}
else
{
Alert.ShowInTop("不能删除,已检测并审核!", MessageBoxIcon.Warning);
}
}
BindGrid(GetWeldingDailyItem);
ShowNotify(Resources.Lan.DeletedSuccessfully, MessageBoxIcon.Success);
}
}
#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
/// <summary>
/// 查找未焊接焊口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ckSelect_Click(object sender, EventArgs e)
{
string weldJointIds = string.Empty;
for (int i = 0; i < Grid1.Rows.Count; i++)
{
string weldJointId = Grid1.DataKeys[i][0].ToString();
weldJointIds = weldJointIds + weldJointId + "|";
}
if (weldJointIds != string.Empty)
{
weldJointIds = weldJointIds.Substring(0, weldJointIds.Length - 1);
}
if (!string.IsNullOrEmpty(this.drpUnit.SelectedValue) && this.drpUnit.SelectedValue != BLL.Const._Null && !string.IsNullOrEmpty(this.drpInstallation.SelectedValue) && this.drpInstallation.SelectedValue != BLL.Const._Null)
{
string strList = this.drpInstallation.SelectedValue + "|" + this.drpUnit.SelectedValue + "|" + this.WeldingDailyId;
string window = String.Format("WeldReportItemEdit.aspx?strList={0}&weldJointIds={1}", strList, weldJointIds, "编辑 - ");
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdItemsString.ClientID) + Window1.GetShowReference(window));
}
else
{
Alert.ShowInTop(Resources.Lan.PleaseUnitAndInstallation, MessageBoxIcon.Warning);
}
}
#endregion
}
}