浏览代码

提交试卷导出乱码 BUG

chenken 7 年之前
父节点
当前提交
b91e77afaf

+ 5 - 4
cqb-comm-utils/src/main/java/com/qmth/cqb/utils/FileDisposeUtil.java

@@ -39,8 +39,7 @@ public class FileDisposeUtil {
 	public static boolean saveUrlAs(String fileUrl, String fileName) {
 		try {
 			URL url = new URL(fileUrl);
-			HttpURLConnection connection = (HttpURLConnection) url
-					.openConnection();
+			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
 			DataInputStream in = new DataInputStream(connection.getInputStream());
 			DataOutputStream out = new DataOutputStream(new FileOutputStream(fileName));
 			byte[] buffer = new byte[4096];
@@ -135,7 +134,7 @@ public class FileDisposeUtil {
 			try {
 				File zipFile = new File(zipFilePath+File.separator+fileName+".zip");
 				if (zipFile.exists()) {
-					logger.error(zipFilePath + "目录下存在名字为:" + fileName+ ".zip" + "打包文件.");
+					logger.error(zipFilePath + "目录下存在名字为:"+fileName+".zip"+"打包文件.");
 				} else {
 					File[] sourceFiles = sourceFile.listFiles();
 					if (null == sourceFiles || sourceFiles.length < 1) {
@@ -146,7 +145,9 @@ public class FileDisposeUtil {
 						byte[] bufs = new byte[1024 * 10];
 						for (int i = 0; i < sourceFiles.length; i++) {
 							// 创建ZIP实体,并添加进压缩包
-							ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName());
+							String fileEncode = System.getProperty("file.encoding");
+							String name = new String(sourceFiles[i].getName().getBytes("utf-8"),fileEncode);
+							ZipEntry zipEntry = new ZipEntry(name);
 							zos.putNextEntry(zipEntry);
 							// 读取待压缩的文件并写进压缩包里
 							fis = new FileInputStream(sourceFiles[i]);

+ 4 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/ExtractConfigFileServiceImpl.java

@@ -88,7 +88,10 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
 	@Override
 	public void saveExtractConfigAndBuildPaperFile(ExtractConfig extractConfig,Integer isbuildFile,AccessUser accessUser) throws Exception {
 		//查询试卷导出设置
-		ExportStructure exportStructure = exportStructureService.findStructureByExamId(extractConfig.getExamId()+"");
+		ExportStructure exportStructure = null;
+		if(isbuildFile==1){
+			exportStructure = exportStructureService.findStructureByExamId(extractConfig.getExamId()+"");
+		}
 		//生成试卷
 		Map<String, String> finishedPaperIdMap = extractConfigService.saveExtractConfig(extractConfig,accessUser);
 		extractConfig.setFinishedPaperIdMap(finishedPaperIdMap);
@@ -98,7 +101,6 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
     		Iterator<Entry<String,String>> iterator = entry.iterator();
     		while(iterator.hasNext()){
     			String paperId = iterator.next().getValue();
-    			accessUser.setRootOrgName(extractConfig.getOrgName());
     			uploadPaperFile(extractConfig,paperId,exportStructure,accessUser);
     		}
     	}

+ 3 - 6
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractConfigController.java

@@ -88,15 +88,12 @@ public class ExtractConfigController {
 	} 
 	
 	@ApiOperation(value = "保存调卷规则", notes = "保存调卷规则")
-    @PutMapping(value = "/extractConfig/{orgName}/{isbuildFile}")
-	public ResponseEntity<Object> saveExtractConfig(HttpServletRequest request,
-											@PathVariable String orgName,
-											@PathVariable Integer isbuildFile,
-											@RequestBody ExtractConfig extractConfig){
+    @PutMapping(value = "/extractConfig/{isbuildFile}")
+	public ResponseEntity<Object> saveExtractConfig(HttpServletRequest request,@PathVariable Integer isbuildFile,@RequestBody ExtractConfig extractConfig){
 		try{
 			AccessUser accessUser = (AccessUser) request.getAttribute("accessUser");
 			extractConfig.setOrgId(accessUser.getRootOrgId()+"");
-			extractConfig.setOrgName(orgName);
+			extractConfig.setOrgName(accessUser.getRootOrgName());
 			extractConfigFileService.saveExtractConfigAndBuildPaperFile(extractConfig,isbuildFile,accessUser);
 			return new ResponseEntity<Object>(HttpStatus.OK);
 		}catch(Exception e){