ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/YLRQ/HotProessManage/HardProessTrustConfirm.aspx.cs

635 lines
28 KiB
C#
Raw Normal View History

2024-05-08 17:17:11 +08:00
using BLL;
using Model;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace FineUIPro.Web.YLRQ.HotProessManage
{
public partial class HardProessTrustConfirm : PageBase
{
/// <summary>
/// 热处理委托主键
/// </summary>
public string HotProessTrustId { get { return (string)ViewState["HotProessTrustId"]; } set { ViewState["HotProessTrustId"] = value; } }
#region
/// <summary>
/// 加载页面
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.ddlPageSize.SelectedValue = this.Grid1.PageSize.ToString();
BridProjectGrid();
this.HotProessTrustId = string.Empty;
this.InitTreeMenu();//加载树
rblIsNeedHardTest.SelectedValue = "0";
}
}
#endregion
/// <summary>
/// 绑定项目
/// </summary>
public void BridProjectGrid()
{
GridProject.DataSource = BLL.Base_ProjectService.GetYlrqProjectListByUserId(this.CurrUser.UserId, "2");
GridProject.DataBind();
drpProject.Value = this.CurrUser.LoginProjectId;
}
/// <summary>
/// 施工号下拉框
/// </summary>
protected void drpProject_TextChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
this.tvControlItem.SelectedNodeID = drpProject.Value;
this.BindGrid();
}
/// <summary>
/// 绑定硬度委托单位和委托人
/// </summary>
public void BridHardTrust(string projectId)
{
var pUnit = BLL.Base_UnitService.GetUnitsByProjectUnitType(projectId, BLL.Const.UnitType_4);
if (pUnit != null)
{
this.drpUnit.DataTextField = "UnitName";
this.drpUnit.DataValueField = "UnitId";
this.drpUnit.DataSource = pUnit;
this.drpUnit.DataBind();
}
///委托人
this.drpTrustMan.DataTextField = "UserName";
this.drpTrustMan.DataValueField = "UserId";
this.drpTrustMan.DataSource = Funs.DB.View_Common_Project_UserList.Where(p => p.ProjectId == projectId);
this.drpTrustMan.DataBind();
this.drpTrustMan.SelectedValue = this.CurrUser.UserId;
}
#region
/// <summary>
/// 加载树
/// </summary>
private void InitTreeMenu()
{
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "项目";
rootNode.NodeID = "0";
rootNode.Expanded = true;
rootNode.ToolTip = "红色表示施工号下存在未打印的热处理委托记录";
rootNode.EnableClickEvent = true;
this.tvControlItem.Nodes.Add(rootNode);
List<Base_Project> projects = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "2");
if (this.drpProject.Values.Length > 0)
{
projects = projects.Where(x => this.drpProject.Values.Contains(x.ProjectId)).ToList();
}
List<PV_CH_HotProessTrust> trustLists = new List<PV_CH_HotProessTrust>(); //热处理委托单
if (this.rblPrint.SelectedValue == "2") //全部
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(p => p.HotProessTrustCode.Contains(txtSearchNo.Text.Trim())).ToList();
}
else if (this.rblPrint.SelectedValue == "1") //已打印
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(p => p.HotProessTrustCode.Contains(txtSearchNo.Text.Trim()) && p.IsPrint == true).ToList();
}
else if (this.rblPrint.SelectedValue == "0") //未打印
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(p => p.HotProessTrustCode.Contains(txtSearchNo.Text.Trim()) && (p.IsPrint == null || p.IsPrint == false)).ToList();
}
foreach (var item in projects)
{
TreeNode rootUnitNode = new TreeNode();//定义根节点
rootUnitNode.NodeID = item.ProjectId;
if ((from x in trustLists where x.ProjectId == item.ProjectId && (x.IsPrint == null || x.IsPrint == false) select x).Count() > 0) //存在未打印的委托单
{
rootUnitNode.Text = $"<font color='#FF7575'>{item.ProjectCode},{item.EquipmentName},{item.ProductNum}</font>";
}
else
{
rootUnitNode.Text = $"{item.ProjectCode},{item.EquipmentName},{item.ProductNum}";
}
rootUnitNode.ToolTip = item.ProjectName;
rootUnitNode.CommandName = "项目名称";
rootUnitNode.EnableClickEvent = true;
rootUnitNode.EnableExpandEvent = true;
rootNode.Nodes.Add(rootUnitNode);
if (!string.IsNullOrEmpty(this.txtSearchNo.Text.Trim()))
{
var projectTrustLists = (from x in trustLists where x.ProjectId == item.ProjectId orderby x.CreateDate descending select x).ToList();
if (projectTrustLists.Count > 0)
{
rootUnitNode.Expanded = true;
this.BindNodes(rootUnitNode, projectTrustLists);
}
}
else
{
TreeNode tn = new TreeNode();
tn.NodeID = "temp";
tn.Text = "正在加载...";
rootUnitNode.Nodes.Add(tn);
}
}
}
/// <summary>
/// 绑定树节点
/// </summary>
private void BindNodes(TreeNode node, List<PV_CH_HotProessTrust> trustList)
{
foreach (var item in trustList)
{
TreeNode newNode = new TreeNode();
if (item.IsPrint == true)
{
newNode.Text = item.HotProessTrustCode;
}
else
{
newNode.Text = "<font color='#FF7575'>" + item.HotProessTrustCode + "</font>";
}
newNode.NodeID = item.HotProessTrustId;
newNode.ToolTip = item.HotProessTrustCode;
newNode.CommandName = "委托单号";
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
}
}
/// <summary>
/// 树加载
/// </summary>
protected void tvControlItem_NodeExpand(object sender, TreeNodeEventArgs e)
{
if (e.Node.Nodes != null)
{
e.Node.Nodes.Clear();
}
List<PV_CH_HotProessTrust> trustLists = new List<PV_CH_HotProessTrust>(); ///热处理委托单
if (this.rblPrint.SelectedValue == "2") //全部
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(x => x.HotProessTrustCode.Contains(this.txtSearchNo.Text.Trim()) && x.ProjectId == e.Node.NodeID).OrderBy(p => p.CreateDate).ToList();
}
else if (this.rblPrint.SelectedValue == "1") //已打印
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(x => x.HotProessTrustCode.Contains(this.txtSearchNo.Text.Trim()) && x.ProjectId == e.Node.NodeID && x.IsPrint == true).OrderBy(p => p.CreateDate).ToList();
}
else if (this.rblPrint.SelectedValue == "0") //未打印
{
trustLists = Funs.DB.PV_CH_HotProessTrust.Where(x => x.HotProessTrustCode.Contains(this.txtSearchNo.Text.Trim()) && x.ProjectId == e.Node.NodeID && (x.IsPrint == null || x.IsPrint == false)).OrderBy(p => p.CreateDate).ToList();
}
this.BindNodes(e.Node, trustLists);
}
/// <summary>
/// 点击TreeView
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
this.HotProessTrustId = tvControlItem.SelectedNodeID;
this.BindGrid();
}
#endregion
#region
/// <summary>
/// 数据绑定
/// </summary>
private void BindGrid()
{
BridHardTrust(drpProject.Value);
string strSql = string.Empty;
List<SqlParameter> listStr = new List<SqlParameter>();
this.SetTextTemp();
//页面输入提交信息
this.PageInfoLoad();
string projectIds = Base_ProjectService.GetStrOnProjectIds(this.CurrUser.UserId, "2");
if (this.tvControlItem.SelectedNode != null)
{
if (this.tvControlItem.SelectedNode.CommandName == "委托单号")
{
strSql = @"SELECT * FROM dbo.PV_View_CH_HotProessTrustItem AS Trust WHERE Trust.ProjectId= @ProjectId and Trust.IsOK=1 and ProessTypes=4 AND Trust.HotProessTrustId=@HotProessTrustId ";
var trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(e => e.HotProessTrustId == HotProessTrustId);
listStr.Add(new SqlParameter("@ProjectId", trust != null ? trust.ProjectId : this.CurrUser.LoginProjectId));
listStr.Add(new SqlParameter("@HotProessTrustId", this.HotProessTrustId));
}
else if (this.tvControlItem.SelectedNode.CommandName == "项目名称")
{
strSql = @"SELECT * FROM dbo.PV_View_CH_HotProessTrustItem AS Trust WHERE Trust.ProjectId= @ProjectId and Trust.IsOK=1 and ProessTypes=4 and Trust.HotProessTrustId is not null ";
var trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(e => e.HotProessTrustId == HotProessTrustId);
listStr.Add(new SqlParameter("@ProjectId", trust != null ? trust.ProjectId : this.CurrUser.LoginProjectId));
}
else //选择项目根节点或没有选择节点
{
strSql = @"SELECT * FROM dbo.PV_View_CH_HotProessTrustItem AS Trust WHERE Trust.HotProessTrustId is not null and Trust.IsOK=1 and ProessTypes=4 AND CHARINDEX(Trust.ProjectId,@ProjectId)>0 ";
listStr.Add(new SqlParameter("@ProjectId", projectIds));
}
if (!string.IsNullOrEmpty(this.txtWeldingCode.Text.Trim()))
{
strSql += @" and Trust.WeldingCode like '%'+@WeldingCode+'%' ";
listStr.Add(new SqlParameter("@WeldingCode", this.txtWeldingCode.Text.Trim()));
}
//是否确认
if (rblIsNeedHardTest.SelectedValue == "0")
{
strSql += " and ISNULL(HardProessTrustId,'')='' ";
}
else
{
strSql += " and ISNULL(HardProessTrustId,'')!='' ";
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
}
/// <summary>
/// 加载页面输入提交信息
/// </summary>
private void PageInfoLoad()
{
var trust = Funs.DB.PV_CH_HotProessTrust.FirstOrDefault(e => e.HotProessTrustId == this.HotProessTrustId);
if (trust != null)
{
this.txtHotProessTrustCode.Text = trust.HotProessTrustCode;
if (!string.IsNullOrEmpty(trust.TrustUnitId))
{
var unit = BLL.Base_UnitService.GetUnit(trust.TrustUnitId);
if (unit != null)
{
this.drpCH_TrustUnit.Text = unit.UnitName;
}
}
this.txtProjectName.Text = trust.ProjectName;
this.txtConstructionNo.Text = trust.ConstructionNo;
if (!string.IsNullOrEmpty(trust.TrstManId))
{
var hotHardMan = BLL.Sys_UserService.GetUsersByUserId(trust.TrstManId);
if (hotHardMan != null)
{
this.drpCH_TrustMan.Text = hotHardMan.UserName;
}
}
this.cbIsPrint.Checked = trust.IsPrint != null ? trust.IsPrint.Value : false;
this.cbIsPrint.Hidden = false;
}
}
#endregion
/// <summary>
/// 清空
/// </summary>
private void SetTextTemp()
{
this.txtHotProessTrustCode.Text = string.Empty;
this.drpCH_TrustUnit.Text = string.Empty;
this.txtProjectName.Text = string.Empty;
this.txtConstructionNo.Text = string.Empty;
this.drpCH_TrustMan.Text = string.Empty;
this.cbIsPrint.Checked = false;
}
#region
/// <summary>
/// 页索引改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e)
{
BindGrid();
}
/// <summary>
/// 排序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
BindGrid();
}
/// <summary>
/// 分页选择下拉改变事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
Grid1.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue);
BindGrid();
}
#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
/// <summary>
/// 是否打印搜索
/// </summary>
protected void rblPrint_SelectedIndexChanged(object sender, EventArgs e)
{
this.InitTreeMenu();
SetTextTemp();
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void TextBox_TextChanged(object sender, EventArgs e)
{
this.BindGrid();
}
/// <summary>
/// 提交
/// </summary>
protected void btnSave_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.PV_HardProessTrustConfirm, Const.BtnSubmit))
{
if (Grid1.SelectedRowIndexArray.Length == 0)
{
Alert.ShowInTop("最少选中一行!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(this.drpUnit.SelectedValue))
{
Alert.ShowInTop("请选择委托单位!", MessageBoxIcon.Warning);
return;
}
if (string.IsNullOrWhiteSpace(this.drpTrustMan.SelectedValue))
{
Alert.ShowInTop("请选择委托人!", MessageBoxIcon.Warning);
return;
}
//添加硬度委托单
var projectId = this.tvControlItem.SelectedNodeID;
PV_CH_HardProessTrust hardTrust = new PV_CH_HardProessTrust();
hardTrust.HardProessTrustId = SQLHelper.GetNewID(typeof(PV_CH_HardProessTrust));
hardTrust.ProjectId = projectId;
hardTrust.HardProessTrustCode = SQLHelper.RunProcNewIdByProjectId("SpGetNewCode2ByProjectIdNoR", "dbo.PV_CH_HardProessTrust", "HardProessTrustCode", projectId, Base_ProjectService.GetProjectCode(projectId) + "-" + string.Format("{0:MMdd}", DateTime.Now) + "-");
hardTrust.ProjectName = this.txtProjectName.Text.Trim();
hardTrust.ConstructionNo = this.txtConstructionNo.Text.Trim();
if (this.drpUnit.SelectedValue != BLL.Const._Null)
{
hardTrust.TrustUnitId = this.drpUnit.SelectedValue;
}
if (this.drpTrustMan.SelectedValue != BLL.Const._Null)
{
hardTrust.TrstManId = this.drpTrustMan.SelectedValue;
}
hardTrust.TrustType = "1"; //正常口
hardTrust.CreateTime = hardTrust.CreateDate = DateTime.Now;
Funs.DB.PV_CH_HardProessTrust.InsertOnSubmit(hardTrust);
Funs.DB.SubmitChanges();
Sys_LogService.AddLog(Const.System_4, projectId, this.CurrUser.UserId, "添加硬度委托信息");
var selections = Grid1.SelectedRowIndexArray;
foreach (int rowIndex in selections)
{
JArray mergedData = Grid1.GetMergedData();
var mergedRow = mergedData[rowIndex];
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
var hotProessTrustItemId = Grid1.DataKeys[rowIndex][0].ToString();
var hotProessResultId = Grid1.DataKeys[rowIndex][1].ToString();
var hotId = Grid1.DataKeys[rowIndex][2].ToString();
var weldingId = Grid1.DataKeys[rowIndex][3].ToString();
var weldingCode = Grid1.DataKeys[rowIndex][5].ToString();
if (!string.IsNullOrEmpty(hotId))
{
var hotWeld = Funs.DB.PV_View_HotWeldInformation.FirstOrDefault(p => p.HotId == hotId);
if (hotWeld != null)
{
var trustItems = Funs.DB.PV_CH_HotProessTrustItem.Where(p => p.HotId == hotId).ToList();
if (trustItems.Count > 0)
{
var yzHotProess = string.Join("", trustItems.ConvertAll(p => p.ProessTypes));
var allHotProess = hotWeld.HeatTreatmentType.Replace("|", "").Replace("1", "").Replace("2", "").Trim();
if (allHotProess.Length > yzHotProess.Length)
{
ShowNotify("存在未处理的热处理单据!", MessageBoxIcon.Warning);
return;
}
}
}
}
//修改返修数据
if (!string.IsNullOrEmpty(weldingId))
{
var again = Funs.DB.PV_CH_AgainHotInfo.Where(p => p.WeldingId == weldingId && p.IsHotProessTrust == false).ToList();
if (again.Count > 0)
{
foreach (var ag in again)
{
ag.IsHotProessTrust = true;
Funs.DB.SubmitChanges();
}
}
}
var hotResult = Funs.DB.PV_CH_HotProessResult.FirstOrDefault(p => p.HotProessResultId == hotProessResultId);
if (hotResult != null)
{
hotResult.HardProessTrustId = hardTrust.HardProessTrustId;
if (!string.IsNullOrEmpty(values.Value<string>("IsNeedHardTest").ToString()))
{
hotResult.IsNeedHardTest = values.Value<bool>("IsNeedHardTest");
}
if (!string.IsNullOrEmpty(values.Value<string>("CompleteDate").ToString()))
{
hotResult.CompleteDate = values.Value<DateTime>("CompleteDate");
}
else
{
hotResult.CompleteDate = null;
}
}
Funs.DB.SubmitChanges();
//添加硬度委托明细
PV_HardProessItem item = new PV_HardProessItem();
item.HardProessItemId = SQLHelper.GetNewID(typeof(PV_HardProessItem));
item.HardProessTrustId = hardTrust.HardProessTrustId;
item.ProjectId = projectId;
item.HotId = hotId;
item.TrustDate = DateTime.Now;
item.HotProessTrustId = hotResult.HotProessTrustId;
item.HotProessTrustItemId = hotProessTrustItemId;
item.WeldingCode = weldingCode;
item.HardProessResultId = Guid.NewGuid().ToString();
Funs.DB.PV_HardProessItem.InsertOnSubmit(item);
//回写焊口硬度委托时间
PV_WeldInformation newJointInfo = Funs.DB.PV_WeldInformation.FirstOrDefault(s => s.WeldingId == weldingId);
if (newJointInfo != null)
{
newJointInfo.HardProessTrustDate = item.TrustDate;
}
//进入硬度结果反馈
if (Funs.DB.PV_CH_HardProessResult.Count(x => x.HotId == item.HotId && x.HardProessTrustId == item.HardProessTrustId) == 0)
{
PV_CH_HardProessResult hardProessResult = new PV_CH_HardProessResult();
hardProessResult.HardProessResultId = item.HardProessResultId;
hardProessResult.ProjectId = projectId;
hardProessResult.HotId = item.HotId;
hardProessResult.HardProessTrustId = item.HardProessTrustId;
hardProessResult.HardProessItemId = item.HardProessItemId;
hardProessResult.HotProessTrustId = hotResult.HotProessTrustId;
hardProessResult.HotProessTrustItemId = hotProessTrustItemId;
Funs.DB.PV_CH_HardProessResult.InsertOnSubmit(hardProessResult);
}
Funs.DB.SubmitChanges();
}
#region
//JArray mergedData = Grid1.GetMergedData();
//foreach (JObject mergedRow in mergedData)
//{
// string status = mergedRow.Value<string>("status");
// JObject values = mergedRow.Value<JObject>("values");
// int rowIndex = mergedRow.Value<int>("index");
// var hotProessTrustItemId = Grid1.DataKeys[rowIndex][0].ToString();
// var hotProessResultId = Grid1.DataKeys[rowIndex][1].ToString();
// var hotId = Grid1.DataKeys[rowIndex][2].ToString();
// var weldingId = Grid1.DataKeys[rowIndex][3].ToString();
// if (!string.IsNullOrEmpty(hotId))
// {
// var hotWeld = Funs.DB.PV_View_HotWeldInformation.FirstOrDefault(p => p.HotId == hotId);
// if (hotWeld != null)
// {
// var trustItems = Funs.DB.PV_CH_HotProessTrustItem.Where(p => p.HotId == hotId).ToList();
// if (trustItems.Count > 0)
// {
// var yzHotProess = string.Join("", trustItems.ConvertAll(p => p.ProessTypes));
// var allHotProess = hotWeld.HeatTreatmentType.Replace("|", "").Replace("1", "").Replace("2", "").Trim();
// if (allHotProess.Length > yzHotProess.Length)
// {
// ShowNotify("存在未处理的热处理单据!", MessageBoxIcon.Warning);
// return;
// }
// }
// }
// }
// //修改返修数据
// if (!string.IsNullOrEmpty(weldingId))
// {
// var again = Funs.DB.PV_CH_AgainHotInfo.Where(p => p.WeldingId == weldingId && p.IsHotProessTrust == false).ToList();
// if (again.Count > 0)
// {
// foreach (var item in again)
// {
// item.IsHotProessTrust = true;
// Funs.DB.SubmitChanges();
// }
// }
// }
// var hotResult = Funs.DB.PV_CH_HotProessResult.FirstOrDefault(p => p.HotProessResultId == hotProessResultId);
// if (hotResult != null)
// {
// if (!string.IsNullOrEmpty(values.Value<string>("IsNeedHardTest").ToString()))
// {
// hotResult.IsNeedHardTest = values.Value<bool>("IsNeedHardTest");
// }
// if (!string.IsNullOrEmpty(values.Value<string>("CompleteDate").ToString()))
// {
// hotResult.CompleteDate = values.Value<DateTime>("CompleteDate");
// }
// else
// {
// hotResult.CompleteDate = null;
// }
// }
// //添加委托明细信息
// Funs.DB.SubmitChanges();
//}
#endregion
this.HotProessTrustId = tvControlItem.SelectedNodeID;
this.BindGrid();
ShowNotify("提交成功!", MessageBoxIcon.Success);
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
}
}
/// <summary>
/// 得到热处理类型
/// </summary>
/// <param name="bigType"></param>
/// <returns></returns>
protected string ConvertProessTypes(object ProessTypes)
{
string proessTypes = string.Empty;
if (ProessTypes != null)
{
proessTypes = BLL.HJGL_PW_JointInfoService.ConvertProessTypes(ProessTypes.ToString());
}
return proessTypes;
}
/// <summary>
/// 行加载
/// </summary>
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
{
var hardProessTrustId = Grid1.DataKeys[e.RowIndex][6].ToString();
if (!string.IsNullOrWhiteSpace(hardProessTrustId))
{
e.RowSelectable = false;
}
}
}
}