2024-05-13 08:48:51 +08:00
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Linq ;
using BLL ;
namespace FineUIPro.Web.WeldingProcess.TrustManage
{
public partial class SelectExpandPoint : PageBase
{
#region 定 义 项
/// <summary>
/// 批主键
/// </summary>
public string PointBatchId
{
get
{
return ( string ) ViewState [ "PointBatchId" ] ;
}
set
{
ViewState [ "PointBatchId" ] = value ;
}
}
#endregion
#region 加 载 页 面
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load ( object sender , EventArgs e )
{
if ( ! IsPostBack )
{
this . PointBatchId = Request . Params [ "PointBatchId" ] ;
var pointBatch = Batch_PointBatchService . GetPointBatchById ( PointBatchId ) ;
if ( pointBatch ! = null )
{
this . lbTitle . Text = "当前批号:" + pointBatch . PointBatchCode ;
var pointBatchItemRepairs = ( from x in Funs . DB . View_Batch_PointBatchItem
where x . PointBatchId = = this . PointBatchId & & ! x . CutDate . HasValue
2026-02-10 15:50:55 +08:00
& & ( x . IsCancel = = false | | x . IsCancel = = null )
2024-05-13 08:48:51 +08:00
& & ! x . RepairDate . HasValue & & x . PointState = = null
select x ) . ToList ( ) ;
var pointBatchItem = ( from x in Funs . DB . View_Batch_PointBatchItem
where x . PointBatchId = = this . PointBatchId & & ! x . CutDate . HasValue
2026-02-10 15:50:55 +08:00
& & ( x . IsCancel = = false | | x . IsCancel = = null )
& & ! x . RepairDate . HasValue & & x . PointState ! = null
2024-05-13 08:48:51 +08:00
select x ) . ToList ( ) ;
foreach ( var ext in pointBatchItem )
{
var trustItem = from x in Funs . DB . Batch_BatchTrustItem
where x . PointBatchItemId = = ext . PointBatchItemId
select x ;
if ( trustItem . Count ( ) = = 1 ) // 如大于1, 则表示这个口之前已进过委托单, 不能再选了
{
var firstBatchTrustItem = trustItem . FirstOrDefault ( ) ;
if ( firstBatchTrustItem ! = null )
{
var checkItems = from x in Funs . DB . Batch_NDEItem
where x . NDEItemID = = firstBatchTrustItem . TrustBatchItemId
select x ;
if ( checkItems . Count ( ) = = 0 ) // 还未进检测单
{
pointBatchItemRepairs . Add ( ext ) ;
}
else
{
var checkItem = checkItems . FirstOrDefault ( x = > ! x . SubmitDate . HasValue ) ;
if ( checkItem ! = null )
{
pointBatchItemRepairs . Add ( ext ) ;
}
}
}
}
if ( trustItem . Count ( ) = = 0 ) // 还未进委托单
{
pointBatchItemRepairs . Add ( ext ) ;
}
}
if ( pointBatchItemRepairs . Count ( ) > 0 )
{
BindGrid ( pointBatchItemRepairs ) ;
}
// 下拉
var p = ( from x in Funs . DB . Batch_PointBatchItem
join y in Funs . DB . Batch_PointBatch on x . PointBatchId equals y . PointBatchId
where y . ProjectId = = CurrUser . LoginProjectId & & x . RepairDate . HasValue
& & y . DetectionTypeId = = pointBatch . DetectionTypeId
select new { x . PointBatchId , y . PointBatchCode } ) . Distinct ( ) ;
drpPointBatch . DataValueField = "PointBatchId" ;
drpPointBatch . DataTextField = "PointBatchCode" ;
drpPointBatch . DataSource = p ;
drpPointBatch . DataBind ( ) ;
Funs . FineUIPleaseSelect ( drpPointBatch ) ;
}
}
}
#endregion
#region 数 据 绑 定
/// <summary>
/// 数据绑定
/// </summary>
private void BindGrid ( List < Model . View_Batch_PointBatchItem > pointBatchItemRepairs )
{
Grid1 . DataSource = pointBatchItemRepairs . OrderBy ( x = > x . PipelineCode ) . OrderBy ( x = > x . WeldJointCode ) ;
Grid1 . DataBind ( ) ;
string ids = string . Empty ;
for ( int i = 0 ; i < this . Grid1 . Rows . Count ; i + + )
{
var pointItem = BLL . Batch_PointBatchItemService . GetPointBatchItemByPointBatchItemId ( this . Grid1 . Rows [ i ] . DataKeys [ 0 ] . ToString ( ) ) ;
if ( pointItem ! = null )
{
if ( pointItem . PointState = = "2" )
{
ids + = pointItem . PointBatchItemId + "," ;
}
else if ( pointItem . PointState = = "1" )
{
this . Grid1 . Rows [ i ] . RowSelectable = false ;
}
}
}
if ( ! string . IsNullOrEmpty ( ids ) )
{
ids = ids . Substring ( 0 , ids . Length - 1 ) ;
this . Grid1 . SelectedRowIDArray = ids . Split ( ',' ) ;
}
}
#endregion
protected void drpPointBatch_OnSelectedIndexChanged ( object sender , EventArgs e )
{
if ( drpPointBatch . SelectedValue ! = Const . _Null )
{
var pItem = ( from x in Funs . DB . Batch_PointBatchItem
join y in Funs . DB . Pipeline_WeldJoint on x . WeldJointId equals y . WeldJointId
where x . PointBatchId = = drpPointBatch . SelectedValue & & x . RepairDate . HasValue
select new { x . PointBatchItemId , y . WeldJointCode } ) . ToList ( ) ;
drpPointBatchItem . DataValueField = "PointBatchItemId" ;
drpPointBatchItem . DataTextField = "WeldJointCode" ;
drpPointBatchItem . DataSource = pItem ;
drpPointBatchItem . DataBind ( ) ;
Funs . FineUIPleaseSelect ( drpPointBatchItem ) ;
}
}
protected void drpPointBatchItem_OnSelectedIndexChanged ( object sender , EventArgs e )
{
if ( drpPointBatchItem . SelectedValue ! = Const . _Null )
{
var trustItem = from x in Funs . DB . Batch_BatchTrustItem where x . PointBatchItemId = = drpPointBatchItem . SelectedValue select x ;
if ( trustItem . Count ( ) > 0 )
{
var trust = BLL . Batch_BatchTrustService . GetBatchTrustById ( trustItem . First ( ) . TrustBatchId ) ; //from x in Funs.DB.Batch_BatchTrust where x.TrustBatchId == trustItem.First().TrustBatchId select x;
if ( trust ! = null )
{
txtTrustCode . Text = trust . TrustBatchCode ;
}
}
}
}
protected void txtMark_OnBlur ( object sender , EventArgs e )
{
txtTrustCode . Text = txtTrustCode . Text + txtMark . Text . Trim ( ) ;
}
#region 确 定 按 钮
/// <summary>
/// 确定按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnAccept_Click ( object sender , EventArgs e )
{
Model . HJGLDB db = Funs . DB ;
string [ ] selectedRowIDArray = Grid1 . SelectedRowIDArray ;
//string weldJointId = string.Empty;
//// 找最近一个返修口
//var pointItem = db.Batch_PointBatchItem.Where(x => x.PointBatchId == this.PointBatchId && x.PointState != null && x.IsCheckRepair.HasValue);
//foreach (var p in pointItem)
//{
// var j = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(p.WeldJointId);
// if (j.WeldJointCode.Contains("K"))
// {
// weldJointId = p.WeldJointId;
// break;
// }
//}
if ( drpPointBatch . SelectedValue = = Const . _Null )
{
Alert . ShowInTop ( "请选择扩透焊口对应的批次!" , MessageBoxIcon . Warning ) ;
return ;
}
if ( drpPointBatchItem . SelectedValue = = Const . _Null )
{
Alert . ShowInTop ( "请选择扩透焊口对应的返修口!" , MessageBoxIcon . Warning ) ;
return ;
}
if ( string . IsNullOrEmpty ( txtTrustCode . Text ) | | string . IsNullOrEmpty ( txtMark . Text ) )
{
Alert . ShowInTop ( "请填写委托单号或焊口标识!" , MessageBoxIcon . Warning ) ;
return ;
}
for ( int i = 0 ; i < this . Grid1 . Rows . Count ; i + + )
{
string pointBatchItemId = this . Grid1 . Rows [ i ] . DataKeys [ 0 ] . ToString ( ) ;
var pointBatchItem = Funs . DB . Batch_PointBatchItem . FirstOrDefault ( x = > x . PointBatchItemId = = pointBatchItemId ) ;
if ( pointBatchItem ! = null )
{
if ( selectedRowIDArray . Contains ( pointBatchItemId ) )
{
if ( pointBatchItem . PointState = = null )
{
pointBatchItem . PointDate = DateTime . Now ;
pointBatchItem . PointState = "2" ;
pointBatchItem . IsBuildTrust = false ;
pointBatchItem . IsCheckRepair = false ;
pointBatchItem . JointMark = txtMark . Text . Trim ( ) ;
pointBatchItem . ToPointBatchItemId = drpPointBatchItem . SelectedValue ;
pointBatchItem . Remark = txtRemark . Text . Trim ( ) ;
if ( txtTrustCode . Text . Contains ( txtMark . Text . Trim ( ) ) )
{
pointBatchItem . TrustBatchCode = txtTrustCode . Text . Trim ( ) ;
}
else
{
pointBatchItem . TrustBatchCode = txtTrustCode . Text + txtMark . Text . Trim ( ) ;
}
db . SubmitChanges ( ) ; // 更新批明细 返修日期 状态
// 更新焊口标识
var jointInfo = db . Pipeline_WeldJoint . FirstOrDefault ( x = > x . WeldJointId = = pointBatchItem . WeldJointId ) ;
if ( jointInfo ! = null )
{
jointInfo . OldWeldJointCode = jointInfo . WeldJointCode ;
jointInfo . WeldJointCode = jointInfo . WeldJointCode + txtMark . Text . Trim ( ) ;
db . SubmitChanges ( ) ;
}
#region 更 新 焊 口 标 识 , 不 用 了
//int k_num = 0;
//string jot = "K1";
//Model.Pipeline_WeldJoint jointInfo = null;
//if (!String.IsNullOrEmpty(weldJointId))
//{
// jointInfo = db.Pipeline_WeldJoint.FirstOrDefault(x => x.WeldJointId == weldJointId);
//}
//else
//{
// var first = pointItem.FirstOrDefault();
// if (first != null)
// {
// jointInfo = db.Pipeline_WeldJoint.FirstOrDefault(x => x.WeldJointId == first.WeldJointId);
// }
//}
//int indexK = jointInfo.WeldJointCode.LastIndexOf("K");
//if (indexK > 0)
//{
// try
// {
// k_num = Convert.ToInt32(jointInfo.WeldJointCode.Substring(indexK + 1, 1)) + 1;
// jot = "K" + k_num.ToString();
// }
// catch { }
//}
//BLL.Batch_PointBatchService.UpdateNewKuoOrCutJointNo(pointBatchItem.PointBatchItemId, jot);
#endregion
}
}
//else
//{
// // 找到已扩透的明细ID; 找到委托单里的明细.
// if (pointBatchItem.PointState == "2")
// {
// var trust = db.Batch_BatchTrustItem.FirstOrDefault(p => p.PointBatchItemId == pointBatchItem.PointBatchItemId);
// if (trust != null)
// {
// string trustBatchId = trust.TrustBatchId;
// var checkItem = db.Batch_NDEItem.FirstOrDefault(x => x.NDEItemID == trust.TrustBatchItemId);
// if (checkItem != null)
// {
// string checkId = checkItem.NDEID;
// if (checkItem.SubmitDate == null)
// {
// // 删除检测单里明细
// Batch_NDEItemService.DeleteNDEItemByNDEItemID(checkItem.NDEItemID);
// var c = BLL.Batch_NDEItemService.GetNDEItemByNDEID(checkId);
// if (c.Count() == 0)
// {
// // 当没有明细时删除对应主表
// BLL.Batch_NDEService.DeleteNDEById(checkId);
// }
// }
// }
// if (checkItem == null || (checkItem != null && checkItem.SubmitDate == null))
// {
// // 删除委托单里明细
// Batch_BatchTrustItemService.DeleteTrustItemByTrustBatchItemId(trust.TrustBatchItemId);
// var t = BLL.Batch_BatchTrustItemService.GetBatchTrustItemByTrustBatchId(trustBatchId);
// if (t.Count() == 0)
// {
// // 当没有明细时删除对应主表
// BLL.Batch_BatchTrustService.DeleteBatchTrustById(trustBatchId);
// }
// }
// }
// pointBatchItem.PointDate = null;
// pointBatchItem.PointState = null;
// pointBatchItem.IsBuildTrust = null;
// pointBatchItem.IsCheckRepair = null;
// pointBatchItem.JointMark = null;
// pointBatchItem.ToPointBatchItemId = null;
// pointBatchItem.Remark = null;
// pointBatchItem.TrustBatchCode = null;
// db.SubmitChanges(); //更新批明细 返修日期 状态
// // 更新焊口号
// Batch_PointBatchService.CancellationJointNo(pointBatchItem.WeldJointId);
// }
//}
}
}
// 更新批 是否委托:否
var updatePointBatch = BLL . Batch_PointBatchService . GetPointBatchById ( this . PointBatchId ) ;
if ( updatePointBatch ! = null )
{
updatePointBatch . IsTrust = false ;
BLL . Batch_PointBatchService . UpdatePointBatch ( updatePointBatch ) ;
}
BLL . Sys_LogService . AddLog ( BLL . Const . System_3 , this . CurrUser . LoginProjectId , this . CurrUser . UserId , Const . HJGL_PointManageMenuId , Const . BtnSelectResetExpand , this . PointBatchId ) ;
PageContext . RegisterStartupScript ( ActiveWindow . GetHidePostBackReference ( ) ) ;
}
#endregion
}
}