xiatian há 1 ano atrás
pai
commit
941f4fc155

+ 10 - 1
src/main/java/cn/com/qmth/export/ExportPaperByCourseCode.java

@@ -1,6 +1,8 @@
 package cn.com.qmth.export;
 
 import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.log4j.LogManager;
@@ -8,6 +10,10 @@ import org.apache.log4j.Logger;
 
 public class ExportPaperByCourseCode {
 	private static Logger logger = LogManager.getLogger(ExportPaperByCourseCode.class);
+	//试卷后缀
+	private static String paperSuff = "(231219)";
+	//数据库名
+	private static String dbName="yunkai_question5";
 	private static AtomicInteger count=new AtomicInteger(0);
 	
 	public static void main(String[] args) {
@@ -15,7 +21,10 @@ public class ExportPaperByCourseCode {
 		Date start=new Date();
 		try {
 			MyProducer pro=new MyProducer();
-			pro.startDispose(MyConsumer.class, 8, null);
+			Map<String, Object> param=new HashMap<>();
+			param.put("paperSuff", paperSuff);
+			param.put("dbName", dbName);
+			pro.startDispose(MyConsumer.class, 8, param);
 		} catch (Exception e) {
 			logger.error(e.getCause(), e);
 		}

+ 4 - 1
src/main/java/cn/com/qmth/export/ExportProperty.java

@@ -26,6 +26,7 @@ import com.alibaba.fastjson.JSONObject;
 
 public class ExportProperty {
 	private static Logger logger = LogManager.getLogger(ExportProperty.class);
+	private static String dbName="yunkai_question5";
 	private final static String sourceDir = "d:/yunkai/";
 	public static void main(String[] args) {
 		logger.debug("导出开始");
@@ -49,7 +50,7 @@ public class ExportProperty {
 		try {
 			Class.forName("com.mysql.cj.jdbc.Driver");
 
-			String url = "jdbc:mysql://localhost:3306/yunkai_question3?serverTimezone=GMT%2B8";
+			String url = "jdbc:mysql://localhost:3306/"+dbName+"?serverTimezone=GMT%2B8";
 
 			String user = "root";
 
@@ -80,6 +81,8 @@ public class ExportProperty {
 			if(CollectionUtils.isNotEmpty(props)) {
 				total++;
 				FileUtil.writeFile(sourceDir+"prop/", code+".json", JSONObject.toJSONString(props));
+			}else {
+				System.out.println("无文件:"+code);
 			}
 		}
 		System.out.println("文件数:"+total);

+ 1 - 1
src/main/java/cn/com/qmth/export/FileUtil.java

@@ -156,7 +156,7 @@ public class FileUtil {
             dataOutputStream.flush();
             return true;
         } catch (Exception e) {
-        	throw new RuntimeException("下载出错:"+e.getMessage(),e);
+        	throw new RuntimeException("下载出错:"+fileUrl,e);
         } finally {
             if (connection != null) {
                 connection.disconnect();

+ 17 - 17
src/main/java/cn/com/qmth/export/MyConsumer.java

@@ -21,10 +21,10 @@ import org.apache.commons.lang3.StringUtils;
 
 import com.alibaba.fastjson.JSONObject;
 
-public class MyConsumer extends Consumer<String> {
+public class MyConsumer extends Consumer<PaperExportDto> {
 	private static String[] sucStr = new String[] { "对", "正确", "√", "是", "True" };
 	private static String[] errStr = new String[] { "错", "错误", "×", "不正确", "否", "False" };
-	private static String paperSuff = "(231205)";
+//	private static String paperSuff = "(231205)";
 	private int maxqc = 200;
 
 	private static String paperDir = "d:/yunkai/paper/";
@@ -32,20 +32,20 @@ public class MyConsumer extends Consumer<String> {
 	private Pattern imgPat = Pattern.compile("<img[^<]+src=\"([^<\"]+)\"[^<]*>");
 
 	@Override
-	public void consume(String courseCode) {
+	public void consume(PaperExportDto dto) {
 		Connection connect = null;
-		File sub = new File(paperDir + courseCode + "/");
+		File sub = new File(paperDir + dto.getCourseCode() + "/");
 		sub.mkdir();
 		try {
 			Class.forName("com.mysql.cj.jdbc.Driver");
 
-			String url = "jdbc:mysql://localhost:3306/yunkai_question3?serverTimezone=GMT%2B8";
+			String url = "jdbc:mysql://localhost:3306/"+dto.getDbName()+"?serverTimezone=GMT%2B8";
 
 			String user = "root";
 
 			String password = "123456";
 			connect = DriverManager.getConnection(url, user, password);
-			exportPaper(connect, courseCode);
+			exportPaper(connect, dto);
 			ExportPaperByCourseCode.addDisposeCount();
 		} catch (Exception e) {
 			throw new RuntimeException(e);
@@ -359,13 +359,13 @@ public class MyConsumer extends Consumer<String> {
 		}
 	}
 
-	private void exportPaper(Connection connect, String courseCode) throws Exception {
-		List<KdQuestion> qs = getQuestion(connect, courseCode);
+	private void exportPaper(Connection connect, PaperExportDto dto) throws Exception {
+		List<KdQuestion> qs = getQuestion(connect, dto.getCourseCode());
 		if (qs.size() == 0) {
 			return;
 		}
 		fillProp(connect, qs);
-		fillAnswer(connect, qs, courseCode);
+		fillAnswer(connect, qs, dto.getCourseCode());
 
 		Map<YunkaiQuesStructType, List<KdQuestion>> qmap = new HashMap<>();
 		for (KdQuestion q : qs) {
@@ -377,16 +377,16 @@ public class MyConsumer extends Consumer<String> {
 			list.add(q);
 		}
 		for (YunkaiQuesStructType qt : qmap.keySet()) {
-			createPapers(qmap.get(qt), qt, courseCode);
+			createPapers(qmap.get(qt), qt, dto);
 		}
 	}
 
-	private void createPapers(List<KdQuestion> qs, YunkaiQuesStructType qt, String courseCode) {
+	private void createPapers(List<KdQuestion> qs, YunkaiQuesStructType qt, PaperExportDto dto) {
 		if (qs == null || qs.size() == 0) {
 			return;
 		}
 		if (qs.size() <= maxqc) {
-			createPaper(qs, qt, courseCode, 1);
+			createPaper(qs, qt, dto, 1);
 		} else {
 			int size = qs.size();
 			int len = maxqc;
@@ -394,21 +394,21 @@ public class MyConsumer extends Consumer<String> {
 
 			for (int i = 0; i < count; i++) {
 				List<KdQuestion> subList = qs.subList(i * len, ((i + 1) * len > size ? size : len * (i + 1)));
-				createPaper(subList, qt, courseCode, i + 1);
+				createPaper(subList, qt, dto, i + 1);
 			}
 		}
 
 	}
 
-	private void createPaper(List<KdQuestion> qs, YunkaiQuesStructType qt, String courseCode, int indx) {
+	private void createPaper(List<KdQuestion> qs, YunkaiQuesStructType qt, PaperExportDto dto, int indx) {
 		if (qs.size() == 0) {
 			return;
 		}
 		String detailName = qt.getYunKaiDesc();
 		KdPaper paper = new KdPaper();
 		paper.setTotalScore((double) qs.size());
-		paper.setName(paperSuff + detailName + "_" + indx);
-		paper.setCourseCode(courseCode);
+		paper.setName(dto.getPaperSuff() + detailName + "_" + indx);
+		paper.setCourseCode(dto.getCourseCode());
 		List<KdDetail> des = new ArrayList<>();
 		KdDetail d = new KdDetail();
 		d.setName(detailName);
@@ -419,7 +419,7 @@ public class MyConsumer extends Consumer<String> {
 		des.add(d);
 		paper.setDetails(des);
 		paper.setDetailCount(1);
-		File paperdir = new File(paperDir + courseCode + "/" + qt.getYunKaiType() + "/");
+		File paperdir = new File(paperDir + dto.getCourseCode() + "/" + qt.getYunKaiType() + "/");
 		paperdir.mkdirs();
 		try {
 			FileUtil.writeFile(paperdir.getAbsolutePath(), "/paper_" + indx + ".json", JSONObject.toJSONString(paper));

+ 7 - 6
src/main/java/cn/com/qmth/export/MyProducer.java

@@ -2,9 +2,8 @@ package cn.com.qmth.export;
 
 import java.io.File;
 import java.io.IOException;
-import java.util.HashSet;
+import java.util.LinkedHashSet;
 import java.util.Map;
-import java.util.Set;
 
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.log4j.LogManager;
@@ -22,13 +21,15 @@ public class MyProducer extends Producer {
 	@Override
 	protected void produce(Map<String, Object> param) throws Exception {
 		logger.info("***************************任务生产开始");
+		String paperSuff = (String)param.get("paperSuff");
+		String dbName = (String)param.get("dbName");
 		File excelFolder = new File(paperDir);
 		if (excelFolder.exists()) {
 			FileUtil.clearDirectory(paperDir);
 		} else {
 			excelFolder.mkdirs();
 		}
-		Set<String> cs = readSubject();
+		LinkedHashSet<String> cs = readSubject();
 		if (CollectionUtils.isEmpty(cs)) {
 			logger.debug("无数据导出");
 			return;
@@ -36,14 +37,14 @@ public class MyProducer extends Producer {
 			logger.debug(cs.size() + "个课程");
 		}
 		for (String c : cs) {
-			offer(c);
+			offer(new PaperExportDto(c, paperSuff,dbName));
 		}
 		logger.info("***************************任务生产结束");
 	}
 	
 	
-	private static Set<String> readSubject() {
-		Set<String> list = new HashSet<>();
+	private static LinkedHashSet<String> readSubject() {
+		LinkedHashSet<String> list = new LinkedHashSet<>();
 		XSSFWorkbook wb = null;
 		try {
 			wb = new XSSFWorkbook(dir + "subject_info.xlsx");

+ 33 - 0
src/main/java/cn/com/qmth/export/PaperExportDto.java

@@ -0,0 +1,33 @@
+package cn.com.qmth.export;
+
+public class PaperExportDto {
+	private String courseCode;
+	private String paperSuff;
+	private String dbName;
+	public String getCourseCode() {
+		return courseCode;
+	}
+	public void setCourseCode(String courseCode) {
+		this.courseCode = courseCode;
+	}
+	public String getPaperSuff() {
+		return paperSuff;
+	}
+	public void setPaperSuff(String paperSuff) {
+		this.paperSuff = paperSuff;
+	}
+	
+	public String getDbName() {
+		return dbName;
+	}
+	public void setDbName(String dbName) {
+		this.dbName = dbName;
+	}
+	public PaperExportDto(String courseCode, String paperSuff, String dbName) {
+		super();
+		this.courseCode = courseCode;
+		this.paperSuff = paperSuff;
+		this.dbName = dbName;
+	}
+	
+}

+ 2 - 1
src/main/java/cn/com/qmth/export/SetRootId.java

@@ -12,6 +12,7 @@ import java.util.List;
 import java.util.Map;
 
 public class SetRootId {
+	private static String dbName="yunkai_question5";
 	public static void main(String[] args) {
 		System.out.println("开始处理");
 		Connection connect = null;
@@ -19,7 +20,7 @@ public class SetRootId {
 		try {
 			Class.forName("com.mysql.cj.jdbc.Driver");
 
-			String url = "jdbc:mysql://localhost:3306/yunkai_question3?serverTimezone=GMT%2B8";
+			String url = "jdbc:mysql://localhost:3306/"+dbName+"?serverTimezone=GMT%2B8";
 
 			String user = "root";