@ -21,10 +21,8 @@ import org.springframework.transaction.annotation.Transactional; 
		
	
		
			
				
 
		
	
		
			
				import  javax.persistence.EntityManager ; import  javax.persistence.EntityManager ;  
		
	
		
			
				import  javax.persistence.PersistenceContext ; import  javax.persistence.PersistenceContext ;  
		
	
		
			
				import  java.util.HashSet ;  
		
	
		
			
				import  java.util.List ;  
		
	
		
			
				import  java.util.Map ;  
		
	
		
			
				import  java.util.Set ;  
		
	
		
			
				import  java.util.* ;  
		
	
		
			
				import  java.util.stream.Collectors ;  
		
	
		
			
				
 
		
	
		
			
				
 
		
	
		
			
				@Service @Service  
		
	
	
		
			
				
					
						
							 
					
					
						
							 
					
					
				 
				@ -131,20 +129,38 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService { 
		
	
		
			
				    }     }  
		
	
		
			
				
 
		
	
		
			
				    @Override     @Override  
		
	
		
			
				    @Transactional ( rollbackFor  =  Exception . class )  
		
	
		
			
				    public  Object  cartoning ( List < ArchivesCaseCartoning >  dtos )  {     public  Object  cartoning ( List < ArchivesCaseCartoning >  dtos )  {  
		
	
		
			
				        Set < String >  caseIds  =  new  HashSet < > ( ) ;         Set < String >  caseIds  =  new  HashSet < > ( ) ;  
		
	
		
			
				/ /         Map < String , Integer >  
		
	
		
			
				        dtos  =  archivesCaseCartoningRepository . saveAllAndFlush ( dtos ) ;         dtos  =  archivesCaseCartoningRepository . saveAllAndFlush ( dtos ) ;  
		
	
		
			
				        ArchivesType  archivesType  =  new  ArchivesType ( ) ;  
		
	
		
			
				        Integer  caseType  =  0 ;         Integer  caseType  =  0 ;  
		
	
		
			
				        for ( ArchivesCaseCartoning  archivesCaseCartoning : dtos ) {         for ( ArchivesCaseCartoning  archivesCaseCartoning : dtos ) {  
		
	
		
			
				            caseIds . add ( archivesCaseCartoning . getCaseId ( ) ) ;             caseIds . add ( archivesCaseCartoning . getCaseId ( ) ) ;  
		
	
		
			
				            / / 判断档案是案卷还是文件             / / 判断档案是案卷还是文件  
		
	
		
			
				            ArchivesType  archivesType  =  archivesTypeRepository . findById ( archivesCaseCartoning . getCategoryId ( ) ) . get ( ) ;  
		
	
		
			
				            archivesType  =  archivesTypeRepository . findById ( archivesCaseCartoning . getCategoryId ( ) ) . get ( ) ;  
		
	
		
			
				            caseType  =  archivesType . getIsType ( )  = =  4  ?  2  :  archivesType . getIsType ( )  = =  5  ?  1  :  0 ;             caseType  =  archivesType . getIsType ( )  = =  4  ?  2  :  archivesType . getIsType ( )  = =  5  ?  1  :  0 ;  
		
	
		
			
				            String  sql  =  "update " + archivesType . getEnName ( ) + " set case_no = '" + archivesCaseCartoning . getCaseId ( ) + "' where id = '" + archivesCaseCartoning . getArchivesId ( ) + "'" ;  
		
	
		
			
				            entityManager . createNativeQuery ( sql ) . executeUpdate ( ) ;  
		
	
		
			
				        }         }  
		
	
		
			
				        for  ( String  caseId : caseIds ) {         for  ( String  caseId : caseIds ) {  
		
	
		
			
				
 
		
	
		
			
				            Integer  count  =  0 ;  
		
	
		
			
				            for ( ArchivesCaseCartoning  archivesCaseCartoning : dtos ) {  
		
	
		
			
				                if ( caseId . equals ( archivesCaseCartoning . getCaseId ( ) ) ) {  
		
	
		
			
				                    count + + ;  
		
	
		
			
				                }  
		
	
		
			
				            }  
		
	
		
			
				            caseRepository . cartoning ( caseId , caseType , count ) ;  
		
	
		
			
				        }  
		
	
		
			
				        String  caseIdArr  =  caseIds . stream ( ) . collect ( Collectors . joining ( "," ) ) ;  
		
	
		
			
				        / / 当装盒为案卷  
		
	
		
			
				        if ( caseType  = =  2 ) {  
		
	
		
			
				            ArchivesType  archivesTypeP  =  archivesTypeRepository . findById ( archivesType . getPid ( ) ) . get ( ) ;  
		
	
		
			
				            String  psql  =  "update " + archivesTypeP . getEnName ( ) + " set case_no = '" + caseIdArr  
		
	
		
			
				                    + "' where id = (select pid from " + archivesType . getEnName ( ) + " where id = '" + dtos . get ( 0 ) . getArchivesId ( ) + "' limit 0,1)" ;  
		
	
		
			
				            entityManager . createNativeQuery ( psql ) . executeUpdate ( ) ;  
		
	
		
			
				        }         }  
		
	
		
			
				
 
		
	
		
			
				        return  null ;         return  null ;  
		
	
		
			
				    }     }  
		
	
		
			
				} }