2023-07-28 11:14:32 +08:00
using BLL ;
using Model ;
using Newtonsoft.Json.Linq ;
using System ;
using System.Collections.Generic ;
using System.Data ;
using System.Data.SqlClient ;
using System.Linq ;
using System.Web ;
using System.Web.UI ;
using System.Web.UI.WebControls ;
namespace FineUIPro.Web.TestRun.BeforeTestRun
{
public partial class SubInspectTerm : PageBase
{
protected void Page_Load ( object sender , EventArgs e )
{
if ( ! IsPostBack )
{
this . InitTreeMenu ( ) ; //加载树
}
}
#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 . PreRun_SubSysWorkPackage on a . PreRunId equals b . SubSystemId
join c in Funs . DB . PreRun_WorkPackage on b . WorkPackId equals c . WorkPackId
where a . ProjectId = = this . CurrUser . LoginProjectId
2023-08-04 11:19:37 +08:00
select new { a . PreRunId , a . PreRunCode , a . PreRunName , a . ProjectId , c . WorkPackId , c . WorkPackName } ;
2023-07-28 11:14:32 +08:00
if ( list . Count ( ) > 0 )
{
var subList = list . GroupBy ( x = > new { x . PreRunId , x . PreRunCode , x . PreRunName } ) ;
foreach ( var item in subList )
{
TreeNode rootUnitNode = new TreeNode ( ) ; //定义根节点
rootUnitNode . NodeID = item . Key . PreRunId ;
rootUnitNode . Text = item . Key . PreRunName ;
rootUnitNode . ToolTip = item . Key . PreRunName ;
rootUnitNode . CommandName = "" ;
rootUnitNode . EnableClickEvent = true ;
rootUnitNode . EnableExpandEvent = true ;
rootNode . Nodes . Add ( rootUnitNode ) ;
rootUnitNode . Expanded = true ;
2023-08-04 11:19:37 +08:00
var worklist = list . Where ( a = > a . PreRunId = = item . Key . PreRunId ) . GroupBy ( x = > new { x . WorkPackId , x . WorkPackName } ) . ToList ( ) ;
2023-07-28 11:14:32 +08:00
if ( worklist . Count > 0 )
{
foreach ( var itemWork in worklist )
{
TreeNode newNode = new TreeNode ( ) ;
newNode . Text = itemWork . Key . WorkPackName ;
newNode . NodeID = itemWork . Key . WorkPackId + "|" + item . Key . PreRunId ;
newNode . ToolTip = itemWork . Key . WorkPackName ;
newNode . CommandName = "" ;
newNode . EnableClickEvent = true ;
rootUnitNode . Nodes . Add ( newNode ) ;
}
}
}
}
}
/// <summary>
/// 点击TreeView
/// </summary>
protected void tvControlItem_NodeCommand ( object sender , TreeCommandEventArgs e )
{
this . BindGrid ( ) ;
}
#endregion
#region 数 据 绑 定
/// <summary>
/// 绑定数据
/// </summary>
public void BindGrid ( )
{
2023-08-04 11:19:37 +08:00
var result = new List < Brid_SubInspectTermItem > ( ) ;
2023-07-28 11:14:32 +08:00
var workPackId = this . tvControlItem . SelectedNodeID . Split ( '|' ) . First ( ) ;
var subSystemId = this . tvControlItem . SelectedNodeID . Split ( '|' ) . Last ( ) ;
//获取子系统
var subSysModel = Funs . DB . PreRun_SysDevice . FirstOrDefault ( x = > x . PreRunId = = subSystemId ) ;
2023-08-04 11:19:37 +08:00
var list = Funs . DB . PreRun_SubInspectTermItem . Where ( x = > x . WorkPackId = = workPackId & & x . SubSystemId = = subSystemId ) . OrderBy ( x = > x . Sort ) . ToList ( ) ;
if ( list . Count > 0 )
2023-07-28 11:14:32 +08:00
{
2023-08-04 11:19:37 +08:00
foreach ( var item in list )
2023-07-28 11:14:32 +08:00
{
2023-08-04 11:19:37 +08:00
var model = new Brid_SubInspectTermItem ( ) ;
model . SubItemId = item . SubItemId ;
model . ProjectId = item . ProjectId ;
model . WorkPackId = item . WorkPackId ;
model . WorkInspectId = item . WorkInspectId ;
model . WorkInspectName = item . WorkInspectName ;
model . InstallationId = subSysModel . InstallationId ;
model . ProcessesId = subSysModel . ProcessesId ;
model . SystemId = subSysModel . SystemId ;
model . SubSystemId = subSysModel . PreRunId ;
model . InspectedUser = item . InspectedUser ;
model . Sort = item . Sort ;
model . isChick = true ;
result . Add ( model ) ;
}
}
//获取预加载的数据
var defaultDatas = Funs . DB . PreRun_WorkInspectTemplate . Where ( s = > s . WorkPackId = = workPackId ) . OrderBy ( x = > x . Sort ) . ToList ( ) ;
if ( defaultDatas . Count > 0 )
{
int index = list . Count + 1 ;
foreach ( var item in defaultDatas )
{
if ( list . Count ( x = > x . WorkInspectName = = item . WorkInspectName ) = = 0 )
2023-07-28 11:14:32 +08:00
{
2023-08-04 11:19:37 +08:00
var model = new Brid_SubInspectTermItem ( ) ;
2023-07-28 11:14:32 +08:00
model . SubItemId = Guid . NewGuid ( ) . ToString ( ) ;
model . ProjectId = this . CurrUser . LoginProjectId ;
model . WorkPackId = item . WorkPackId ;
model . WorkInspectId = item . WorkInspectId ;
model . WorkInspectName = item . WorkInspectName ;
model . InstallationId = subSysModel . InstallationId ;
model . ProcessesId = subSysModel . ProcessesId ;
model . SystemId = subSysModel . SystemId ;
model . SubSystemId = subSysModel . PreRunId ;
model . Sort = index + 1 ;
2023-08-04 11:19:37 +08:00
model . isChick = false ;
result . Add ( model ) ;
2023-07-28 11:14:32 +08:00
index + + ;
}
}
}
2023-08-04 11:19:37 +08:00
Grid1 . DataSource = result ;
2023-07-28 11:14:32 +08:00
Grid1 . DataBind ( ) ;
2023-08-04 11:19:37 +08:00
if ( result . Count ( x = > x . isChick ) > 0 )
{
//默认选中行
var checkids = result . Where ( x = > x . isChick ) . Select ( a = > a . SubItemId ) ;
Grid1 . SelectedRowIDArray = checkids . ToArray ( ) ;
}
2023-07-28 11:14:32 +08:00
//检查人绑定
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 ( ) ;
2023-08-04 11:19:37 +08:00
#region 注 释
//var workPackId = this.tvControlItem.SelectedNodeID.Split('|').First();
//var subSystemId = this.tvControlItem.SelectedNodeID.Split('|').Last();
////获取子系统
//var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId);
//var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId).OrderBy(x => x.Sort).ToList();
//if (list.Count == 0)
//{
// list = new List<PreRun_SubInspectTermItem>();
// var defaultDatas = Funs.DB.PreRun_WorkInspectTemplate.Where(s => s.WorkPackId == workPackId).OrderBy(x=>x.Sort).ToList();
// if (defaultDatas.Count > 0)
// {
// int index = 0;
// foreach (var item in defaultDatas)
// {
// var model = new PreRun_SubInspectTermItem();
// model.SubItemId = Guid.NewGuid().ToString();
// model.ProjectId = this.CurrUser.LoginProjectId;
// model.WorkPackId = item.WorkPackId;
// model.WorkInspectId = item.WorkInspectId;
// model.WorkInspectName = item.WorkInspectName;
// model.InstallationId = subSysModel.InstallationId;
// model.ProcessesId = subSysModel.ProcessesId;
// model.SystemId = subSysModel.SystemId;
// model.SubSystemId = subSysModel.PreRunId;
// model.Sort = index + 1;
// list.Add(model);
// index++;
// }
// }
//}
//Grid1.DataSource = list;
//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();
#endregion
2023-07-28 11:14:32 +08:00
}
/// <summary>
/// 排序
/// </summary>
protected void Grid1_Sort ( object sender , GridSortEventArgs e )
{
Grid1 . SortDirection = e . SortDirection ;
Grid1 . SortField = e . SortField ;
BindGrid ( ) ;
}
/// <summary>
/// 行按钮事件
/// </summary>
protected void Grid1_RowCommand ( object sender , GridCommandEventArgs e )
{
if ( e . CommandName = = "Delete" )
{
string rowID = e . RowID ;
var model = Funs . DB . PreRun_SubInspectTermItem . FirstOrDefault ( p = > p . SubItemId = = rowID ) ;
if ( model ! = null )
{
Funs . DB . PreRun_SubInspectTermItem . DeleteOnSubmit ( model ) ;
Funs . DB . SubmitChanges ( ) ;
BindGrid ( ) ;
ShowNotify ( "删除成功!" ) ;
}
else
{
var list = gvList ( ) ;
list . RemoveAll ( x = > x . SubItemId = = rowID ) ;
Grid1 . DataSource = list ;
Grid1 . DataBind ( ) ;
ShowNotify ( "删除成功!" ) ;
}
}
}
#endregion
/// <summary>
/// 保存
/// </summary>
protected void btnSave_Click ( object sender , EventArgs e )
{
try
{
if ( Grid1 . SelectedRowIndexArray . Length = = 0 )
{
ShowNotify ( "请选择一条数据!" , MessageBoxIcon . Warning ) ;
return ;
}
var workPackId = this . tvControlItem . SelectedNodeID . Split ( '|' ) . First ( ) ;
var subSystemId = this . tvControlItem . SelectedNodeID . Split ( '|' ) . Last ( ) ;
var subTrem = Funs . DB . PreRun_SubInspectTerm . FirstOrDefault ( x = > x . SubSystemId = = subSystemId & & x . WorkPackId = = workPackId ) ;
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 subItemId = this . Grid1 . Rows [ i ] . DataKeys [ 0 ] . ToString ( ) ;
var workInspectId = this . Grid1 . Rows [ i ] . DataKeys [ 1 ] . ToString ( ) ;
if ( ! Grid1 . SelectedRowIndexArray . Contains ( i ) ) continue ;
//获取子系统信息
var list = new List < PreRun_SubInspectTermItem > ( ) ;
var subSysModel = Funs . DB . PreRun_SysDevice . FirstOrDefault ( x = > x . PreRunId = = subSystemId ) ;
if ( subSysModel ! = null )
{
//获取子系统工作包检查表,如果不存在则添加
if ( subTrem = = null )
{
subTrem = new PreRun_SubInspectTerm ( ) ;
subTrem . SubInspectId = Guid . NewGuid ( ) . ToString ( ) ;
subTrem . WorkPackId = workPackId ;
subTrem . ProjectId = this . CurrUser . LoginProjectId ;
subTrem . InstallationId = subSysModel . InstallationId ;
subTrem . ProcessesId = subSysModel . ProcessesId ;
subTrem . SystemId = subSysModel . SystemId ;
subTrem . SubSystemId = subSysModel . PreRunId ;
subTrem . AddUser = this . CurrUser . UserId ;
subTrem . AddTime = DateTime . Now ;
Funs . DB . PreRun_SubInspectTerm . InsertOnSubmit ( subTrem ) ;
}
var model = Funs . DB . PreRun_SubInspectTermItem . FirstOrDefault ( x = > x . SubItemId = = subItemId ) ;
if ( model = = null )
{
model = new PreRun_SubInspectTermItem ( ) ;
model . SubItemId = subItemId ;
model . SubInspectId = subTrem . SubInspectId ;
model . WorkPackId = workPackId ;
model . ProjectId = this . CurrUser . LoginProjectId ;
model . WorkInspectId = workInspectId ;
model . WorkInspectName = values . Value < string > ( "WorkInspectName" ) ;
model . InstallationId = subSysModel . InstallationId ;
model . ProcessesId = subSysModel . ProcessesId ;
model . SystemId = subSysModel . SystemId ;
model . SubSystemId = subSysModel . PreRunId ;
model . InspectedUser = ! string . IsNullOrWhiteSpace ( values . Value < string > ( "InspectedUser" ) ) ? values . Value < string > ( "InspectedUser" ) : string . Empty ;
model . AddUser = this . CurrUser . UserId ;
model . AddTime = DateTime . Now ;
model . Sort = i + 1 ;
Funs . DB . PreRun_SubInspectTermItem . InsertOnSubmit ( model ) ;
}
else
{
model . InspectedUser = ! string . IsNullOrWhiteSpace ( values . Value < string > ( "InspectedUser" ) ) ? values . Value < string > ( "InspectedUser" ) : string . Empty ;
model . WorkInspectName = values . Value < string > ( "WorkInspectName" ) ;
Funs . DB . SubmitChanges ( ) ;
}
}
Funs . DB . SubmitChanges ( ) ;
}
BindGrid ( ) ;
ShowNotify ( "保存成功!" ) ;
}
catch ( Exception ex )
{
ShowNotify ( ex . Message , MessageBoxIcon . Error ) ;
}
}
/// <summary>
/// 新增
/// </summary>
protected void btnAdd_Click ( object sender , EventArgs e )
{
var list = gvList ( ) ;
var workPackId = this . tvControlItem . SelectedNodeID . Split ( '|' ) . First ( ) ;
var subSystemId = this . tvControlItem . SelectedNodeID . Split ( '|' ) . Last ( ) ;
//获取子系统
var subSysModel = Funs . DB . PreRun_SysDevice . FirstOrDefault ( x = > x . PreRunId = = subSystemId ) ;
if ( subSysModel ! = null )
{
var model = new PreRun_SubInspectTermItem ( ) ;
model . SubItemId = Guid . NewGuid ( ) . ToString ( ) ;
model . ProjectId = this . CurrUser . LoginProjectId ;
model . WorkPackId = workPackId ;
model . WorkInspectId = string . Empty ;
model . WorkInspectName = string . Empty ;
model . InstallationId = subSysModel . InstallationId ;
model . ProcessesId = subSysModel . ProcessesId ;
model . SystemId = subSysModel . SystemId ;
model . SubSystemId = subSysModel . PreRunId ;
model . Sort = list . Count + 1 ;
list . Add ( model ) ;
}
Grid1 . DataSource = list ;
Grid1 . DataBind ( ) ;
}
/// <summary>
/// 入场人员培训及特种作业报验人数集合
/// </summary>
private List < PreRun_SubInspectTermItem > gvList ( )
{
List < PreRun_SubInspectTermItem > list = new List < PreRun_SubInspectTermItem > ( ) ;
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 subItemId = 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 ] . ToString ( ) ;
var installationId = this . Grid1 . Rows [ i ] . DataKeys [ 4 ] . ToString ( ) ;
var processesId = this . Grid1 . Rows [ i ] . DataKeys [ 4 ] . ToString ( ) ;
var systemId = this . Grid1 . Rows [ i ] . DataKeys [ 4 ] . ToString ( ) ;
var subSystemId = this . Grid1 . Rows [ i ] . DataKeys [ 4 ] . ToString ( ) ;
var model = new PreRun_SubInspectTermItem ( ) ;
model = new PreRun_SubInspectTermItem ( ) ;
model . SubItemId = subItemId ;
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 . SubSystemId = subSystemId ;
model . InspectedUser = ! string . IsNullOrWhiteSpace ( values . Value < string > ( "InspectedUser" ) ) ? values . Value < string > ( "InspectedUser" ) : string . Empty ;
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 ;
}
2023-08-04 11:19:37 +08:00
/// <summary>
/// 绑定实体
/// </summary>
public class Brid_SubInspectTermItem : PreRun_SubInspectTermItem
{
/// <summary>
/// 是否选中
/// </summary>
public bool isChick { get ; set ; }
}
2023-07-28 11:14:32 +08:00
}
}