425 lines
16 KiB
C#
425 lines
16 KiB
C#
|
using BLL;
|
|||
|
using Model;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Data;
|
|||
|
using System.Linq;
|
|||
|
using System.Linq.Expressions;
|
|||
|
using System.Web;
|
|||
|
using System.Web.UI;
|
|||
|
using System.Web.UI.WebControls;
|
|||
|
|
|||
|
namespace FineUIPro.Web.YLRQ.HotProessManage
|
|||
|
{
|
|||
|
public partial class HotProessTrustItemEdit : PageBase
|
|||
|
{
|
|||
|
#region 定义项
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 项目主键
|
|||
|
/// </summary>
|
|||
|
public string ProjectId { get { return (string)ViewState["ProjectId"]; } set { ViewState["ProjectId"] = value; } }
|
|||
|
/// <summary>
|
|||
|
/// 单位主键
|
|||
|
/// </summary>
|
|||
|
public string UnitId { get { return (string)ViewState["UnitId"]; } set { ViewState["UnitId"] = value; } }
|
|||
|
/// <summary>
|
|||
|
/// 热处理委托主键
|
|||
|
/// </summary>
|
|||
|
public string HotProessTrustId { get { return (string)ViewState["HotProessTrustId"]; } set { ViewState["HotProessTrustId"] = value; } }
|
|||
|
/// <summary>
|
|||
|
/// 选择内容字符串
|
|||
|
/// </summary>
|
|||
|
public string ItemsString { get { return (string)ViewState["ItemsString"]; } set { ViewState["ItemsString"] = value; } }
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 加载页面
|
|||
|
/// <summary>
|
|||
|
/// 加载页面
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void Page_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (!IsPostBack)
|
|||
|
{
|
|||
|
ItemsString = string.Empty;
|
|||
|
string strList = Request.Params["strList"];
|
|||
|
List<string> list = Funs.GetStrListByStr(strList, '|');
|
|||
|
if (list.Count() == 3)
|
|||
|
{
|
|||
|
this.UnitId = list[0];
|
|||
|
this.HotProessTrustId = list[1];
|
|||
|
this.ProjectId = list[2];
|
|||
|
this.InitTreeMenu();//加载树
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 加载管线信息
|
|||
|
/// <summary>
|
|||
|
/// 加载树
|
|||
|
/// </summary>
|
|||
|
private void InitTreeMenu()
|
|||
|
{
|
|||
|
this.tvControlItem.Nodes.Clear();
|
|||
|
TreeNode rootNode = new TreeNode();
|
|||
|
rootNode.Text = "施工号";
|
|||
|
rootNode.NodeID = "0";
|
|||
|
rootNode.ToolTip = "绿色表示焊缝编号下有已焊接的焊口未委托热处理";
|
|||
|
rootNode.Expanded = true;
|
|||
|
this.tvControlItem.Nodes.Add(rootNode);
|
|||
|
var hotProessItems = from x in Funs.DB.PV_CH_HotProessTrustItem select x;
|
|||
|
var project = Funs.DB.Base_Project.FirstOrDefault(p => p.ProjectId == this.ProjectId);
|
|||
|
var jots = Funs.DB.PV_View_HotWeldInformation.Where(p => p.ProjectId == this.ProjectId && p.HeatTreatmentType != null);
|
|||
|
if (jots.Count() > 0)
|
|||
|
{
|
|||
|
TreeNode newNode = new TreeNode();
|
|||
|
newNode.NodeID = this.ProjectId;
|
|||
|
bool isHotProess = true; //默认已完成热处理委托
|
|||
|
foreach (var item in jots)
|
|||
|
{
|
|||
|
string[] strs = item.HeatTreatmentType.Split('|');
|
|||
|
if (strs.Contains("3"))
|
|||
|
{
|
|||
|
if (hotProessItems.Count(x => x.HotId == item.HotId && x.ProessTypes == "3") == 0)
|
|||
|
{
|
|||
|
isHotProess = false; //未完成热处理委托
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (strs.Contains("4"))
|
|||
|
{
|
|||
|
if (hotProessItems.Count(x => x.HotId == item.HotId && x.ProessTypes == "4") == 0)
|
|||
|
{
|
|||
|
isHotProess = false; //未完成热处理委托
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if (strs.Contains("5"))
|
|||
|
{
|
|||
|
if (hotProessItems.Count(x => x.HotId == item.HotId && x.ProessTypes == "5") == 0)
|
|||
|
{
|
|||
|
isHotProess = false; //未完成热处理委托
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
if (isHotProess)
|
|||
|
{
|
|||
|
newNode.Text = project.ProjectCode;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
newNode.Text = "<font color='#009966'>" + project.ProjectCode + "</font>";
|
|||
|
}
|
|||
|
newNode.EnableClickEvent = true;
|
|||
|
rootNode.Nodes.Add(newNode);
|
|||
|
}
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 焊缝编号查询
|
|||
|
/// <summary>
|
|||
|
/// 查询
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void Tree_TextChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
this.InitTreeMenu();
|
|||
|
this.BindGrid();
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 数据绑定
|
|||
|
/// <summary>
|
|||
|
/// 数据绑定
|
|||
|
/// </summary>
|
|||
|
private void BindGrid()
|
|||
|
{
|
|||
|
List<PV_View_CH_HotProessTrustItem> toDoMatterList = GetHotProessTrustFind(this.ProjectId, this.HotProessTrustId, this.tvControlItem.SelectedNodeID);
|
|||
|
if (rblIsWeld.SelectedValue == "0")
|
|||
|
{
|
|||
|
toDoMatterList = toDoMatterList.Where(x => x.DReportID == null).ToList();
|
|||
|
}
|
|||
|
if (rblIsWeld.SelectedValue == "1")
|
|||
|
{
|
|||
|
toDoMatterList = toDoMatterList.Where(x => x.DReportID != null).ToList();
|
|||
|
}
|
|||
|
if (this.txtJointNo.Text.Trim() != string.Empty)
|
|||
|
{
|
|||
|
toDoMatterList = toDoMatterList.Where(x => x.JOT_JointNo.Contains(this.txtJointNo.Text.Trim())).ToList();
|
|||
|
}
|
|||
|
|
|||
|
DataTable tb = this.LINQToDataTable(toDoMatterList);
|
|||
|
// 2.获取当前分页数据
|
|||
|
Grid1.RecordCount = tb.Rows.Count;
|
|||
|
tb = GetFilteredTable(Grid1.FilteredData, tb);
|
|||
|
var table = this.GetPagedDataTable(Grid1, tb);
|
|||
|
|
|||
|
Grid1.DataSource = table;
|
|||
|
Grid1.DataBind();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 获取未完全热处理焊口信息
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
private static List<PV_View_CH_HotProessTrustItem> GetHotProessTrustFind(string projectId, string trustId, string weldingId)
|
|||
|
{
|
|||
|
var weldInfos = Funs.DB.PV_View_HotWeldInformation.Where(p => p.ProjectId == projectId && p.IsHotProessTrust == 0).ToList();
|
|||
|
List<PV_View_CH_HotProessTrustItem> returnViewMatch = new List<PV_View_CH_HotProessTrustItem>();
|
|||
|
//热处理明细
|
|||
|
var hotProessTrustItems = from x in Funs.DB.PV_CH_HotProessTrustItem join z in Funs.DB.PV_View_HotWeldInformation on x.HotId equals z.HotId where z.ProjectId == projectId select x;
|
|||
|
//热处理反馈
|
|||
|
var hotProessResult = from x in Funs.DB.PV_CH_HotProessResult join y in Funs.DB.PV_View_HotWeldInformation on x.HotId equals y.HotId select x;
|
|||
|
//判断焊缝信息
|
|||
|
if (weldInfos.Count > 0)
|
|||
|
{
|
|||
|
foreach (var item in weldInfos)
|
|||
|
{
|
|||
|
var jothotProessTrustItems = from x in hotProessTrustItems where x.HotId == item.HotId select x;
|
|||
|
bool isShow = false;
|
|||
|
//判断是否需要热处理
|
|||
|
if (!string.IsNullOrEmpty(item.HeatTreatmentType))
|
|||
|
{
|
|||
|
if (jothotProessTrustItems.Count() == 0)//未进行过热处理
|
|||
|
{
|
|||
|
isShow = true;
|
|||
|
}
|
|||
|
else//已进行过热处理
|
|||
|
{
|
|||
|
string oldProessTypes = item.HeatTreatmentType.Replace("|", "").Replace("1", "").Replace("2", "");
|
|||
|
string proessTypes = string.Empty;
|
|||
|
foreach (var jothotProessTrustItem in jothotProessTrustItems)
|
|||
|
{
|
|||
|
proessTypes += jothotProessTrustItem.ProessTypes;
|
|||
|
}
|
|||
|
proessTypes = proessTypes.Replace("|", "");
|
|||
|
if (oldProessTypes.Length > proessTypes.Length) //未将所有热处理类型委托完
|
|||
|
{
|
|||
|
isShow = true;
|
|||
|
}
|
|||
|
}
|
|||
|
//添加
|
|||
|
if (isShow)
|
|||
|
{
|
|||
|
var jotInfo = weldInfos.FirstOrDefault(x => x.HotId == item.HotId);
|
|||
|
if (jotInfo != null)
|
|||
|
{
|
|||
|
var date = Funs.DB.PV_BO_WeldReportMain.FirstOrDefault(x => x.DReportID == jotInfo.DReportID);
|
|||
|
PV_View_CH_HotProessTrustItem newItem = new PV_View_CH_HotProessTrustItem();
|
|||
|
newItem.HotId = jotInfo.HotId;
|
|||
|
newItem.JOT_JointNo = jotInfo.JOT_JointNo;
|
|||
|
newItem.WeldingId = jotInfo.WeldingId;
|
|||
|
newItem.WeldingCode = jotInfo.WeldingCode;
|
|||
|
if (date != null && date.ReportDate != null)
|
|||
|
{
|
|||
|
newItem.ReportDate = date.ReportDate;
|
|||
|
newItem.DReportID = date.DReportID;
|
|||
|
}
|
|||
|
newItem.JointDesc = jotInfo.JointDesc;
|
|||
|
newItem.STE_Code = jotInfo.STE_Code;
|
|||
|
newItem.RepairFalg = jotInfo.RepairFalg;
|
|||
|
newItem.RepairNum = jotInfo.RepairNum.Value;
|
|||
|
newItem.AgainId = jotInfo.AgainId;
|
|||
|
newItem.TrustType = jotInfo.TrustType;
|
|||
|
returnViewMatch.Add(newItem);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return returnViewMatch;
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 点击TreeView
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 点击TreeView
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
|
|||
|
{
|
|||
|
string[] selectRowId = Grid1.SelectedRowIDArray;
|
|||
|
int n = 0;
|
|||
|
int j = 0;
|
|||
|
int[] selections = new int[selectRowId.Count()];
|
|||
|
foreach (GridRow row in Grid1.Rows)
|
|||
|
{
|
|||
|
if (selectRowId.Contains(row.DataKeys[0]))
|
|||
|
{
|
|||
|
selections[n] = j;
|
|||
|
n++;
|
|||
|
}
|
|||
|
j++;
|
|||
|
}
|
|||
|
var select = selections.Distinct();
|
|||
|
this.BindGrid();
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 提交按钮
|
|||
|
/// <summary>
|
|||
|
/// 提交按钮
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void btnAccept_Click(object sender, EventArgs e)
|
|||
|
{
|
|||
|
string itemsString = "";
|
|||
|
string[] selectRowId = Grid1.SelectedRowIDArray;
|
|||
|
int n = 0;
|
|||
|
int j = 0;
|
|||
|
int[] selections = new int[selectRowId.Count()];
|
|||
|
foreach (GridRow row in Grid1.Rows)
|
|||
|
{
|
|||
|
if (selectRowId.Contains(row.DataKeys[0]))
|
|||
|
{
|
|||
|
selections[n] = j;
|
|||
|
n++;
|
|||
|
}
|
|||
|
j++;
|
|||
|
}
|
|||
|
var select = selections.Distinct();
|
|||
|
itemsString = Request.Params["hotids"];
|
|||
|
foreach (int i in select)
|
|||
|
{
|
|||
|
string rowID = Grid1.DataKeys[i][0].ToString();
|
|||
|
string weldingId = Grid1.DataKeys[i][1].ToString();
|
|||
|
string repairNum = Grid1.DataKeys[i][2].ToString();
|
|||
|
string ids = rowID + ",";
|
|||
|
//if (!string.IsNullOrEmpty(weldingId))
|
|||
|
//{
|
|||
|
// ids += "," + weldingId;
|
|||
|
//}
|
|||
|
//if (!string.IsNullOrEmpty(repairNum))
|
|||
|
//{
|
|||
|
// ids += "," + repairNum;
|
|||
|
//}
|
|||
|
//在这里添加的都是添加的
|
|||
|
itemsString += "|" + ids;
|
|||
|
//if (!itemsString.Contains(rowID))
|
|||
|
//{
|
|||
|
// itemsString += ids + "|";
|
|||
|
//}
|
|||
|
}
|
|||
|
PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(itemsString + ItemsString)
|
|||
|
+ ActiveWindow.GetHidePostBackReference());
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 排序
|
|||
|
/// <summary>
|
|||
|
/// 排序
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void Grid1_Sort(object sender, GridSortEventArgs e)
|
|||
|
{
|
|||
|
this.BindGrid();
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 私有方法
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 得到焊接日期
|
|||
|
/// </summary>
|
|||
|
/// <param name="bigType"></param>
|
|||
|
/// <returns></returns>
|
|||
|
protected string ConvertWeldDate(object hotids)
|
|||
|
{
|
|||
|
string date = string.Empty;
|
|||
|
if (hotids != null)
|
|||
|
{
|
|||
|
var id = hotids.ToString();
|
|||
|
var dayReport = (from x in Funs.DB.PV_BO_WeldReportMain
|
|||
|
join y in Funs.DB.PV_View_HotWeldInformation
|
|||
|
on x.DReportID equals y.DReportID
|
|||
|
where y.HotId == id
|
|||
|
select x).FirstOrDefault();
|
|||
|
if (dayReport != null && dayReport.ReportDate != null)
|
|||
|
{
|
|||
|
date = string.Format("{0:yyyy-MM-dd}", dayReport.ReportDate);
|
|||
|
}
|
|||
|
}
|
|||
|
return date;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 得到委托情况
|
|||
|
/// </summary>
|
|||
|
/// <param name="bigType"></param>
|
|||
|
/// <returns></returns>
|
|||
|
protected string ConvertHotProessState(object hotId)
|
|||
|
{
|
|||
|
string state = string.Empty;
|
|||
|
if (hotId != null)
|
|||
|
{
|
|||
|
string hot_id = hotId.ToString();
|
|||
|
var list = Funs.DB.PV_View_CH_HotProessTrustItem.Where(p => p.HotId == hot_id);
|
|||
|
foreach (var item in list)
|
|||
|
{
|
|||
|
if (!string.IsNullOrEmpty(item.HotProessTrustId)) //存在委托信息
|
|||
|
{
|
|||
|
string date = string.Empty;
|
|||
|
if (item.TrustDate != null)
|
|||
|
{
|
|||
|
date = "(" + string.Format("{0:yyyy-MM-dd}", item.TrustDate) + ")";
|
|||
|
}
|
|||
|
state += HJGL_CH_HotProessTrustService.GetProessTypesName(item.ProessTypes) + ":" + date + ";";
|
|||
|
}
|
|||
|
}
|
|||
|
if (!string.IsNullOrEmpty(state))
|
|||
|
{
|
|||
|
state = state.Substring(0, state.LastIndexOf(";"));
|
|||
|
}
|
|||
|
}
|
|||
|
return state;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 搜索
|
|||
|
/// </summary>
|
|||
|
protected void rblIsWeld_SelectedIndexChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
this.BindGrid();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 得到热处理类型
|
|||
|
/// </summary>
|
|||
|
/// <returns></returns>
|
|||
|
protected string ConvertProessTypes(object hotids)
|
|||
|
{
|
|||
|
string proessTypes = string.Empty;
|
|||
|
if (hotids != null)
|
|||
|
{
|
|||
|
var id = hotids.ToString();
|
|||
|
var joint = Funs.DB.PV_View_HotWeldInformation.FirstOrDefault(e => e.HotId == id);
|
|||
|
if (joint != null)
|
|||
|
{
|
|||
|
if (!string.IsNullOrEmpty(joint.HeatTreatmentType))
|
|||
|
{
|
|||
|
proessTypes = BLL.HJGL_PW_JointInfoService.ConvertProessTypes(joint.HeatTreatmentType);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return proessTypes;
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
}
|