wangwei 7 vuotta sitten
vanhempi
commit
7e5521b269

+ 5 - 0
examcloud-core-examwork-dao/pom.xml

@@ -15,6 +15,11 @@
 			<artifactId>examcloud-core-examwork-base</artifactId>
 			<version>${examcloud.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>org.scala-lang</groupId>
+			<artifactId>scala-library</artifactId>
+			<version>2.11.0</version>
+		</dependency>
 	</dependencies>
 
 </project>

+ 4 - 4
examcloud-core-examwork-dao/src/main/java/cn/com/qmth/examcloud/core/examwork/dao/ExamStudentTempRepo.java

@@ -2,9 +2,13 @@ package cn.com.qmth.examcloud.core.examwork.dao;
 
 import java.util.List;
 
+import javax.persistence.QueryHint;
+
+import org.springframework.cache.annotation.Cacheable;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.jpa.repository.QueryHints;
 import org.springframework.data.jpa.repository.query.Procedure;
 import org.springframework.data.repository.query.Param;
 import org.springframework.data.repository.query.QueryByExampleExecutor;
@@ -27,8 +31,4 @@ public interface ExamStudentTempRepo
 	@Procedure(name = "import_exam_students")
 	void processExamStudentTemp(@Param("batch_id") Long batchId);
 
-	@Query("select s from ExamStudentTempEntity s where s.name is not null and s.orgId is not null "
-			+ "and s.identityNumber is not null and s.courseId is not null and s.batchId=?1")
-	List<ExamStudentTempEntity> findRight(Long batchId);
-
 }

+ 18 - 1
examcloud-core-examwork-service/src/main/java/cn/com/qmth/examcloud/core/examwork/service/impl/ExamStudentImportServiceImpl.java

@@ -3,6 +3,12 @@ package cn.com.qmth.examcloud.core.examwork.service.impl;
 import java.io.File;
 import java.util.List;
 
+import javax.persistence.CacheRetrieveMode;
+import javax.persistence.EntityManager;
+import javax.persistence.EntityManagerFactory;
+import javax.persistence.PersistenceUnit;
+import javax.persistence.Query;
+
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.usermodel.Workbook;
@@ -51,6 +57,9 @@ public class ExamStudentImportServiceImpl implements ExamStudentImportService {
 	@Autowired
 	ExamStudentCloudService examStudentCloudService;
 
+	@PersistenceUnit
+	private EntityManagerFactory entityManagerFactory;
+
 	@Override
 	public void importExamStudent(File file, String fileName, Long rootOrgId, Long examId) {
 		Workbook workBook = ExcelParser.getWorkBook(file, fileName);
@@ -104,7 +113,15 @@ public class ExamStudentImportServiceImpl implements ExamStudentImportService {
 	}
 
 	private void saveExamStudents(Long batchId) {
-		List<ExamStudentTempEntity> list = examStudentTempRepo.findRight(batchId);
+		EntityManager em = entityManagerFactory.createEntityManager();
+		Query query = em.createQuery("select s from ExamStudentTempEntity s where "
+				+ "s.name is not null and s.orgId is not null and s.identityNumber is not null "
+				+ "and s.courseId is not null and s.batchId=:batchId", ExamStudentTempEntity.class);
+		query.setHint("javax.persistence.cache.retrieveMode", CacheRetrieveMode.BYPASS);
+		query.setParameter("batchId", batchId);
+
+		@SuppressWarnings("unchecked")
+		List<ExamStudentTempEntity> list = query.getResultList();
 
 		for (ExamStudentTempEntity examStudent : list) {
 

+ 1 - 1
examcloud-core-examwork-starter/src/main/java/cn/com/qmth/examcloud/core/examwork/starter/CoreExamWorkApp.java

@@ -98,7 +98,7 @@ public class CoreExamWorkApp {
 		CommonsMultipartResolver resolver = new CommonsMultipartResolver();
 		resolver.setDefaultEncoding("UTF-8");
 		resolver.setResolveLazily(true);
-		resolver.setMaxInMemorySize(40960);
+		resolver.setMaxInMemorySize(32);
 		resolver.setMaxUploadSize(200 * 1024 * 1024);
 		return resolver;
 	}