2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
										 
							
							
								 using  Aspose.Words.Lists ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  BLL ;  
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								using  FineUIPro.Web.DataShow ;  
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  Model ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  System ;  
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								using  System.ArrayExtensions ;  
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  System.Collections.Generic ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  System.Data ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  System.Data.SqlClient ;  
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								using  System.IO ;  
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  System.Linq ;  
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								using  System.Reflection ;  
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  System.Web ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  System.Web.UI ;  
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								using  WIA ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  NPOI.SS.UserModel ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  NPOI.SS.Util ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  NPOI.XSSF.UserModel ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  System.Drawing ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								using  Newtonsoft.Json.Linq ;  
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								namespace  FineUIPro.Web.TestRun.Report  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    public  partial  class  PreRunSchedule  :  PageBase 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 点击树状主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        public  string  TreePreRunId  {  get  {  return  ( string ) ViewState [ "TreePreRunId" ] ;  }  set  {  ViewState [ "TreePreRunId" ]  =  value ;  }  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 子系统主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								        public  List < string >  SubSystemIds  {  get  {  return  ( List < string > ) ViewState [ "SubSystemIds" ] ;  }  set  {  ViewState [ "SubSystemIds" ]  =  value ;  }  } 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        protected  void  Page_Load ( object  sender ,  EventArgs  e ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            if  ( ! IsPostBack ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                if  ( SubSystemIds  = =  null )  SubSystemIds  =  new  List < string > ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                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  allPreRunLs  =  Funs . DB . PreRun_SysDevice . Where ( p  = >  p . ProjectId  = =  this . CurrUser . LoginProjectId ) . ToList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            var  onePreRunLs  =  allPreRunLs . Where ( p  = >  p . PreRunLevel  = =  1 ) . OrderBy ( x  = >  x . Sort ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            foreach  ( var  item  in  onePreRunLs ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                TreeNode  rootUnitNode  =  new  TreeNode ( ) ; //定义根节点 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                rootUnitNode . NodeID  =  item . PreRunId ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                rootUnitNode . Text  =  item . PreRunName ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                rootUnitNode . ToolTip  =  item . PreRunName ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                rootUnitNode . CommandName  =  "" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                rootUnitNode . EnableClickEvent  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                rootUnitNode . EnableExpandEvent  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                rootNode . Nodes . Add ( rootUnitNode ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                rootUnitNode . Expanded  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                var  otherPreRunls  =  allPreRunLs . Where ( p  = >  p . PreRunLevel  ! =  1 ) . ToList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                this . BindNodes ( rootUnitNode ,  otherPreRunls ,  item . PreRunId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        ///  绑定树节点 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        private  void  BindNodes ( TreeNode  node ,  List < PreRun_SysDevice >  list ,  string  parentId ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            var  itemList  =  list . Where ( p  = >  p . ParentId  = =  parentId ) . OrderBy ( x  = >  x . Sort ) . ToList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            if  ( itemList . Count  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                foreach  ( var  item  in  itemList ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    TreeNode  newNode  =  new  TreeNode ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    newNode . Text  =  item . PreRunName ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    newNode . NodeID  =  item . PreRunId ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    newNode . ToolTip  =  item . PreRunName ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    newNode . CommandName  =  "" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    newNode . EnableClickEvent  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    node . Nodes . Add ( newNode ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    BindNodes ( newNode ,  list ,  item . PreRunId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 数加载 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        protected  void  tvControlItem_NodeExpand ( object  sender ,  TreeNodeEventArgs  e ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            if  ( e . Node . Nodes  ! =  null ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                e . Node . Nodes . Clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            var  allPreRunLs  =  Funs . DB . PreRun_SysDevice . Where ( p  = >  p . ProjectId  = =  this . CurrUser . LoginProjectId ) . ToList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            this . BindNodes ( e . Node ,  allPreRunLs ,  e . NodeID ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 点击TreeView 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <param name="sender"></param> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <param name="e"></param> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        protected  void  tvControlItem_NodeCommand ( object  sender ,  TreeCommandEventArgs  e ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            var  devices  =  new  List < PreRun_SysDevice > ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            this . TreePreRunId  =  tvControlItem . SelectedNodeID  ! =  "0"  ?  tvControlItem . SelectedNodeID  :  string . Empty ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            if  ( ! string . IsNullOrWhiteSpace ( this . TreePreRunId ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                var  model  =  Funs . DB . PreRun_SysDevice . FirstOrDefault ( x  = >  x . PreRunId  = =  this . TreePreRunId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                if  ( model . PreRunLevel  = =  4 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    this . SubSystemIds  =  new  List < string > ( )  {  model . PreRunId  } ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                else  if  ( model . PreRunLevel  = =  3 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    devices  =  Funs . DB . PreRun_SysDevice . Where ( x  = >  x . ProjectId  = =  this . CurrUser . LoginProjectId  & &  x . PreRunLevel  = =  4  & &  x . SystemId  = =  model . PreRunId ) . ToList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    if  ( devices . Count  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        this . SubSystemIds  =  devices . ConvertAll ( x  = >  x . PreRunId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                else  if  ( model . PreRunLevel  = =  2 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    devices  =  Funs . DB . PreRun_SysDevice . Where ( x  = >  x . ProjectId  = =  this . CurrUser . LoginProjectId  & &  x . PreRunLevel  = =  4  & &  x . ProcessesId  = =  model . PreRunId ) . ToList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    if  ( devices . Count  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        this . SubSystemIds  =  devices . ConvertAll ( x  = >  x . PreRunId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                else  if  ( model . PreRunLevel  = =  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    devices  =  Funs . DB . PreRun_SysDevice . Where ( x  = >  x . ProjectId  = =  this . CurrUser . LoginProjectId  & &  x . PreRunLevel  = =  4  & &  x . InstallationId  = =  model . PreRunId ) . ToList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    if  ( devices . Count  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        this . SubSystemIds  =  devices . ConvertAll ( x  = >  x . PreRunId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            else 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                devices  =  Funs . DB . PreRun_SysDevice . Where ( x  = >  x . ProjectId  = =  this . CurrUser . LoginProjectId  & &  x . PreRunLevel  = =  4 ) . ToList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                if  ( devices . Count  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    this . SubSystemIds  =  devices . ConvertAll ( x  = >  x . PreRunId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            PreRunBrid ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        #endregion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								        #region  数 据 绑 定 / 导 出 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 预试车绑定 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        public  void  PreRunBrid ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            var  result  =  new  List < PreRunScheduleDto > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            if  ( this . SubSystemIds . Count  >  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                result  =  GetPreRunSchedules ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            GridPreRun . DataSource  =  result ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            GridPreRun . DataBind ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            JObject  summary  =  new  JObject ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            summary . Add ( "WorkPackNum" ,  result . Sum ( x  = >  x . WorkPackNum ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            summary . Add ( "WorkPackNotStartedNum" ,  result . Sum ( x  = >  x . WorkPackNotStartedNum ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            summary . Add ( "WorkPackNoCloseNum" ,  result . Sum ( x  = >  x . WorkPackNoCloseNum ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            summary . Add ( "WorkPackCloseNum" ,  result . Sum ( x  = >  x . WorkPackCloseNum ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            summary . Add ( "InspectNum" ,  result . Sum ( x  = >  x . InspectNum ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            summary . Add ( "InspectNoCloseNum" ,  result . Sum ( x  = >  x . InspectNoCloseNum ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            summary . Add ( "InspectCloseNum" ,  result . Sum ( x  = >  x . InspectCloseNum ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            GridPreRun . SummaryData  =  summary ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								        /// 导出 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								        protected  void  btnYscExport_Click ( object  sender ,  EventArgs  e ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            string  rootPath  =  Server . MapPath ( "~/" )  +  Const . ExcelUrl ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            //导出文件 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            string  filePath  =  rootPath  +  DateTime . Now . ToString ( "yyyyMMddhhmmss" )  +  "\\" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            if  ( ! Directory . Exists ( filePath ) ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                Directory . CreateDirectory ( filePath ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            string  ReportFileName  =  filePath  +  "预试车进度.xlsx" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            var  result  =  GetPreRunSchedules ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            if  ( result . Count  >  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                XSSFWorkbook  hssfworkbook  =  new  XSSFWorkbook ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                XSSFSheet  ws  =  ( XSSFSheet ) hssfworkbook . CreateSheet ( "预试车进度" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #region  列 宽 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 0 ,  ( 30  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 1 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 2 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 3 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 4 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 5 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 6 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 7 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 8 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 9 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 10 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . SetColumnWidth ( 11 ,  ( 20  *  256 ) ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #endregion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #region  样 式 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                //公共样式 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ICellStyle  style  =  SetExcelStyle ( hssfworkbook ,  BorderStyle . Thin ,  BorderStyle . Thin ,  BorderStyle . Thin ,  BorderStyle . Thin ,  VerticalAlignment . Center ,  HorizontalAlignment . Center ,  10.5 ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                //公共样式加粗 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ICellStyle  styleBold  =  SetExcelStyle ( hssfworkbook ,  BorderStyle . Thin ,  BorderStyle . Thin ,  BorderStyle . Thin ,  BorderStyle . Thin ,  VerticalAlignment . Center ,  HorizontalAlignment . Center ,  10.5 ,  true ,  true ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #endregion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #region  头 部 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws  =  ExcelCreateRowTitle ( ws ,  hssfworkbook ,  style ,  0 ,  0 ,  0 ,  11 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                //行1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 0 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 0 ) . SetCellValue ( "工作包名称" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 1 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 1 ) . SetCellValue ( "装置名称" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 2 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 2 ) . SetCellValue ( "工序名称" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 3 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 3 ) . SetCellValue ( "系统名称" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 4 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 4 ) . SetCellValue ( "子系统名称" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 5 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 5 ) . SetCellValue ( "工作包数量" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 6 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 6 ) . SetCellValue ( "工作包未开始数量" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 7 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 7 ) . SetCellValue ( "工作包未关闭数量" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 8 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 8 ) . SetCellValue ( "工作包已关闭数量" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 9 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 9 ) . SetCellValue ( "检查表数量" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 10 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 10 ) . SetCellValue ( "检查表未关闭数量" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 11 ) . CellStyle  =  styleBold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( 0 ) . GetCell ( 11 ) . SetCellValue ( "检查表已关闭数量" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #endregion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #region  表 格 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                var  start  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                var  end  =  result . Count ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws  =  ExcelCreateRowTitle ( ws ,  hssfworkbook ,  style ,  start ,  end ,  0 ,  11 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                //数据 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                var  dataIndex  =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                foreach  ( var  item  in  result ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 0 ) . SetCellValue ( item . WorkPackName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 1 ) . SetCellValue ( item . InstallationName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 2 ) . SetCellValue ( item . ProcessesName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 3 ) . SetCellValue ( item . SystemName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 4 ) . SetCellValue ( item . SubsystemName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 5 ) . SetCellValue ( item . WorkPackNum ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 6 ) . SetCellValue ( item . WorkPackNotStartedNum ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 7 ) . SetCellValue ( item . WorkPackNoCloseNum ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 8 ) . SetCellValue ( item . WorkPackCloseNum ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 9 ) . SetCellValue ( item . InspectNum ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 10 ) . SetCellValue ( item . InspectNoCloseNum ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( dataIndex ) . GetCell ( 11 ) . SetCellValue ( item . InspectCloseNum ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                    dataIndex + + ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #endregion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #region  尾 部 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws  =  ExcelCreateRowTitle ( ws ,  hssfworkbook ,  style ,  end  +  1 ,  end  +  1 ,  0 ,  11 ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                var  region  =  new  CellRangeAddress ( end  +  1 ,  end  +  1 ,  0 ,  4 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . AddMergedRegion ( region ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( end  +  1 ) . GetCell ( 0 ) . SetCellValue ( "合计" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( end  +  1 ) . GetCell ( 5 ) . SetCellValue ( result . Count  >  0  ?  result . Sum ( x  = >  x . WorkPackNum ) . ToString ( )  :  "0" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( end  +  1 ) . GetCell ( 6 ) . SetCellValue ( result . Count  >  0  ?  result . Sum ( x  = >  x . WorkPackNotStartedNum ) . ToString ( )  :  "0" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( end  +  1 ) . GetCell ( 7 ) . SetCellValue ( result . Count  >  0  ?  result . Sum ( x  = >  x . WorkPackNoCloseNum ) . ToString ( )  :  "0" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( end  +  1 ) . GetCell ( 8 ) . SetCellValue ( result . Count  >  0  ?  result . Sum ( x  = >  x . WorkPackCloseNum ) . ToString ( )  :  "0" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( end  +  1 ) . GetCell ( 9 ) . SetCellValue ( result . Count  >  0  ?  result . Sum ( x  = >  x . InspectNum ) . ToString ( )  :  "0" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( end  +  1 ) . GetCell ( 10 ) . SetCellValue ( result . Count  >  0  ?  result . Sum ( x  = >  x . InspectNoCloseNum ) . ToString ( )  :  "0" ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( end  +  1 ) . GetCell ( 11 ) . SetCellValue ( result . Count  >  0  ?  result . Sum ( x  = >  x . InspectCloseNum ) . ToString ( )  :  "0" ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                #endregion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . PrintSetup . Landscape  =  false ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . PrintSetup . PaperSize  =  9 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . ForceFormulaRecalculation  =  true ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                using  ( FileStream  filess  =  File . OpenWrite ( ReportFileName ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    hssfworkbook . Write ( filess ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                FileInfo  filet  =  new  FileInfo ( ReportFileName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                Response . Clear ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                Response . Charset  =  "GB2312" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                Response . ContentEncoding  =  System . Text . Encoding . UTF8 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                Response . AddHeader ( "Content-Disposition" ,  "attachment; filename="  +  Server . UrlEncode ( "预试车进度.xlsx" ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                // 添加头信息,指定文件大小,让浏览器能够显示下载进度 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                Response . AddHeader ( "Content-Length" ,  filet . Length . ToString ( ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                // 指定返回的是一个不能被客户端读取的流,必须被下载 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                Response . ContentType  =  "application/ms-excel" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                // 把文件流发送到客户端 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                Response . WriteFile ( filet . FullName ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                // 停止页面的执行 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                Response . End ( ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        #endregion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        #region  私 有 方 法 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								        /// 创建头部 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								        /// <returns></returns> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        private  XSSFSheet  ExcelCreateRowTitle ( XSSFSheet  ws ,  XSSFWorkbook  hssfworkbook ,  ICellStyle  style ,  int  sRows ,  int  eRows ,  int  cStart ,  int  cEnd ,  float  height  =  21 ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            for  ( int  i  =  sRows ;  i  < =  eRows ;  i + + ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                ws . CreateRow ( i ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                ws . GetRow ( i ) . HeightInPoints  =  height ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                for  ( int  j  =  cStart ;  j  < =  cEnd ;  j + + ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( i ) . CreateCell ( j ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    ws . GetRow ( i ) . CreateCell ( j ) . CellStyle  =  style ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            return  ws ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 创建样式 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <returns></returns> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        public  static  ICellStyle  SetExcelStyle ( XSSFWorkbook  wb ,  BorderStyle  Bottom ,  BorderStyle  Left ,  BorderStyle  Right ,  BorderStyle  Top ,  VerticalAlignment  VerAig ,  HorizontalAlignment  HorAig ,  double  FontSize ,  bool  WrapText  =  true ,  bool  Bold  =  false ,  string  FontName  =  "宋体" ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            ICellStyle  style  =  wb . CreateCellStyle ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            style . BorderBottom  =  Bottom ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            style . BorderLeft  =  Left ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            style . BorderRight  =  Right ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            style . BorderTop  =  Top ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            style . VerticalAlignment  =  VerAig ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            style . Alignment  =  HorAig ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            IFont  font  =  wb . CreateFont ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            font . FontHeightInPoints  =  FontSize ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            font . IsBold  =  Bold ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            font . FontName  =  FontName ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            style . SetFont ( font ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            style . WrapText  =  WrapText ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            return  style ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 获取预试车统计 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <returns></returns> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        private  List < PreRunScheduleDto >  GetPreRunSchedules ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            string  allStr  =  $"select a.SubSystemId,a.SystemId,b.WorkPackId,b.WorkPackName,b.WorkPackType,(select count(1) from PreRun_SubPropertySelect as gd where gd.SubSystemId = a.SubSystemId) as GdallNum,(select count(1) from PreRun_SubTechnologySelect as sb where sb.SubSystemId = a.SubSystemId) as SballNum,(select count(1) from PreRun_SubInstrumentSelect as sy where sy.SubSystemId = a.SubSystemId) as SyallNum from PreRun_SubSysWorkPackage as a inner join PreRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where a.SubSystemId in ('{string.Join(" ',' ", this.SubSystemIds)}') order by a.WorkPackCode asc" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            var  dt  =  SQLHelper . GetDataTableRunText ( allStr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            var  list  =  new  List < PreRunScheduleDto > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            string  deviceStr  =  $"select b.PreRunName as InstallationName,c.PreRunName as ProcessesName,d.PreRunName as SystemName,e.PreRunName as SubsystemName from PreRun_SysDevice as a left join PreRun_SysDevice as b on b.PreRunId=ISNULL(a.InstallationId,a.PreRunId) left join PreRun_SysDevice as c on c.PreRunId=a.ProcessesId left join PreRun_SysDevice as d on d.PreRunId=a.SystemId left join PreRun_SysDevice as e on e.PreRunId=a.SubsystemId where a.PreRunId='{this.TreePreRunId}'" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            var  driveDt  =  SQLHelper . GetDataTableRunText ( deviceStr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            string  inspectStr  =  $"select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose, 0) when 1 then 1 else 0 end) as CloseNum,SUM(case ISNULL(a.InspectIsClose, 0) when 0 then 1 else 0 end) as NoCloseNum,COUNT(1) as AllNum from PreRun_SubInspectTerm as a inner join PreRun_WorkPackage as b on a.WorkPackId = b.WorkPackId where 1=1 and a.ProjectId = '{this.CurrUser.LoginProjectId}' and a.SubSystemId in ('{string.Join(" ',' ", this.SubSystemIds)}') group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc" ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            var  inspectDt  =  SQLHelper . GetDataTableRunText ( inspectStr ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            var  inspectlist  =  DataTableToList < WorkPackageInspectDto > ( inspectDt ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            if  ( dt . Rows . Count  >  0 ) 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                //获取所有子系统数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                var  inspects  =  Funs . DB . PreRun_SubInspectTerm . Where ( x  = >  x . ProjectId  = =  this . CurrUser . LoginProjectId  & &  this . SubSystemIds . Contains ( x . SubSystemId ) ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                var  querylist  =  DataTableToList < QuerySubSysWorkPackage > ( dt ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                var  queryGroup  =  querylist . GroupBy ( x  = >  new  {  x . WorkPackId ,  x . WorkPackName ,  x . WorkPackType  } ) . Select ( p  = >  new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    p . Key . WorkPackId , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    p . Key . WorkPackName , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    p . Key . WorkPackType , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    GdallNum  =  p . Sum ( i  = >  i . GdallNum ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    SballNum  =  p . Sum ( i  = >  i . SballNum ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    SyallNum  =  p . Sum ( i  = >  i . SyallNum ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                foreach  ( var  itemPack  in  queryGroup ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    var  itemQueryList  =  querylist . Where ( x  = >  x . WorkPackId  = =  itemPack . WorkPackId ) . ToList ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    var  model  =  new  PreRunScheduleDto ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . WorkPackId  =  itemPack . WorkPackId ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . WorkPackName  =  itemPack . WorkPackName ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . WorkPackType  =  itemPack . WorkPackType ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    if  ( driveDt . Rows . Count  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . InstallationName  =  driveDt . Rows [ 0 ] [ "InstallationName" ] . ToString ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . ProcessesName  =  driveDt . Rows [ 0 ] [ "ProcessesName" ] . ToString ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . SystemName  =  driveDt . Rows [ 0 ] [ "SystemName" ] . ToString ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . SubsystemName  =  driveDt . Rows [ 0 ] [ "SubsystemName" ] . ToString ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . GdallNum  =  itemPack . GdallNum ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . SballNum  =  itemPack . SballNum ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . SyallNum  =  itemPack . SyallNum ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . AllGdSbYbNum  =  ( itemPack . GdallNum  +  itemPack . SballNum  +  itemPack . SyallNum ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . WorkPackNum  =  itemQueryList . Count ( x  = >  x . WorkPackId  = =  itemPack . WorkPackId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    if  ( inspectlist . Count ( a  = >  a . WorkPackId  = =  itemPack . WorkPackId )  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        var  itemInspect  =  inspectlist . FirstOrDefault ( a  = >  a . WorkPackId  = =  itemPack . WorkPackId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . InspectNum  =  itemInspect . AllNum ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . InspectNoCloseNum  =  itemInspect . NoCloseNum ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . InspectCloseNum  =  itemInspect . CloseNum ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . WorkPackCloseNum  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . WorkPackNoCloseNum  =  model . WorkPackNum ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . InspectNum  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . InspectNoCloseNum  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        model . InspectCloseNum  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . WorkPackCloseNum  =  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    model . WorkPackNoCloseNum  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                    model . WorkPackNotStartedNum  =  0 ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                    var  subsystemids  =  itemQueryList . ConvertAll ( a  = >  a . SubSystemId ) . Distinct ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    foreach  ( var  itemsubid  in  subsystemids ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        if  ( inspects . Count ( x  = >  x . SubSystemId  = =  itemsubid )  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                            var  itemQuerylist  =  itemQueryList . FirstOrDefault ( x  = >  x . SubSystemId  = =  itemsubid  & &  x . WorkPackId  = =  itemPack . WorkPackId ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                            var  allNum  =  itemQuerylist . GdallNum  +  itemQuerylist . SballNum  +  itemQuerylist . SyallNum ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                            if  ( inspects . Count ( x  = >  x . SubInspectId  = =  itemsubid  & &  x . InspectIsClose  ! =  1 )  >  0 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                model . WorkPackNoCloseNum  + =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                            else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                var  closeInspect  =  inspects . Where ( x  = >  x . SubInspectId  = =  itemsubid  & &  x . InspectIsClose  = =  1 ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                var  closeNums  =  closeInspect . Count ( )  >  0  ?  closeInspect . Select ( x  = >  x . PropertyTechnologyId . Split ( ',' ) . Count ( ) ) . Sum ( x  = >  x )  :  0 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                if  ( allNum  >  closeNums ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                    model . WorkPackNoCloseNum  + =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                    model . WorkPackCloseNum  + =  1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        { 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                            model . WorkPackNotStartedNum  + =  1 ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								                        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    list . Add ( model ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            return  list ; 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 预试车统计实体 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        public  class  ScheduleBridDto 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  PreRunId  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  WorkPackId  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  WorkName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 装置名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  InstallationName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工序名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  ProcessesName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 系统名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  SystemName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 子系统名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  SubsystemName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  AllNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            /// 未关闭数量 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  NoCloseNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            /// 已关闭数量 
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  CloseNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 预试车统计实体 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        public  class  PreRunScheduleDto 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  WorkPackId  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  WorkPackName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包类型 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  WorkPackType  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 装置名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  InstallationName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工序名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  ProcessesName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 系统名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  SystemName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 子系统名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  SubsystemName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 所有管道,设备,仪表索引数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  AllGdSbYbNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包所有管道数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  GdallNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包所有设备数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  SballNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包所有仪表索引数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  SyallNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  WorkPackNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包未关闭数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  WorkPackNoCloseNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-28 10:14:38 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包未开始数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  WorkPackNotStartedNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
									
										
										
										
											2024-03-11 09:46:11 +08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包已关闭数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  WorkPackCloseNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 检查表数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  InspectNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 检查表未关闭数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  InspectNoCloseNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 检查表已关闭数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  InspectCloseNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 预试车检查表实体 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        public  class  WorkPackageInspectDto 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 子系统主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  SubSystemId  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  WorkPackId  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  WorkPackName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 检查表数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  AllNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 未关闭任务单数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  NoCloseNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 已关闭任务单数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  CloseNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// 子系统工作包和总设备/管道/仪表数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        public  class  QuerySubSysWorkPackage 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 子系统主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  SubSystemId  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 系统主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  SystemId  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包主键 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  WorkPackId  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包名称 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  string  WorkPackName  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 工作包类型 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  WorkPackType  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 管道总数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  GdallNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 设备总数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  SballNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// 仪表索引总数量 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            public  int  SyallNum  {  get ;  set ;  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        #endregion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        #region  转 换 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// DataTable转换List 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// </summary> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        /// <returns></returns> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        public  List < T >  DataTableToList < T > ( DataTable  table ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            List < T >  list  =  new  List < T > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            T  t  =  default ( T ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            PropertyInfo [ ]  propertypes  =  null ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            string  tempName  =  string . Empty ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            foreach  ( DataRow  row  in  table . Rows ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                t  =  Activator . CreateInstance < T > ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                propertypes  =  t . GetType ( ) . GetProperties ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                foreach  ( PropertyInfo  pro  in  propertypes ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    tempName  =  pro . Name ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    if  ( table . Columns . Contains ( tempName ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        object  value  =  row [ tempName ] ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        if  ( ! value . ToString ( ) . Equals ( "" ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                            pro . SetValue ( t ,  value ,  null ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								                list . Add ( t ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								            return  list . Count  = =  0  ?  new  List < T > ( )  :  list ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-02-08 18:10:24 +08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								        #endregion 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								    } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
								
									
								 
							
							
								}