ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/HJGL/HotProessManage/RepairHotProessTrustEdit.as...

505 lines
24 KiB
C#
Raw Normal View History

2024-05-08 17:17:11 +08:00
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using BLL;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.HJGL.HotProessManage
{
public partial class RepairHotProessTrustEdit : PageBase
{
#region
/// <summary>
/// 返修热处理委托主键
/// </summary>
public string HotProessTrustId
{
get
{
return (string)ViewState["HotProessTrustId"];
}
set
{
ViewState["HotProessTrustId"] = 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.HotProessTrustId = Request.Params["HotProessTrustId"];
this.ProjectId = Request.Params["ProjectId"];
var trust = BLL.HJGL_CH_HotProessTrustService.GetCH_HotProessTrustByID(this.HotProessTrustId);
if (trust != null)
{
this.ProjectId = trust.ProjectId;
}
var pUnit = BLL.Base_UnitService.GetUnitsByProjectUnitType(this.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 = BLL.Sys_UserService.GetUserListByProjectId(this.ProjectId);
this.drpTrustMan.DataBind();
Funs.FineUIPleaseSelect(this.drpTrustMan);
this.drpTrustMan.SelectedValue = this.CurrUser.UserId;
this.PageInfoLoad(); ///加载页面
List<Model.HJGL_View_CH_HotProessTrustItem> lists = BLL.HJGL_CH_HotProessTrustService.GetHotProessTrustItem(this.ProjectId, this.HotProessTrustId);
this.BindGrid(lists); ////初始化页面
}
}
#endregion
#region
/// <summary>
/// 加载页面输入提交信息
/// </summary>
private void PageInfoLoad()
{
var trust = BLL.HJGL_CH_HotProessTrustService.GetCH_HotProessTrustByID(this.HotProessTrustId);
if (trust != null)
{
this.ProjectId = trust.ProjectId;
this.txtProjectName.Text = trust.ProjectName;
this.txtHotProessTrustCode.Text = trust.HotProessTrustCode;
if (!string.IsNullOrEmpty(trust.TrustUnitId))
{
this.drpUnit.SelectedValue = trust.TrustUnitId;
}
this.txtConstructionNo.Text = trust.ConstructionNo;
if (!string.IsNullOrEmpty(trust.TrstManId))
{
this.drpTrustMan.SelectedValue = trust.TrstManId;
}
}
else
{
this.SimpleForm1.Reset(); ///重置所有字段
//委托单号自动生成,规则:施工号-日期1127-两位流水
this.txtHotProessTrustCode.Text = BLL.SQLHelper.RunProcNewIdByProjectId("SpGetNewCode2ByProjectId", "dbo.HJGL_CH_HotProessTrust", "HotProessTrustCode", this.CurrUser.LoginProjectId, BLL.Base_ProjectService.GetProjectCode(this.CurrUser.LoginProjectId) + "-" + string.Format("{0:MMdd}", DateTime.Now) + "-");
Model.Base_Project project = BLL.Base_ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
if (project != null)
{
this.txtProjectName.Text = project.ProjectName;
this.txtConstructionNo.Text = project.ProjectCode;
}
if (this.CurrUser.UserId != Const.GlyId)
{
this.drpTrustMan.SelectedValue = this.CurrUser.UserId;
}
}
}
#endregion
#region
/// <summary>
/// 数据绑定
/// </summary>
private void BindGrid(List<Model.HJGL_View_CH_HotProessTrustItem> lists)
{
DataTable tb = this.LINQToDataTable(lists);
// 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();
var totalItems = from x in Funs.DB.HJGL_CH_HotProessTrustItem select x;
for (int i = 0; i < this.Grid1.Rows.Count; i++)
{
//this.Grid1.Rows[i].RowCssClass = "green";
System.Web.UI.WebControls.CheckBoxList cblProessTypes = (System.Web.UI.WebControls.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblProessTypes"));
string jot_id = this.Grid1.Rows[i].DataKeys[0].ToString();
string hotProessTrustItemId = this.Grid1.Rows[i].DataKeys[1].ToString();
string trustItemID = this.Grid1.Rows[i].Values[10].ToString();
List<Model.HJGL_CH_HotProessTrustItem> items = new List<Model.HJGL_CH_HotProessTrustItem>();
if (string.IsNullOrEmpty(trustItemID)) //非返修口
{
//获取对应焊口已存在的返修热处理委托明细
items = (from x in totalItems where x.JOT_ID == jot_id && x.HotProessTrustId != this.HotProessTrustId select x).ToList();
}
else //返修口
{
items = (from x in totalItems where x.JOT_ID == jot_id && x.HotProessTrustId != this.HotProessTrustId && x.TrustItemID == trustItemID select x).ToList();
}
//已处理的热处理类型集合
List<string> list = new List<string>();
foreach (var item in items)
{
//获取结果反馈信息
if (!string.IsNullOrEmpty(item.ProessTypes))
{
var hotProessResult = (from x in Funs.DB.HJGL_CH_HotProessResult where x.JOT_ID == item.JOT_ID && x.ProessTypes == item.ProessTypes && x.HotProessTrustId == item.HotProessTrustId select x).FirstOrDefault();
if (hotProessResult != null && (hotProessResult.IsOK == true || hotProessResult.IsOK == null)) //反馈记录合格或尚未进行反馈均视为已处理类型
{
string[] strs = item.ProessTypes.Split('|');
foreach (var str in strs)
{
if (!string.IsNullOrEmpty(str))
{
list.Add(str);
}
}
}
}
}
Model.HJGL_PW_JointInfo joint = BLL.HJGL_PW_JointInfoService.GetJointInfoByJotID(jot_id);
cblProessTypes.DataSource = BLL.HJGL_CH_HotProessTrustService.GetNeedProessTypes(joint.ProessTypes, list, this.HotProessTrustId, jot_id, hotProessTrustItemId);
cblProessTypes.DataBind();
if (!string.IsNullOrEmpty(this.HotProessTrustId)) //修改记录
{
List<string> list2 = new List<string>();
var items2 = (from x in totalItems where x.JOT_ID == jot_id && x.HotProessTrustItemId == hotProessTrustItemId select x).FirstOrDefault();
//获取已处理的热处理类型
if (!string.IsNullOrEmpty(items2.ProessTypes))
{
//var hotProessResult = (from x in Funs.DB.HJGL_CH_HotProessResult where x.JOT_ID == item.JOT_ID && x.HotProessTrustId == item.HotProessTrustId select x).FirstOrDefault();
//if (hotProessResult == null || (hotProessResult != null && hotProessResult.IsOK == true)) //还没有结果反馈记录或结果反馈记录合格则视为已处理类型
//{
string[] strs = items2.ProessTypes.Split('|');
foreach (var str in strs)
{
if (!string.IsNullOrEmpty(str))
{
list2.Add(str);
}
}
//}
}
for (int j = 0; j < cblProessTypes.Items.Count; j++)
{
foreach (var item in list2)
{
if (BLL.HJGL_CH_HotProessTrustService.GetProessTypesId(cblProessTypes.Items[j].Value) == item)
{
cblProessTypes.Items[j].Selected = true;
}
}
}
}
}
}
#endregion
#region
/// <summary>
/// 编辑返修热处理委托
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnSave_Click(object sender, EventArgs e)
{
if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_HotProessTrustMenuId, Const.BtnSave))
{
if (BLL.HJGL_CH_HotProessTrustService.IsExistTrustCode(this.txtHotProessTrustCode.Text, this.HotProessTrustId, this.CurrUser.LoginProjectId))
{
ShowNotify("委托单号已存在,请重新录入!", MessageBoxIcon.Warning);
return;
}
int count = 0;
for (int i = 0; i < this.Grid1.Rows.Count; i++)
{
System.Web.UI.WebControls.CheckBoxList cblProessTypes = (System.Web.UI.WebControls.CheckBoxList)(this.Grid1.Rows[i].FindControl("cblProessTypes"));
for (int j = 0; j < cblProessTypes.Items.Count; j++)
{
if (cblProessTypes.Items[j].Selected)
{
count += 1;
break;
}
}
}
if (count < this.Grid1.Rows.Count)
{
ShowNotify("热处理类型不能为空!", MessageBoxIcon.Warning);
return;
}
Model.HJGL_CH_HotProessTrust newHotProessTrust = new Model.HJGL_CH_HotProessTrust();
newHotProessTrust.ProjectId = this.ProjectId;
newHotProessTrust.HotProessTrustCode = this.txtHotProessTrustCode.Text.Trim();
if (this.drpUnit.SelectedValue != BLL.Const._Null)
{
newHotProessTrust.TrustUnitId = this.drpUnit.SelectedValue;
}
newHotProessTrust.ProjectName = this.txtProjectName.Text.Trim();
newHotProessTrust.ConstructionNo = this.txtConstructionNo.Text.Trim();
if (this.drpTrustMan.SelectedValue != BLL.Const._Null)
{
newHotProessTrust.TrstManId = this.drpTrustMan.SelectedValue;
}
if (!string.IsNullOrEmpty(this.HotProessTrustId))
{
newHotProessTrust.HotProessTrustId = this.HotProessTrustId;
BLL.HJGL_CH_HotProessTrustService.UpdateCH_HotProessTrust(newHotProessTrust);
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "修改返修热处理委托信息");
}
else
{
this.HotProessTrustId = SQLHelper.GetNewID(typeof(Model.HJGL_CH_HotProessTrust));
newHotProessTrust.HotProessTrustId = this.HotProessTrustId;
newHotProessTrust.TrustType = "2"; //返修口
BLL.HJGL_CH_HotProessTrustService.AddCH_HotProessTrust(newHotProessTrust);
BLL.Sys_LogService.AddLog(BLL.Const.System_3, this.CurrUser.LoginProjectId, this.CurrUser.UserId, "添加返修热处理委托信息");
}
BLL.HJGL_CH_HotProessTrustService.DeleteCH_HotProessTrustItemByCH_HotProessTrustID(this.HotProessTrustId);
this.CollectGridJointInfo();
ShowNotify("提交成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetWriteBackValueReference(newHotProessTrust.HotProessTrustId)
+ ActiveWindow.GetHidePostBackReference());
}
else
{
ShowNotify("您没有这个权限,请与管理员联系!", MessageBoxIcon.Warning);
return;
}
}
#endregion
#region Grid页面信息,
/// <summary>
/// 收集Grid页面信息,提交明细
/// </summary>
/// <returns></returns>
private void CollectGridJointInfo()
{
JArray mergedData = Grid1.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
//Model.HJGL_CH_HotProessTrustItem item = new Model.HJGL_CH_HotProessTrustItem();
//string status = mergedRow.Value<string>("status");
//JObject values = mergedRow.Value<JObject>("values");
//int rowIndex = mergedRow.Value<int>("index");
//item.HotProessTrustId = this.HotProessTrustId;
//item.JOT_ID = values.Value<string>("JOT_ID").ToString();
//System.Web.UI.WebControls.CheckBoxList cblProessTypes = (System.Web.UI.WebControls.CheckBoxList)(this.Grid1.Rows[rowIndex].FindControl("cblProessTypes"));
//string str = string.Empty;
////bool needComplete = false;
//for (int i = 0; i < cblProessTypes.Items.Count; i++)
//{
// if (cblProessTypes.Items[i].Selected)
// {
// str += BLL.HJGL_CH_HotProessTrustService.GetProessTypesId(cblProessTypes.Items[i].Value) + "|";
// }
//}
//item.ProessTypes = str;
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
int rowIndex = mergedRow.Value<int>("index");
System.Web.UI.WebControls.CheckBoxList cblProessTypes = (System.Web.UI.WebControls.CheckBoxList)(this.Grid1.Rows[rowIndex].FindControl("cblProessTypes"));
string str = string.Empty;
//bool needComplete = false;
for (int i = 0; i < cblProessTypes.Items.Count; i++)
{
if (cblProessTypes.Items[i].Selected)
{
Model.HJGL_CH_HotProessTrustItem item = new Model.HJGL_CH_HotProessTrustItem();
item.HotProessTrustId = this.HotProessTrustId;
item.JOT_ID = values.Value<string>("JOT_ID").ToString();
item.ProessTypes = BLL.HJGL_CH_HotProessTrustService.GetProessTypesId(cblProessTypes.Items[i].Value);
item.TrustDate = Funs.GetNewDateTime(values.Value<string>("TrustDate").ToString());
item.Remark = values.Value<string>("Remark").ToString();
item.TrustItemID = values.Value<string>("TrustItemID").ToString();
BLL.HJGL_CH_HotProessTrustService.AddCH_HotProessTrustItem(item);
if (item.ProessTypes.Contains("4") || item.ProessTypes.Contains("5")) //需要进入热处理报告的记录
{
Model.HJGL_HotProessItem oldHotProessItem = (from x in Funs.DB.HJGL_HotProessItem where x.JOT_ID == item.JOT_ID && x.ProessTypes == item.ProessTypes && x.HotProessTrustId == this.HotProessTrustId select x).FirstOrDefault();
if (oldHotProessItem == null)
{
Model.HJGL_HotProessItem hotProessItem = new Model.HJGL_HotProessItem();
hotProessItem.HotProessItemId = SQLHelper.GetNewID(typeof(Model.HJGL_HotProessItem));
hotProessItem.JOT_ID = item.JOT_ID;
hotProessItem.HotProessTrustId = this.HotProessTrustId;
hotProessItem.ProessTypes = item.ProessTypes;
hotProessItem.SortIndex = BLL.HJGL_HotProessManageEditService.GetSortIndex(this.HotProessTrustId, item.JOT_ID, item.ProessTypes);
BLL.HJGL_HotProessManageEditService.AddHotProessItem(hotProessItem, "", null);
}
}
//进入热处理结果反馈
Model.HJGL_CH_HotProessResult oldHotProessResult = (from x in Funs.DB.HJGL_CH_HotProessResult where x.JOT_ID == item.JOT_ID && x.ProessTypes == item.ProessTypes && x.HotProessTrustId == this.HotProessTrustId select x).FirstOrDefault();
if (oldHotProessResult == null)
{
Model.HJGL_CH_HotProessResult hotProessResult = new Model.HJGL_CH_HotProessResult();
hotProessResult.JOT_ID = item.JOT_ID;
hotProessResult.HotProessTrustId = this.HotProessTrustId;
hotProessResult.ProessTypes = item.ProessTypes;
BLL.HJGL_CH_HotProessResultService.AddHotProessResult(hotProessResult);
}
}
}
//if (str.Contains("1") || str.Contains("2") || str.Contains("3"))
//{
// needComplete = true;
//}
//if (needComplete)
//{
// System.Web.UI.WebControls.CheckBox cbIsComplete = (System.Web.UI.WebControls.CheckBox)(this.Grid1.Rows[rowIndex].FindControl("cbIsComplete"));
// if (cbIsComplete.Checked)
// {
// item.IsComplete = true;
// }
// else
// {
// item.IsComplete = false;
// }
//}
//else
//{
// item.IsComplete = null;
//}
}
}
#endregion
#region Grid
/// <summary>
/// 关闭弹出窗口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Window1_Close(object sender, WindowCloseEventArgs e)
{
List<string> list = Funs.GetStrListByStr(hdItemsString.Text, '|');
List<Model.HJGL_View_CH_HotProessTrustItem> lists = BLL.HJGL_CH_HotProessTrustService.GetHotProessTrustAddItem(this.hdItemsString.Text);
this.BindGrid(lists);
//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)
{
//this.CollectGridJointInfo();
List<Model.HJGL_View_CH_HotProessTrustItem> GetHotProessTrustItem = new List<Model.HJGL_View_CH_HotProessTrustItem>();
foreach (int rowIndex in Grid1.SelectedRowIndexArray)
{
string rowID = Grid1.DataKeys[rowIndex][0].ToString();
if (!string.IsNullOrEmpty(this.hdItemsString.Text))
{
GetHotProessTrustItem = BLL.HJGL_CH_HotProessTrustService.GetHotProessTrustAddItem(this.hdItemsString.Text);
}
else if (string.IsNullOrEmpty(this.hdItemsString.Text) && this.HotProessTrustId != null)
{
GetHotProessTrustItem = BLL.HJGL_CH_HotProessTrustService.GetHotProessTrustItem(this.ProjectId, this.HotProessTrustId);
}
var item = GetHotProessTrustItem.FirstOrDefault(x => x.JOT_ID == rowID);
if (item != null)
{
if (string.IsNullOrEmpty(this.HotProessTrustId)) //新增记录可直接删除
{
GetHotProessTrustItem.Remove(item);
}
else //修改记录时只能删除未处理的热处理记录
{
var result = (from x in Funs.DB.HJGL_CH_HotProessResult where x.HotProessTrustId == item.HotProessTrustId && x.JOT_ID == item.JOT_ID && item.ProessTypes == x.ProessTypes select x).FirstOrDefault();
if (result != null)
{
if (result.IsOK == null)
{
GetHotProessTrustItem.Remove(item);
}
else
{
ShowNotify("热处理结果已反馈,无法删除!", MessageBoxIcon.Warning);
return;
}
}
}
}
}
BindGrid(GetHotProessTrustItem);
ShowNotify("操作完成!", MessageBoxIcon.Success);
ShowNotify("操作完成!", MessageBoxIcon.Success);
}
}
#endregion
/// <summary>
/// 查找未焊接焊口
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void ckSelect_Click(object sender, EventArgs e)
{
//this.CollectGridJointInfo();
if (!string.IsNullOrEmpty(this.drpUnit.SelectedValue) && this.drpUnit.SelectedValue != BLL.Const._Null)
{
string strList = this.drpUnit.SelectedValue + "|" + this.HotProessTrustId + "|" + this.ProjectId;
string window = String.Format("HotProessTrustItemEdit.aspx?strList={0}", strList, "编辑 - ");
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hdItemsString.ClientID) + Window1.GetShowReference(window));
}
else
{
Alert.ShowInTop("请选择单位!", MessageBoxIcon.Warning);
}
}
/// <summary>
/// 是否返修口
/// </summary>
/// <param name="bigType"></param>
/// <returns></returns>
protected string ConvertIsRepair(object TrustItemID)
{
string state = string.Empty;
if (TrustItemID != null)
{
string trustItemID = TrustItemID.ToString();
if (!string.IsNullOrEmpty(trustItemID))
{
state = "是";
}
}
return state;
}
}
}