浏览代码

题库后端提交

weiwenhai 6 年之前
父节点
当前提交
25d179f25f
共有 78 个文件被更改,包括 580 次插入702 次删除
  1. 12 12
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/AudioTimeConfigController.java
  2. 18 17
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/CourseController.java
  3. 10 15
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/CoursePropertyController.java
  4. 2 3
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/ExamFileController.java
  5. 0 2
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/ExportPaperController.java
  6. 27 27
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/ExtractConfigController.java
  7. 3 9
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/GenPaperController.java
  8. 8 27
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/ImportPaperController.java
  9. 60 82
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PaperController.java
  10. 8 9
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PaperDetailController.java
  11. 8 15
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PaperDetailUnitController.java
  12. 16 22
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PaperStructController.java
  13. 9 24
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PropertyController.java
  14. 15 28
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/QuesController.java
  15. 4 4
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/QuestionAudioController.java
  16. 9 11
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/SettingController.java
  17. 0 1
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/controller/DefaultQuesionController.java
  18. 0 4
      examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/provider/QuestionCloudServiceProvider.java
  19. 0 21
      examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/CourseRepo.java
  20. 5 2
      examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/PaperDetailUnitNativeRepo.java
  21. 1 1
      examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/PaperRepo.java
  22. 0 2
      examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/SettingRepo.java
  23. 8 0
      examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/CoursePropertyNumber.java
  24. 3 6
      examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/ExamFile.java
  25. 3 1
      examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/PaperDetailStruct.java
  26. 6 3
      examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/PaperStruct.java
  27. 6 3
      examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/QuestionType.java
  28. 8 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ClonePaperService.java
  29. 4 4
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ImportPaperService.java
  30. 2 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperStructService.java
  31. 0 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/QuestionProviderService.java
  32. 0 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/bean/PaperDetailDtoAssembler.java
  33. 0 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/bean/PaperDetailUnitDtoAssembler.java
  34. 3 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/converter/PrintExamPaperService.java
  35. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/BjhkExportPaperService.java
  36. 8 8
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/BjjtExportPaperService.java
  37. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/BjsfExportPaperService.java
  38. 0 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/BuildComputerTestJsonService.java
  39. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/CqdxExportPaperService.java
  40. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/DbsfExportPaperService.java
  41. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/DzkdExportPaperService.java
  42. 26 12
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ExportPaperAbstractService.java
  43. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/FjsfExportPaperService.java
  44. 8 8
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/HnsfExportPaperService.java
  45. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/HzkjExportPaperService.java
  46. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/NkdxExportPaperService.java
  47. 8 8
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/RjgcExportPaperService.java
  48. 9 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/SddxExportPaperService.java
  49. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/SxsfExportPaperService.java
  50. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/SydxExportPaperService.java
  51. 9 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/TjdxExportPaperService.java
  52. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/YkdxExportPaperService.java
  53. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ZgddbExportPaperService.java
  54. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ZgddwExportPaperService.java
  55. 8 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/xajdExportPaperService.java
  56. 32 47
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/CourseService.java
  57. 0 4
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExamFileServiceImpl.java
  58. 6 3
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExportPaperServiceImpl.java
  59. 0 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExportStructureServiceImpl.java
  60. 18 6
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigFileServiceImpl.java
  61. 2 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigProviderServiceImpl.java
  62. 5 17
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigServiceImpl.java
  63. 7 19
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/GenPaperService.java
  64. 2 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailServiceImpl.java
  65. 16 7
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailUnitServiceImpl.java
  66. 10 15
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperServiceImpl.java
  67. 0 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PropertyServiceImpl.java
  68. 0 6
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/QuesServiceImpl.java
  69. 1 0
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/initQuesHash/InitQuesHashServiceImpl.java
  70. 11 11
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/DdExcelService.java
  71. 2 2
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/ImgDataUtils.java
  72. 0 1
      examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/vo/UpdatePaperStruct.java
  73. 0 1
      examcloud-core-questions-starter/src/main/java/cn/com/qmth/examcloud/core/questions/starter/initData.java
  74. 1 1
      examcloud-core-questions-starter/src/main/resources/application-dev.properties
  75. 22 19
      examcloud-core-questions-starter/src/test/java/cn/com/qmth/examcloud/core/questions/starter/ApplicationTest.java
  76. 0 7
      examcloud-core-questions-starter/src/test/java/cn/com/qmth/examcloud/core/questions/starter/DdCollegeUtilTest.java
  77. 7 8
      examcloud-core-questions-starter/src/test/java/cn/com/qmth/examcloud/core/questions/starter/ExtractConfigServiceTest.java
  78. 0 5
      examcloud-core-questions-starter/src/test/java/cn/com/qmth/examcloud/core/questions/starter/PduNativeTest.java

+ 12 - 12
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/AudioTimeConfigController.java

@@ -37,49 +37,49 @@ public class AudioTimeConfigController extends ControllerSupport{
 	
 	@ApiOperation(value = "根据examId查询音频设置 ", notes = "根据examId查询音频设置")
 	@PostMapping(value = "/audioTimeConfig/{examId}/{courseCode}")
-	public ResponseEntity findAudioTimeConfig(@PathVariable String examId,@PathVariable String courseCode){
+	public ResponseEntity<Object> findAudioTimeConfig(@PathVariable String examId,@PathVariable String courseCode){
 		List<AudioTimeConfig> audioTimeConfigs = audioTimeConfigService.findAudioTimeConfigByExamId(examId,courseCode);
-		return new ResponseEntity(audioTimeConfigs,HttpStatus.OK);
+		return new ResponseEntity<Object>(audioTimeConfigs,HttpStatus.OK);
 	}
 	
 	@ApiOperation(value="根据传入的对象查询音频题",notes="根据传入的对象查询音频题")
 	@PostMapping("/audioTimeConfig/all")
-	public ResponseEntity findAudioTimeConfigList(@RequestBody List<AudioTimeConfig> audioTimeConfigModelList){
+	public ResponseEntity<Object> findAudioTimeConfigList(@RequestBody List<AudioTimeConfig> audioTimeConfigModelList){
 		List<AudioTimeConfig> list = audioTimeConfigService.findAudioTimeConfigList(audioTimeConfigModelList);
-		return new ResponseEntity(list,HttpStatus.OK);
+		return new ResponseEntity<Object>(list,HttpStatus.OK);
 	}
 	
 	@ApiOperation(value="新增音频播放次数",notes="新增音频播放次数")
 	@PostMapping("/addAudioTimeConfig")
-	public ResponseEntity addAudioTimeConfig(@RequestBody List<AudioTimeConfig> audioTimeConfigList,HttpServletRequest request){
+	public ResponseEntity<Object> addAudioTimeConfig(@RequestBody List<AudioTimeConfig> audioTimeConfigList,HttpServletRequest request){
 		User user = getAccessUser();
 		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
 		if(user != null){
 			audioTimeConfigService.saveAudioTimeConfig(audioTimeConfigList, user);
-			return new ResponseEntity(HttpStatus.OK);
+			return new ResponseEntity<Object>(HttpStatus.OK);
 		}
-		return new ResponseEntity(HttpStatus.NOT_FOUND);
+		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
 	}
 
 	@ApiOperation(value="清理音频播放次数设置",notes="清理音频播放次数设置")
 	@PostMapping("/deleteAudioTimeConfig/{examId}/{courseCode}")
-	public ResponseEntity deleteAudioTimeConfig(@PathVariable String examId, @PathVariable String courseCode){
+	public ResponseEntity<Object> deleteAudioTimeConfig(@PathVariable String examId, @PathVariable String courseCode){
 		User user = getAccessUser();
 		if(user != null){
 			audioTimeConfigService.deleteByExamIdAndCourseCode(examId, courseCode);
-			return new ResponseEntity(HttpStatus.OK);
+			return new ResponseEntity<Object>(HttpStatus.OK);
 		}
-		return new ResponseEntity(HttpStatus.NOT_FOUND);
+		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
 	}
 
 	@ApiOperation(value="根据examID,courseCode,groupCode,paperDetailUnit的ID查询音频次数",notes="查询音频次数")
 	@GetMapping("/seachAudioTimeConfig/{examId}/{courseCode}/{groupCode}/{paperDetailUnitId}")
-	public ResponseEntity seachAudioTimeConfig(@PathVariable String examId,
+	public ResponseEntity<Object> seachAudioTimeConfig(@PathVariable String examId,
 											   @PathVariable String courseCode,
 											   @PathVariable String groupCode,
 											   @PathVariable String paperDetailUnitId){
 		Map<String, String> map = audioTimeConfigService.findAudioTimeConfig(examId, courseCode, groupCode, paperDetailUnitId);
-		return new ResponseEntity(map,HttpStatus.OK);
+		return new ResponseEntity<Object>(map,HttpStatus.OK);
 	}
 }
 

+ 18 - 17
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/CourseController.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.examcloud.core.questions.api;
+/*package cn.com.qmth.examcloud.core.questions.api;
 
 import java.util.List;
 
@@ -22,9 +22,9 @@ import cn.com.qmth.examcloud.core.questions.service.impl.CourseService;
 
 import io.swagger.annotations.ApiOperation;
 
-/**
+*//**
  * Created by songyue on 16/12/26.
- */
+ *//*
 
 @RestController
 @RequestMapping("${api_cqb}/")
@@ -39,11 +39,11 @@ public class CourseController {
     @Autowired
     CourseService courseService;
 
-    /**
+    *//**
      * 获取全部课程
      * 
      * @return
-     */
+     *//*
     @ApiOperation(value = "获取全部课程", notes = "获取全部课程")
     @GetMapping(value = "/course/{curPage}/{pageSize}")
     public ResponseEntity getAllCourse(@ModelAttribute Course searchCondition, @PathVariable int curPage,
@@ -51,36 +51,36 @@ public class CourseController {
         return new ResponseEntity(courseService.findAll(searchCondition, curPage, pageSize), HttpStatus.OK);
     }
 
-    /**
+    *//**
      * 更新课程
      * 
      * @param course
      * @return
-     */
+     *//*
     @ApiOperation(value = "更新课程", notes = "更新课程")
     @PutMapping(value = "/course")
     public ResponseEntity updateCourse(@ModelAttribute Course course) {
         return new ResponseEntity(courseRepo.save(course), HttpStatus.OK);
     }
 
-    /**
+    *//**
      * 新增课程
      * 
      * @param course
      * @return
-     */
+     *//*
     @ApiOperation(value = "新增课程", notes = "新增课程")
     @PostMapping(value = "/course")
     public ResponseEntity addCourse(@ModelAttribute Course course) {
         return new ResponseEntity(courseRepo.save(course), HttpStatus.OK);
     }
 
-    /**
+    *//**
      * 删除课程
      * 
      * @param coruse_id
      * @return
-     */
+     *//*
     @ApiOperation(value = "删除课程", notes = "删除课程")
     @DeleteMapping(value = "/course/{coruse_id}")
     public ResponseEntity removeCourse(@PathVariable String coruse_id) {
@@ -88,35 +88,35 @@ public class CourseController {
         return new ResponseEntity(HttpStatus.OK);
     }
 
-    /**
+    *//**
      * 根据课程名称或者课程编号获取课程信息
      * 
      * @param keyword
      * @return
-     */
+     *//*
     @ApiOperation(value = "根据课程名称或者课程编号获取课程信息", notes = "根据课程名称或者课程编号获取课程信息")
     @GetMapping(value = "/course")
     public ResponseEntity getCourseByKeyword(@RequestParam String keyword) {
         return new ResponseEntity(courseService.findCoursesByKeyword(keyword), HttpStatus.OK);
     }
 
-    /**
+    *//**
      * 根据课程编号获取课程信息
      * 
      * @param courseNo
      * @return
-     */
+     *//*
     @ApiOperation(value = "根据课程编号获取课程信息", notes = "根据课程编号获取课程信息")
     @GetMapping(value = "/course/{courseNo}")
     public ResponseEntity getCourseByNo(@PathVariable String courseNo) {
         return new ResponseEntity(courseRepo.findFirstByCode(courseNo), HttpStatus.OK);
     }
 
-    /**
+    *//**
      * 查询所有课程
      *
      * @return
-     */
+     *//*
     @ApiOperation(value = " 查询所有课程", notes = "查询所有课程")
     @GetMapping(value = "/course/allCourses")
     public ResponseEntity getAllCourses() {
@@ -125,3 +125,4 @@ public class CourseController {
     }
 
 }
+*/

+ 10 - 15
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/CoursePropertyController.java

@@ -6,8 +6,6 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import javax.servlet.http.HttpServletRequest;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
@@ -44,11 +42,10 @@ public class CoursePropertyController extends ControllerSupport{
 	
 	@ApiOperation(value="根据orgId查询所有课程属性", notes="不带分页")
 	@GetMapping(value="/courseProperty/all")
-	public ResponseEntity<Object> findAllByOrg(HttpServletRequest request){
+	public ResponseEntity<Object> findAllByOrg(){
 		User user = getAccessUser();
 		if(user != null){
 			List<CourseProperty> courseProperties = coursePropertyService.findAllByOrgId(user.getRootOrgId());
-			//List<CourseProperty> courseProperties = coursePropertyService.findAllByOrgId(109L);
 			return new ResponseEntity<Object>(courseProperties,HttpStatus.OK);
 		}
 		return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
@@ -58,8 +55,7 @@ public class CoursePropertyController extends ControllerSupport{
 	@GetMapping(value="/courseProperty/all/{curPage}/{pageSize}")
 	public ResponseEntity<Object> findAllByOrgId(@ModelAttribute CoursePropertyDto coursePropertyDto,
 												 @PathVariable Integer curPage,
-												 @PathVariable Integer pageSize,
-												 HttpServletRequest request){
+												 @PathVariable Integer pageSize){
 		 User user = getAccessUser();
 		 if(user == null){
 			 return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
@@ -71,7 +67,7 @@ public class CoursePropertyController extends ControllerSupport{
 	
 	@ApiOperation(value="新增课程属性" ,notes="新增课程属性")
 	@PostMapping(value="/courseProperty/save")
-	public ResponseEntity<Object> saveCourseProperty(HttpServletRequest request,@RequestBody CoursePropertyDto coursePropertyDto){
+	public ResponseEntity<Object> saveCourseProperty(@RequestBody CoursePropertyDto coursePropertyDto){
 		User user = getAccessUser();
 		if(user != null){
 			try {
@@ -87,7 +83,7 @@ public class CoursePropertyController extends ControllerSupport{
 	
 	@ApiOperation(value="启用", notes="启用")
 	@PutMapping(value="/courseProperty/open/{id}")
-	public ResponseEntity<Object> openCourseProperty(HttpServletRequest request, @PathVariable Long id){
+	public ResponseEntity<Object> openCourseProperty(@PathVariable Long id){
 		User user = getAccessUser();
 		if(user != null){
 			coursePropertyService.openCourseProperty(id);
@@ -98,7 +94,7 @@ public class CoursePropertyController extends ControllerSupport{
 	
 	@ApiOperation(value="批量启用", notes="启用")
 	@PutMapping(value="/courseProperty/opens/{ids}")
-	public ResponseEntity<Object> opensCourseProperty(HttpServletRequest request, @PathVariable String ids){
+	public ResponseEntity<Object> opensCourseProperty(@PathVariable String ids){
 		User user = getAccessUser();
 		if(user != null){
 			List<String> idList = Stream.of(ids.split(",")).collect(Collectors.toList());
@@ -110,7 +106,7 @@ public class CoursePropertyController extends ControllerSupport{
 	
 	@ApiOperation(value="禁用", notes="禁用")
 	@PutMapping(value="/courseProperty/close/{id}")
-	public ResponseEntity<Object> closeCourseProperty(HttpServletRequest request, @PathVariable Long id){
+	public ResponseEntity<Object> closeCourseProperty(@PathVariable Long id){
 		User user = getAccessUser();
 		if(user != null){
 			coursePropertyService.closeCourseProperty(id);
@@ -121,7 +117,7 @@ public class CoursePropertyController extends ControllerSupport{
 	
 	@ApiOperation(value="批量禁用", notes="禁用")
 	@PutMapping(value="/courseProperty/closes/{ids}")
-	public ResponseEntity<Object> closesCourseProperty(HttpServletRequest request, @PathVariable String ids){
+	public ResponseEntity<Object> closesCourseProperty(@PathVariable String ids){
 		User user = getAccessUser();
 		if(user != null){
 			List<String> idList = Stream.of(ids.split(",")).collect(Collectors.toList());
@@ -133,8 +129,7 @@ public class CoursePropertyController extends ControllerSupport{
 	
 	@ApiOperation(value="根据courseId查询所有课程属性", notes="不带分页")
 	@GetMapping(value="/courseProperty/all/{courseId}")
-	public ResponseEntity<Object> findAllByCourseId(HttpServletRequest request,@PathVariable Long courseId){
-		//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
+	public ResponseEntity<Object> findAllByCourseId(@PathVariable Long courseId){
 		User user = getAccessUser();
 		if(user != null){
 			List<CourseProperty> courseProperties = coursePropertyService.findAllByCourseId(courseId);
@@ -145,7 +140,7 @@ public class CoursePropertyController extends ControllerSupport{
 	
 	@ApiOperation(value="根据courseCode查询所有课程属性", notes="不带分页")
 	@GetMapping(value="/courseProperty/code/{courseCode}")
-	public ResponseEntity<Object> findAllByCourseCode(HttpServletRequest request,@PathVariable String courseCode){
+	public ResponseEntity<Object> findAllByCourseCode(@PathVariable String courseCode){
 		User user = getAccessUser();
 		if(user != null){
 			List<CourseProperty> courseProperties = coursePropertyService.findAllByCourseCode(courseCode);
@@ -156,7 +151,7 @@ public class CoursePropertyController extends ControllerSupport{
 	
 	@ApiOperation(value="根据courseCode查询所有开启的课程属性", notes="不带分页")
 	@GetMapping(value="/courseProperty/enable/{courseCode}")
-	public ResponseEntity<Object> findAllEnable(HttpServletRequest request,@PathVariable String courseCode){
+	public ResponseEntity<Object> findAllEnable(@PathVariable String courseCode){
 		User user = getAccessUser();
 		if(user != null){
 			List<CourseProperty> courseProperties = coursePropertyService.findAllEnable(courseCode,true);

+ 2 - 3
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/ExamFileController.java

@@ -8,7 +8,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -31,9 +30,9 @@ public class ExamFileController {
 	
 	@ApiOperation(value = "查询试卷文件", notes = "查询试卷文件")
 	@PostMapping(value = "/findExamFile")
-	public ResponseEntity findExamFile(@RequestBody ExamFile examFile){
+	public ResponseEntity<Object> findExamFile(@RequestBody ExamFile examFile){
 		List<ExamFile> examFiles = examFileService.findExamFileListByExamFile(examFile);
-		return new ResponseEntity(examFiles,HttpStatus.OK);
+		return new ResponseEntity<Object>(examFiles,HttpStatus.OK);
 	}
 }
 

+ 0 - 2
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/ExportPaperController.java

@@ -102,7 +102,6 @@ public class ExportPaperController {
         try {
             exportPaperService.downQuestionDistribute(courseNo, response);
         } catch (IOException e) {
-            // TODO Auto-generated catch block
             e.printStackTrace();
         }
     }
@@ -113,7 +112,6 @@ public class ExportPaperController {
     	try {
 			exportPaperService.downOriginalPaper(paperId, loginName, response);
 		} catch (Exception e) {
-			// TODO Auto-generated catch block
 			e.printStackTrace();
 		}
     	log.info("开始导出原始导入的试卷");

+ 27 - 27
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/ExtractConfigController.java

@@ -66,6 +66,28 @@ public class ExtractConfigController extends ControllerSupport {
         }
     }
     
+    @ApiOperation(value = "保存调卷规则", notes = "保存调卷规则")
+    @PutMapping(value = "/extractConfig/{isbuildFile}")
+    public ResponseEntity<Object> saveExtractConfig(HttpServletRequest request, @PathVariable Integer isbuildFile, @RequestBody ExtractConfig extractConfig) {
+        try {
+            User user = getAccessUser();
+            extractConfig.setOrgId(user.getRootOrgId() + "");
+            extractConfig.setOrgName(user.getRootOrgName());
+            extractConfigFileService.saveExtractConfigAndBuildPaperFile(extractConfig, isbuildFile, user);
+            return new ResponseEntity<Object>(HttpStatus.OK);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new StatusException("Q-050099",e.getMessage());
+        }
+    }
+    
+    @ApiOperation(value = "根据ID获取调卷规则", notes = "根据ID获取调卷规则")
+    @GetMapping(value = "/extractConfig/{id}")
+    public ResponseEntity<ExtractConfig> findExtractConfigById(@PathVariable String id) {
+        ExtractConfig extractConfig = extractConfigService.findConfigById(id);
+        return new ResponseEntity<ExtractConfig>(extractConfig, HttpStatus.OK);
+    }
+    
     @ApiOperation(value = "根据考试Id获取已经制定的调卷规则", notes = "根据考试Id获取已经制定的调卷规则")
     @GetMapping(value = "/findCourseByExtractConfig/{examId}")
     public ResponseEntity<Object> findCourseByExtractConfig(@PathVariable Long examId){
@@ -87,42 +109,20 @@ public class ExtractConfigController extends ControllerSupport {
         return new ResponseEntity<ExtractConfig>(extractConfig, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "根据ID获取调卷规则", notes = "根据ID获取调卷规则")
-    @GetMapping(value = "/extractConfig/{id}")
-    public ResponseEntity<ExtractConfig> findExtractConfigById(@PathVariable String id) {
-        ExtractConfig extractConfig = extractConfigService.findConfigById(id);
-        return new ResponseEntity<ExtractConfig>(extractConfig, HttpStatus.OK);
-    }
-
-    @ApiOperation(value = "保存调卷规则", notes = "保存调卷规则")
-    @PutMapping(value = "/extractConfig/{isbuildFile}")
-    public ResponseEntity<Object> saveExtractConfig(HttpServletRequest request, @PathVariable Integer isbuildFile, @RequestBody ExtractConfig extractConfig) {
-        try {
-            User user = getAccessUser();
-            extractConfig.setOrgId(user.getRootOrgId() + "");
-            extractConfig.setOrgName(user.getRootOrgName());
-            extractConfigFileService.saveExtractConfigAndBuildPaperFile(extractConfig, isbuildFile, user);
-            return new ResponseEntity<Object>(HttpStatus.OK);
-        } catch (Exception e) {
-            e.printStackTrace();
-            throw new StatusException("Q-050099",e.getMessage());
-        }
-    }
-
     @ApiOperation(value = "抽取考试试卷", notes = "抽取考试试卷")
     @GetMapping(value = "/extract/{exam_id}/{course_code}/{group_code}")
-    public ResponseEntity extract(@PathVariable Long exam_id, @PathVariable String course_code, @PathVariable String group_code) {
+    public ResponseEntity<Object> extract(@PathVariable Long exam_id, @PathVariable String course_code, @PathVariable String group_code) {
         try {
             Map<String, Object> returnMap = extractConfigService.extractExamPaper(exam_id, course_code, group_code);
             if (returnMap.get("errorMsg") == null) {
                 PaperDto paperDto = (PaperDto) returnMap.get("paperDto");
-                return new ResponseEntity<PaperDto>(paperDto, HttpStatus.OK);
+                return new ResponseEntity<Object>(paperDto, HttpStatus.OK);
             } else {
-                return new ResponseEntity<String>(returnMap.get("errorMsg") + "", HttpStatus.OK);
+                return new ResponseEntity<Object>(returnMap.get("errorMsg") + "", HttpStatus.OK);
             }
         } catch (Exception e) {
             logger.error("抽卷失败", e);
-            return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity<Object>(HttpStatus.INTERNAL_SERVER_ERROR);
         }
     }
 
@@ -254,7 +254,7 @@ public class ExtractConfigController extends ControllerSupport {
 
     @ApiOperation(value = "测试获取试卷Dto", notes = "测试获取试卷Dto")
     @GetMapping(value = "/extract/getPaperDto/{paperId}")
-    public ResponseEntity getPaperDto(@PathVariable String paperId) {
+    public ResponseEntity<Object> getPaperDto(@PathVariable String paperId) {
         try {
             PaperDto paperDto = extractConfigService.getPaperDtoByPaperNew(paperId);
             return new ResponseEntity<Object>(paperDto, HttpStatus.OK);

+ 3 - 9
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/GenPaperController.java

@@ -3,8 +3,6 @@ package cn.com.qmth.examcloud.core.questions.api;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.servlet.http.HttpServletRequest;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -19,7 +17,6 @@ import cn.com.qmth.examcloud.core.questions.service.PaperService;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
 import cn.com.qmth.examcloud.core.questions.base.enums.RandomGenPaperPolicy;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
-import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
@@ -40,9 +37,8 @@ public class GenPaperController extends ControllerSupport {
 
     @ApiOperation(value = "简易随机组卷", notes = "简易随机组卷")
     @PostMapping("/genPaper/simple")
-    public ResponseEntity<Object> genPaperSimple(HttpServletRequest request, @RequestBody GenPaperDto genPaperDto) {
+    public ResponseEntity<Object> genPaperSimple(@RequestBody GenPaperDto genPaperDto) {
     	User user = getAccessUser();
-        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         genPaperDto.setOrgId(user.getRootOrgId().toString());
         genPaperDto.setCreator(user.getDisplayName());
         Map<String, Object> paperMap = new HashMap<String, Object>();
@@ -98,9 +94,8 @@ public class GenPaperController extends ControllerSupport {
 
     @ApiOperation(value = "精细组卷", notes = "精细组卷")
     @PostMapping("/genPaper/normal")
-    public ResponseEntity<Object> genPaperNormal(HttpServletRequest request, @RequestBody GenPaperDto genPaperDto) {
+    public ResponseEntity<Object> genPaperNormal(@RequestBody GenPaperDto genPaperDto) {
     	User user = getAccessUser();
-    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         genPaperDto.setOrgId(user.getRootOrgId().toString());
         genPaperDto.setCreator(user.getDisplayName());
         Map<String, Object> paperMap = new HashMap<String, Object>();
@@ -147,9 +142,8 @@ public class GenPaperController extends ControllerSupport {
 
     @ApiOperation(value = "蓝图组卷", notes = "蓝图组卷")
     @PostMapping("/genPaper/blue")
-    public ResponseEntity<Object> genPaperBlue(HttpServletRequest request, @RequestBody GenPaperDto genPaperDto) {
+    public ResponseEntity<Object> genPaperBlue(@RequestBody GenPaperDto genPaperDto) {
     	User user = getAccessUser();
-    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         genPaperDto.setOrgId(user.getRootOrgId().toString());
         genPaperDto.setCreator(user.getDisplayName());
         Map<String, Object> paperMap = new HashMap<String, Object>();

+ 8 - 27
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/ImportPaperController.java

@@ -19,8 +19,6 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.commons.CommonsMultipartFile;
 
-import javax.servlet.http.HttpServletRequest;
-
 import java.io.File;
 import java.util.HashMap;
 import java.util.Map;
@@ -47,29 +45,24 @@ public class ImportPaperController extends ControllerSupport {
 
     /**
      * 导入试卷
-     *
      * @param paperName
      * @param file
      * @return
      */
     @ApiOperation(value = "导入试卷", notes = "导入试卷")
     @PostMapping(value = "/importPaper")
-    public ResponseEntity importPaper(HttpServletRequest request,
-                                      @ModelAttribute Paper paper,
-                                      @RequestParam("file") CommonsMultipartFile file) {
+    public ResponseEntity<Object> importPaper(@ModelAttribute Paper paper, @RequestParam("file") CommonsMultipartFile file) {
         User user = getAccessUser();
-        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         log.info("导入开始");
         File tempFile = null;
         try {
             tempFile = importPaperService.getUploadFile(file);
             Paper newPaper = importPaperService.importPaper(paper, user, tempFile);
-            return new ResponseEntity(newPaper, HttpStatus.OK);
+            return new ResponseEntity<Object>(newPaper, HttpStatus.OK);
         } catch (Exception e) {
             e.printStackTrace();
             log.error("导入异常:" + e.getMessage());
             throw new StatusException("Q-090072",e.getMessage());
-            //return new ResponseEntity(new ErrorMsg(e.getMessage()), HttpStatus.INTERNAL_SERVER_ERROR);
         } finally {
             log.info("导入结束");
         }
@@ -77,53 +70,41 @@ public class ImportPaperController extends ControllerSupport {
 
     /**
      * 新增试卷
-     *
      * @param courseNo
      * @param paperName
      * @return
      */
     @ApiOperation(value = "保存导入类型空白试卷", notes = "保存导入类型空白试卷")
     @PostMapping(value = "/importPaper/saveBlankPaper/{courseNo}/{courseName}/{paperName}")
-    public ResponseEntity saveBlankPaper(HttpServletRequest request,
-                                         @PathVariable String courseNo,
+    public ResponseEntity<Object> saveBlankPaper(@PathVariable String courseNo,
                                          @PathVariable String courseName,
                                          @PathVariable String paperName) {
         User user = getAccessUser();
-        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         Map<String, Object> returnMap = importPaperService.saveBlankPaper(courseNo, courseName, paperName, user);
         if (returnMap.get("msg").equals("success")) {
-            return new ResponseEntity(returnMap, HttpStatus.OK);
+            return new ResponseEntity<Object>(returnMap, HttpStatus.OK);
         } else {
-            return new ResponseEntity(returnMap, HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity<Object>(returnMap, HttpStatus.INTERNAL_SERVER_ERROR);
         }
     }
 
     /**
      * 克隆试卷
-     *
      * @return
      */
     @ApiOperation(value = "克隆试卷", notes = "克隆试卷")
     @PostMapping(value = "/clonePaper/{paperId}/{paperName}/{courseNo}")
-    public ResponseEntity clonePaper(HttpServletRequest request, @PathVariable String paperId,
+    public ResponseEntity<Object> clonePaper(@PathVariable String paperId,
                                      @PathVariable String paperName, @PathVariable String courseNo) {
         User user = getAccessUser();
-    	/*
-            Map<String, Object> map = importPaperService.clonePaper(paperId, paperName, courseNo, user);
-            if (map.get("msg").equals("success")) {
-                return new ResponseEntity(map, HttpStatus.OK);
-            } else {
-                return new ResponseEntity(map, HttpStatus.INTERNAL_SERVER_ERROR);
-            }
-        */
         Map<String, Object> map = new HashMap<>();
         try {
             clonePaperService.clonePaper(paperId, paperName, courseNo, user);
             map.put("msg", "success");
-            return new ResponseEntity(map, HttpStatus.OK);
+            return new ResponseEntity<Object>(map, HttpStatus.OK);
         } catch (PaperException e) {
             map.put("msg", e.getMessage());
-            return new ResponseEntity(map, HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity<Object>(map, HttpStatus.INTERNAL_SERVER_ERROR);
         }
     }
 

+ 60 - 82
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PaperController.java

@@ -9,8 +9,6 @@ import java.util.Set;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import javax.servlet.http.HttpServletRequest;
-
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -55,6 +53,7 @@ import io.swagger.annotations.ApiOperation;
 
 /**
  * Created by songyue on 16/12/28.
+ * updated by weiwenhai on 2018.9.28
  * @code 160
  */
 @RestController
@@ -84,8 +83,8 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "根据Id获取试卷", notes = "根据Id获取试卷")
     @GetMapping(value = "/paper/{paperId}")
-    public ResponseEntity getPaperById(@PathVariable String paperId) {
-        return new ResponseEntity(paperService.getPaperDto(paperId), HttpStatus.OK);
+    public ResponseEntity<Object> getPaperById(@PathVariable String paperId) {
+        return new ResponseEntity<Object>(paperService.getPaperDto(paperId), HttpStatus.OK);
     }
 
     /**
@@ -96,15 +95,14 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "保存试卷", notes = "保存试卷")
     @PutMapping(value = "/paper")
-    public ResponseEntity savePaperById(HttpServletRequest request, @RequestBody PaperExp paper) {
+    public ResponseEntity<Object> savePaperById(@RequestBody PaperExp paper) {
         User user = getAccessUser();
         Map<String, Object> msgMap = paperService.savePaper(paper, user);
         if ("success".equals(msgMap.get("msg"))) {
-            return new ResponseEntity(msgMap, HttpStatus.OK);
+            return new ResponseEntity<Object>(msgMap, HttpStatus.OK);
         } else {
-            return new ResponseEntity(msgMap, HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity<Object>(msgMap, HttpStatus.INTERNAL_SERVER_ERROR);
         }
-
     }
 
     /**
@@ -117,29 +115,26 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "查询所有导入试卷", notes = "查询所有导入试卷")
     @GetMapping(value = "/importPaper/{curPage}/{pageSize}")
-    public ResponseEntity getImportPapers(HttpServletRequest request,
-                                          @ModelAttribute PaperSearchInfo paperSearchInfo,
+    public ResponseEntity<Object> getImportPapers(@ModelAttribute PaperSearchInfo paperSearchInfo,
                                           @PathVariable int curPage,
                                           @PathVariable int pageSize) {
     	User user = getAccessUser();
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
-        return new ResponseEntity(paperService.getImportPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
+        return new ResponseEntity<Object>(paperService.getImportPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
     }
 
     @ApiOperation(value = "查询所有待审核和审核不通过的导入试卷", notes = "查询所有待审核和审核不通过的导入试卷")
     @GetMapping(value = "/importPaperNotSuccess/{curPage}/{pageSize}")
-    public ResponseEntity getImportPapersNotSuccess(HttpServletRequest request,
-            @ModelAttribute PaperSearchInfo paperSearchInfo, @PathVariable int curPage, @PathVariable int pageSize) {
+    public ResponseEntity<Object> getImportPapersNotSuccess(@ModelAttribute PaperSearchInfo paperSearchInfo, @PathVariable int curPage, @PathVariable int pageSize) {
     	User user = getAccessUser();
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
-        return new ResponseEntity(paperService.getImportPapersNotSuccess(paperSearchInfo, curPage, pageSize),
+        return new ResponseEntity<Object>(paperService.getImportPapersNotSuccess(paperSearchInfo, curPage, pageSize),
                 HttpStatus.OK);
     }
 
     @ApiOperation(value = "根据条件查询导入试卷", notes = "根据条件查询导入试卷")
     @GetMapping(value = "/getImportPaper")
-    public ResponseEntity<List<Paper>> getImportPapersBySearch(HttpServletRequest request,
-                                                               @ModelAttribute PaperSearchInfo paperSearchInfo) {
+    public ResponseEntity<List<Paper>> getImportPapersBySearch(@ModelAttribute PaperSearchInfo paperSearchInfo) {
     	User user = getAccessUser();
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         return new ResponseEntity<List<Paper>>(paperService.getImportPapersBySearch(paperSearchInfo), HttpStatus.OK);
@@ -147,8 +142,7 @@ public class PaperController extends ControllerSupport{
 
     @ApiOperation(value = "根据条件查询已组试卷", notes = "根据条件查询已组试卷")
     @GetMapping(value = "/getGenPaper")
-    public ResponseEntity<List<Paper>> getGenPapersBySearch(HttpServletRequest request,
-                                                            @ModelAttribute PaperSearchInfo paperSearchInfo) {
+    public ResponseEntity<List<Paper>> getGenPapersBySearch(@ModelAttribute PaperSearchInfo paperSearchInfo) {
     	User user = getAccessUser();
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         return new ResponseEntity<List<Paper>>(paperService.getGenPapersBySearch(paperSearchInfo), HttpStatus.OK);
@@ -164,11 +158,11 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "查询所有已组试卷", notes = "查询所有已组试卷")
     @GetMapping(value = "/genPaper/{curPage}/{pageSize}")
-    public ResponseEntity getGenPapers(HttpServletRequest request, @ModelAttribute PaperSearchInfo paperSearchInfo,
+    public ResponseEntity<Object> getGenPapers(@ModelAttribute PaperSearchInfo paperSearchInfo,
             @PathVariable int curPage, @PathVariable int pageSize) {
     	User user = getAccessUser();
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
-        return new ResponseEntity(paperService.getGenPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
+        return new ResponseEntity<Object>(paperService.getGenPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
     }
     
     /**
@@ -182,7 +176,7 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "查询所有导入试卷(not in paperIds)", notes = "查询所有导入试卷(not in paperIds)")
     @GetMapping(value = "/genPaper/{ids}/{curPage}/{pageSize}")
-    public ResponseEntity<Object> getGenPapersNotInIds(HttpServletRequest request, @ModelAttribute PaperSearchInfo paperSearchInfo, 
+    public ResponseEntity<Object> getGenPapersNotInIds(@ModelAttribute PaperSearchInfo paperSearchInfo, 
     		@PathVariable String[] ids, @PathVariable int curPage, @PathVariable int pageSize) {
     	User user = getAccessUser();
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
@@ -202,13 +196,13 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "删除试卷", notes = "删除试卷")
     @DeleteMapping(value = "/paper/{paperIds}")
-    public ResponseEntity delPaper(@PathVariable String paperIds) {
+    public ResponseEntity<Object> delPaper(@PathVariable String paperIds) {
         List<String> paperList = Stream.of(paperIds.split(",")).collect(Collectors.toList());
         Map<String, Object> msgMap = paperService.deletePapers(paperList);
         if (msgMap.get("msg").equals("success")) {
-            return new ResponseEntity(msgMap, HttpStatus.OK);
+            return new ResponseEntity<Object>(msgMap, HttpStatus.OK);
         } else {
-            return new ResponseEntity(msgMap, HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity<Object>(msgMap, HttpStatus.INTERNAL_SERVER_ERROR);
         }
 
     }
@@ -221,9 +215,9 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "批量通过试卷", notes = "批量通过试卷")
     @PutMapping(value = "/paper/pass")
-    public ResponseEntity passPapers(@RequestBody PaperSearchInfo paperSearchInfo) {
+    public ResponseEntity<Object> passPapers(@RequestBody PaperSearchInfo paperSearchInfo) {
         paperService.passPapers(Arrays.asList(paperSearchInfo.getPaperIds()));
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
@@ -234,9 +228,9 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "批量不通过试卷", notes = "批量不通过试卷")
     @PutMapping(value = "/paper/noPass")
-    public ResponseEntity noPassPapers(@RequestBody PaperSearchInfo paperSearchInfo) {
+    public ResponseEntity<Object> noPassPapers(@RequestBody PaperSearchInfo paperSearchInfo) {
         paperService.noPassPapers(Arrays.asList(paperSearchInfo.getPaperIds()));
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
@@ -247,9 +241,9 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "批量待审核试卷", notes = "批量待审核试卷")
     @PutMapping(value = "/paper/draft")
-    public ResponseEntity initPapers(@RequestBody PaperSearchInfo paperSearchInfo) {
+    public ResponseEntity<Object> initPapers(@RequestBody PaperSearchInfo paperSearchInfo) {
         paperService.backPapers(Arrays.asList(paperSearchInfo.getPaperIds()));
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
@@ -278,10 +272,10 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "新增考试试卷", notes = "新增考试试卷")
     @PostMapping(value = "/paper/join/{examId}/{courseCode}/{groupCode}/{paperId}")
-    public ResponseEntity joinExamPaper(@PathVariable String examId, @PathVariable String courseCode,
+    public ResponseEntity<Object> joinExamPaper(@PathVariable String examId, @PathVariable String courseCode,
             @PathVariable String groupCode, @PathVariable String paperId) {
         paperService.joinToExamPaper(Long.parseLong(examId), courseCode, groupCode, paperId);
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
@@ -295,11 +289,11 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "删除考试试卷", notes = "删除考试试卷")
     @DeleteMapping(value = "/paper/release/{examId}/{courseCode}/{groupCode}/{paperId}")
-    public ResponseEntity releaseExamPaper(@PathVariable String examId, @PathVariable String courseCode,
+    public ResponseEntity<Object> releaseExamPaper(@PathVariable String examId, @PathVariable String courseCode,
             @PathVariable String groupCode, @PathVariable String paperId) {
 
         paperService.releaseExamPaper(Long.parseLong(examId), courseCode, groupCode, paperId);
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
@@ -325,10 +319,10 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "删除考试试卷类型", notes = "删除考试试卷类型")
     @DeleteMapping(value = "/paper/groupCode/{examId}/{courseCode}/{groupCode}")
-    public ResponseEntity deleteGroup(@PathVariable String examId, @PathVariable String courseCode,
+    public ResponseEntity<Object> deleteGroup(@PathVariable String examId, @PathVariable String courseCode,
             @PathVariable String groupCode) {
         paperService.deletGroupCode(Long.parseLong(examId), courseCode, groupCode);
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
@@ -339,11 +333,10 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "删除导入试卷中的试题", notes = "删除导入试卷中的试题")
     @DeleteMapping(value = "/paper/deleteQuestion/{questionId}")
-    public ResponseEntity deleteImportPaperQuestion(HttpServletRequest request, @PathVariable String questionId) {
+    public ResponseEntity<Object> deleteImportPaperQuestion(@PathVariable String questionId) {
     	User user = getAccessUser();
-        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         List<String> paperNames = paperService.deleteImportQuestionById(questionId, user);
-        return new ResponseEntity(paperNames, HttpStatus.OK);
+        return new ResponseEntity<Object>(paperNames, HttpStatus.OK);
     }
 
     /**
@@ -356,7 +349,7 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "向导入试卷中的新增试题", notes = "向导入试卷中的新增试题")
     @PostMapping(value = "/paper/addQuestion/{paperId}/{paperDetailId}")
-    public ResponseEntity<Object> insertQuestionToPaper(HttpServletRequest request, @PathVariable String paperId,
+    public ResponseEntity<Object> insertQuestionToPaper(@PathVariable String paperId,
             @PathVariable String paperDetailId, @RequestBody Question question) {
     	User user = getAccessUser();
         return new ResponseEntity<Object>(paperService.insertQuestionToPaper(paperId, paperDetailId, question, user),
@@ -366,12 +359,9 @@ public class PaperController extends ControllerSupport{
 
     @ApiOperation(value = "获取试卷的重复试题", notes = "获取试卷的重复试题")
     @GetMapping(value = "/paper/{paperId}/reduplicate-questions")
-    public ResponseEntity reduplicateQuestions(@PathVariable String paperId) {
-
+    public ResponseEntity<Object> reduplicateQuestions(@PathVariable String paperId) {
         List<PaperDetailUnitExp> allPaperDetailUnitList = new ArrayList<>();
-        // List<String> reduplicateId = new ArrayList<>();
         List<Set<String>> reduplicateId = new ArrayList<>();
-
         PaperExp paperExp = paperService.getPaperDto(paperId);
         List<PaperDetailExp> paperDetailExpList = paperExp.getPaperDetails();
         if (paperDetailExpList != null && paperDetailExpList.size() > 0) {
@@ -379,10 +369,8 @@ public class PaperController extends ControllerSupport{
                 if (paperDetailExp.getPaperDetailUnits() != null) {
                     allPaperDetailUnitList.addAll(paperDetailExp.getPaperDetailUnits());
                 }
-
             }
         }
-
         int length = allPaperDetailUnitList.size();
         for (int i = 0; i < length - 1; i++) {
             PaperDetailUnitExp paperDetailUnitExp1 = allPaperDetailUnitList.get(i);
@@ -417,7 +405,6 @@ public class PaperController extends ControllerSupport{
                             break;
                         }
                     }
-
                     if (!found) {
                         Set<String> redupSet = new HashSet<>();
 
@@ -430,20 +417,18 @@ public class PaperController extends ControllerSupport{
                 }
             }
         }
-        return new ResponseEntity(reduplicateId, HttpStatus.OK);
-
+        return new ResponseEntity<Object>(reduplicateId, HttpStatus.OK);
     }
 
     /**
      * 根据试题获取试卷名称
-     *
      * @param
      * @return
      */
     @ApiOperation(value = "获取试题所在的试卷名称", notes = "获取试题所在的试卷名称")
     @GetMapping(value = "/paper/listNames/{questionId}")
-    public ResponseEntity getPaperNamesByQuesId(@PathVariable String questionId) {
-        return new ResponseEntity(paperService.getPaperNamesByQuestionId(questionId), HttpStatus.OK);
+    public ResponseEntity<Object> getPaperNamesByQuesId(@PathVariable String questionId) {
+        return new ResponseEntity<Object>(paperService.getPaperNamesByQuestionId(questionId), HttpStatus.OK);
     }
 
     /**
@@ -454,12 +439,11 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "查询用于选题的试题列表", notes = "查询用于选题的试题列表")
     @GetMapping(value = "/paper/listQuestion/{paperId}/{curPage}/{pageSize}")
-    public ResponseEntity<Object> listQuestionforSelect(HttpServletRequest request,
-                                                @PathVariable String paperId,
-                                                @PathVariable int curPage,
-                                                @PathVariable int pageSize,
-                                                @RequestParam(name = "quesType") String quesType,
-                                                @RequestParam(name = "quesBody") String quesBody) {
+    public ResponseEntity<Object> listQuestionforSelect(@PathVariable String paperId,
+                                                	@PathVariable int curPage,
+                                                	@PathVariable int pageSize,
+                                                	@RequestParam(name = "quesType") String quesType,
+                                                	@RequestParam(name = "quesBody") String quesBody) {
     	User user = getAccessUser();
         if(user == null){
             return new ResponseEntity<Object>(new PageImpl<Question>(new ArrayList<Question>()),HttpStatus.OK);
@@ -474,7 +458,6 @@ public class PaperController extends ControllerSupport{
 
     /**
      * 向试卷中某道大题插入多道试题(已存在的试题)
-     *
      * @param paperId
      * @param paperDetailId
      * @param questions
@@ -482,16 +465,15 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "向导入试卷中的新增试题", notes = "向导入试卷中的新增试题")
     @PostMapping(value = "/paper/selectQuestions/{paperId}/{paperDetailId}")
-    public ResponseEntity selectQuestionsToPaper(HttpServletRequest request, @PathVariable String paperId,
+    public ResponseEntity<Object> selectQuestionsToPaper(@PathVariable String paperId,
             @PathVariable String paperDetailId, @RequestBody List<Question> questions) {
     	User user = getAccessUser();
-        return new ResponseEntity(paperService.selectQuestionsToPaper(paperId, paperDetailId, questions, user),
+        return new ResponseEntity<Object>(paperService.selectQuestionsToPaper(paperId, paperDetailId, questions, user),
                 HttpStatus.OK);
 
     }
 
     /**
-     * 
      * @param request
      * @param paperSearchInfo
      * @param ids
@@ -501,16 +483,15 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "查询所有导入试卷(not in paperIds)", notes = "查询所有导入试卷(not in paperIds)")
     @GetMapping(value = "/importPaper/{ids}/{curPage}/{pageSize}")
-    public ResponseEntity getImportPapersNotInIds(HttpServletRequest request,
-            @ModelAttribute PaperSearchInfo paperSearchInfo, @PathVariable String[] ids, @PathVariable int curPage,
+    public ResponseEntity<Object> getImportPapersNotInIds(@ModelAttribute PaperSearchInfo paperSearchInfo, @PathVariable String[] ids, @PathVariable int curPage,
             @PathVariable int pageSize) {
     	User user = getAccessUser();
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         if (ids != null && ids.length > 0) {
-            return new ResponseEntity(paperService.getPapersNotInIds(paperSearchInfo, ids, curPage, pageSize,PaperType.IMPORT),
+            return new ResponseEntity<Object>(paperService.getPapersNotInIds(paperSearchInfo, ids, curPage, pageSize,PaperType.IMPORT),
                     HttpStatus.OK);
         } else {
-            return new ResponseEntity(paperService.getImportPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
+            return new ResponseEntity<Object>(paperService.getImportPapers(paperSearchInfo, curPage, pageSize), HttpStatus.OK);
         }
     }
 
@@ -522,14 +503,13 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "查询该课程的所有导入试卷", notes = "查询该课程的所有导入试卷")
     @GetMapping(value = "/importPaper/course")
-    public ResponseEntity getImportPapersByCourseNo(HttpServletRequest request,
-            @ModelAttribute PaperSearchInfo paperSearchInfo) {
+    public ResponseEntity<Object> getImportPapersByCourseNo(@ModelAttribute PaperSearchInfo paperSearchInfo) {
     	User user = getAccessUser();
         paperSearchInfo.setOrgId(user.getRootOrgId().toString());
         paperService.formatPaperSearchInfo(paperSearchInfo);
         Paper importPaper = BeanCopierUtil.copyProperties(paperSearchInfo, Paper.class);
         importPaper.setPaperType(PaperType.IMPORT);
-        return new ResponseEntity(paperRepo.findAll(Example.of(importPaper)), HttpStatus.OK);
+        return new ResponseEntity<Object>(paperRepo.findAll(Example.of(importPaper)), HttpStatus.OK);
 
     }
     /**
@@ -540,22 +520,21 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value = "复制导入试卷为组卷", notes = "复制导入试卷为组卷")
     @PutMapping(value = "/useBasePaper/{paperIds}")
-    public ResponseEntity useBasePaper(HttpServletRequest request,@PathVariable String paperIds){
+    public ResponseEntity<Object> useBasePaper(@PathVariable String paperIds){
     	User user = getAccessUser();
     	try{
     		String[] paperIdArray = paperIds.split(",");
         	for(int i = 0;i<paperIdArray.length;i++){
         		Paper oldpaper = paperRepo.findOne(paperIdArray[i]);
-        		boolean result = paperService.checkPaperName(oldpaper.getName(), PaperType.GENERATE,user.getRootOrgId()+"");
+        		boolean result = paperService.checkPaperName(oldpaper.getName(),PaperType.GENERATE,user.getRootOrgId()+"");
         		if(!result){
         			throw new StatusException("Q-160565","考试试卷:"+oldpaper.getName()+"已经存在");
-        			//return new ResponseEntity(new ErrorMsg("考试试卷:"+oldpaper.getName()+"已经存在"),HttpStatus.OK);
         		}
         	}
     		paperService.useBasePaper(paperIds, user.getDisplayName());
-    		return new ResponseEntity(HttpStatus.OK);
+    		return new ResponseEntity<Object>(HttpStatus.OK);
     	}catch(Exception e){
-    		return new ResponseEntity(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
+    		return new ResponseEntity<Object>(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
     	}
     }
     
@@ -567,21 +546,21 @@ public class PaperController extends ControllerSupport{
      */
     @ApiOperation(value="上传音频文件检查",notes="上传音频文件检查")
     @PostMapping(value="/checkRadioFile/{paperId}")
-    public ResponseEntity checkRadioFile(@PathVariable String paperId,@RequestBody List<String> filesName){
+    public ResponseEntity<Object> checkRadioFile(@PathVariable String paperId,@RequestBody List<String> filesName){
     	Map<String, String> errorMessage = paperService.checkRadioFile(paperId, filesName);
-    	return new ResponseEntity(errorMessage,HttpStatus.OK);
+    	return new ResponseEntity<Object>(errorMessage,HttpStatus.OK);
     }
     
     @ApiOperation(value="上传音频文件", notes="上传音频文件")
     @PostMapping(value="/uploadRadio/{paperId}")
-    public ResponseEntity uploadRadio(List<MultipartFile> files,@PathVariable String paperId,HttpServletRequest request){
+    public ResponseEntity<Object> uploadRadio(List<MultipartFile> files,@PathVariable String paperId){
     	User user = getAccessUser();
     	try {
 			paperService.uploadRadio(files, paperId, user);
-			return new ResponseEntity(HttpStatus.OK);
+			return new ResponseEntity<Object>(HttpStatus.OK);
 		} catch (Exception e) {
 			e.printStackTrace();
-			return new ResponseEntity(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
+			return new ResponseEntity<Object>(e.getMessage(),HttpStatus.INTERNAL_SERVER_ERROR);
 		}
     }
     
@@ -604,8 +583,7 @@ public class PaperController extends ControllerSupport{
     
     @ApiOperation(value="传送到印刷平台", notes="传送到印刷平台")
     @GetMapping(value="/sendPrint/{paperId}/{paperHtmlUrl}/{examId}")
-    public ResponseEntity<Object> sendPrint(HttpServletRequest request,
-    										@PathVariable String paperId,
+    public ResponseEntity<Object> sendPrint(@PathVariable String paperId,
     										@PathVariable String paperHtmlUrl,
     										@PathVariable String examId){
     	User user = getAccessUser();
@@ -618,7 +596,7 @@ public class PaperController extends ControllerSupport{
     
     @ApiOperation(value="根据试卷id查询主观题与客观题数量", notes="根据试卷id查询主观题与客观题数量")
     @GetMapping(value="/questionStructure")
-    public QuestionAllTypeDto findQuestionStructure(HttpServletRequest request,@RequestParam("paperId") String paperId, @RequestHeader("user_token") String user_token) throws Exception{
+    public QuestionAllTypeDto findQuestionStructure(@RequestParam("paperId") String paperId, @RequestHeader("user_token") String user_token) throws Exception{
     	User user = getAccessUser();
 		return paperService.findQuestionStructure(paperId,user);
     }

+ 8 - 9
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PaperDetailController.java

@@ -21,7 +21,6 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.service.PaperDetailService;
 import cn.com.qmth.examcloud.core.questions.service.PaperService;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
-import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
@@ -73,13 +72,13 @@ public class PaperDetailController extends ControllerSupport {
      */
     @ApiOperation(value = "更新试卷中的大题", notes = "更新试卷中的大题")
     @PostMapping(value = "/updatePaperDetail/{paperId}")
-    public ResponseEntity updatePaperDetail( HttpServletRequest request,
+    public ResponseEntity<Object> updatePaperDetail( HttpServletRequest request,
                                              @PathVariable String paperId, 
                                              @RequestBody PaperDetail pd) {
         User user = getAccessUser();
     	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         PaperDetail paperDetail = paperDetailService.savePaperDetail(pd,paperId,user);
-        return new ResponseEntity(paperDetail, HttpStatus.OK);
+        return new ResponseEntity<Object>(paperDetail, HttpStatus.OK);
 
     }
 
@@ -91,9 +90,9 @@ public class PaperDetailController extends ControllerSupport {
      */
     @ApiOperation(value = "新增大题", notes = "新增大题")
     @PostMapping(value = "/paperDetail")
-    public ResponseEntity addPaperDetail(@RequestBody PaperDetail pd) {
+    public ResponseEntity<Object> addPaperDetail(@RequestBody PaperDetail pd) {
         PaperDetail paperDetail = paperDetailRepo.save(pd);
-        return new ResponseEntity(paperDetail, HttpStatus.OK);
+        return new ResponseEntity<Object>(paperDetail, HttpStatus.OK);
     }
 
     /**
@@ -104,9 +103,9 @@ public class PaperDetailController extends ControllerSupport {
      */
     @ApiOperation(value = "删除大题", notes = "删除大题")
     @DeleteMapping(value = "/paperDetail/{detailId}")
-    public ResponseEntity removePaperDetail(@PathVariable String detailId) {
+    public ResponseEntity<Object> removePaperDetail(@PathVariable String detailId) {
         paperDetailService.deletePaperDetail(detailId);
-        return new ResponseEntity(detailId, HttpStatus.OK);
+        return new ResponseEntity<Object>(detailId, HttpStatus.OK);
     }
 
     /**
@@ -117,8 +116,8 @@ public class PaperDetailController extends ControllerSupport {
      */
     @ApiOperation(value = "根据试卷ID得到所有大题", notes = "根据试卷ID得到所有大题")
     @GetMapping(value = "/paperDetail/paper/{paperId}")
-    public ResponseEntity getPaperDetailsByPaperId(@PathVariable String paperId) {
-        return new ResponseEntity(paperService.findPaperDetailsById(paperId), HttpStatus.OK);
+    public ResponseEntity<Object> getPaperDetailsByPaperId(@PathVariable String paperId) {
+        return new ResponseEntity<Object>(paperService.findPaperDetailsById(paperId), HttpStatus.OK);
     }
     
 }

+ 8 - 15
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PaperDetailUnitController.java

@@ -1,7 +1,5 @@
 package cn.com.qmth.examcloud.core.questions.api;
 
-import javax.servlet.http.HttpServletRequest;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -19,12 +17,12 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
-import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
 /**
  * Created by songyue on 16/12/28.
+ * updated by weiwenhai on 2018.9.28
  */
 @RestController
 @RequestMapping("${api_cqb}/")
@@ -65,12 +63,10 @@ public class PaperDetailUnitController extends ControllerSupport {
      */
     @ApiOperation(value = "更新小题", notes = "更新小题")
     @PutMapping(value = "/paperDetailUnit")
-    public ResponseEntity updatePaperDetailUnit(HttpServletRequest request, @RequestBody PaperDetailUnitExp pdu) {
+    public ResponseEntity<Object> updatePaperDetailUnit(@RequestBody PaperDetailUnitExp pdu) {
         User user = getAccessUser();
-    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
-        PaperDetailUnit pdUnit = unitService.savePaperDetailUnit(pdu, user);
-        return new ResponseEntity(HttpStatus.OK);
-
+        unitService.savePaperDetailUnit(pdu, user);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
@@ -81,26 +77,23 @@ public class PaperDetailUnitController extends ControllerSupport {
      */
     @ApiOperation(value = "新增小题", notes = "新增小题")
     @PostMapping(value = "/paperDetailUnit")
-    public ResponseEntity addPaperDetailUnit(HttpServletRequest request, @RequestBody PaperDetailUnitExp pdu) {
+    public ResponseEntity<Object> addPaperDetailUnit(@RequestBody PaperDetailUnitExp pdu) {
     	User user = getAccessUser();
-    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         PaperDetailUnit pdUnit = unitService.savePaperDetailUnit(pdu, user);
-        return new ResponseEntity(pdUnit, HttpStatus.OK);
+        return new ResponseEntity<Object>(pdUnit, HttpStatus.OK);
     }
 
     /**
      * 删除小题
-     * 
      * @param unit_id
      * @return
      */
     @ApiOperation(value = "删除小题", notes = "删除小题")
     @DeleteMapping(value = "/paperDetailUnit/{unitId}")
-    public ResponseEntity removePaperDetailUnit(HttpServletRequest request, @PathVariable String unitId) {
+    public ResponseEntity<Object> removePaperDetailUnit(@PathVariable String unitId) {
     	User user = getAccessUser();
-    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         unitService.deletePaperDetailUnit(unitId, user);
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
 }

+ 16 - 22
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PaperStructController.java

@@ -5,8 +5,6 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import javax.servlet.http.HttpServletRequest;
-
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.QuesNameDto;
 
@@ -21,7 +19,6 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.PaperStruct;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperStructSearchInfo;
 import cn.com.qmth.examcloud.core.questions.service.PaperStructService;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
-import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
@@ -45,8 +42,7 @@ public class PaperStructController extends ControllerSupport {
      */
     @ApiOperation(value = "获取试卷结构带分页", notes = "获取试卷结构带分页")
     @GetMapping(value = "/paperStruct/{curPage}/{pageSize}")
-    public ResponseEntity getPaperStructs(HttpServletRequest request,
-                                          @ModelAttribute PaperStructSearchInfo searchInfo,
+    public ResponseEntity<Object> getPaperStructs(@ModelAttribute PaperStructSearchInfo searchInfo,
                                           @PathVariable int curPage,
                                           @PathVariable int pageSize) {
         User user = getAccessUser();
@@ -54,7 +50,7 @@ public class PaperStructController extends ControllerSupport {
             searchInfo.setOrgId(user.getRootOrgId().toString());
         }
         Page<PaperStruct> paperStructs= paperStructService.getPaperStructs(searchInfo, curPage, pageSize);
-        return new ResponseEntity(paperStructs, HttpStatus.OK);
+        return new ResponseEntity<Object>(paperStructs, HttpStatus.OK);
     }
 
     /**
@@ -64,13 +60,13 @@ public class PaperStructController extends ControllerSupport {
      */
     @ApiOperation(value = "获取试卷结构不带分页", notes = "获取试卷结构不带分页")
     @GetMapping(value = "/paperStruct")
-    public ResponseEntity getPaperStructs(HttpServletRequest request,@ModelAttribute PaperStructSearchInfo searchInfo) {
+    public ResponseEntity<Object> getPaperStructs(@ModelAttribute PaperStructSearchInfo searchInfo) {
     	User user = getAccessUser();
         if(user != null){
             searchInfo.setOrgId(user.getRootOrgId().toString());
         }
         List<PaperStruct> paperStructs = paperStructService.getPaperStructs(searchInfo);
-        return new ResponseEntity(paperStructs, HttpStatus.OK);
+        return new ResponseEntity<Object>(paperStructs, HttpStatus.OK);
     }
 
     /**
@@ -81,8 +77,8 @@ public class PaperStructController extends ControllerSupport {
      */
     @ApiOperation(value = "获取试卷结构", notes = "获取试卷结构")
     @GetMapping(value = "/paperStruct/{id}")
-    public ResponseEntity getPaperStructById(@PathVariable String id) {
-        return new ResponseEntity(paperStructRepo.findOne(id), HttpStatus.OK);
+    public ResponseEntity<Object> getPaperStructById(@PathVariable String id) {
+        return new ResponseEntity<Object>(paperStructRepo.findOne(id), HttpStatus.OK);
     }
 
     /**
@@ -93,15 +89,14 @@ public class PaperStructController extends ControllerSupport {
      */
     @ApiOperation(value = "更新试卷结构", notes = "更新试卷结构")
     @PutMapping(value = "/paperStruct")
-    public ResponseEntity updatePaperStruct(HttpServletRequest request, @RequestBody PaperStruct ps) {
+    public ResponseEntity<Object> updatePaperStruct(@RequestBody PaperStruct ps) {
     	User user = getAccessUser();
         PaperStruct paperStruct = paperStructService.save(ps, user);
         if (paperStruct == null) {
-            return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity<Object>(HttpStatus.INTERNAL_SERVER_ERROR);
         } else {
-            return new ResponseEntity(paperStruct, HttpStatus.OK);
+            return new ResponseEntity<Object>(paperStruct, HttpStatus.OK);
         }
-
     }
 
     /**
@@ -112,14 +107,14 @@ public class PaperStructController extends ControllerSupport {
      */
     @ApiOperation(value = "新增试卷结构", notes = "新增试卷结构")
     @PostMapping(value = "/paperStruct")
-    public ResponseEntity addPaperStruct(HttpServletRequest request, @RequestBody PaperStruct ps) {
+    public ResponseEntity<Object> addPaperStruct(@RequestBody PaperStruct ps) {
     	User user = getAccessUser();
         PaperStruct paperStructTemp = paperStructService.checkNameUnique(ps.getName(), user.getRootOrgId().toString(),ps.getType());
         if (paperStructTemp != null) {
-            return new ResponseEntity("试卷结构名称重复,请重新命名!", HttpStatus.INTERNAL_SERVER_ERROR);
+            return new ResponseEntity<Object>("试卷结构名称重复,请重新命名!", HttpStatus.INTERNAL_SERVER_ERROR);
         } else {
             PaperStruct paperStruct = paperStructService.save(ps, user);
-            return new ResponseEntity(paperStruct, HttpStatus.OK);
+            return new ResponseEntity<Object>(paperStruct, HttpStatus.OK);
         }
     }
 
@@ -131,10 +126,10 @@ public class PaperStructController extends ControllerSupport {
      */
     @ApiOperation(value = "删除试卷结构", notes = "删除试卷结构")
     @DeleteMapping(value = "/paperStruct/{ids}")
-    public ResponseEntity removePaperStruct(@PathVariable String ids) {
+    public ResponseEntity<Object> removePaperStruct(@PathVariable String ids) {
         List<String> paperList = Stream.of(ids.split(",")).collect(Collectors.toList());
         paperStructRepo.delete(paperStructRepo.findAll(paperList));
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
@@ -144,14 +139,13 @@ public class PaperStructController extends ControllerSupport {
      */
     @ApiOperation(value = "获取来源大题", notes = "获取来源大题")
     @GetMapping(value = "/paperStruct/quesNames")
-    public ResponseEntity getPaperStructById(HttpServletRequest request,
-                                             @RequestParam(required = false) String courseNo,
+    public ResponseEntity<Object> getPaperStructById(@RequestParam(required = false) String courseNo,
                                              @RequestParam QuesStructType quesType) {
         List<QuesNameDto> quesNameDtos = new ArrayList<>();
         User user = getAccessUser();
         if(user != null){
             quesNameDtos = paperStructService.getQuesNameList(user.getRootOrgId().toString(),courseNo,quesType);
         }
-        return new ResponseEntity(quesNameDtos, HttpStatus.OK);
+        return new ResponseEntity<Object>(quesNameDtos, HttpStatus.OK);
     }
 }

+ 9 - 24
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/PropertyController.java

@@ -1,13 +1,7 @@
 package cn.com.qmth.examcloud.core.questions.api;
 
-import java.util.ArrayList;
 import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
 import io.swagger.annotations.ApiOperation;
-
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -40,9 +34,8 @@ public class PropertyController extends ControllerSupport {
 	
 	@ApiOperation(value="新增属性", notes="新增属性")
 	@PostMapping(value="/property/save")
-	public ResponseEntity<Object> saveProperty(HttpServletRequest request, @RequestBody Property property){
+	public ResponseEntity<Object> saveProperty(@RequestBody Property property){
 		User user = getAccessUser();
-		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
 		if(user != null){
 			try {
 				propertyService.saveProperty(property, user);
@@ -57,9 +50,8 @@ public class PropertyController extends ControllerSupport {
 	
 	@ApiOperation(value="查询所有属性dto", notes="树形结构")
 	@GetMapping(value="/property/all/{coursePropertyId}")
-	public ResponseEntity<Object> findAllProperty(HttpServletRequest request, @PathVariable String coursePropertyId){
+	public ResponseEntity<Object> findAllProperty(@PathVariable String coursePropertyId){
 		User user = getAccessUser(); 
-		//AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
 		if(user == null){
 			return new ResponseEntity<Object>(HttpStatus.NOT_FOUND);
 		}
@@ -69,9 +61,8 @@ public class PropertyController extends ControllerSupport {
 	
 	@ApiOperation(value="更新属性", notes="更新属性")
 	@PutMapping(value="/property/save")
-	public ResponseEntity<Object> updateProperty(HttpServletRequest request, @RequestBody Property property){
+	public ResponseEntity<Object> updateProperty(@RequestBody Property property){
 		User user = getAccessUser(); 
-		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
 		if(user != null){
 			try {
 				propertyService.saveProperty(property, user);
@@ -86,9 +77,8 @@ public class PropertyController extends ControllerSupport {
 	
 	@ApiOperation(value="删除属性", notes="删除属性")
 	@DeleteMapping(value="/property/delete/{propertyId}/{coursePropertyId}")
-	public ResponseEntity<Object> deleteProperty(HttpServletRequest request, @PathVariable Long propertyId, @PathVariable Long coursePropertyId){
+	public ResponseEntity<Object> deleteProperty(@PathVariable Long propertyId, @PathVariable Long coursePropertyId){
 		User user = getAccessUser(); 
-		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
 		if(user != null){
 			propertyService.deleteProperty(propertyId, coursePropertyId, user);
 			return new ResponseEntity<Object>(HttpStatus.OK);
@@ -98,9 +88,8 @@ public class PropertyController extends ControllerSupport {
 	
 	@ApiOperation(value="查询所有属性", notes="查询所有属性")
 	@GetMapping(value="/property/{coursePropertyId}")
-	public ResponseEntity<Object> findAll(HttpServletRequest request, @PathVariable String coursePropertyId){
+	public ResponseEntity<Object> findAll(@PathVariable String coursePropertyId){
 		User user = getAccessUser(); 
-		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
 		if(user != null){
 			List<Property> properties = propertyService.findAll(Long.parseLong(coursePropertyId), user);
 			return new ResponseEntity<Object>(properties,HttpStatus.OK);
@@ -110,9 +99,8 @@ public class PropertyController extends ControllerSupport {
 	
 	@ApiOperation(value="根据一级查询二级所有属性", notes="查询所有属性")
 	@GetMapping(value="/property/second/{propertyId}")
-	public ResponseEntity<Object> findSons(HttpServletRequest request, @PathVariable Long propertyId){
+	public ResponseEntity<Object> findSons(@PathVariable Long propertyId){
 		User user = getAccessUser(); 
-		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
 		if(user != null){
 			List<Property> properties = propertyService.findPropertySons(propertyId);
 			return new ResponseEntity<Object>(properties,HttpStatus.OK);
@@ -122,9 +110,8 @@ public class PropertyController extends ControllerSupport {
 	
 	@ApiOperation(value="根据课程属性id所有一级属性", notes="查询所有属性")
 	@GetMapping(value="/property/first/{coursePropertyId}")
-	public ResponseEntity<Object> findParents(HttpServletRequest request, @PathVariable Long coursePropertyId){
+	public ResponseEntity<Object> findParents(@PathVariable Long coursePropertyId){
 		User user = getAccessUser(); 
-		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
 		if(user != null){
 			List<Property> properties = propertyService.findPropertyParents(coursePropertyId, user.getRootOrgId());
 			return new ResponseEntity<Object>(properties,HttpStatus.OK);
@@ -134,9 +121,8 @@ public class PropertyController extends ControllerSupport {
 	
 	@ApiOperation(value="上移",notes="上移")
 	@PutMapping(value="/property/moveUp")
-	public ResponseEntity<Object> moveUp(HttpServletRequest request, @RequestBody Property property){
+	public ResponseEntity<Object> moveUp(@RequestBody Property property){
 		User user = getAccessUser(); 
-		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
 		if(user != null){
 			try {
 				property.setOrgId(user.getRootOrgId());
@@ -152,9 +138,8 @@ public class PropertyController extends ControllerSupport {
 	
 	@ApiOperation(value="下移",notes="下移")
 	@PutMapping(value="/property/moveDown")
-	public ResponseEntity<Object> moveDown(HttpServletRequest request, @RequestBody Property property){
+	public ResponseEntity<Object> moveDown(@RequestBody Property property){
 		User user = getAccessUser(); 
-		//AccessUser accessUser = (AccessUser)request.getAttribute("accessUser");
 		if(user != null){
 			try {
 				property.setOrgId(user.getRootOrgId());

+ 15 - 28
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/QuesController.java

@@ -4,8 +4,6 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import javax.servlet.http.HttpServletRequest;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
@@ -26,7 +24,6 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionSearchCondition;
 import cn.com.qmth.examcloud.core.questions.service.QuesService;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
-import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 import cn.com.qmth.examcloud.commons.web.support.ControllerSupport;
 import io.swagger.annotations.ApiOperation;
 
@@ -48,94 +45,84 @@ public class QuesController extends ControllerSupport {
 
     /**
      * 获取试题
-     * 
      * @param id
      * @return
      */
     @ApiOperation(value = "获取试题", notes = "获取试题")
     @GetMapping(value = "/question/{id}")
-    public ResponseEntity getQuesById(@PathVariable String id) {
+    public ResponseEntity<Object> getQuesById(@PathVariable String id) {
         Question ques = quesRepo.findOne(id);
         quesService.formatQues(ques);
-        return new ResponseEntity(ques, HttpStatus.OK);
+        return new ResponseEntity<Object>(ques, HttpStatus.OK);
     }
 
     /**
      * 分页查询试题
-     * 
      * @return
      */
     @ApiOperation(value = "分页查询试题", notes = "分页查询试题")
     @GetMapping(value = "/question/{curPage}/{pageSize}")
-    public ResponseEntity getAllQuestion(HttpServletRequest request,
-                                        @ModelAttribute QuestionSearchCondition searchCondition,
-                                        @PathVariable int curPage, 
-                                        @PathVariable int pageSize) {
+    public ResponseEntity<Object> getAllQuestion(@ModelAttribute QuestionSearchCondition searchCondition,
+                                        		 @PathVariable int curPage, 
+                                        		 @PathVariable int pageSize) {
     	User user = getAccessUser();
-        //AccessUser user = (AccessUser) request.getAttribute("accessUser");
         searchCondition.setOrgId(user.getRootOrgId().toString());
-        return new ResponseEntity(quesService.findAll(searchCondition, curPage, pageSize), HttpStatus.OK);
+        return new ResponseEntity<Object>(quesService.findAll(searchCondition, curPage, pageSize), HttpStatus.OK);
     }
 
     /**
      * 更新试题信息
-     * 
      * @param
      * @return
      */
     @ApiOperation(value = "更新试题", notes = "更新试题")
     @PutMapping(value = "/question")
-    public ResponseEntity updateQuestion(@RequestBody Question question) {
+    public ResponseEntity<Object> updateQuestion(@RequestBody Question question) {
         quesService.saveQues(question);
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
      * 新增试题
-     * 
      * @param question
      * @return
      */
     @ApiOperation(value = "新增试题", notes = "新增试题")
     @PostMapping(value = "/question")
-    public ResponseEntity addQuestion(HttpServletRequest request,
-                                      @RequestBody Question question) {
-        return new ResponseEntity(quesService.saveQues(question), HttpStatus.CREATED);
+    public ResponseEntity<Object> addQuestion(@RequestBody Question question) {
+        return new ResponseEntity<Object>(quesService.saveQues(question), HttpStatus.CREATED);
     }
 
     /**
      * 删除试题
-     * 
      * @param id
      * @return
      */
     @ApiOperation(value = "删除试题", notes = "删除试题")
     @DeleteMapping(value = "/question/{id}")
-    public ResponseEntity removeQuestion(@PathVariable String id) {
+    public ResponseEntity<Object> removeQuestion(@PathVariable String id) {
         quesRepo.delete(id);
-        return new ResponseEntity(HttpStatus.OK);
+        return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
     /**
      * 删除套题子题
-     * 
      * @param id
      * @return
      */
     @ApiOperation(value = "删除套题子题", notes = "删除套题子题")
     @PutMapping(value = "/question/{id}/{number}")
-    public ResponseEntity removeQuestion(@PathVariable String id, @PathVariable String number) {
+    public ResponseEntity<Object> removeQuestion(@PathVariable String id, @PathVariable String number) {
         Question question = quesRepo.findOne(id);
         List<Question> subQuestions = question.getSubQuestions();
         subQuestions.remove(Integer.parseInt(number));
-        return new ResponseEntity(quesRepo.save(question), HttpStatus.OK);
+        return new ResponseEntity<Object>(quesRepo.save(question), HttpStatus.OK);
     }
 
     @ApiOperation(value = "查询题目数量", notes = "查询题目数量")
     @GetMapping(value = "/question/count")
-    public ResponseEntity<Object> getQuesCount(HttpServletRequest request,@ModelAttribute QuestionSearchCondition searchCondition){
+    public ResponseEntity<Object> getQuesCount(@ModelAttribute QuestionSearchCondition searchCondition){
     	User user = getAccessUser();
-    	//AccessUser user = (AccessUser) request.getAttribute("accessUser");
         searchCondition.setOrgId(user.getRootOrgId().toString());
         long count = quesService.findQuesCount(searchCondition);
         return new ResponseEntity<Object>(count, HttpStatus.OK);

+ 4 - 4
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/QuestionAudioController.java

@@ -28,16 +28,16 @@ public class QuestionAudioController {
 	
 	@ApiOperation(value = "通过questionId和fileName获取试题音频文件", notes = "通过questionId和fileName获取试题音频文件")
     @GetMapping(value = "/questionAudio/{fileName}/{questionId}")
-	public ResponseEntity findQuestionAudio(@PathVariable String fileName,@PathVariable String questionId){
+	public ResponseEntity<Object> findQuestionAudio(@PathVariable String fileName,@PathVariable String questionId){
 		QuestionAudio questionAudio = questionAudioService.findByQuestionIdAndFileName(questionId, fileName);
-		return new ResponseEntity(questionAudio, HttpStatus.OK);
+		return new ResponseEntity<Object>(questionAudio, HttpStatus.OK);
 	}
 	
 	@ApiOperation(value = "通过ID获取试题音频文件", notes = "通过ID获取试题音频文件")
     @GetMapping(value = "/questionAudio/{questionAudioId}")
-	public ResponseEntity findQuestionAudioById(@PathVariable String questionAudioId){
+	public ResponseEntity<Object> findQuestionAudioById(@PathVariable String questionAudioId){
 		QuestionAudio questionAudio = questionAudioService.findAudioById(questionAudioId);
-		return new ResponseEntity(questionAudio, HttpStatus.OK);
+		return new ResponseEntity<Object>(questionAudio, HttpStatus.OK);
 	}
 }
 

+ 9 - 11
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/SettingController.java

@@ -1,12 +1,10 @@
 package cn.com.qmth.examcloud.core.questions.api;
 
-import cn.com.qmth.examcloud.commons.web.security.enums.RoleMeta;
 
 import com.google.gson.Gson;
+
 import cn.com.qmth.examcloud.core.questions.dao.SettingRepo;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.SettingDto;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Setting;
-
 import io.swagger.annotations.ApiOperation;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -34,8 +32,8 @@ public class SettingController {
      */
     @ApiOperation(value="获取全部设置",notes="获取全部设置")
     @GetMapping(value = "/setting")
-    public ResponseEntity getAllSetting(){
-        return new ResponseEntity(settingRepo.findAll(), HttpStatus.OK);
+    public ResponseEntity<Object> getAllSetting(){
+        return new ResponseEntity<Object>(settingRepo.findAll(), HttpStatus.OK);
     }
 
     /**
@@ -45,8 +43,8 @@ public class SettingController {
      */
     @ApiOperation(value="更新设置",notes="更新设置")
     @PutMapping(value = "/setting")
-    public ResponseEntity updateSetting(@RequestBody SettingDto settingDto){
-    	return new ResponseEntity(settingRepo.save(settingDto.getSettingList()),HttpStatus.OK);
+    public ResponseEntity<Object> updateSetting(@RequestBody SettingDto settingDto){
+    	return new ResponseEntity<Object>(settingRepo.save(settingDto.getSettingList()),HttpStatus.OK);
     }
 
     /**
@@ -56,8 +54,8 @@ public class SettingController {
      */
     @ApiOperation(value="新增设置",notes="新增设置")
     @PostMapping(value = "/setting")
-    public ResponseEntity addSetting(@RequestBody SettingDto settingDto){
-    	return new ResponseEntity(settingRepo.save(settingDto.getSettingList()),HttpStatus.OK);
+    public ResponseEntity<Object> addSetting(@RequestBody SettingDto settingDto){
+    	return new ResponseEntity<Object>(settingRepo.save(settingDto.getSettingList()),HttpStatus.OK);
     }
 
     /**
@@ -67,9 +65,9 @@ public class SettingController {
      */
     @ApiOperation(value="删除设置",notes="删除设置")
     @DeleteMapping(value = "/setting/{id}")
-    public ResponseEntity removeSetting(@PathVariable String id){
+    public ResponseEntity<Object> removeSetting(@PathVariable String id){
         settingRepo.delete(id);
-    	return new ResponseEntity(HttpStatus.OK);
+    	return new ResponseEntity<Object>(HttpStatus.OK);
     }
 
 }

+ 0 - 1
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/controller/DefaultQuesionController.java

@@ -8,7 +8,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;

+ 0 - 4
examcloud-core-questions-api-provider/src/main/java/cn/com/qmth/examcloud/core/questions/api/provider/QuestionCloudServiceProvider.java

@@ -3,16 +3,13 @@ package cn.com.qmth.examcloud.core.questions.api.provider;
 import java.util.List;
 
 import io.swagger.annotations.ApiOperation;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Page;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
-
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
 import cn.com.qmth.examcloud.core.questions.api.QuestionCloudService;
 import cn.com.qmth.examcloud.core.questions.api.request.GetDefaultQuesionListReq;
@@ -23,7 +20,6 @@ import cn.com.qmth.examcloud.core.questions.api.response.GetDefaultQuesionIdResp
 import cn.com.qmth.examcloud.core.questions.api.response.GetDefaultQuestionsResp;
 import cn.com.qmth.examcloud.core.questions.service.QuestionProviderService;
 import cn.com.qmth.examcloud.question.core.question.DefaultQuestion;
-import cn.com.qmth.examcloud.question.core.question.QuestionType;
 
 /**
  * @author 		weiwenhai

+ 0 - 21
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/CourseRepo.java

@@ -1,21 +0,0 @@
-package cn.com.qmth.examcloud.core.questions.dao;
-
-import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
-
-import java.util.List;
-
-import org.springframework.data.mongodb.repository.MongoRepository;
-import org.springframework.data.repository.query.QueryByExampleExecutor;
-
-/**
- * Created by songyue on 16/12/26.
- */
-public interface CourseRepo extends MongoRepository<Course, String>,QueryByExampleExecutor<Course> {
-
-    Course findFirstByCodeAndOrgId(String code,String orgId);
-
-    Course findFirstByCode(String courseNo);
-    
-    List<Course> findByOrgId(String orgId);
-
-}

+ 5 - 2
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/PaperDetailUnitNativeRepo.java

@@ -1,15 +1,17 @@
 package cn.com.qmth.examcloud.core.questions.dao;
 
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
+
 import com.mongodb.DBRef;
-import com.mongodb.client.FindIterable;
 import com.mongodb.client.MongoCollection;
 import com.mongodb.client.MongoCursor;
+
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
+
 import org.bson.Document;
 import org.bson.types.ObjectId;
 import org.slf4j.Logger;
@@ -67,7 +69,8 @@ public class PaperDetailUnitNativeRepo{
         return paperDetailUnits;
     }
 
-    private PaperDetailUnit toDomain(Document document,
+    @SuppressWarnings("unchecked")
+	private PaperDetailUnit toDomain(Document document,
                                      Paper paperCache,
                                      Map<String,PaperDetail> pdCache){
         PaperDetailUnit paperDetailUnit = new PaperDetailUnit();

+ 1 - 1
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/PaperRepo.java

@@ -15,7 +15,7 @@ import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
 
 public interface PaperRepo extends MongoRepository<Paper, String>, QueryByExampleExecutor<Paper> {
 
-    List<Paper> findByParams(Map params);
+    List<Paper> findByParams(Map<String, String> params);
 
     Page<Paper> findByPaperType(PaperType paperType, Pageable pageable);
 

+ 0 - 2
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/SettingRepo.java

@@ -4,8 +4,6 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.Setting;
 
 import org.springframework.data.mongodb.repository.MongoRepository;
 import org.springframework.data.repository.query.QueryByExampleExecutor;
-import org.springframework.stereotype.Repository;
-import org.springframework.stereotype.Service;
 
 /**
  * Created by songyue on 16/12/26.

+ 8 - 0
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/CoursePropertyNumber.java

@@ -123,5 +123,13 @@ public class CoursePropertyNumber {
 	public void setDisable(Boolean disable) {
 		this.disable = disable;
 	}
+
+	public Double getScore() {
+		return score;
+	}
+
+	public void setScore(Double score) {
+		this.score = score;
+	}
 	
 }

+ 3 - 6
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/ExamFile.java

@@ -106,11 +106,8 @@ public class ExamFile implements Serializable{
     	this.examType = ExamType.strToEnum(extractConfig.getExamType());
     	this.courseId = extractConfig.getCourseCode();
     	this.courseName = extractConfig.getCourseName();
-    	this.groupCode = findGroupCode(extractConfig,paperId);
-    	this.fileName = extractConfig.getCourseName()+"_"+
-    				    extractConfig.getCourseCode()+"_"+
-    				    examFileType.getName()+"_"+
-    				    this.groupCode+fileSuffix;
+    	//this.groupCode = findGroupCode(extractConfig,paperId);
+    	//this.fileName = extractConfig.getCourseName()+"_"+extractConfig.getCourseCode()+"_"+examFileType.getName()+"_"+this.groupCode+fileSuffix;
     	this.filePath = filePath;
     	this.examFileType = examFileType;
     }
@@ -131,7 +128,7 @@ public class ExamFile implements Serializable{
     	this.examType = ExamType.strToEnum(extractConfig.getExamType());
     	this.courseId = extractConfig.getCourseCode();
     	this.courseName = extractConfig.getCourseName();
-    	this.groupCode = findGroupCode(extractConfig,computerTestPaper.getId());
+    	//this.groupCode = findGroupCode(extractConfig,computerTestPaper.getId());
     	this.fileName = extractConfig.getCourseCode()+"_"+computerTestPaper.getName()+fileSuffix;
     	this.filePath = filePath;
     	this.examFileType = examFileType;

+ 3 - 1
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/PaperDetailStruct.java

@@ -1,7 +1,6 @@
 package cn.com.qmth.examcloud.core.questions.dao.entity;
 
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
-
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.CoursePropertyNumberDto;
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.PaperDetailUnitStructDto;
 
@@ -30,6 +29,7 @@ public class PaperDetailStruct implements Serializable{
 
 	private Double totalScore;//大题总分
 	
+	@SuppressWarnings("rawtypes")
 	private Map params;//大题参数
 
 	private String remark;
@@ -111,10 +111,12 @@ public class PaperDetailStruct implements Serializable{
 		this.totalScore = totalScore;
 	}
 
+	@SuppressWarnings("rawtypes")
 	public Map getParams() {
 		return params;
 	}
 
+	@SuppressWarnings("rawtypes")
 	public void setParams(Map params) {
 		this.params = params;
 	}

+ 6 - 3
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/PaperStruct.java

@@ -31,7 +31,8 @@ public class PaperStruct implements Serializable {
 
     private Integer detailUnitCount;//小题数量
 
-    private Map params;
+    @SuppressWarnings("rawtypes")
+	private Map params;
 
     private List<PaperDetailStruct> paperDetailStructs;// 大题
 
@@ -99,11 +100,13 @@ public class PaperStruct implements Serializable {
         this.detailCount = detailCount;
     }
 
-    public Map getParams() {
+    @SuppressWarnings("rawtypes")
+	public Map getParams() {
         return params;
     }
 
-    public void setParams(Map params) {
+    @SuppressWarnings("rawtypes")
+	public void setParams(Map params) {
         this.params = params;
     }
 

+ 6 - 3
examcloud-core-questions-dao/src/main/java/cn/com/qmth/examcloud/core/questions/dao/entity/QuestionType.java

@@ -16,7 +16,8 @@ public class QuestionType implements Serializable {
 
     private String name;// 类型标题
 
-    private Map params;// 类型参数
+    @SuppressWarnings("rawtypes")
+	private Map params;// 类型参数
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -42,11 +43,13 @@ public class QuestionType implements Serializable {
         return serialVersionUID;
     }
 
-    public Map getParams() {
+    @SuppressWarnings("rawtypes")
+	public Map getParams() {
         return params;
     }
 
-    public void setParams(Map params) {
+    @SuppressWarnings("rawtypes")
+	public void setParams(Map params) {
         this.params = params;
     }
 

+ 8 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ClonePaperService.java

@@ -13,8 +13,12 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.exception.PaperException;
 import cn.com.qmth.examcloud.core.questions.dao.*;
 import cn.com.qmth.examcloud.core.questions.dao.entity.*;
+import cn.com.qmth.examcloud.core.questions.service.impl.CourseService;
+
 import com.google.common.collect.Lists;
+
 import main.java.com.UpYun;
+
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,8 +39,6 @@ public class ClonePaperService {
     @Autowired
     private PaperRepo paperRepo;
     @Autowired
-    private CourseRepo courseRepo;
-    @Autowired
     private PaperDetailRepo paperDetailRepo;
     @Autowired
     private PaperDetailUnitRepo paperDetailUnitRepo;
@@ -50,6 +52,8 @@ public class ClonePaperService {
     private QuesTypeNameService quesTypeNameService;
     @Autowired
     private UpYunService upYunService;
+    @Autowired
+    private CourseService courseService;
 
     /**
      * 克隆试卷
@@ -84,7 +88,7 @@ public class ClonePaperService {
         if (oldPaper == null) {
             throw new PaperException("待复制的试卷不存在!");
         }
-        Course course = courseRepo.findFirstByCodeAndOrgId(courseNo, String.valueOf(user.getRootOrgId()));
+        Course course = courseService.getCourse(user.getRootOrgId(), courseNo);
         if (course == null) {
             throw new PaperException("课程信息不存在!");
         }
@@ -96,6 +100,7 @@ public class ClonePaperService {
 
         //复制原试卷的信息
         Paper newPaper = this.copyPaper(oldPaper, paperName, course, user);
+        newPaper.setTitle(paperName);
         //保存新试卷
         paperRepo.save(newPaper);
         try {

+ 4 - 4
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/ImportPaperService.java

@@ -19,7 +19,6 @@ import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import cn.com.qmth.examcloud.core.questions.dao.CourseRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
 import cn.com.qmth.examcloud.core.questions.dao.CoursePropertyRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PropertyRepo;
@@ -60,6 +59,7 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionAudio;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionType;
 import cn.com.qmth.examcloud.core.questions.service.QuesService;
+import cn.com.qmth.examcloud.core.questions.service.impl.CourseService;
 import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperStatus;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
@@ -99,7 +99,7 @@ public class ImportPaperService {
     PaperService paperService;
 
     @Autowired
-    CourseRepo courseRepo;
+    CourseService courseService;
 
     @Autowired
     QuesTypeNameService quesTypeNameService;
@@ -459,7 +459,7 @@ public class ImportPaperService {
         paper.setPaperStatus(PaperStatus.DRAFT);
         paper.setOrgId(user.getRootOrgId().toString());
         paper.setCreator(user.getDisplayName());
-        Course course = courseRepo.findFirstByCodeAndOrgId(paper.getCourseNo(),user.getRootOrgId().toString());
+        Course course = courseService.getCourse(user.getRootOrgId(), paper.getCourseNo());
         paper.setCourse(course);
         paper.setCreateTime(CommonUtils.getCurDateTime());
     }
@@ -1752,7 +1752,7 @@ public class ImportPaperService {
     		return map;
     	}
     	//新课程
-    	Course course = courseRepo.findFirstByCodeAndOrgId(courseNo,user.getRootOrgId().toString());
+    	Course course = courseService.getCourse(user.getRootOrgId(), courseNo);
     	//克隆原试卷所有属性
     	Paper newPaper = cloneOldPaper(oldPaper,paperName,course,user);
     	//克隆所有大题和小题

+ 2 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/PaperStructService.java

@@ -18,8 +18,6 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.*;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.*;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.data.domain.Sort.Order;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
@@ -27,12 +25,9 @@ import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.core.questions.dao.PaperStructRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.PaperDetailUnitStructDto;
-import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
 import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperStructType;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
-import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.contains;
-import static org.springframework.data.domain.ExampleMatcher.GenericPropertyMatchers.exact;
 
 /**
  * Created by songyue on 16/12/28.
@@ -161,7 +156,7 @@ public class PaperStructService {
         //新增精确试卷结构
         if(paperStruct.getType().equals("EXACT")){
             for (PaperDetailStruct paperDetailStruct : paperDetailStructs) {
-                List oldStructs = paperDetailStruct.getPaperDetailUnitStructs();
+                List<PaperDetailUnitStruct> oldStructs = paperDetailStruct.getPaperDetailUnitStructs();
                 if (oldStructs != null && oldStructs.size() > 0) {
                     oldStructs.clear();
                 }
@@ -259,7 +254,7 @@ public class PaperStructService {
         }else {
 			//新增蓝图试卷结构
         	for(PaperDetailStruct paperDetailStruct : paperDetailStructs){
-        		List oldStructs = paperDetailStruct.getPaperDetailUnitStructs();
+        		List<PaperDetailUnitStruct> oldStructs = paperDetailStruct.getPaperDetailUnitStructs();
                 if (oldStructs != null && oldStructs.size() > 0) {
                     oldStructs.clear();
                 }

+ 0 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/QuestionProviderService.java

@@ -4,9 +4,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.springframework.data.domain.Page;
-
 import cn.com.qmth.examcloud.question.core.question.DefaultQuestion;
-import cn.com.qmth.examcloud.question.core.question.QuestionType;
 
 /**
  * @author 		weiwenhai

+ 0 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/bean/PaperDetailDtoAssembler.java

@@ -6,7 +6,6 @@ import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * Created by songyue on 18/1/5.

+ 0 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/bean/PaperDetailUnitDtoAssembler.java

@@ -10,7 +10,6 @@ import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.stream.Collectors;
 
 /**
  * Created by songyue on 18/1/5.

+ 3 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/converter/PrintExamPaperService.java

@@ -25,6 +25,7 @@ import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.core.questions.service.PaperDetailService;
 import cn.com.qmth.examcloud.core.questions.service.PaperService;
+
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -451,7 +452,8 @@ public class PrintExamPaperService {
     /**
      * 解压并提取JSON文件
      */
-    private List<File> parseDataFiles(final String dirPath, File zipFile) throws Exception {
+    @SuppressWarnings("unused")
+	private List<File> parseDataFiles(final String dirPath, File zipFile) throws Exception {
         List<File> dataFileList = new ArrayList<>();
         //解压当前文件
         List<File> fileList = FileUtil.unZip(new File(dirPath), zipFile);

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/BjhkExportPaperService.java

@@ -11,6 +11,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -56,7 +57,7 @@ public class BjhkExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -69,22 +70,22 @@ public class BjhkExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJHK_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJHK_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJHK_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJHK_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJHK_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJHK_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJHK_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJHK_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 8
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/BjjtExportPaperService.java

@@ -3,7 +3,6 @@ package cn.com.qmth.examcloud.core.questions.service.export;
 import java.io.File;
 import java.util.List;
 
-import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
 import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
@@ -11,6 +10,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -46,7 +46,7 @@ public class BjjtExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -59,22 +59,22 @@ public class BjjtExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJJT_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJJT_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJJT_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJJT_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJJT_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJJT_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJJT_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJJT_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/BjsfExportPaperService.java

@@ -11,6 +11,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -56,7 +57,7 @@ public class BjsfExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -69,22 +70,22 @@ public class BjsfExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJSF_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJSF_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJSF_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJSF_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJSF_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJSF_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJSF_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,BJSF_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 0 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/BuildComputerTestJsonService.java

@@ -12,7 +12,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.core.questions.dao.AudioTimeConfigRepo;
-import cn.com.qmth.examcloud.core.questions.dao.entity.AudioTimeConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/CqdxExportPaperService.java

@@ -13,6 +13,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -95,7 +96,7 @@ public class CqdxExportPaperService extends ExportPaperAbstractService {
    	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -108,22 +109,22 @@ public class CqdxExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,CQDX_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,CQDX_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,CQDX_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,CQDX_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,CQDX_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,CQDX_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,CQDX_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,CQDX_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/DbsfExportPaperService.java

@@ -11,6 +11,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -56,7 +57,7 @@ public class DbsfExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -69,22 +70,22 @@ public class DbsfExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DBSF_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DBSF_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DBSF_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DBSF_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DBSF_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DBSF_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DBSF_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DBSF_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/DzkdExportPaperService.java

@@ -16,6 +16,7 @@ import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailExp;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -291,7 +292,7 @@ public class DzkdExportPaperService extends ExportPaperAbstractService {
 	}
 	
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
     	PaperExp paperExp = initPaperExp(paperId);
     	setSplitPaperDetailExp(paperExp,paperExp.getPaperDetails());
         if (paperExp!=null) {
@@ -299,22 +300,22 @@ public class DzkdExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,DZKD_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 26 - 12
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ExportPaperAbstractService.java

@@ -56,6 +56,7 @@ import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.SubjectiveQuestionStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.AudioTimeConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExamFile;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
@@ -352,7 +353,7 @@ public abstract class ExportPaperAbstractService {
 	 * @param accessUser
 	 * @throws Exception
 	 */
-    public abstract void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser)  throws Exception;
+    public abstract void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper)  throws Exception;
     
     public PaperExp initPaperExp(String paperId) throws Exception{
     	PaperExp paperExp = initPaperExpService.initPaperExp(paperId);
@@ -1008,7 +1009,7 @@ public abstract class ExportPaperAbstractService {
      * @param accessUser
      * @throws IOException 
      */
-    protected void uploadComputerTestFile(ExtractConfig extractConfig,User accessUser) throws IOException{
+    protected void uploadComputerTestFile(ExtractConfig extractConfig,User accessUser,ExamPaper examPaper) throws IOException{
     	List<ComputerTestPaper>  computerTestPaperList = buildComputerTestJsonService.buildComputerTestPapers(extractConfig);
     	String currentTimeStr = CommonUtils.getCurNum();
     	for(int i = 0;i<computerTestPaperList.size();i++){
@@ -1032,7 +1033,9 @@ public abstract class ExportPaperAbstractService {
 			UpYun upyun = new UpYun(bucketName,userName,password);
 			upyun.writeFile(zipUpyunFilePath,zipFile,true);
 			//保存数据库记录
-			examFileService.saveExamFile(new ExamFile(computerTestPaper,extractConfig,zipUpyunFilePath,ExamFileType.COMPUTERTEST_PACKAGE,ZIP_SUFFIX),accessUser);
+			ExamFile examFile = new ExamFile(computerTestPaper,extractConfig,zipUpyunFilePath,ExamFileType.COMPUTERTEST_PACKAGE,ZIP_SUFFIX);
+			examFile.setGroupCode(examPaper.getGroupCode());
+			examFileService.saveExamFile(examFile,accessUser);
 			//删除本地生成的文件
 			zipFile.delete();
 			FileUtils.deleteQuietly(dirFile);
@@ -1152,7 +1155,8 @@ public abstract class ExportPaperAbstractService {
 										   User accessUser,
 										   String currNum,
 										   Template template,
-										   ExamFileType examFileType){
+										   ExamFileType examFileType,
+										   ExamPaper examPaper){
     	String paperfileName = currNum+examFileType.name()+DOCX_SUFFIX;
     	try {
 			DocxProcessUtil.exportWord(paperExp,paperfileName,template);
@@ -1161,7 +1165,13 @@ public abstract class ExportPaperAbstractService {
 			String paperFilePath = uploadUrl+extractConfig.getOrgId()+"/"+paperfileName;
             UpYun upyun = new UpYun(bucketName,userName,password);
 			upyun.writeFile(paperFilePath,file,true);
-			examFileService.saveExamFile(new ExamFile(paperExp.getId(),extractConfig,paperFilePath,examFileType,DOCX_SUFFIX),accessUser);
+			ExamFile examFile = new ExamFile(paperExp.getId(),extractConfig,paperFilePath,examFileType,DOCX_SUFFIX);
+			examFile.setGroupCode(examPaper.getGroupCode());
+			examFile.setFileName(extractConfig.getCourseName()+"_"+
+    				    extractConfig.getCourseCode()+"_"+
+    				    examFileType.getName()+"_"+
+    				   examFile.getGroupCode()+DOCX_SUFFIX);
+			examFileService.saveExamFile(examFile,accessUser);
 			file.delete();
 		} catch (Exception e) {
 			e.printStackTrace();
@@ -1171,9 +1181,9 @@ public abstract class ExportPaperAbstractService {
     /**
      * 生成试卷结构,上传至又拍云
      */
-    protected void uploadPaperStructure(PaperExp paperExp,ExtractConfig extractConfig,User accessUser,String currNum,List<QuestionTypeNum> questionTypeNums) {
-    	exportObjectiveQuestionStructures(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
-    	exportSubjectiveQuestionStructures(paperExp,extractConfig,accessUser,currNum);
+    protected void uploadPaperStructure(PaperExp paperExp,ExtractConfig extractConfig,User accessUser,String currNum,List<QuestionTypeNum> questionTypeNums,ExamPaper examPaper) {
+    	exportObjectiveQuestionStructures(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
+    	exportSubjectiveQuestionStructures(paperExp,extractConfig,accessUser,currNum,examPaper);
 	}
     
     /**
@@ -1181,7 +1191,7 @@ public abstract class ExportPaperAbstractService {
      * @param paperExp
      * @return
      */
-    protected void exportObjectiveQuestionStructures(PaperExp paperExp,ExtractConfig extractConfig,User accessUser,String currNum,List<QuestionTypeNum> questionTypeNums){
+    protected void exportObjectiveQuestionStructures(PaperExp paperExp,ExtractConfig extractConfig,User accessUser,String currNum,List<QuestionTypeNum> questionTypeNums,ExamPaper examPaper){
     	String objectiveFilename = currNum+ExamFileType.PAPER_STRUCTURE_OBJECTIVE.name()+EXCEL_SUFFIX;
     	//得到试卷中的客观大题
     	List<PaperDetailExp> objectiveDetails = getAllObjectiveDetails(paperExp);
@@ -1203,7 +1213,9 @@ public abstract class ExportPaperAbstractService {
 			String objectiveFilePath = uploadUrl+extractConfig.getOrgId()+"/"+objectiveFilename;
             UpYun upyun = new UpYun(bucketName,userName,password);
 			upyun.writeFile(objectiveFilePath,file,true);
-			examFileService.saveExamFile(new ExamFile(paperExp.getId(),extractConfig,objectiveFilePath,ExamFileType.PAPER_STRUCTURE_OBJECTIVE,EXCEL_SUFFIX),accessUser);
+			ExamFile examFile = new ExamFile(paperExp.getId(),extractConfig,objectiveFilePath,ExamFileType.PAPER_STRUCTURE_OBJECTIVE,EXCEL_SUFFIX);
+			examFile.setGroupCode(examPaper.getGroupCode());
+			examFileService.saveExamFile(examFile,accessUser);
 			file.delete();
 		} catch (FileNotFoundException e) {
 			e.printStackTrace();
@@ -1217,7 +1229,7 @@ public abstract class ExportPaperAbstractService {
      * @param paperExp
      * @return
      */
-    protected void exportSubjectiveQuestionStructures(PaperExp paperExp,ExtractConfig extractConfig,User accessUser,String currNum){
+    protected void exportSubjectiveQuestionStructures(PaperExp paperExp,ExtractConfig extractConfig,User accessUser,String currNum,ExamPaper examPaper){
     	String subjectiveFileName = currNum+ExamFileType.PAPER_STRUCTURE_SUBJECTIVE.name()+EXCEL_SUFFIX;
     	List<PaperDetailExp> subjectiveDetails = getAllSubjectiveDetails(paperExp);
     	List<SubjectiveQuestionStructure> subjectiveQuestionStructureList = new ArrayList<SubjectiveQuestionStructure>();
@@ -1235,7 +1247,9 @@ public abstract class ExportPaperAbstractService {
 			String subjectiveFilePath = uploadUrl+extractConfig.getOrgId()+"/"+subjectiveFileName;
             UpYun upyun = new UpYun(bucketName,userName,password);
 			upyun.writeFile(subjectiveFilePath,file,true);
-			examFileService.saveExamFile(new ExamFile(paperExp.getId(),extractConfig,subjectiveFilePath,ExamFileType.PAPER_STRUCTURE_SUBJECTIVE,EXCEL_SUFFIX),accessUser);
+			ExamFile examFile = new ExamFile(paperExp.getId(),extractConfig,subjectiveFilePath,ExamFileType.PAPER_STRUCTURE_SUBJECTIVE,EXCEL_SUFFIX);
+			examFile.setGroupCode(examPaper.getGroupCode());
+			examFileService.saveExamFile(examFile,accessUser);
 			file.delete();
 		} catch (FileNotFoundException e) {
 			e.printStackTrace();

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/FjsfExportPaperService.java

@@ -11,6 +11,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -56,7 +57,7 @@ public class FjsfExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -69,22 +70,22 @@ public class FjsfExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,FJSF_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,FJSF_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,FJSF_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,FJSF_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,FJSF_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,FJSF_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,FJSF_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,FJSF_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 8
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/HnsfExportPaperService.java

@@ -3,7 +3,6 @@ package cn.com.qmth.examcloud.core.questions.service.export;
 import java.io.File;
 import java.util.List;
 
-import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
 import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
@@ -11,6 +10,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -46,7 +46,7 @@ public class HnsfExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -59,22 +59,22 @@ public class HnsfExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HNSF_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HNSF_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HNSF_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HNSF_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HNSF_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HNSF_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HNSF_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HNSF_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/HzkjExportPaperService.java

@@ -10,6 +10,7 @@ import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailExp;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -51,29 +52,29 @@ public class HzkjExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,HZKJ_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/NkdxExportPaperService.java

@@ -11,6 +11,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -56,7 +57,7 @@ public class NkdxExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -69,22 +70,22 @@ public class NkdxExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,NKDX_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,NKDX_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,NKDX_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,NKDX_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,NKDX_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,NKDX_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,NKDX_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,NKDX_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 8
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/RjgcExportPaperService.java

@@ -7,10 +7,10 @@ import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
-import cn.com.qmth.examcloud.core.questions.service.ExportPaperService;
 import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
@@ -47,7 +47,7 @@ public class RjgcExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -60,22 +60,22 @@ public class RjgcExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 9 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/SddxExportPaperService.java

@@ -5,10 +5,12 @@ import java.util.List;
 
 
 
+
 import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -53,29 +55,29 @@ public class SddxExportPaperService extends ExportPaperAbstractService{
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SDDX_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SDDX_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SDDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SDDX_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SDDX_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SDDX_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SDDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SDDX_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/SxsfExportPaperService.java

@@ -9,6 +9,7 @@ import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -66,7 +67,7 @@ public class SxsfExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -79,22 +80,22 @@ public class SxsfExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,SXSF_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/SydxExportPaperService.java

@@ -27,6 +27,7 @@ import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailExp;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperDetailUnitExp;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
@@ -104,7 +105,7 @@ public class SydxExportPaperService extends ExportPaperAbstractService{
 	}
     
     @Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
     	PaperExp exportPaperExp = initExportSydxPaper(paperId);
     	PaperExp exportPaperStructureExp = initExportSydxPaper(paperId);
         if (exportPaperExp!=null&&exportPaperStructureExp!=null) {
@@ -112,22 +113,22 @@ public class SydxExportPaperService extends ExportPaperAbstractService{
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(exportPaperStructureExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(exportPaperExp,extractConfig,accessUser,currNum,SYDX_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(exportPaperStructureExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(exportPaperStructureExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 9 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/TjdxExportPaperService.java

@@ -6,10 +6,12 @@ import cn.com.qmth.examcloud.core.questions.base.ImageUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+
 import org.apache.commons.lang3.StringUtils;
 import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
 import org.springframework.stereotype.Service;
@@ -66,29 +68,29 @@ public class TjdxExportPaperService extends ExportPaperAbstractService {
     }
 
     @Override
-    public void uploadFile(ExtractConfig extractConfig, String paperId, ExportStructure exportStructure, User accessUser) throws Exception {
+    public void uploadFile(ExtractConfig extractConfig, String paperId, ExportStructure exportStructure, User accessUser,ExamPaper examPaper) throws Exception {
         PaperExp paperExp = initPaperExp(paperId);
         if (paperExp != null) {
             String currNum = CommonUtils.getCurNum();
             //没有试卷结构导出设置
             if (exportStructure == null) {
                 //上传试卷
-                uploadPaperOrAnswerFile(paperExp, extractConfig, accessUser, currNum, TJDX_TEMPLATE_PAPER, ExamFileType.PAPER);
+                uploadPaperOrAnswerFile(paperExp, extractConfig, accessUser, currNum, TJDX_TEMPLATE_PAPER, ExamFileType.PAPER,examPaper);
                 //上传答案
-                uploadPaperOrAnswerFile(paperExp, extractConfig, accessUser, currNum, TJDX_TEMPLATE_ANSWER, ExamFileType.ANSWER);
+                uploadPaperOrAnswerFile(paperExp, extractConfig, accessUser, currNum, TJDX_TEMPLATE_ANSWER, ExamFileType.ANSWER,examPaper);
             } else if (exportStructure != null && exportStructure.getExportType() == ExportType.NORMAL) {
                 List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
                 //检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
                 checkObjectiveDetailsNum(paperExp, questionTypeNums);
                 //上传试卷
-                uploadPaperOrAnswerFile(paperExp, extractConfig, accessUser, currNum, TJDX_TEMPLATE_PAPER, ExamFileType.PAPER);
+                uploadPaperOrAnswerFile(paperExp, extractConfig, accessUser, currNum, TJDX_TEMPLATE_PAPER, ExamFileType.PAPER,examPaper);
                 //上传答案
-                uploadPaperOrAnswerFile(paperExp, extractConfig, accessUser, currNum, TJDX_TEMPLATE_ANSWER, ExamFileType.ANSWER);
+                uploadPaperOrAnswerFile(paperExp, extractConfig, accessUser, currNum, TJDX_TEMPLATE_ANSWER, ExamFileType.ANSWER,examPaper);
                 //上传试卷结构   不能在上传试卷和答案之前
-                uploadPaperStructure(paperExp, extractConfig, accessUser, currNum, questionTypeNums);
+                uploadPaperStructure(paperExp, extractConfig, accessUser, currNum, questionTypeNums,examPaper);
             } else if (exportStructure != null && exportStructure.getExportType() == ExportType.ONLINE) {
                 //上传机考JSON文件
-                uploadComputerTestFile(extractConfig, accessUser);
+                uploadComputerTestFile(extractConfig, accessUser,examPaper);
             }
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/YkdxExportPaperService.java

@@ -7,6 +7,7 @@ import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -45,7 +46,7 @@ public class YkdxExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -58,22 +59,22 @@ public class YkdxExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,YKDX_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,YKDX_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,YKDX_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,YKDX_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,YKDX_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,YKDX_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,YKDX_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,YKDX_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ZgddbExportPaperService.java

@@ -11,6 +11,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -56,7 +57,7 @@ public class ZgddbExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -69,22 +70,22 @@ public class ZgddbExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDB_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDB_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDB_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDB_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDB_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDB_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDB_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDB_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/ZgddwExportPaperService.java

@@ -11,6 +11,7 @@ import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExportType;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -57,7 +58,7 @@ public class ZgddwExportPaperService extends ExportPaperAbstractService {
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
@@ -70,22 +71,22 @@ public class ZgddwExportPaperService extends ExportPaperAbstractService {
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDW_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDW_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDW_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDW_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDW_TMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDW_TMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDW_TMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,ZGDDW_TMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 8 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/export/xajdExportPaperService.java

@@ -7,6 +7,7 @@ import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.PaperExp;
+import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExportStructure;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuestionTypeNum;
@@ -47,29 +48,29 @@ public class xajdExportPaperService extends ExportPaperAbstractService{
 	}
 
 	@Override
-    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser) throws Exception{
+    public void uploadFile(ExtractConfig extractConfig,String paperId,ExportStructure exportStructure,User accessUser,ExamPaper examPaper) throws Exception{
 		PaperExp paperExp = initPaperExp(paperId);
         if (paperExp!=null) {
         	String currNum = CommonUtils.getCurNum();
         	//没有试卷结构导出设置
         	if(exportStructure==null){
         		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.NORMAL){
         		List<QuestionTypeNum> questionTypeNums = exportStructure.getQuestionTypeNums();
         		//检查试卷中客观题的数量是否大于试卷导出设置中的设置的数量
         		checkObjectiveDetailsNum(paperExp,questionTypeNums);
 	    		//上传试卷
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_PAPER,ExamFileType.PAPER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_PAPER,ExamFileType.PAPER,examPaper);
 	        	//上传答案
-        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_ANSWER,ExamFileType.ANSWER);
+        		uploadPaperOrAnswerFile(paperExp,extractConfig,accessUser,currNum,XAJD_TEMPLATE_ANSWER,ExamFileType.ANSWER,examPaper);
 				//上传试卷结构   不能在上传试卷和答案之前
-        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums);
+        		uploadPaperStructure(paperExp,extractConfig,accessUser,currNum,questionTypeNums,examPaper);
         	}else if(exportStructure!=null&&exportStructure.getExportType()==ExportType.ONLINE){
         		//上传机考JSON文件
-        		uploadComputerTestFile(extractConfig,accessUser);
+        		uploadComputerTestFile(extractConfig,accessUser,examPaper);
         	}
         }
     }

+ 32 - 47
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/CourseService.java

@@ -1,61 +1,46 @@
 package cn.com.qmth.examcloud.core.questions.service.impl;
 
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.domain.Example;
-import org.springframework.data.domain.Page;
-import org.springframework.data.domain.PageRequest;
-import org.springframework.data.mongodb.core.MongoTemplate;
-import org.springframework.data.mongodb.core.query.Criteria;
-import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
-import cn.com.qmth.examcloud.core.questions.dao.CourseRepo;
+import cn.com.qmth.examcloud.core.basic.api.CourseCloudService;
+import cn.com.qmth.examcloud.core.basic.api.bean.CourseBean;
+import cn.com.qmth.examcloud.core.basic.api.request.GetCourseReq;
+import cn.com.qmth.examcloud.core.basic.api.response.GetCourseResp;
+import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
+
 /**
- * Created by songyue on 16/12/28.
+ * @author 		weiwenhai
+ * @date 		2018.9.28
+ * @company		qmth
+ * @description	课程对象转换
  */
 @Service
 public class CourseService {
 	
+	
 	@Autowired
-	CourseRepo courseRepo;
+	CourseCloudService courseCloudService;
+	
+	public Course getCourse(Long orgId,String courseCode){
+		GetCourseReq req = new GetCourseReq();
+		req.setRootOrgId(orgId);
+		req.setCode(courseCode);
+		GetCourseResp resp = courseCloudService.getCourse(req);
+		CourseBean courseBean = resp.getCourseBean();
+		Course course = new Course();
+		BeanUtils.copyProperties(courseBean, course);
+		if(courseBean.getEnable()){
+			course.setEnable("true");
+		}else {
+			course.setEnable("false");
+		}
+		course.setId(courseBean.getId()+"");
+		course.setOrgId(courseBean.getRootOrgId()+"");
+		course.setCreateTime(CommonUtils.getCurDateTime());
+		return course;
+	}
 	
-    @Autowired
-    MongoTemplate mongoTemplate;
-    
-    /**
-     * 查询所有课程
-     * @param searchCondition
-     * @param curPage
-     * @param pageSize
-     * @return
-     */
-    public Page<Course> findAll(Course searchCondition, int curPage, int pageSize){
-        return courseRepo.findAll(Example.of(searchCondition),
-                new PageRequest(curPage - 1,pageSize));
-    }
-
-
-    /**
-     * 根据课程名称或者课程No查找课程
-     * @param 
-     * @return
-     */
-    public List<Course> findCoursesByKeyword(String keyword){
-        List<Course> courselist = new ArrayList<Course>();
-        if(StringUtils.isEmpty(keyword)){
-            return courselist;
-        }else{
-            Criteria likeNo = Criteria.where("courseNo").regex(keyword);//模糊匹配相当于SQL中“%Keyword%”
-            Criteria likeName = Criteria.where("courseName").regex(keyword);
-            Query query = new Query(new Criteria().orOperator(likeName,likeNo));
-            courselist = mongoTemplate.find(query, Course.class);
-            return courselist;
-        }
-    }
 }

+ 0 - 4
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExamFileServiceImpl.java

@@ -3,8 +3,6 @@ package cn.com.qmth.examcloud.core.questions.service.impl;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
-
-import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
 import main.java.com.UpYun;
 
 import org.apache.commons.lang3.StringUtils;
@@ -21,8 +19,6 @@ import cn.com.qmth.examcloud.core.questions.dao.ExamFileRepo;
 import cn.com.qmth.examcloud.core.questions.service.bean.dto.ExportPaperInfoModel;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExamFile;
 import cn.com.qmth.examcloud.core.questions.service.ExamFileService;
-import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
-import cn.com.qmth.examcloud.core.questions.base.enums.ExportWay;
 
 /**
  * @author  	chenken

+ 6 - 3
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExportPaperServiceImpl.java

@@ -143,7 +143,8 @@ public class ExportPaperServiceImpl implements ExportPaperService {
      * @param zipFileName
      * @throws Exception
      */
-    private void downExamRemark(Paper paper, String zipFileName) throws Exception {
+    @SuppressWarnings("unused")
+	private void downExamRemark(Paper paper, String zipFileName) throws Exception {
         //1.考试说明html转成word
         String title = "<p style=\"text-align:center\"><span style=\"font-size:26px\"><span style=\"font-family:宋体\">考&nbsp;试&nbsp;说&nbsp;明</span></span></p>";
         WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
@@ -476,7 +477,8 @@ public class ExportPaperServiceImpl implements ExportPaperService {
         }
     }
 
-    @Override
+    @SuppressWarnings("unused")
+	@Override
     public void exportPaperFiles(List<String> paperIds, String serviceName, String exportContentList, HttpServletResponse response, String loginName, String examType) throws Exception {
         ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(serviceName);
         //根据试卷id查询所有试卷
@@ -586,7 +588,8 @@ public class ExportPaperServiceImpl implements ExportPaperService {
      * @param cloumnCount
      * @throws IOException
      */
-    private void writeExcel(List<QuestionDistributeDto> questionDistributeDtos, int cloumnCount, String courseNo, HttpServletResponse response) throws IOException {
+    @SuppressWarnings("resource")
+	private void writeExcel(List<QuestionDistributeDto> questionDistributeDtos, int cloumnCount, String courseNo, HttpServletResponse response) throws IOException {
         //读取Excel模板
         InputStream in = this.getClass().getResourceAsStream("/quesDistinct.xlsx");
         Workbook workBook = new XSSFWorkbook(in);

+ 0 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExportStructureServiceImpl.java

@@ -16,7 +16,6 @@ import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 
-import cn.com.qmth.examcloud.core.questions.base.em.enums.ExamType;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.dao.ExamFileRepo;
 import cn.com.qmth.examcloud.core.questions.dao.ExportStructureRepo;

+ 18 - 6
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigFileServiceImpl.java

@@ -130,7 +130,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
             //上传抽取试卷对象集合
             for(ExamPaper examPaper:examPaperList){
             	String paperId = examPaper.getPaper().getId();
-            	uploadPaperFile(extractConfig, paperId, exportStructure, user);
+            	uploadPaperFile(extractConfig, paperId, exportStructure, user, examPaper);
             }
         }
         /*if (isbuildFile == 1) {
@@ -160,13 +160,13 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
      * @param user
      * @throws Exception
      */
-    private void uploadPaperFile(ExtractConfig extractConfig, String paperId, ExportStructure exportStructure, User user) throws Exception {
+    private void uploadPaperFile(ExtractConfig extractConfig, String paperId, ExportStructure exportStructure, User user,ExamPaper examPaper) throws Exception {
         ExportServiceManage esm = exportServiceManageRepo.findByOrgName(user.getRootOrgName());
         if (esm == null) {
             esm = exportServiceManageRepo.findByOrgName("天津大学");
         }
         ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(esm.getExportServiceName());
-        exportPaperAbstractService.uploadFile(extractConfig, paperId, exportStructure, user);
+        exportPaperAbstractService.uploadFile(extractConfig, paperId, exportStructure, user, examPaper);
     }
 
     @Override
@@ -240,7 +240,18 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
                 if (examFile.getExamFileType() == ExamFileType.PAPER) {
                     Long examId = Long.parseLong(exportModel.getExamId());
                     ExtractConfig extractConfig = extractConfigService.findConfig(new ExtractConfig(examId, examFile.getCourseId()));
-                    Map<String, String> finishedPaperIdMap = extractConfig.getFinishedPaperIdMap();
+                    List<ExamPaper> list = extractConfig.getExamPaperList();
+                    if(list!=null && list.size()>0){
+                    	for(ExamPaper examPaper:list){
+                    		String groupCode = examPaper.getGroupCode();
+                    		String paperId = examPaper.getPaper().getId();
+                    		if (groupCode.equals(examFile.getGroupCode())) {
+                    			downloadAudio(paperId, examFile, downloadDir, orgName);
+                    		}
+                    		
+                    	}
+                    }
+                   /* Map<String, String> finishedPaperIdMap = extractConfig.getFinishedPaperIdMap();
                     Set<Entry<String, String>> entrySet = finishedPaperIdMap.entrySet();
                     Iterator<Entry<String, String>> iterator = entrySet.iterator();
                     while (iterator.hasNext()) {
@@ -250,7 +261,7 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
                         if (groupCode.equals(examFile.getGroupCode())) {
                             downloadAudio(paperId, examFile, downloadDir, orgName);
                         }
-                    }
+                    }*/
                 }
             }
         }
@@ -330,7 +341,8 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
      * @param unit
      * @return
      */
-    private String getAudioFileName(QuestionAudio audio, PaperDetailUnit unit) {
+    @SuppressWarnings("unused")
+	private String getAudioFileName(QuestionAudio audio, PaperDetailUnit unit) {
         String questionAudioId = audio.getId();
         StringBuffer audioFileName = new StringBuffer(unit.getPaperDetail().getNumber() + "_" + unit.getNumber() + "_");
         Question question = unit.getQuestion();

+ 2 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigProviderServiceImpl.java

@@ -12,6 +12,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -573,7 +574,7 @@ public class ExtractConfigProviderServiceImpl implements ExtractConfigProviderSe
 	public Map<String, DefaultQuestion> getDefaultQuestions(Set<String> questionIds) {
 		Map<String, DefaultQuestion> map = new HashMap<String, DefaultQuestion>();
 		List<Question> questions = quesRepo.findByIdIn(questionIds);
-		if(questions != null && questions.size()>0){
+		if(CollectionUtils.isEmpty(questions)){
 			log.error("根据试题id的集合没有查询到试题结合");
 			throw new StatusException("Q-020572","根据试题id的集合没有查询到试题结合");
 		}

+ 5 - 17
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/ExtractConfigServiceImpl.java

@@ -13,8 +13,6 @@ import cn.com.qmth.examcloud.core.questions.service.bean.SubQuestionDtoAssembler
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitNativeRepo;
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.SystemUtils;
-import org.bson.types.ObjectId;
 import org.nlpcn.commons.lang.util.StringUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -25,9 +23,6 @@ import org.springframework.data.domain.Example;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.PageRequest;
-import org.springframework.data.domain.Sort;
-import org.springframework.data.domain.Sort.Direction;
-import org.springframework.data.domain.Sort.Order;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
@@ -35,7 +30,6 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.util.Assert;
 
-import cn.com.qmth.examcloud.core.questions.base.core.ExamCourseDto;
 import cn.com.qmth.examcloud.core.questions.base.question.PaperDetailDto;
 import cn.com.qmth.examcloud.core.questions.base.question.PaperDetailUnitDto;
 import cn.com.qmth.examcloud.core.questions.base.question.PaperDto;
@@ -44,7 +38,6 @@ import cn.com.qmth.examcloud.core.questions.base.question.QuestionDto;
 import cn.com.qmth.examcloud.core.questions.base.question.SubQuestionDto;
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
-import cn.com.qmth.examcloud.core.questions.dao.CourseRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
 import cn.com.qmth.examcloud.core.questions.dao.AudioTimeConfigRepo;
 import cn.com.qmth.examcloud.core.questions.dao.ExportServiceManageRepo;
@@ -52,15 +45,12 @@ import cn.com.qmth.examcloud.core.questions.dao.ExtractConfigRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
-import cn.com.qmth.examcloud.core.questions.service.bean.dto.PageExamCourse;
 import cn.com.qmth.examcloud.core.questions.dao.entity.AudioTimeConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExtractConfig;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetail;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperStruct;
-import cn.com.qmth.examcloud.core.questions.service.rpc.ExamCourseClient;
 import cn.com.qmth.examcloud.core.questions.service.ExportStructureService;
 import cn.com.qmth.examcloud.core.questions.service.ExtractConfigService;
 import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
@@ -75,7 +65,6 @@ import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
 import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
 import cn.com.qmth.examcloud.commons.base.exception.StatusException;
-import cn.com.qmth.examcloud.commons.base.util.JsonUtil;
 import cn.com.qmth.examcloud.examwork.api.ExamCloudService;
 import cn.com.qmth.examcloud.examwork.api.bean.ExamBean;
 import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
@@ -132,11 +121,8 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
     @Autowired
     private ExportStructureService exportStructureService;
     
-    @Autowired
-    private ExamCourseClient examCourseClient;
-
 	@Autowired
-	private CourseRepo courseRepo;
+	private CourseService courseService;
 	
 	@Value("${upyun.downloadUrl}")
 	private String downloadUrl;
@@ -153,6 +139,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 	@Autowired
 	private SubQuestionDtoAssembler subQuestionDtoAssembler;
 
+	@SuppressWarnings("rawtypes")
 	@Autowired
 	private RedisTemplate redisTemplate;
 
@@ -186,7 +173,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 			paper = paperRepo.findOne(paper.getId());
 			examPaper.setPaper(paper);
 		}
-		Course course = courseRepo.findFirstByCodeAndOrgId(extractConfig.getCourseCode(),extractConfig.getOrgId());
+		Course course = courseService.getCourse(Long.valueOf(extractConfig.getOrgId()),extractConfig.getCourseCode());
 		extractConfig.setCourse(course);
 		extractConfig.setCourseName(course.getName());
 		Map<String,String> newFinishedPaperIdMap = makePaperByConfig(extractConfig);
@@ -205,7 +192,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 			paper = paperRepo.findOne(paper.getId());
 			examPaper.setPaper(paper);
 		}
-		Course course = courseRepo.findFirstByCodeAndOrgId(extractConfig.getCourseCode(),extractConfig.getOrgId());
+		Course course = courseService.getCourse(Long.valueOf(extractConfig.getOrgId()),extractConfig.getCourseCode());
 		extractConfig.setCourse(course);
 		extractConfig.setCourseName(course.getName());
     	extractConfig.setIfFinish((short)1);
@@ -573,6 +560,7 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
 	 * @param paper
 	 * @return
 	 */
+	@SuppressWarnings("unchecked")
 	private PaperDto getPaperDtoByPaper(Paper paper,String basePaperId){
 
 		//优先从redis中获取缓存dto

+ 7 - 19
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/GenPaperService.java

@@ -1,13 +1,10 @@
 package cn.com.qmth.examcloud.core.questions.service.impl;
 
 import java.math.BigDecimal;
-import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -20,7 +17,6 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import cn.com.qmth.examcloud.core.questions.dao.CourseRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Course;
 import cn.com.qmth.examcloud.core.questions.service.bean.context.DetailContext;
 import cn.com.qmth.examcloud.core.questions.service.bean.context.PaperContext;
@@ -39,8 +35,6 @@ import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
 import cn.com.qmth.examcloud.core.questions.service.PaperService;
 import cn.com.qmth.examcloud.core.questions.dao.entity.QuesProperty;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
-import cn.com.qmth.examcloud.core.questions.base.BeanCopierUtil;
-import cn.com.qmth.examcloud.core.questions.base.CombinationUtils;
 import cn.com.qmth.examcloud.core.questions.base.CommonUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
@@ -66,7 +60,7 @@ public class GenPaperService {
     PaperStructRepo paperStructRepo;
 
     @Autowired
-    CourseRepo courseRepo;
+    CourseService courseService;
     
     @Autowired
     PaperService paperService;
@@ -76,7 +70,6 @@ public class GenPaperService {
     
     /**
      * 精确组卷,根据设定试卷结构组卷
-     * 
      * @return
      */
     @SuppressWarnings("unchecked")
@@ -189,7 +182,7 @@ public class GenPaperService {
             paper.setName(genPaperDto.getPaperName());
             paper.setCourseNo(genPaperDto.getCourseNo());
             paper.setCourseName(genPaperDto.getCourseName());
-            Course course = courseRepo.findFirstByCodeAndOrgId(genPaperDto.getCourseNo(),genPaperDto.getOrgId());
+            Course course = courseService.getCourse(Long.valueOf(genPaperDto.getOrgId()), genPaperDto.getCourseNo());
             paper.setCourse(course);
             paper.setCreator(genPaperDto.getCreator());
             paper.setOrgId(genPaperDto.getOrgId());
@@ -382,8 +375,7 @@ public class GenPaperService {
     		//构建新的大题
     		List<PaperDetail> paperDetails = buildPaperDetail(map,genPaperDto);
     		//构建新的试卷
-    		Paper paper = buildPaper(map,genPaperDto,paperDetails);
-    		//paperService.formatPaper(paper, user);
+    		Paper paper = buildPaper(map,genPaperDto,paperDetails,user);
             paperMsgMap.put("paper", paper);
             paperMsgMap.put("msg", "success");
             return paperMsgMap;
@@ -407,7 +399,6 @@ public class GenPaperService {
     private Map<String, Object> extractByQuestionNum(GenPaperDto genPaperDto,User user){
     	Map<String, Object> paperMsgMap = new HashMap<String, Object>();
     	//获取所有试卷与抽题数
-    	//Map<String, Double> paperMap = genPaperDto.getSimpleParams();
     	Map<String, NumberDto> paperMap = genPaperDto.getSimpleParams();
     	if(paperMap != null && paperMap.size()>0){
     		//定义随机选中的小题集合
@@ -417,7 +408,6 @@ public class GenPaperService {
         	//随机抽题
     		for(String paperId : paperMap.keySet()){
     			//随机抽题数量
-    			//Integer needNumber = Integer.valueOf(paperMap.get(paperId).intValue());
     			NumberDto numberDto = paperMap.get(paperId);
     			Integer needNumber = Integer.valueOf(numberDto.getCount().intValue());
     			//取到该试卷下所有小题
@@ -524,8 +514,7 @@ public class GenPaperService {
     		//构建新的大题
     		List<PaperDetail> paperDetails = buildPaperDetail(map,genPaperDto);
     		//构建新的试卷
-    		Paper paper = buildPaper(map,genPaperDto,paperDetails);
-    		//paperService.formatPaper(paper, user);
+    		Paper paper = buildPaper(map,genPaperDto,paperDetails,user);
             paperMsgMap.put("paper", paper);
             paperMsgMap.put("msg", "success");
     	}
@@ -650,7 +639,7 @@ public class GenPaperService {
     }
     
     //构建新的试卷
-    private Paper buildPaper(Map<String, List<PaperDetailUnit>> map,GenPaperDto genPaperDto,List<PaperDetail> paperDetails){
+    private Paper buildPaper(Map<String, List<PaperDetailUnit>> map,GenPaperDto genPaperDto,List<PaperDetail> paperDetails,User user){
     	Paper paper = this.constuctPaperByPaperDetails(paperDetails, genPaperDto);
     	double sum = 0;
     	for(String name:map.keySet()) {
@@ -756,7 +745,6 @@ public class GenPaperService {
     
     /**
      * 根据大题集合构造paper
-     * 
      * @param details
      * @return
      */
@@ -772,7 +760,7 @@ public class GenPaperService {
             paper.setName(genPaperDto.getPaperName());
             paper.setCourseNo(genPaperDto.getCourseNo());
             paper.setCourseName(genPaperDto.getCourseName());
-            Course course = courseRepo.findFirstByCodeAndOrgId(genPaperDto.getCourseNo(),genPaperDto.getOrgId());
+            Course course = courseService.getCourse(Long.valueOf(genPaperDto.getOrgId()), genPaperDto.getCourseNo());
             paper.setCourse(course);
             paper.setCreator(genPaperDto.getCreator());
             paper.setCreateTime(CommonUtils.getCurDateTime());
@@ -985,7 +973,7 @@ public class GenPaperService {
             paper.setName(genPaperDto.getPaperName());
             paper.setCourseNo(genPaperDto.getCourseNo());
             paper.setCourseName(genPaperDto.getCourseName());
-            Course course = courseRepo.findFirstByCodeAndOrgId(genPaperDto.getCourseNo(),genPaperDto.getOrgId());
+            Course course = courseService.getCourse(Long.valueOf(genPaperDto.getOrgId()), genPaperDto.getCourseNo());
             paper.setCourse(course);
             paper.setCreator(genPaperDto.getCreator());
             paper.setOrgId(genPaperDto.getOrgId());

+ 2 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailServiceImpl.java

@@ -42,7 +42,8 @@ public class PaperDetailServiceImpl implements PaperDetailService{
     @Autowired
     PaperDetailUnitRepo paperDetailUnitRepo;
 
-    @Autowired
+    @SuppressWarnings("rawtypes")
+	@Autowired
     RedisTemplate redisTemplate;
 
     /**

+ 16 - 7
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperDetailUnitServiceImpl.java

@@ -4,7 +4,6 @@ import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.bcel.generic.NEW;
 import org.bson.types.ObjectId;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.Sort;
@@ -56,7 +55,6 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
 
     /**
      * 根据Id获得对应的试题对象
-     *
      * @param id
      * @return
      */
@@ -66,7 +64,6 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
 
     /**
      * 按ID查询小题
-     *
      * @param id
      * @return
      */
@@ -76,7 +73,6 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
 
     /**
      * 保存小题
-     *
      * @param pduExp
      * @return
      */
@@ -209,10 +205,23 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
     	return this.mongoTemplate.find(query, PaperDetailUnit.class);
     }
 
+	
+	public List<PaperDetailUnit> findByQuestionsAndPaperTypeOnline(List<String> ids,PaperType paperType) {
+		Query query=new Query();
+		query.addCriteria(Criteria.where("question.id").in(ids));
+		query.addCriteria(Criteria.where("paperType").is(paperType));
+		List<PaperDetailUnit> paperDetailUnits = this.mongoTemplate.find(query, PaperDetailUnit.class);
+		return paperDetailUnits;
+	}
+	
 	@Override
 	public List<PaperDetailUnit> findByQuestionsAndPaperType(List<String> ids,PaperType paperType) {
+		List<ObjectId> objectIds = new ArrayList<ObjectId>();
+		for(String id:ids){
+			objectIds.add(new ObjectId(id));
+		}
 		Query query=new Query();
-		query.addCriteria(Criteria.where("question.id").in(ids));
+		query.addCriteria(Criteria.where("question.$id").in(objectIds));
 		query.addCriteria(Criteria.where("paperType").is(paperType));
 		List<PaperDetailUnit> paperDetailUnits = this.mongoTemplate.find(query, PaperDetailUnit.class);
 		return paperDetailUnits;
@@ -247,7 +256,7 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
 		}
 		
 		//第二种查询,quesion.$id  id
-		DBObject query2 = new BasicDBObject();
+		//DBObject query2 = new BasicDBObject();
 		BasicDBList values2 = new BasicDBList();
 		for(String id:ids){
 			values2.add(id);
@@ -260,7 +269,7 @@ public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
 		}
 		
 		//第三种查询,quesion.$id  ObjectId
-		DBObject query3 = new BasicDBObject();
+		//DBObject query3 = new BasicDBObject();
 		BasicDBList values3 = new BasicDBList();
 		for(String id:ids){
 			values3.add(new ObjectId(id));

+ 10 - 15
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PaperServiceImpl.java

@@ -144,7 +144,8 @@ public class PaperServiceImpl implements PaperService{
     @Autowired
 	private QuestionAudioRepo questionAudioRepo;
 
-    @Autowired
+    @SuppressWarnings("rawtypes")
+	@Autowired
     private RedisTemplate redisTemplate;
     
     @Autowired
@@ -282,7 +283,8 @@ public class PaperServiceImpl implements PaperService{
      * @param paperExp
      * @return
      */
-    public Map<String, Object> savePaper(PaperExp paperExp, User user) {
+    @SuppressWarnings("unchecked")
+	public Map<String, Object> savePaper(PaperExp paperExp, User user) {
         Map<String, Object> msgMap = new HashMap<String, Object>();
         Paper oldPaper = paperRepo.findOne(paperExp.getId());
         if (oldPaper != null) {
@@ -427,7 +429,8 @@ public class PaperServiceImpl implements PaperService{
      *
      * @param paperIds
      */
-    public Map<String, Object> deletePapers(List<String> paperIds) {
+    @SuppressWarnings("unchecked")
+	public Map<String, Object> deletePapers(List<String> paperIds) {
         Map<String, Object> msgMap = new HashMap<String, Object>();
         String msg = "";
         List<Paper> papers = CommonUtils.toList(paperRepo.findAll(paperIds));
@@ -448,11 +451,6 @@ public class PaperServiceImpl implements PaperService{
                     msgMap.put("msg", msg);
                     msgMap.put("paperName", pdu.getPaper().getName());
                     return msgMap;
-                    // for(PaperDetailUnit ipdu: importPaperUnits){
-                    // if(ipdu.getQuestion().getId().equals(pdu.getQuestion().getId())){
-                    //
-                    // }
-                    // }
                 }
             }
             //删除音频
@@ -687,6 +685,8 @@ public class PaperServiceImpl implements PaperService{
      * @param paperTotalScore
      * @return
      */
+    
+	@SuppressWarnings("unused")
 	public Double reSetDifficulty(Paper paper,double paperTotalScore) {
 		Double sum = 0.0;
 		List<PaperDetail> paperDetails = paperDetailRepo.findByPaperOrderByNumber(paper);
@@ -912,7 +912,8 @@ public class PaperServiceImpl implements PaperService{
         return quesService.findByIdExclude(selectedIds, paper.getCourseNo(), quesType, curPage, pageSize,user.getRootOrgId(),quesBody);
     }
 
-    public Paper selectQuestionsToPaper(String paperId, String paperDetailId, List<Question> questions,
+    @SuppressWarnings("unused")
+	public Paper selectQuestionsToPaper(String paperId, String paperDetailId, List<Question> questions,
     		User user) {
         Paper paper = paperRepo.findOne(paperId);
         PaperDetail paperDetail = paperDetailRepo.findOne(paperDetailId);
@@ -1028,12 +1029,6 @@ public class PaperServiceImpl implements PaperService{
      * @throws Exception
      */
     public boolean checkPaperName(String paperName, PaperType paperType,String orgId)throws Exception{
-        Paper paperTemp = new Paper();
-        //paperTemp.setCreateTime(null);
-        //paperTemp.setName(paperName.trim());
-        //paperTemp.setOrgId(orgId);
-        //paperTemp.setPaperType(paperType);
-        //Paper paper = paperRepo.findOne(Example.of(paperTemp));
         Query query = new Query();
         query.addCriteria(Criteria.where("orgId").is(orgId));
         query.addCriteria(Criteria.where("name").is(paperName.trim()));

+ 0 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/PropertyServiceImpl.java

@@ -8,7 +8,6 @@ import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.commons.web.security.bean.User;
 import cn.com.qmth.examcloud.core.questions.service.bean.PropertyAssembler;
-import cn.com.qmth.examcloud.core.questions.base.excel.ExcelError;
 import cn.com.qmth.examcloud.core.questions.dao.PropertyRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.dto.PropertyDto;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Property;

+ 0 - 6
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/impl/QuesServiceImpl.java

@@ -35,7 +35,6 @@ import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
-import cn.com.qmth.examcloud.core.questions.dao.CourseRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
 import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
@@ -65,9 +64,6 @@ public class QuesServiceImpl implements QuesService{
     @Autowired
     private QuestionAudioRepo questionAudioRepo;
     
-    @Autowired
-	private CourseRepo courseRepo;
-
     @Autowired
     private QuesPkgPathRepo quesPkgPathRepo;
     
@@ -89,7 +85,6 @@ public class QuesServiceImpl implements QuesService{
     
     /**
      * 套题子题按序号自动生成ID
-     *
      * @param question
      */
     private void updateSubId(Question question) {
@@ -360,7 +355,6 @@ public class QuesServiceImpl implements QuesService{
 
     /**
      * 保存后更新word
-     * 
      * @param question
      */
     public void updateQuesWord(Question question) {

+ 1 - 0
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/initQuesHash/InitQuesHashServiceImpl.java

@@ -23,6 +23,7 @@ public class InitQuesHashServiceImpl implements InitQuesHashService{
 	@Autowired
     private MongoTemplate mongoTemplate;
 	
+	@SuppressWarnings("unused")
 	@Override
 	public void initHash(String orgId) {
 		Query query = new Query();

+ 11 - 11
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/DdExcelService.java

@@ -20,7 +20,6 @@ import org.springframework.stereotype.Service;
 
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
 import cn.com.qmth.examcloud.core.questions.base.question.enums.QuesStructType;
-import cn.com.qmth.examcloud.core.questions.dao.CourseRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
@@ -39,13 +38,9 @@ import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
 import cn.com.qmth.examcloud.core.questions.service.temp.vo.DdExcelDto;
 import cn.com.qmth.examcloud.core.questions.service.temp.vo.DdPaperDto;
 import cn.com.qmth.examcloud.core.questions.service.temp.vo.DdPaperStructDto;
-import cn.com.qmth.examcloud.question.core.question.QuestionType;
 
 @Service("ddExcelService")
 public class DdExcelService {
-
-	@Autowired
-    private CourseRepo courseRepo;
 	
 	@Autowired
 	private QuesRepo quesRepo;
@@ -71,7 +66,8 @@ public class DdExcelService {
 	public void insertQueryName(String orgId){
 		//查询所有课程
 		long startCourseTime = System.currentTimeMillis();
-		List<Course> courses = courseRepo.findByOrgId(orgId);
+		//List<Course> courses = courseRepo.findByOrgId(orgId);
+		List<Course> courses = new ArrayList<Course>();
 		long endCourseTime = System.currentTimeMillis();
 		System.out.println("查询课程耗时:"+ (endCourseTime - startCourseTime) +"ms");
 		if(courses != null && courses.size()>0){
@@ -147,14 +143,14 @@ public class DdExcelService {
 		return map;
 	}
 	
-	
-	
+	@SuppressWarnings("resource")
 	public void exporExcel(String orgId) throws Exception{
 		//导出Excel集合
 		List<DdExcelDto> ddExcelDtos = new ArrayList<DdExcelDto>();
 		//查询所有课程
 		long startCourseTime = System.currentTimeMillis();
-		List<Course> courses = courseRepo.findByOrgId(orgId);
+		//List<Course> courses = courseRepo.findByOrgId(orgId);
+		List<Course> courses = new ArrayList<Course>();
 		long endCourseTime = System.currentTimeMillis();
 		System.out.println("查询课程耗时:"+ (endCourseTime - startCourseTime) +"ms");
 		if(courses != null && courses.size()>0){
@@ -396,12 +392,14 @@ public class DdExcelService {
 	 * @param orgId
 	 * @throws Exception
 	 */
+	@SuppressWarnings("resource")
 	public void exportPaperExcel(String orgId) throws Exception {
 		System.out.println("开始导出试卷具体信息。。。。");
 		//导出Excel对象集合
 		List<DdPaperDto> excelDtoList = new ArrayList<DdPaperDto>();
 		//查询所有课程
-		List<Course> courses = courseRepo.findByOrgId(orgId);
+		//List<Course> courses = courseRepo.findByOrgId(orgId);
+		List<Course> courses = new ArrayList<Course>();
 		System.out.println("查询课程总数:"+ courses.size());
 		if(courses != null && courses.size()>0){
 			int i = 1;
@@ -467,12 +465,14 @@ public class DdExcelService {
 	 * @param orgId
 	 * @throws Exception
 	 */
+	@SuppressWarnings("resource")
 	public void exportPaperStructExcel(String orgId) throws Exception{
 		System.out.println("开始导出试卷结构");
 		//导出Excel对象集合
 		List<DdPaperStructDto> excelDtoList = new ArrayList<DdPaperStructDto>();
 		//查询所有课程
-		List<Course> courses = courseRepo.findByOrgId(orgId);
+		//List<Course> courses = courseRepo.findByOrgId(orgId);
+		List<Course> courses = new ArrayList<Course>();
 		System.out.println("查询课程总数:"+ courses.size());
 		if(courses != null && courses.size()>0){
 			int i = 1;

+ 2 - 2
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/ImgDataUtils.java

@@ -9,7 +9,6 @@ import org.apache.commons.codec.binary.Base64;
 import java.io.*;
 import java.net.HttpURLConnection;
 import java.net.URL;
-import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.regex.Matcher;
@@ -17,7 +16,8 @@ import java.util.regex.Pattern;
 
 public class ImgDataUtils {
 
-    public static void main(String[] args) throws UnsupportedEncodingException {
+    @SuppressWarnings("unused")
+	public static void main(String[] args) throws UnsupportedEncodingException {
         /*String html = "ss<img src=\"http://fanyi.bdstatic.com/static/translation/img/header/logo_cbfea26.png\"/>aa"
                 + "sss<img src=\"http://fanyi.bdstatic.com/static/translation/pkg/index_z_15cc24c.png\"/>ss";*/
     	String html = "in its&nbsp;<img class=\"UnderLine15\" src=\"/Shared/UnderLine?index=1\" alt=\"\" />area."

+ 0 - 1
examcloud-core-questions-service/src/main/java/cn/com/qmth/examcloud/core/questions/service/temp/vo/UpdatePaperStruct.java

@@ -36,7 +36,6 @@ public class UpdatePaperStruct {
 		Query query = new Query();
         query.addCriteria(Criteria.where("orgId").is(orgId));
         query.addCriteria(Criteria.where("id").nin("BLUEPRINT"));
-        long count = this.mongoTemplate.count(query, PaperStruct.class);
         List<PaperStruct> paperStructList = this.mongoTemplate.find(query, PaperStruct.class);
         if(paperStructList!=null && paperStructList.size()>0){
         	for(PaperStruct paperStruct:paperStructList){

+ 0 - 1
examcloud-core-questions-starter/src/main/java/cn/com/qmth/examcloud/core/questions/starter/initData.java

@@ -3,7 +3,6 @@ package cn.com.qmth.examcloud.core.questions.starter;
 import cn.com.qmth.examcloud.core.questions.service.impl.SettingService;
 import cn.com.qmth.examcloud.core.questions.base.word.DocxProcessUtil;
 
-import org.docx4j.Docx4J;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 1
examcloud-core-questions-starter/src/main/resources/application-dev.properties

@@ -5,7 +5,7 @@ spring.data.mongodb.uri=mongodb://192.168.10.30:27017/exam_cloud_question_kf
 spring.data.mongodb.grid-fs-database=exam_cloud_question_kf
 spring.data.mongodb.database=exam_cloud_question_kf
 eureka.client.serviceUrl.defaultZone=http://192.168.10.39:1111/eureka/
-spring.application.name=EC-CORE-QUESTION
+spring.application.name=WWH-EC-CORE-QUESTION
 
 spring.redis.host=192.168.10.39
 spring.redis.port=6379

+ 22 - 19
examcloud-core-questions-starter/src/test/java/cn/com/qmth/examcloud/core/questions/starter/ApplicationTest.java

@@ -9,6 +9,7 @@ import cn.com.qmth.examcloud.core.questions.dao.*;
 import cn.com.qmth.examcloud.core.questions.dao.entity.*;
 import cn.com.qmth.examcloud.core.questions.service.ImportPaperService;
 import cn.com.qmth.examcloud.core.questions.service.PaperDetailUnitService;
+import cn.com.qmth.examcloud.core.questions.service.impl.CourseService;
 import cn.com.qmth.examcloud.core.questions.base.GridFSUtil;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExtractPolicy;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
@@ -77,7 +78,7 @@ public class ApplicationTest {
     PaperDetailUnitService paperDetailUnitService;
 
     @Autowired
-    CourseRepo courseRepo;
+    CourseService courseService;
 
     @Test
     public void testGridFs() throws FileNotFoundException {
@@ -99,8 +100,7 @@ public class ApplicationTest {
         questionType.setQuesType(QuesStructType.NESTED_ANSWER_QUESTION);
         question.setQuestionType(QuesStructType.NESTED_ANSWER_QUESTION);
         List<Question> subquestionList = new ArrayList<Question>();
-
-
+        
         for(int i=0;i < 10;i++){
             Question subquestion = new Question();
             subquestion.setQuesBody("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"><html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /><style>.wordTd_disabled{border:solid windowtext 1pt;padding:0cm 5.4pt 0cm 5.4pt;} p{white-space:sWrap;word-wrap:break-word;} span{white-space:sWrap;word-wrap:break-word;}</style></head><body><p style=\"text-align:both;\"><span style=\"color:#000000;font-size:10pt;font-family:Times New Roman;\"><span style=\"font-style:normal;\"><span style=\"font-weight:normal;\">\n" +
@@ -221,7 +221,8 @@ public class ApplicationTest {
 //        System.out.println("程序运行时间:" + (endTime - startTime)/1000 + "s");    //输出程序运行时间
 //    }
 
-    @Test
+    @SuppressWarnings({ "unused", "resource" })
+	@Test
     public void testImport1(){
         String inputFilePath = "/Users/songyue/docxImport/ceshi2.docx";
         String outFilePath = "/Users/songyue/docxImport/ceshi11111.docx";
@@ -229,13 +230,9 @@ public class ApplicationTest {
             File inputFile = new File(inputFilePath);
             FileInputStream inputStream = new FileInputStream(inputFile);
             System.out.println(inputFilePath);
-
             WordprocessingMLPackage wordMLPackage = Docx4J.load(inputFile);
-
             DocxProcessUtil.initPkgImage(wordMLPackage);
             Docx4J.save(wordMLPackage,new FileOutputStream(outFilePath));
-
-
         } catch (Exception e) {
             e.printStackTrace();
         }
@@ -257,8 +254,9 @@ public class ApplicationTest {
         List<Question> questions = quesRepo.findAll();
         List<Question> saveQues = new ArrayList<>();
         for(Question question:questions){
-            Course course = courseRepo.findFirstByCodeAndOrgId(question.getCourseNo(),question.getOrgId());
-            if(course != null){
+            //Course course = courseRepo.findFirstByCodeAndOrgId(question.getCourseNo(),question.getOrgId());
+        	Course course = courseService.getCourse(Long.valueOf(question.getOrgId()),question.getCourseNo());
+        	if(course != null){
                 question.setCourseLevel(course.getLevel());
             }else{
                 question.setCourseLevel(CourseLevel.ALL.name());
@@ -273,8 +271,9 @@ public class ApplicationTest {
         List<Question> questions = quesRepo.findAll();
         List<Question> saveQues = new ArrayList<>();
         for(Question question:questions){
-            Course course = courseRepo.findFirstByCodeAndOrgId(question.getCourseNo(),question.getOrgId());
-            question.setCourse(course);
+            //Course course = courseRepo.findFirstByCodeAndOrgId(question.getCourseNo(),question.getOrgId());
+        	Course course = courseService.getCourse(Long.valueOf(question.getOrgId()),question.getCourseNo());
+        	question.setCourse(course);
             saveQues.add(question);
         }
         quesRepo.save(saveQues);
@@ -285,8 +284,9 @@ public class ApplicationTest {
         List<Paper> papers = paperRepo.findAll();
         List<Paper> savePaper = new ArrayList<>();
         for(Paper paper:papers){
-            Course course = courseRepo.findFirstByCodeAndOrgId(paper.getCourseNo(),paper.getOrgId());
-            paper.setCourse(course);
+            //Course course = courseRepo.findFirstByCodeAndOrgId(paper.getCourseNo(),paper.getOrgId());
+        	Course course = courseService.getCourse(Long.valueOf(paper.getOrgId()),paper.getCourseNo());
+        	paper.setCourse(course);
             savePaper.add(paper);
         }
         paperRepo.save(savePaper);
@@ -294,7 +294,7 @@ public class ApplicationTest {
 
     @Test
     public void testCourse7(){
-        List<Course> courses = courseRepo.findAll();
+        List<Course> courses = new ArrayList<Course>();
         for(Course course:courses){
             if(course != null){
                 if(course.getEnable().equals("1")){
@@ -305,14 +305,15 @@ public class ApplicationTest {
                 }
             }
         }
-        courseRepo.save(courses);
+        //courseRepo.save(courses);
     }
 
     @Test
     public void testCourse6(){
         List<ExtractConfig> configs = extractConfigRepo.findAll();
         for(ExtractConfig config:configs){
-            Course course = courseRepo.findFirstByCodeAndOrgId(config.getCourseCode(),config.getOrgId());
+            //Course course = courseRepo.findFirstByCodeAndOrgId(config.getCourseCode(),config.getOrgId());
+            Course course = courseService.getCourse(Long.valueOf(config.getOrgId()),config.getCourseCode());
             config.setCourse(course);
         }
         extractConfigRepo.save(configs);
@@ -348,9 +349,11 @@ public class ApplicationTest {
         paperRepo.save(papers);
     }
 
-    @Test
+    @SuppressWarnings("unused")
+	@Test
     public void testCourse4(){
-        Course course = courseRepo.findFirstByCodeAndOrgId("010048","1");
+        //Course course = courseRepo.findFirstByCodeAndOrgId("010048","1");
+        Course course = courseService.getCourse(Long.valueOf("010048"),"1");
     }
 
 }

+ 0 - 7
examcloud-core-questions-starter/src/test/java/cn/com/qmth/examcloud/core/questions/starter/DdCollegeUtilTest.java

@@ -15,17 +15,10 @@ import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.test.context.junit4.SpringRunner;
 
-import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLog;
-import cn.com.qmth.examcloud.commons.base.logging.ExamCloudLogFactory;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.QuesRepo;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
-import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Question;
 import cn.com.qmth.examcloud.core.questions.service.temp.DdExcelService;
-import cn.com.qmth.examcloud.core.questions.service.temp.vo.TestOption;
-import cn.com.qmth.examcloud.core.questions.service.temp.vo.TestPaper;
-import cn.com.qmth.examcloud.core.questions.service.temp.vo.TestQuestion;
 
 /**
  * @author 		weiwenhai

+ 7 - 8
examcloud-core-questions-starter/src/test/java/cn/com/qmth/examcloud/core/questions/starter/ExtractConfigServiceTest.java

@@ -2,7 +2,6 @@ package cn.com.qmth.examcloud.core.questions.starter;
 
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileNotFoundException;
 import java.io.FileReader;
 import java.io.FileWriter;
 import java.io.IOException;
@@ -16,7 +15,6 @@ import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.data.domain.Example;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
@@ -29,15 +27,11 @@ import cn.com.qmth.examcloud.core.questions.dao.ExportServiceManageRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperRepo;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExamFile;
 import cn.com.qmth.examcloud.core.questions.dao.entity.ExamPaper;
-import cn.com.qmth.examcloud.core.questions.dao.entity.ExportServiceManage;
 import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
 import cn.com.qmth.examcloud.core.questions.service.ExamFileService;
 import cn.com.qmth.examcloud.core.questions.service.ExtractConfigService;
-import cn.com.qmth.examcloud.core.questions.service.PaperService;
-import cn.com.qmth.examcloud.core.questions.service.export.ExportPaperAbstractService;
 import cn.com.qmth.examcloud.core.questions.service.export.SddxExportPaperService;
 import cn.com.qmth.examcloud.core.questions.service.export.SxsfExportPaperService;
-import cn.com.qmth.examcloud.core.questions.base.SpringContextUtils;
 import cn.com.qmth.examcloud.core.questions.base.enums.ExamFileType;
 import cn.com.qmth.examcloud.core.questions.base.enums.PaperType;
 
@@ -67,8 +61,11 @@ public class ExtractConfigServiceTest {
 	@Autowired
     private MongoTemplate mongoTemplate;
 	
-	private MockHttpServletRequest request;  
-    private MockHttpServletResponse response; 
+	@SuppressWarnings("unused")
+	private MockHttpServletRequest request;
+	
+    @SuppressWarnings("unused")
+	private MockHttpServletResponse response; 
     
     @Test
     public void downloadPaper() throws Exception{
@@ -163,6 +160,7 @@ public class ExtractConfigServiceTest {
 		extractConfigService.saveExtractConfig(extractConfig,"机构名称");*/
 	}
 	
+	@SuppressWarnings("unused")
 	private List<ExamPaper> buildOnlineExamPaper(){
 		List<ExamPaper> examPaperList = new ArrayList<ExamPaper>();
 		/*******************A类型********************/
@@ -206,6 +204,7 @@ public class ExtractConfigServiceTest {
 		return examPaperList;
 	}
 	
+	@SuppressWarnings("unused")
 	private List<ExamPaper> buildTraditionExamPaper(){
 		List<ExamPaper> examPaperList = new ArrayList<ExamPaper>();
 		/*******************A类型********************/

+ 0 - 5
examcloud-core-questions-starter/src/test/java/cn/com/qmth/examcloud/core/questions/starter/PduNativeTest.java

@@ -2,12 +2,7 @@ package cn.com.qmth.examcloud.core.questions.starter;
 
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitRepo;
 import cn.com.qmth.examcloud.core.questions.dao.PaperDetailUnitNativeRepo;
-import cn.com.qmth.examcloud.core.questions.dao.entity.Paper;
 import cn.com.qmth.examcloud.core.questions.dao.entity.PaperDetailUnit;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.slf4j.Logger;