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