777 lines
38 KiB
C#
777 lines
38 KiB
C#
using Aspose.Words.Lists;
|
||
using BLL;
|
||
using FineUIPro.Web.ProjectData;
|
||
using Model;
|
||
using Newtonsoft.Json.Linq;
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Linq;
|
||
using System.Web;
|
||
using System.Web.UI;
|
||
using System.Web.UI.WebControls;
|
||
|
||
namespace FineUIPro.Web.TestRun.TestRunManage
|
||
{
|
||
public partial class SubInspectTerm : PageBase
|
||
{
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
if (!IsPostBack)
|
||
{
|
||
this.InitTreeMenu();//加载树
|
||
PageInit();
|
||
}
|
||
}
|
||
|
||
#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);
|
||
var list = from a in Funs.DB.PreRun_SysDevice
|
||
join b in Funs.DB.TestRun_SubSysWorkPackage on a.SystemId equals b.SystemId
|
||
join c in Funs.DB.TestRun_WorkPackage on b.WorkPackId equals c.WorkPackId
|
||
where a.ProjectId == this.CurrUser.LoginProjectId && a.PreRunLevel != 4
|
||
select new { a.PreRunId, a.ParentId, a.ProcessesId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode };
|
||
if (list.Count() > 0)
|
||
{
|
||
var ids = list.Select(x => x.ProcessesId).ToList();
|
||
ids.AddRange(list.Select(x => x.PreRunId).ToList());
|
||
ids = ids.Distinct().ToList();
|
||
var syslist = Funs.DB.PreRun_SysDevice.Where(x => ids.Contains(x.PreRunId)).ToList();
|
||
if (syslist.Count > 0)
|
||
{
|
||
var oneIds = syslist.ConvertAll(x => x.ProcessesId).Distinct().ToList();
|
||
foreach (var itemOne in oneIds)
|
||
{
|
||
var itemOneModel = syslist.FirstOrDefault(x => x.PreRunId == itemOne);
|
||
TreeNode rootOneNode = new TreeNode();
|
||
rootOneNode.NodeID = itemOneModel.PreRunId;
|
||
rootOneNode.Text = itemOneModel.PreRunName;
|
||
rootOneNode.ToolTip = itemOneModel.PreRunName;
|
||
rootOneNode.CommandName = "";
|
||
rootOneNode.EnableClickEvent = false;
|
||
rootOneNode.EnableExpandEvent = false;
|
||
rootNode.Nodes.Add(rootOneNode);
|
||
rootOneNode.Expanded = true;
|
||
var subTwoList = syslist.Where(g => g.ParentId == itemOneModel.PreRunId).GroupBy(x => new { x.PreRunId, x.ProcessesId, x.PreRunCode, x.PreRunName });
|
||
foreach (var itemTwo in subTwoList)
|
||
{
|
||
TreeNode rootTwoNode = new TreeNode();
|
||
rootTwoNode.NodeID = itemTwo.Key.PreRunId;
|
||
rootTwoNode.Text = itemTwo.Key.PreRunName;
|
||
rootTwoNode.ToolTip = itemTwo.Key.PreRunName;
|
||
rootTwoNode.CommandName = "";
|
||
rootTwoNode.EnableClickEvent = false;
|
||
rootTwoNode.EnableExpandEvent = false;
|
||
rootOneNode.Nodes.Add(rootTwoNode);
|
||
rootTwoNode.Expanded = true;
|
||
var worklist = list.Where(a => a.PreRunId == itemTwo.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
|
||
if (worklist.Count > 0)
|
||
{
|
||
foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
|
||
{
|
||
TreeNode newNode = new TreeNode();
|
||
newNode.Text = itemWork.Key.WorkPackName;
|
||
newNode.NodeID = itemWork.Key.WorkPackId + "|" + itemTwo.Key.PreRunId;
|
||
newNode.ToolTip = itemWork.Key.WorkPackName;
|
||
newNode.CommandName = "";
|
||
newNode.Expanded = true;
|
||
newNode.EnableClickEvent = true;
|
||
newNode.EnableExpandEvent = true;
|
||
rootTwoNode.Nodes.Add(newNode);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 绑定下拉框
|
||
/// </summary>
|
||
public void PageInit()
|
||
{
|
||
//检查人绑定
|
||
var userList = from user in Funs.DB.Sys_User
|
||
join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId
|
||
where projectrole.ProjectId == this.CurrUser.LoginProjectId
|
||
select user;
|
||
var userids = new List<string>() { Const.sysglyId, Const.hfnbdId, Const.sedinId };
|
||
var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId));
|
||
var users = userList.ToList();
|
||
if (addUserList.Count() > 0)
|
||
{
|
||
users.AddRange(addUserList);
|
||
}
|
||
if (users.Count() > 0)
|
||
{
|
||
ddlfbs.DataTextField = "UserName";
|
||
ddlfbs.DataValueField = "UserId";
|
||
ddlfbs.DataSource = users;
|
||
ddlfbs.DataBind();
|
||
|
||
ddlcbs.DataTextField = "UserName";
|
||
ddlcbs.DataValueField = "UserId";
|
||
ddlcbs.DataSource = users;
|
||
ddlcbs.DataBind();
|
||
|
||
ddljl.DataTextField = "UserName";
|
||
ddljl.DataValueField = "UserId";
|
||
ddljl.DataSource = users;
|
||
ddljl.DataBind();
|
||
|
||
ddlyz.DataTextField = "UserName";
|
||
ddlyz.DataValueField = "UserId";
|
||
ddlyz.DataSource = users;
|
||
ddlyz.DataBind();
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 点击TreeView
|
||
/// </summary>
|
||
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
|
||
{
|
||
this.BindGrid();
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 数据绑定
|
||
|
||
/// <summary>
|
||
/// 绑定数据
|
||
/// </summary>
|
||
public void BindGrid(List<TestRun_SubInspectTermItemData> ulist = null)
|
||
{
|
||
var result = new List<TestRun_SubInspectTermItemData>();
|
||
if (ulist != null)
|
||
{
|
||
#region 新增修改检查项
|
||
|
||
var groups = ulist.GroupBy(x => x.GroupName);
|
||
int gnum = 1;
|
||
foreach (var itemGroup in groups)
|
||
{
|
||
//添加一级节点
|
||
var firstModel = new TestRun_SubInspectTermItemData();
|
||
firstModel.TermItemId = itemGroup.Key;
|
||
firstModel.GroupName = itemGroup.Key;
|
||
firstModel.Sort = gnum;
|
||
firstModel.GroupSort = gnum;
|
||
firstModel.Level = 1;
|
||
result.Add(firstModel);
|
||
gnum++;
|
||
|
||
//获取此分组的检查项
|
||
var groupTermItems = ulist.Where(x => x.GroupName == itemGroup.Key);
|
||
foreach (var itemTerm in groupTermItems)
|
||
{
|
||
var model = new TestRun_SubInspectTermItemData();
|
||
model.TermItemId = itemTerm.TermItemId;
|
||
model.ParentId = itemGroup.Key;
|
||
model.ProjectId = this.CurrUser.LoginProjectId;
|
||
model.WorkPackId = itemTerm.WorkPackId;
|
||
model.WorkInspectId = itemTerm.WorkInspectId;
|
||
model.WorkInspectName = itemTerm.WorkInspectName;
|
||
model.InstallationId = itemTerm.InstallationId;
|
||
model.ProcessesId = itemTerm.ProcessesId;
|
||
model.SystemId = itemTerm.SystemId;
|
||
model.InspectedUser = itemTerm.InspectedUser;
|
||
model.AllUserInspectionPass = itemTerm.AllUserInspectionPass;
|
||
model.UserInspectionResults = itemTerm.UserInspectionResults;
|
||
model.InspectionIllustrate = itemTerm.InspectionIllustrate;
|
||
model.GroupName = itemTerm.GroupName;
|
||
model.Sort = itemTerm.Sort;
|
||
model.GroupSort = itemTerm.GroupSort;
|
||
model.Level = 2;
|
||
result.Add(model);
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
}
|
||
else
|
||
{
|
||
var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
|
||
var systemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
|
||
var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == systemId);
|
||
var list = from a in Funs.DB.TestRun_SubInspectTermItem
|
||
where a.SystemId == systemId && a.WorkPackId == workPackId
|
||
orderby a.Sort ascending
|
||
select a;
|
||
if (list.Count() > 0)
|
||
{
|
||
var itemids = list.Select(p => p.TermItemId);
|
||
var termitemusers = from a in Funs.DB.TestRun_TermItemInspectedUser
|
||
join b in Funs.DB.Sys_User on a.InspectedUser equals b.UserId
|
||
where itemids.Contains(a.TermItemId)
|
||
select new { a.TermItemId, a.InspectedUser, a.InspectionIllustrate, InspectionResultsName = a.InspectionResults == 1 ? "通过" : "未通过", b.UserName };
|
||
|
||
var groups = list.GroupBy(x => new { x.GroupName });
|
||
int firstnum = 1;
|
||
foreach (var itemGroup in groups)
|
||
{
|
||
//添加一级节点
|
||
var firstModel = new TestRun_SubInspectTermItemData();
|
||
firstModel.TermItemId = itemGroup.Key.GroupName;
|
||
firstModel.GroupName = itemGroup.Key.GroupName;
|
||
firstModel.Sort = firstnum;
|
||
firstModel.GroupSort = firstnum;
|
||
firstModel.Level = 1;
|
||
result.Add(firstModel);
|
||
firstnum++;
|
||
//获取此分组的检查项
|
||
var groupTermItems = list.Where(x => x.GroupName == itemGroup.Key.GroupName);
|
||
foreach (var itemTerm in groupTermItems)
|
||
{
|
||
var model = new TestRun_SubInspectTermItemData();
|
||
model.TermItemId = itemTerm.TermItemId;
|
||
model.ParentId = itemGroup.Key.GroupName;
|
||
model.ProjectId = itemTerm.ProjectId;
|
||
model.WorkPackId = itemTerm.WorkPackId;
|
||
model.WorkInspectId = itemTerm.WorkInspectId;
|
||
model.WorkInspectName = itemTerm.WorkInspectName;
|
||
model.InstallationId = subSysModel.InstallationId;
|
||
model.ProcessesId = subSysModel.ProcessesId;
|
||
model.SystemId = subSysModel.SystemId;
|
||
model.InspectedUser = itemTerm.InspectedUser;
|
||
model.AllUserInspectionPass = itemTerm.AllUserInspectionPass;
|
||
model.GroupName = itemTerm.GroupName;
|
||
model.Sort = itemTerm.Sort.Value;
|
||
model.GroupSort = itemTerm.Sort.Value;
|
||
if (termitemusers.Count(a => a.TermItemId == itemTerm.TermItemId) > 0)
|
||
{
|
||
foreach (var itemU in termitemusers.Where(a => a.TermItemId == itemTerm.TermItemId))
|
||
{
|
||
model.UserInspectionResults += string.IsNullOrWhiteSpace(model.UserInspectionResults) ? $"{itemU.UserName}:{itemU.InspectionResultsName}" : "</br>" + $"{itemU.UserName}:{itemU.InspectionResultsName}";
|
||
if (!string.IsNullOrWhiteSpace(itemU.InspectionIllustrate))
|
||
{
|
||
model.InspectionIllustrate += string.IsNullOrWhiteSpace(model.InspectionIllustrate) ? $"{itemU.UserName}:{itemU.InspectionIllustrate}" : "</br>" + $"{itemU.UserName}:{itemU.InspectionIllustrate}";
|
||
}
|
||
}
|
||
}
|
||
model.Level = 2;
|
||
result.Add(model);
|
||
}
|
||
}
|
||
|
||
var itemModel = list.FirstOrDefault();
|
||
ddlfbs.SelectedValue = itemModel.Subcontractor;
|
||
ddlcbs.SelectedValue = itemModel.Contractor;
|
||
ddljl.SelectedValue = itemModel.Supervision;
|
||
ddlyz.SelectedValue = itemModel.Owner;
|
||
}
|
||
else
|
||
{
|
||
ddlfbs.SelectedValue = "";
|
||
ddlcbs.SelectedValue = "";
|
||
ddljl.SelectedValue = "";
|
||
ddlyz.SelectedValue = "";
|
||
var defaultDatas = from a in Funs.DB.TestRun_WorkInspectTemplate
|
||
where a.WorkPackId == workPackId
|
||
select a;
|
||
if (defaultDatas.Count() > 0)
|
||
{
|
||
var groups = defaultDatas.GroupBy(x => new { x.GroupName });
|
||
int firstnum = 1;
|
||
foreach (var itemGroup in groups)
|
||
{
|
||
//添加一级节点
|
||
var firstModel = new TestRun_SubInspectTermItemData();
|
||
firstModel.TermItemId = itemGroup.Key.GroupName;
|
||
firstModel.GroupName = itemGroup.Key.GroupName;
|
||
firstModel.Sort = firstnum;
|
||
firstModel.GroupSort = firstnum;
|
||
firstModel.Level = 1;
|
||
result.Add(firstModel);
|
||
firstnum++;
|
||
//获取此分组的检查项
|
||
var groupTermItems = defaultDatas.Where(x => x.GroupName == itemGroup.Key.GroupName);
|
||
foreach (var itemTerm in groupTermItems)
|
||
{
|
||
var model = new TestRun_SubInspectTermItemData();
|
||
model.TermItemId = Guid.NewGuid().ToString();
|
||
model.ParentId = itemGroup.Key.GroupName;
|
||
model.ProjectId = this.CurrUser.LoginProjectId;
|
||
model.WorkPackId = itemTerm.WorkPackId;
|
||
model.WorkInspectId = itemTerm.WorkInspectId;
|
||
model.WorkInspectName = itemTerm.WorkInspectName;
|
||
model.InstallationId = subSysModel.InstallationId;
|
||
model.ProcessesId = subSysModel.ProcessesId;
|
||
model.SystemId = subSysModel.SystemId;
|
||
model.GroupName = itemTerm.GroupName;
|
||
model.Sort = itemTerm.Sort.Value;
|
||
model.GroupSort = itemTerm.Sort.Value;
|
||
model.Level = 2;
|
||
result.Add(model);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
Grid1.DataSource = result;
|
||
Grid1.DataBind();
|
||
//检查人绑定
|
||
var userList = from user in Funs.DB.Sys_User join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId where projectrole.ProjectId == this.CurrUser.LoginProjectId select user;
|
||
|
||
var userids = new List<string>() { Const.sysglyId, Const.hfnbdId, Const.sedinId };
|
||
var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId));
|
||
var data = userList.ToList();
|
||
if (addUserList.Count() > 0)
|
||
{
|
||
data.AddRange(addUserList);
|
||
}
|
||
DropDownList ddlInspectedUser = Grid1.FindColumn("InspectedUser").FindControl("ddlInspectedUser") as DropDownList;
|
||
ddlInspectedUser.DataTextField = "UserName";
|
||
ddlInspectedUser.DataValueField = "UserId";
|
||
ddlInspectedUser.DataSource = data;
|
||
ddlInspectedUser.DataBind();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 行按钮事件
|
||
/// </summary>
|
||
protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
|
||
{
|
||
if (e.CommandName == "Delete")
|
||
{
|
||
string rowID = e.RowID;
|
||
var level = int.Parse(this.Grid1.Rows[e.RowIndex].DataKeys[8].ToString());
|
||
if (level == 1)
|
||
{
|
||
var groupName = this.Grid1.Rows[e.RowIndex].DataKeys[7].ToString();
|
||
var deletelist = Funs.DB.TestRun_SubInspectTermItem.Where(p => p.GroupName == groupName);
|
||
if (deletelist.Count() > 0)
|
||
{
|
||
Funs.DB.TestRun_SubInspectTermItem.DeleteAllOnSubmit(deletelist);
|
||
Funs.DB.SubmitChanges();
|
||
BindGrid();
|
||
ShowNotify("删除成功!");
|
||
}
|
||
else
|
||
{
|
||
|
||
var list = gvList();
|
||
list.RemoveAll(x => x.GroupName == groupName);
|
||
Grid1.DataSource = list;
|
||
Grid1.DataBind();
|
||
ShowNotify("删除成功!");
|
||
}
|
||
}
|
||
else
|
||
{
|
||
var model = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(p => p.TermItemId == rowID);
|
||
if (model != null)
|
||
{
|
||
if (model.AllUserInspectionPass != null)
|
||
{
|
||
ShowNotify("已存在检查结果,无法删除!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
Funs.DB.TestRun_SubInspectTermItem.DeleteOnSubmit(model);
|
||
Funs.DB.SubmitChanges();
|
||
BindGrid();
|
||
ShowNotify("删除成功!");
|
||
}
|
||
else
|
||
{
|
||
var list = gvList();
|
||
list.RemoveAll(x => x.TermItemId == rowID);
|
||
Grid1.DataSource = list;
|
||
Grid1.DataBind();
|
||
ShowNotify("删除成功!");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
/// <summary>
|
||
/// 保存
|
||
/// </summary>
|
||
protected void btnSave_Click(object sender, EventArgs e)
|
||
{
|
||
try
|
||
{
|
||
if (string.IsNullOrWhiteSpace(ddlfbs.SelectedValue))
|
||
{
|
||
ShowNotify("请选择分包商!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
if (string.IsNullOrWhiteSpace(ddlcbs.SelectedValue))
|
||
{
|
||
ShowNotify("请选择承包商!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
if (string.IsNullOrWhiteSpace(ddljl.SelectedValue))
|
||
{
|
||
ShowNotify("请选择监理!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
if (string.IsNullOrWhiteSpace(ddlyz.SelectedValue))
|
||
{
|
||
ShowNotify("请选择业主!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
|
||
var systemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
|
||
List<TestRun_SubInspectTerm> subTrems = new List<TestRun_SubInspectTerm>();
|
||
List<TestRun_SubInspectTermItem> subTremItems = new List<TestRun_SubInspectTermItem>();
|
||
List<TestRun_TermItemInspectedUser> tremItemUsers = new List<TestRun_TermItemInspectedUser>();
|
||
var subTrem = Funs.DB.TestRun_SubInspectTerm.FirstOrDefault(x => x.SystemId == systemId && x.WorkPackId == workPackId);
|
||
var termItems = Funs.DB.TestRun_SubInspectTermItem.Where(x => x.SystemId == systemId && x.WorkPackId == workPackId).ToList();
|
||
if (termItems.Count > 0 && termItems.Count(x => x.AllUserInspectionPass == null) == 0)
|
||
{
|
||
ShowNotify("所有检查项已存在检查结果,无法保存!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
int itemnum = 1;
|
||
JArray mergedData = Grid1.GetMergedData();
|
||
foreach (JObject mergedRow in mergedData)
|
||
{
|
||
string status = mergedRow.Value<string>("status");
|
||
JObject values = mergedRow.Value<JObject>("values");
|
||
int i = mergedRow.Value<int>("index");
|
||
var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
|
||
var workInspectId = this.Grid1.Rows[i].DataKeys[1] != null ? this.Grid1.Rows[i].DataKeys[1].ToString() : string.Empty;
|
||
var groupName = this.Grid1.Rows[i].DataKeys[7].ToString();
|
||
var level = this.Grid1.Rows[i].DataKeys[8].ToString();
|
||
if (level == "1") continue;
|
||
|
||
//获取系统信息
|
||
var list = new List<TestRun_SubInspectTermItem>();
|
||
var sysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == systemId);
|
||
if (sysModel == null) continue;
|
||
|
||
//检查表
|
||
if (subTrem == null)
|
||
{
|
||
subTrem = new TestRun_SubInspectTerm();
|
||
subTrem.SubInspectId = Guid.NewGuid().ToString();
|
||
subTrem.WorkPackId = workPackId;
|
||
subTrem.ProjectId = this.CurrUser.LoginProjectId;
|
||
subTrem.InstallationId = sysModel.InstallationId;
|
||
subTrem.ProcessesId = sysModel.ProcessesId;
|
||
subTrem.SystemId = sysModel.PreRunId;
|
||
subTrem.Subcontractor = ddlfbs.SelectedValue;
|
||
subTrem.Contractor = ddlcbs.SelectedValue;
|
||
subTrem.Supervision = ddljl.SelectedValue;
|
||
subTrem.Owner = ddlyz.SelectedValue;
|
||
subTrem.AddUser = this.CurrUser.UserId;
|
||
subTrem.AddTime = DateTime.Now;
|
||
subTrems.Add(subTrem);
|
||
}
|
||
else
|
||
{
|
||
subTrem.Subcontractor = ddlfbs.SelectedValue;
|
||
subTrem.Contractor = ddlcbs.SelectedValue;
|
||
subTrem.Supervision = ddljl.SelectedValue;
|
||
subTrem.Owner = ddlyz.SelectedValue;
|
||
Funs.DB.SubmitChanges();
|
||
}
|
||
//检查项表
|
||
var model = Funs.DB.TestRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId);
|
||
if (model == null)
|
||
{
|
||
model = new TestRun_SubInspectTermItem();
|
||
model.TermItemId = termItemId;
|
||
model.SubInspectId = subTrem.SubInspectId;
|
||
model.WorkPackId = workPackId;
|
||
model.ProjectId = this.CurrUser.LoginProjectId;
|
||
model.WorkInspectId = workInspectId;
|
||
model.WorkInspectName = values.Value<string>("WorkInspectName");
|
||
model.InstallationId = sysModel.InstallationId;
|
||
model.ProcessesId = sysModel.ProcessesId;
|
||
model.SystemId = sysModel.PreRunId;
|
||
model.InspectedUser = values.Value<string>("InspectedUser");
|
||
model.GroupName = groupName;
|
||
model.Subcontractor = ddlfbs.SelectedValue;
|
||
model.Contractor = ddlcbs.SelectedValue;
|
||
model.Supervision = ddljl.SelectedValue;
|
||
model.Owner = ddlyz.SelectedValue;
|
||
model.AddUser = this.CurrUser.UserId;
|
||
model.AddTime = DateTime.Now;
|
||
model.Sort = itemnum;
|
||
subTremItems.Add(model);
|
||
itemnum++;
|
||
}
|
||
else
|
||
{
|
||
model.GroupName = groupName;
|
||
model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value<string>("InspectedUser")) ? values.Value<string>("InspectedUser") : string.Empty;
|
||
model.WorkInspectName = values.Value<string>("WorkInspectName");
|
||
//删除检查项检查人表
|
||
var deleteTermUser = Funs.DB.TestRun_TermItemInspectedUser.Where(x => x.TermItemId == termItemId && x.InspectionResults == null);
|
||
if (deleteTermUser.Count() > 0)
|
||
{
|
||
Funs.DB.TestRun_TermItemInspectedUser.DeleteAllOnSubmit(deleteTermUser);
|
||
}
|
||
Funs.DB.SubmitChanges();
|
||
}
|
||
//检查项检查人表
|
||
int usernum = 1;
|
||
var users = values.Value<string>("InspectedUser").Split(',');
|
||
foreach (var itemUser in users)
|
||
{
|
||
if (Funs.DB.TestRun_TermItemInspectedUser.Count(x => x.TermItemId == termItemId && x.InspectedUser == itemUser) == 0)
|
||
{
|
||
var userModel = new TestRun_TermItemInspectedUser();
|
||
userModel.ItemUserId = Guid.NewGuid().ToString();
|
||
userModel.TermItemId = termItemId;
|
||
userModel.SubInspectId = subTrem.SubInspectId;
|
||
userModel.WorkPackId = workPackId;
|
||
userModel.GroupName = groupName;
|
||
userModel.ProjectId = this.CurrUser.LoginProjectId;
|
||
userModel.InspectedUser = itemUser;
|
||
userModel.AddUser = this.CurrUser.UserId;
|
||
userModel.AddTime = DateTime.Now;
|
||
userModel.Sort = usernum;
|
||
tremItemUsers.Add(userModel);
|
||
usernum++;
|
||
}
|
||
}
|
||
}
|
||
if (subTrems != null) Funs.DB.TestRun_SubInspectTerm.InsertAllOnSubmit(subTrems);
|
||
if (subTremItems.Count > 0) Funs.DB.TestRun_SubInspectTermItem.InsertAllOnSubmit(subTremItems);
|
||
if (tremItemUsers.Count > 0) Funs.DB.TestRun_TermItemInspectedUser.InsertAllOnSubmit(tremItemUsers);
|
||
Funs.DB.SubmitChanges();
|
||
if (Funs.DB.TestRun_SubInspectTermItem.Count(x => x.SubInspectId == subTrem.SubInspectId && x.AllUserInspectionPass.GetValueOrDefault() != 1) == 0)
|
||
{
|
||
subTrem.InspectionIsAllPass = 1;
|
||
}
|
||
else
|
||
{
|
||
subTrem.InspectionIsAllPass = 0;
|
||
}
|
||
Funs.DB.SubmitChanges();
|
||
this.InitTreeMenu();
|
||
ShowNotify("保存成功!");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
ShowNotify(ex.Message, MessageBoxIcon.Error);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 新增
|
||
/// </summary>
|
||
protected void btnAdd_Click(object sender, EventArgs e)
|
||
{
|
||
var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
|
||
var systemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
|
||
this.hidRequestNodeID.Text = string.Empty;
|
||
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hidRequestNodeID.ClientID) + Window1.GetShowReference($"SubInspectTermEdit.aspx?TermItemId=&WorkInspectId=&WorkPackId={workPackId}&SystemId={systemId}", "新增"));
|
||
}
|
||
|
||
/// <summary>
|
||
/// 修改
|
||
/// </summary>
|
||
protected void btnModify_Click(object sender, EventArgs e)
|
||
{
|
||
if (Grid1.SelectedRowIndexArray.Length == 0)
|
||
{
|
||
Alert.ShowInTop("请选择记录!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
if (Grid1.SelectedRowIndexArray.Length > 1)
|
||
{
|
||
Alert.ShowInTop("只可选择一条记录!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
var level = int.Parse(this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[8].ToString());
|
||
if (level == 1)
|
||
{
|
||
Alert.ShowInTop("一级节点无法修改!", MessageBoxIcon.Warning);
|
||
return;
|
||
}
|
||
var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
|
||
var systemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
|
||
var workInspectId = this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[1] != null ? this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[1].ToString() : string.Empty;
|
||
var groupName = this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[7] != null ? this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[7].ToString() : string.Empty;
|
||
var workInspectName = this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[10] != null ? this.Grid1.Rows[Grid1.SelectedRowIndex].DataKeys[10].ToString() : string.Empty;
|
||
this.hidRequestNodeID.Text = string.Empty;
|
||
PageContext.RegisterStartupScript(Window1.GetSaveStateReference(hidRequestNodeID.ClientID) + Window1.GetShowReference($"SubInspectTermEdit.aspx?TermItemId={Grid1.SelectedRowID}&WorkInspectId={workInspectId}&WorkPackId={workPackId}&SystemId={systemId}&GroupName={groupName}&WorkInspectName={workInspectName}", "编辑"));
|
||
}
|
||
|
||
/// <summary>
|
||
/// 右击新增
|
||
/// </summary>
|
||
protected void btnMenuParentAdd_Click(object sender, EventArgs e)
|
||
{
|
||
btnAdd_Click(sender, e);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 右击修改
|
||
/// </summary>
|
||
protected void btnMenuModify_Click(object sender, EventArgs e)
|
||
{
|
||
btnModify_Click(sender, e);
|
||
}
|
||
|
||
/// <summary>
|
||
/// 入场人员培训及特种作业报验人数集合
|
||
/// </summary>
|
||
private List<TestRun_SubInspectTermItemData> gvList()
|
||
{
|
||
List<TestRun_SubInspectTermItemData> list = new List<TestRun_SubInspectTermItemData>();
|
||
JArray mergedData = Grid1.GetMergedData();
|
||
foreach (JObject mergedRow in mergedData)
|
||
{
|
||
string status = mergedRow.Value<string>("status");
|
||
JObject values = mergedRow.Value<JObject>("values");
|
||
int i = mergedRow.Value<int>("index");
|
||
var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
|
||
var workInspectId = this.Grid1.Rows[i].DataKeys[1] != null ? this.Grid1.Rows[i].DataKeys[1].ToString() : string.Empty;
|
||
var subInspectId = this.Grid1.Rows[i].DataKeys[2] != null ? this.Grid1.Rows[i].DataKeys[2].ToString() : string.Empty;
|
||
var workPackId = this.Grid1.Rows[i].DataKeys[3] != null ? this.Grid1.Rows[i].DataKeys[3].ToString() : string.Empty;
|
||
var installationId = this.Grid1.Rows[i].DataKeys[4] != null ? this.Grid1.Rows[i].DataKeys[4].ToString() : string.Empty;
|
||
var processesId = this.Grid1.Rows[i].DataKeys[5] != null ? this.Grid1.Rows[i].DataKeys[5].ToString() : string.Empty;
|
||
var systemId = this.Grid1.Rows[i].DataKeys[6] != null ? this.Grid1.Rows[i].DataKeys[6].ToString() : string.Empty;
|
||
var groupName = this.Grid1.Rows[i].DataKeys[7] != null ? this.Grid1.Rows[i].DataKeys[7].ToString() : string.Empty;
|
||
var level = this.Grid1.Rows[i].DataKeys[8] != null ? this.Grid1.Rows[i].DataKeys[8].ToString() : string.Empty;
|
||
var parentId = this.Grid1.Rows[i].DataKeys[9] != null ? this.Grid1.Rows[i].DataKeys[9].ToString() : string.Empty;
|
||
var groupSort = this.Grid1.Rows[i].DataKeys[11] != null ? this.Grid1.Rows[i].DataKeys[11].ToString() : string.Empty;
|
||
var userInspectionResults = this.Grid1.Rows[i].DataKeys[12] != null ? this.Grid1.Rows[i].DataKeys[12].ToString() : string.Empty;
|
||
var inspectionIllustrate = this.Grid1.Rows[i].DataKeys[13] != null ? this.Grid1.Rows[i].DataKeys[13].ToString() : string.Empty;
|
||
var model = new TestRun_SubInspectTermItemData();
|
||
model.TermItemId = termItemId;
|
||
model.SubInspectId = subInspectId;
|
||
model.WorkPackId = workPackId;
|
||
model.ProjectId = this.CurrUser.LoginProjectId;
|
||
model.WorkInspectId = workInspectId;
|
||
model.WorkInspectName = values.Value<string>("WorkInspectName");
|
||
model.InstallationId = installationId;
|
||
model.ProcessesId = processesId;
|
||
model.SystemId = systemId;
|
||
model.GroupName = groupName;
|
||
model.GroupSort = !string.IsNullOrWhiteSpace(groupSort) ? int.Parse(groupSort) : 0;
|
||
model.Level = int.Parse(level);
|
||
model.ParentId = parentId;
|
||
model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value<string>("InspectedUser")) ? values.Value<string>("InspectedUser") : string.Empty;
|
||
model.UserInspectionResults = userInspectionResults;
|
||
model.InspectionIllustrate = inspectionIllustrate;
|
||
model.AddUser = this.CurrUser.UserId;
|
||
model.AddTime = DateTime.Now;
|
||
model.Sort = i + 1;
|
||
list.Add(model);
|
||
}
|
||
return list;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 检测结果
|
||
/// </summary>
|
||
/// <returns></returns>
|
||
public string Results(object value)
|
||
{
|
||
var result = string.Empty;
|
||
|
||
if (value != null)
|
||
{
|
||
var intVal = int.Parse(value.ToString());
|
||
if (intVal == 1)
|
||
{
|
||
result = "通过";
|
||
}
|
||
else if (intVal == 0)
|
||
{
|
||
result = "未通过";
|
||
}
|
||
}
|
||
|
||
return result;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 数据绑定实体
|
||
/// </summary>
|
||
public class TestRun_SubInspectTermItemData : TestRun_SubInspectTermItem
|
||
{
|
||
/// <summary>
|
||
/// 上级主键
|
||
/// </summary>
|
||
public string ParentId { get; set; }
|
||
/// <summary>
|
||
/// 分组排序
|
||
/// </summary>
|
||
public int GroupSort { get; set; }
|
||
/// <summary>
|
||
/// 级别
|
||
/// </summary>
|
||
public int Level { get; set; }
|
||
/// <summary>
|
||
/// 检查人检查结果
|
||
/// </summary>
|
||
public string UserInspectionResults { get; set; }
|
||
/// <summary>
|
||
/// 检查人检查说明
|
||
/// </summary>
|
||
public string InspectionIllustrate { get; set; }
|
||
}
|
||
|
||
/// <summary>
|
||
/// 关闭
|
||
/// </summary>
|
||
protected void Window1_Close(object sender, WindowCloseEventArgs e)
|
||
{
|
||
if (!string.IsNullOrWhiteSpace(hidRequestNodeID.Text))
|
||
{
|
||
var list = gvList();
|
||
string termItemId = hidRequestNodeID.Text.Split('|')[0];
|
||
string workPackId = hidRequestNodeID.Text.Split('|')[1];
|
||
string systemId = hidRequestNodeID.Text.Split('|')[2];
|
||
string workInspectName = hidRequestNodeID.Text.Split('|')[3];
|
||
string groupName = hidRequestNodeID.Text.Split('|')[4];
|
||
|
||
var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == systemId);
|
||
var model = new TestRun_SubInspectTermItemData();
|
||
model.TermItemId = Guid.NewGuid().ToString();
|
||
model.ParentId = groupName;
|
||
model.ProjectId = this.CurrUser.LoginProjectId;
|
||
model.WorkPackId = workPackId;
|
||
model.WorkInspectId = string.Empty;
|
||
model.WorkInspectName = workInspectName;
|
||
model.InstallationId = subSysModel.InstallationId;
|
||
model.ProcessesId = subSysModel.ProcessesId;
|
||
model.SystemId = systemId;
|
||
model.GroupName = groupName;
|
||
model.Sort = list.Count + 1;
|
||
model.Level = 2;
|
||
list.Add(model);
|
||
list.RemoveAll(x => x.Level == 1);
|
||
list = list.OrderBy(x => x.Sort).ToList();
|
||
BindGrid(list);
|
||
}
|
||
}
|
||
|
||
/// <summary>
|
||
/// 行加载事件
|
||
/// </summary>
|
||
protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
|
||
{
|
||
var level = int.Parse(this.Grid1.Rows[e.RowIndex].DataKeys[8].ToString());
|
||
RenderField InspectedUser = Grid1.FindColumn("InspectedUser") as RenderField;
|
||
if (level == 1)
|
||
{
|
||
e.CellAttributes[InspectedUser.ColumnIndex]["data-color"] = "color";
|
||
}
|
||
}
|
||
}
|
||
} |