using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using BLL;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.WeldingProcess.WeldingManage
{
public partial class WeldReportEdit : PageBase
{
#region 加载页面
///
/// 加载页面
///
///
///
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//this.ProjectId = Request.Params["ProjectId"];
//this.WeldingDailyId = Request.Params["WeldingDailyId"];
#region 不用了
///焊缝类型
//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();
#endregion
///焊接位置
this.drpWeldingLocation.DataTextField = "WeldingLocationCode";
this.drpWeldingLocation.DataValueField = "WeldingLocationCode";
this.drpWeldingLocation.DataSource = from x in Funs.DB.Base_WeldingLocation orderby x.WeldingLocationCode select x;
this.drpWeldingLocation.DataBind();
this.drpWeldingLocation.SelectedIndex = 0;
// 焊接属性
this.drpJointAttribute.DataTextField = "Text";
this.drpJointAttribute.DataValueField = "Value";
this.drpJointAttribute.DataSource = BLL.DropListService.HJGL_JointAttributeItem();
this.drpJointAttribute.DataBind();
// 焊接方法
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();
if (!string.IsNullOrEmpty(Request.Params["WeldingDailyId"]))
{
List GetWeldingDailyItem = BLL.Pipeline_WeldingDailyService.GetWeldingDailyItem(Request.Params["WeldingDailyId"]);
this.BindGrid(GetWeldingDailyItem); // 初始化页面
this.CalculationAmount();
}
this.PageInfoLoad(); // 加载页面
}
}
#endregion
#region 超量焊工提示
///
/// 超量焊工提示
///
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(Request.Params["WeldingDailyId"]);
foreach (var item in weldJoints)
{
bool cWelder = BLL.Pipeline_WeldJointService.GetWelderLimitDN(Request.Params["WeldingDailyId"], item.CoverWelderId, date.Value);
bool bWelder = cWelder;
if (item.BackingWelderId != item.CoverWelderId)
{
bWelder = BLL.Pipeline_WeldJointService.GetWelderLimitDN(Request.Params["WeldingDailyId"], 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 加载页面输入提交信息
///
/// 加载页面输入提交信息
///
private void PageInfoLoad()
{
var report = BLL.Pipeline_WeldingDailyService.GetPipeline_WeldingDailyByWeldingDailyId(Request.Params["WeldingDailyId"]);
if (report != null)
{
BLL.Base_UnitService.InitProjectUnitDropDownList(this.drpUnit, true, report.ProjectId, BLL.Const.UnitType_5, Resources.Lan.PleaseSelect);
BLL.Project_InstallationService.InitInstallationDropDownList(this.drpInstallation, true, report.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, CurrUser.LoginProjectId, BLL.Const.UnitType_5, Resources.Lan.PleaseSelect);
BLL.Project_InstallationService.InitInstallationDropDownList(this.drpInstallation, true, CurrUser.LoginProjectId, 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 单位下拉框变化加载对应的焊工信息,不用了
///
/// 单位下拉框变化加载对应的焊工信息
///
///
///
protected void drpUnit_SelectedIndexChanged(object sender, EventArgs e)
{
//this.drpCoverWelderId.Items.Clear();
//this.drpBackingWelderId.Items.Clear();
//if (this.drpUnit.SelectedValue != BLL.Const._Null)
//{
// 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 数据绑定
///
/// 数据绑定
///
private void BindGrid(List 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 排序
///
/// 排序
///
///
///
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
List GetWeldingDailyItem = this.CollectGridJointInfo(Request.Params["WeldingDailyId"]);
this.BindGrid(GetWeldingDailyItem);
}
#endregion
#region 资质分析
private bool IsOK(List 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.WeldingMethod))
{
okNum++;
}
}
else
{
okNum++;
}
if (welderQualify.WeldingLocation == "ALL") //焊接位置
{
okNum++;
}
else
{
if (!string.IsNullOrEmpty(location))
{
if (welderQualify.WeldingLocation.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 != "角焊缝")
{
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;
}
///
/// 两种焊接方法的资质判断
///
///
///
///
///
///
///
///
///
///
private bool TwoWmeIsOK(List floorWelderQualifys, List 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.WeldingMethod)
&& (x.WeldingLocation == "ALL" || (location == null || location == "" || x.WeldingLocation.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.WeldingMethod)
&& (x.WeldingLocation == "ALL" || (location == null || location == "" || x.WeldingLocation.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 != "角焊缝") // 当为角焊缝时,管径和壁厚不限制
{
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
//private static bool canSave; //是否可以保存
#region 焊接日报 提交事件
///
/// 编辑焊接日报
///
///
///
protected void btnSave_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_WeldReportMenuId, Const.BtnSave))
{
string dayReportId = Request.Params["WeldingDailyId"];
if (BLL.Pipeline_WeldingDailyService.IsExistWeldingDailyCode(this.txtWeldingDailyCode.Text, !string.IsNullOrEmpty(dayReportId) ? dayReportId : "", CurrUser.LoginProjectId))
{
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 GetWeldingDailyItem = this.CollectGridJointInfo(dayReportId);
foreach (var item in GetWeldingDailyItem)
{
bool canSave = false;
var jot = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(item.WeldJointId);
var isoNo = BLL.Pipeline_PipelineService.GetPipelineByPipelineId(jot.PipelineId);
var joty = BLL.Base_WeldTypeService.GetWeldTypeByWeldTypeId(jot.WeldTypeId);
string weldTypeGroup = joty.WeldTypeGroup;
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;
if (weldTypeCode == "SOB")
{
canSave = true;
}
else
{
List floorWelderQualifys = (from x in Funs.DB.Welder_WelderQualify
where x.WelderId == floorWelder && x.WeldingMethod != null
&& x.WeldingLocation != null && x.MaterialType != null
&& x.WeldType != null && x.ThicknessMax != null && x.SizesMin != null
&& x.LimitDate >= DateTime.Now
select x).ToList();
List cellWelderQualifys = (from x in Funs.DB.Welder_WelderQualify
where x.WelderId == cellWelder && x.WeldingMethod != null
&& x.WeldingLocation != null && x.MaterialType != null
&& x.WeldType != null && x.ThicknessMax != null && x.SizesMin != null
&& x.LimitDate >= DateTime.Now
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);
}
}
}
if (canSave == false)
{
eventArg = eventArg + isoNo.PipelineCode+":"+jot.WeldJointCode + ",";
}
}
// 焊工资质都符合条件
if (eventArg == string.Empty)
{
Model.Pipeline_WeldingDaily newWeldingDaily = new Model.Pipeline_WeldingDaily();
newWeldingDaily.WeldingDailyCode = this.txtWeldingDailyCode.Text.Trim();
newWeldingDaily.ProjectId = CurrUser.LoginProjectId;
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(dayReportId))
{
newWeldingDaily.WeldingDailyId = dayReportId;
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, dayReportId);
}
else
{
dayReportId = SQLHelper.GetNewID(typeof(Model.Pipeline_WeldingDaily));
newWeldingDaily.WeldingDailyId = dayReportId;
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, dayReportId);
}
// 更新焊口表,并按条件组批
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 = dayReportId;
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;
newWeldJoint.JointAttribute = item.JointAttribute;
newWeldJoint.JointArea = item.JointArea;
newWeldJoint.WeldingLocationId = item.WeldingLocationId;
newWeldJoint.WeldingMethodId = item.WeldingMethodId;
BLL.Pipeline_WeldJointService.UpdateWeldJoint(newWeldJoint);
//更新焊口号 修改固定焊口号后 +G
//BLL.Pipeline_WeldJointService.UpdateWeldJointAddG(newWeldJoint.WeldJointId, newWeldJoint.JointAttribute, Const.BtnAdd);
// 焊缝类型非SOB进批
if (weldTypeCode != "SOB")
{
BLL.Batch_PointBatchItemService.InsertPointBatch(CurrUser.LoginProjectId, item.BackingWelderId, item.WeldJointId, newWeldingDaily.WeldingDate);
}
}
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);
}
#region (暂不用)
//List GetWeldingDailyItem = this.CollectGridJointInfo();
//string errlog = string.Empty;
//var weldlines = BLL.Pipeline_WeldJointService.GetWeldlinesByWeldingDailyId(this.WeldingDailyId);
//canSave = false;
//// 新建日报
//if (weldlines.Count() == 0)
//{
// foreach (var item in GetWeldingDailyItem)
// {
// errlog += InsertWeldingDailyItem(item, newWeldingDaily.WeldingDate, false);
// }
//}
//// 日报已存在的情况
//else
//{
// var weldJoints = from x in weldlines select x.WeldJointId;
// foreach (var item in GetWeldingDailyItem)
// {
// // 如日报明细存在则只更新焊口信息,如进批条件改变,则只有删除后再重新增加
// if (weldJoints.Contains(item.WeldJointId))
// {
// }
// else
// {
// errlog += InsertWeldingDailyItem(item, newWeldingDaily.WeldingDate, false);
// }
// }
//}
//if (canSave) //可以保存(至少有一个焊口的对应焊工资质符合要求)
//{
// 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);
// }
// // 新建日报
// 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;
// }
// }
// }
// }
// }
//}
//if (string.IsNullOrEmpty(errlog))
//{
// ShowNotify(Resources.Lan.SaveSuccessfully, MessageBoxIcon.Success);
// PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference());
//}
//else
//{
// // string okj = ActiveWindow.GetWriteBackValueReference(newWeldReportMain.WeldingDailyId) + ActiveWindow.GetHidePostBackReference();
// Alert.ShowInTop(Resources.Lan.SaveSuccessfully + Resources.Lan.WeldingDetails + errlog, Resources.Lan.SubmitResults, MessageBoxIcon.Warning);
// // ShowAlert("焊接明细中" + errlog, MessageBoxIcon.Warning);
//}
#endregion
}
else
{
ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning);
return;
}
}
#endregion
#region 日报明细插入(更新焊口信息),组批等,不用了
///
/// 日报明细插入(更新焊口信息),组批等
///
///
///
///
//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))
// {
// Model.Base_Material material = BLL.Base_MaterialService.GetMaterialByMaterialId(newWeldJoint.Material1Id);
// string steelType = material.SteelType; //钢材类型
// var welderQualifys = BLL.WelderQualifyService.GetWelderQualifysByWelderId(item.CoverWelderId);
// if (welderQualifys.Count() == 0)
// {
// errlog = Resources.Lan.NoQualification + "【" + newWeldJoint.WeldJointCode + "】" + Resources.Lan.WeldingConditions;
// }
// foreach (var welderQualify in welderQualifys)
// {
// int okNum = 0;
// var loc = from x in Funs.DB.Base_WeldingLocation
// where x.WeldingLocationId == welderQualify.WeldingLocationId
// select x;
// if (!string.IsNullOrEmpty(welderQualify.WeldingMethodId)) //焊接方法
// {
// if (newWeldJoint.WeldingMethodId == welderQualify.WeldingMethodId)
// {
// okNum++;
// }
// }
// else
// {
// okNum++;
// }
// if (loc.Count() > 0 && loc.First().WeldingLocationCode != "ALL" && !string.IsNullOrEmpty(item.WeldingLocationId)) //焊接位置
// {
// if (item.WeldingLocationId == welderQualify.WeldingLocationId)
// {
// okNum++;
// }
// }
// else
// {
// okNum++;
// }
// if (!string.IsNullOrEmpty(welderQualify.MaterialId)) //钢材类型
// {
// if (steelType == welderQualify.MaterialId)
// {
// okNum++;
// }
// }
// else
// {
// okNum++;
// }
// if (welderQualify.SizesMin != null) //最小寸径
// {
// if (newWeldJoint.Dia >= welderQualify.SizesMin)
// {
// okNum++;
// }
// }
// else
// {
// okNum++;
// }
// if (welderQualify.ThicknessMax != null) //最大壁厚
// {
// if (newWeldJoint.Thickness <= welderQualify.ThicknessMax)
// {
// okNum++;
// }
// }
// else
// {
// okNum++;
// }
// if (okNum == 5) //全部条件符合
// {
// canSave = true;
// break;
// }
// }
// 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.Size;
// //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页面信息
///
/// 收集Grid页面信息
///
///
private List CollectGridJointInfo(string dayReportId)
{
List GetWeldingDailyItem = null;
List getNewWeldReportItem = new List();
if (!string.IsNullOrEmpty(this.hdItemsString.Text))
{
GetWeldingDailyItem = BLL.Pipeline_WeldingDailyService.GetWeldReportAddItem(this.hdItemsString.Text);
}
else if (string.IsNullOrEmpty(this.hdItemsString.Text) && !string.IsNullOrEmpty(dayReportId))
{
GetWeldingDailyItem = BLL.Pipeline_WeldingDailyService.GetWeldingDailyItem(dayReportId);
}
JArray mergedData = Grid1.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value("status");
JObject values = mergedRow.Value("values");
string rowID = values.Value("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("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("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("WeldTypeId")
// select x).FirstOrDefault();
//if (weldType != null)
//{
// item.WeldTypeId = weldType.WeldTypeId;
//}
//item.JointArea = values.Value("JointArea").ToString();
if (!string.IsNullOrEmpty(values.Value("JointAttribute")))
{
item.JointAttribute = values.Value("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("WeldingLocationCode")
select x).FirstOrDefault();
if (weldingLocation != null)
{
item.WeldingLocationId = weldingLocation.WeldingLocationId;
}
item.Size = Funs.GetNewDecimalOrZero(values.Value("Size").ToString());
item.Dia = Funs.GetNewDecimalOrZero(values.Value("Dia").ToString());
item.Thickness = Funs.GetNewDecimalOrZero(values.Value("Thickness").ToString());
item.WeldingMethodCode = values.Value("WeldingMethodCode");
var weldingMethodCode = (from x in Funs.DB.Base_WeldingMethod
where x.WeldingMethodCode == values.Value("WeldingMethodCode")
select x).FirstOrDefault();
if (weldingMethodCode != null)
{
item.WeldingMethodId = weldingMethodCode.WeldingMethodId;
}
getNewWeldReportItem.Add(item);
}
}
return getNewWeldReportItem;
}
#endregion
#region Grid 关闭弹出窗口事件
///
/// 关闭弹出窗口
///
///
///
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
List GetWeldingDailyItem = BLL.Pipeline_WeldingDailyService.GetWeldReportAddItem(this.hdItemsString.Text);
this.BindGrid(GetWeldingDailyItem);
//SetDrpByDrpUnitChange();
//this.hdItemsString.Text = string.Empty;
}
#endregion
#region 右键删除事件
///
/// 右键删除事件
///
///
///
protected void btnMenuDelete_Click(object sender, EventArgs e)
{
if (Grid1.SelectedRowIndexArray.Length > 0)
{
List GetWeldingDailyItem = this.CollectGridJointInfo(Request.Params["WeldingDailyId"]);
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 查找
///
/// 查找未焊接焊口
///
///
///
protected void ckSelect_Click(object sender, EventArgs e)
{
CacheMove("weldreportEdit" + CurrUser.UserId);
string weldJoints = string.Empty;
JArray mergedData = Grid1.GetMergedData();
int i = 0;
foreach (JObject mergedRow in mergedData)
{
string weldJointId = Grid1.DataKeys[i][0].ToString();
string coverWelderId = "null"; // 14列
string backingWelderId = "null"; // 15列
string jointAttribute = "null"; //7列
string weldingLocationCode = "null"; //8列
string size = "null"; //9列
string dia = "null"; //10列
string thickness = "null"; //11列
string weldingMethodCode = "null"; //12列
string status = mergedRow.Value("status");
JObject values = mergedRow.Value("values");
if (Grid1.Rows[i].Values[14] != null)
{
coverWelderId = Grid1.Rows[i].Values[14].ToString();
}
if (Grid1.Rows[i].Values[15] != null)
{
backingWelderId = Grid1.Rows[i].Values[15].ToString();
}
if (!string.IsNullOrEmpty(values.Value("JointAttribute")))
{
jointAttribute = values.Value("JointAttribute").ToString();
}
if (!string.IsNullOrEmpty(values.Value("WeldingLocationCode")))
{
weldingLocationCode = values.Value("WeldingLocationCode").ToString();
}
if (!string.IsNullOrEmpty(values.Value("Size")))
{
size = values.Value("Size").ToString();
}
if (!string.IsNullOrEmpty(values.Value("Dia")))
{
dia = values.Value("Dia").ToString();
}
if (!string.IsNullOrEmpty(values.Value("Thickness")))
{
thickness = values.Value("Thickness").ToString();
}
if (!string.IsNullOrEmpty(values.Value("WeldingMethodCode")))
{
weldingMethodCode = values.Value("WeldingMethodCode").ToString();
}
weldJoints = weldJoints + weldJointId + "|" + coverWelderId + "|" + backingWelderId + "|" + jointAttribute + "|" + weldingLocationCode + "|" + size + "|" + dia + "|" + thickness + "|" + weldingMethodCode + "@";
i++;
}
if (weldJoints != string.Empty)
{
//weldJoints = HttpUtility.UrlEncodeUnicode(weldJoints.Substring(0, weldJoints.Length - 1));
weldJoints = weldJoints.Substring(0, weldJoints.Length - 1);
CacheSet("weldreportEdit"+CurrUser.UserId, weldJoints, 600);
}
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 + "|" + Request.Params["WeldingDailyId"];
string window = String.Format("WeldReportItemEdit.aspx?strList={0}", strList, "编辑 - ");
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdItemsString.ClientID) + Window1.GetShowReference(window));
}
else
{
Alert.ShowInTop(Resources.Lan.PleaseUnitAndInstallation, MessageBoxIcon.Warning);
}
}
#endregion
}
}