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";
 | 
						||
            }
 | 
						||
        }
 | 
						||
    }
 | 
						||
} |