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

1409 lines
70 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

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

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.UI.WebControls;
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();
///焊接位置
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);
// 物料码
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
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();
// 判断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 + "请检查后再导入";
}
#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 + ",";
}
}
#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
if (!string.IsNullOrEmpty(coodeNumError))
{
ShowNotify(coodeNumError, MessageBoxIcon.Warning, 10000);
return;
}
// 焊工资质都符合条件
else if (eventArg == string.Empty)
{
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;
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];
}
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);
BLL.Batch_PointBatchItemService.InsertPointBatch(this.ProjectId, this.drpUnit.SelectedValue, this.drpInstallation.SelectedValue, item.BackingWelderId, item.CoverWelderId, item.WeldJointId, newWeldingDaily.WeldingDate);
}
#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();
if (item.JointAttribute == "S")
{
item.JointArea = "S";
}
else
{
item.JointArea = "F";
}
}
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());
item.CoodeHeartNo1 = values.Value<string>("CoodeHeartNo1").ToString();
item.CoodeHeartNo2 = values.Value<string>("CoodeHeartNo2").ToString();
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
}
}