@ -21,10 +21,8 @@ import org.springframework.transaction.annotation.Transactional; 
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					import  javax.persistence.EntityManager ;  
			
		
	
		
			
				
					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  
			
		
	
	
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
				
				@ -131,20 +129,38 @@ public class ArchivesCaseServiceImpl implements ArchivesCaseService { 
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					
 
			
		
	
		
			
				
					    @Override  
			
		
	
		
			
				
					    @Transactional ( rollbackFor  =  Exception . class )  
			
		
	
		
			
				
					    public  Object  cartoning ( List < ArchivesCaseCartoning >  dtos )  {  
			
		
	
		
			
				
					        Set < String >  caseIds  =  new  HashSet < > ( ) ;  
			
		
	
		
			
				
					/ /         Map < String , Integer >  
			
		
	
		
			
				
					        dtos  =  archivesCaseCartoningRepository . saveAllAndFlush ( dtos ) ;  
			
		
	
		
			
				
					        ArchivesType  archivesType  =  new  ArchivesType ( ) ;  
			
		
	
		
			
				
					        Integer  caseType  =  0 ;  
			
		
	
		
			
				
					        for ( ArchivesCaseCartoning  archivesCaseCartoning : dtos ) {  
			
		
	
		
			
				
					            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 ;  
			
		
	
		
			
				
					            String  sql  =  "update " + archivesType . getEnName ( ) + " set case_no = '" + archivesCaseCartoning . getCaseId ( ) + "' where id = '" + archivesCaseCartoning . getArchivesId ( ) + "'" ;  
			
		
	
		
			
				
					            entityManager . createNativeQuery ( sql ) . executeUpdate ( ) ;  
			
		
	
		
			
				
					        }  
			
		
	
		
			
				
					        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 ;  
			
		
	
		
			
				
					    }  
			
		
	
		
			
				
					}