浏览代码

成绩查询复核日志

haogh 6 月之前
父节点
当前提交
f5f9bde3a6

+ 12 - 6
src/cn/hmsoft/art/control/score/ScoreYmControl.java

@@ -79,11 +79,11 @@ public class ScoreYmControl extends ArtControl {
 		String sql = "select * from sc_score_ym ym where batch='first'";
 		QueryOrder qr = this.getQueryOrder(order, type);
 		if (StringHelper.isEmpty(query)) {
-			sql += " order by wei_gui desc";
+			sql += " order by apply_msg desc,check_flag desc";
 			return new Ajax(this.daoStd.pageMapBySql(qr, start, limit, sql));
 		}
 		sql = sql + " and ( ym.cert_id =? or ym.ticket_no=? or  ym.aspect_name=? or ym.std_name like ? )";
-		sql += " order by wei_gui desc";
+		sql += " order by apply_msg desc,check_flag desc";
 		return new Ajax(this.daoStd.pageMapBySql(qr, start, limit, sql, query, query, query, "%" + query + "%"));
 	}
 	
@@ -93,9 +93,11 @@ public class ScoreYmControl extends ArtControl {
 		String sql = "select * from sc_score_ym ym where batch='final'";
 		QueryOrder qr = this.getQueryOrder(order, type);
 		if (StringHelper.isEmpty(query)) {
+			sql += " order by apply_msg desc,check_flag desc";
 			return new Ajax(this.daoStd.pageMapBySql(qr, start, limit, sql));
 		}
 		sql = sql + " and ( ym.cert_id =? or ym.ticket_no=? or  ym.aspect_name=? or ym.std_name like ? )";
+		sql += " order by apply_msg desc,check_flag desc";
 		return new Ajax(this.daoStd.pageMapBySql(qr, start, limit, sql, query, query, query, "%" + query + "%"));
 	}
 
@@ -336,14 +338,18 @@ public class ScoreYmControl extends ArtControl {
 	 */
 	@RequestMapping("score/ym/make/review/log")
 	public Ajax makeReviewLog(String cert_id, String aspect_name, String batch) {
+		FrameAssertUtil.isNotEmpty(batch, "批次未传");
 		// 单个生成
 		if(StringHelper.isNotEmpty(cert_id)) {
 			String sql =
 					"SELECT cs.std_name,r.std_sex,cs.cert_id,cs.aspect_name,cs.ticket_no,p.province_name,remark, cs.batch,cs.ems_no,r.exam_id,"
-							+ " cs.subject_name_1,cs.aspect_qualified,r.std_id,cs.apply_msg,cs.check_flag,cs.check_note,cs.recovery_time  "
+							+ " cs.subject_name_1,cs.subject_name_2,cs.subject_name_3,cs.aspect_qualified,r.std_id,cs.apply_msg,cs.check_flag,cs.check_note,cs.recovery_time  "
 							+ " FROM sc_score_ym cs,std_reg r,cf_enrol_province p where cs.std_id=r.std_id AND r.std_province=p.PROVINCE_ID "
-							+ " AND WEI_GUI='是' and cs.cert_id=? and cs.aspect_name=? and cs.batch=? ";
+							+ " and cs.cert_id=? and cs.aspect_name=? and cs.batch=? ";
 			ScScoreYm scScoreYm = scoreYmDao.findBySql(sql, cert_id, aspect_name, batch);
+			if(scScoreYm == null) {
+				throw new BusinessException("考生未录入成绩");
+			}
 			File file = DecisionHelper.makeReviewLog(scoreYmDao, scScoreYm);
 			this.downloadFile(file, file.getName());
 			return new Ajax();
@@ -354,8 +360,8 @@ public class ScoreYmControl extends ArtControl {
 				String sql =
 						"SELECT cs.std_name,r.std_sex,cs.cert_id,cs.aspect_name,cs.ticket_no,p.province_name,remark, cs.batch,cs.ems_no,r.exam_id,"
 								+ " cs.subject_name_1,cs.aspect_qualified,r.std_id,cs.apply_msg,cs.check_flag,cs.check_note,cs.recovery_time  "
-								+ " FROM sc_score_ym cs,std_reg r,cf_enrol_province p where cs.std_id=r.std_id AND r.std_province=p.PROVINCE_ID AND WEI_GUI='是'";
-				List<ScScoreYm> scoreList = daoStd.listBySql(ScScoreYm.class, sql);
+								+ " FROM sc_score_ym cs,std_reg r,cf_enrol_province p where cs.std_id=r.std_id AND r.std_province=p.PROVINCE_ID AND cs.batch =?";
+				List<ScScoreYm> scoreList = daoStd.listBySql(ScScoreYm.class, sql, batch);
 				int speed = 1;
 				FrameThreadHelper.updateThread(thread, speed, "一共有【" + scoreList.size() + "】个成绩复核日志需要生成", FrameThreadStatus.Running);
 				for (ScScoreYm scScoreYm : scoreList) {

+ 63 - 31
src/cn/hmsoft/art/enrol/business/decision/DecisionHelper.java

@@ -32,6 +32,8 @@ import com.itextpdf.layout.property.TextAlignment;
 import com.itextpdf.layout.property.VerticalAlignment;
 
 import java.io.File;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
 import java.util.List;
 import java.util.Map;
 
@@ -291,7 +293,7 @@ public abstract class DecisionHelper {
             doc = createPdf(file,  PageSize.A4, "hmosft_" + ArtParamHelper.SchoolCode);
 
             doc.setBorder(null);
-            doc.setMargins(30, 50, 30, 50);
+            doc.setMargins(10, 50, 10, 50);
             PdfFont font = PdfFontFactory.createFont(
                     SpringHelper.WebServletContext.getRealPath("/") + "fonts" + File.separator + "STFANGSO.TTF",
                     PdfEncodings.IDENTITY_H, true);
@@ -299,7 +301,14 @@ public abstract class DecisionHelper {
             Paragraph p1;
 
             float fontSize = 14f;
-            p1 = new Paragraph("中央美术学院" + ArtParamHelper.ArtYear + "年本科招生线上考试\n成绩查询及成绩复核日志")
+            float contextSize = 12f;
+            String title;
+            if(score.getBatch().equals("first")) {
+                title = "线上考试";
+            } else {
+                title = "现场考试";
+            }
+            p1 = new Paragraph("中央美术学院" + ArtParamHelper.ArtYear + "年本科招生"+ title + "\n成绩查询及成绩复核日志")
                     .setFontSize(20).setBold().setTextAlignment(TextAlignment.CENTER);
             doc.add(p1);
 
@@ -309,58 +318,69 @@ public abstract class DecisionHelper {
             // 考生姓名
             stdTable.addCell(new Cell(1, 1).add("考生姓名:").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.RIGHT).setTextAlignment(TextAlignment.RIGHT)
-                    .setMarginTop(5).setMarginBottom(5));
+                    .setMarginTop(5).setMarginBottom(5).setBold());
             stdTable.addCell(new Cell(1, 1).add(score.getStd_name()).setFontSize(fontSize)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5));
 
             // 身份证号
             stdTable.addCell(new Cell(1, 1).add("身份证号:").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.RIGHT).setTextAlignment(TextAlignment.RIGHT)
-                    .setMarginTop(5).setMarginBottom(5));
+                    .setMarginTop(5).setMarginBottom(5).setBold());
             stdTable.addCell(new Cell(1, 1).add(score.getCert_id()).setFontSize(fontSize)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5));
 
             // 生源地
             stdTable.addCell(new Cell(1, 1).add("生  源  地:").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.RIGHT).setTextAlignment(TextAlignment.RIGHT)
-                    .setMarginTop(5).setMarginBottom(5));
+                    .setMarginTop(5).setMarginBottom(5).setBold());
             stdTable.addCell(new Cell(1, 1).add(score.getProvince_name()).setFontSize(fontSize)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5));
 
             // 考生号
             stdTable.addCell(new Cell(1, 1).add("考  生  号:").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.RIGHT).setTextAlignment(TextAlignment.RIGHT)
-                    .setMarginTop(5).setMarginBottom(5));
-            stdTable.addCell(new Cell(1, 1).add(score.getExam_id()).setFontSize(fontSize)
+                    .setMarginTop(5).setMarginBottom(5).setBold());
+            stdTable.addCell(new Cell(1, 1).add(score.getExam_id() == null ? "" : score.getExam_id()).setFontSize(fontSize)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5));
 
             // 报考专业
             stdTable.addCell(new Cell(1, 1).add("报考专业:").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.RIGHT).setTextAlignment(TextAlignment.RIGHT)
-                    .setMarginTop(5).setMarginBottom(5));
+                    .setMarginTop(5).setMarginBottom(5).setBold());
             stdTable.addCell(new Cell(1, 1).add(score.getAspect_name()).setFontSize(fontSize)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5));
 
             // 考试科目
-            stdTable.addCell(new Cell(1, 1).add("考试科目:").setFontSize(fontSize)
+            stdTable.addCell(new Cell(2, 1).add("考试科目:").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.RIGHT).setTextAlignment(TextAlignment.RIGHT)
-                    .setMarginTop(5).setMarginBottom(5));
-            stdTable.addCell(new Cell(1, 1).add(score.getSubject_name_1()).setFontSize(fontSize)
-                    .setMarginLeft(10).setMarginTop(5).setMarginBottom(5));
+                    .setMarginTop(5).setMarginBottom(5).setBold());
+            String subject_name = "";
+            if (StringHelper.isNotEmpty(score.getSubject_name_1())) {
+                subject_name = "《" + score.getSubject_name_1() + "》";
+            }
+            if (StringHelper.isNotEmpty(score.getSubject_name_2())) {
+                subject_name += "\n《" + score.getSubject_name_2() + "》";
+            }
+            if (StringHelper.isNotEmpty(score.getSubject_name_3())) {
+                subject_name += "\n《" + score.getSubject_name_3() + "》";
+            }
+            stdTable.addCell(new Cell(2, 1).add(subject_name).setFontSize(fontSize)
+                    .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.LEFT).setTextAlignment(TextAlignment.LEFT)
+                    .setMarginLeft(5).setMarginTop(5).setMarginBottom(5));
 
             // 准考证号
             stdTable.addCell(new Cell(1, 1).add("准考证号:").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.RIGHT).setTextAlignment(TextAlignment.RIGHT)
-                    .setMarginTop(5).setMarginBottom(5));
+                    .setMarginTop(5).setMarginBottom(5).setBold());
             stdTable.addCell(new Cell(1, 1).add(score.getTicket_no()).setFontSize(fontSize)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5));
 
             // 性别
-            stdTable.addCell(new Cell(1, 1).add("性        别:").setFontSize(fontSize)
+            /*stdTable.addCell(new Cell(1, 1).add("性        别:").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.RIGHT).setTextAlignment(TextAlignment.RIGHT)
                     .setMarginTop(5).setMarginBottom(5));
             stdTable.addCell(new Cell(1, 1).add(score.getStd_sex()).setFontSize(fontSize)
-                    .setMarginLeft(10).setMarginTop(5).setMarginBottom(5));
+                    .setMarginLeft(10).setMarginTop(5).setMarginBottom(5));*/
 
             doc.add(stdTable.setMarginTop(20f));
 
@@ -368,11 +388,11 @@ public abstract class DecisionHelper {
             doc.add(p1.setMarginTop(15f));
 
             Table scoreTable = new Table(new float[] { 2, 6}).setWidthPercent(100).setBorder(null);
-            float lineHeight = 35f;
+            float lineHeight = 28f;
             //成绩查询结果
             scoreTable.addCell(new Cell(1, 1).add("成绩查询结果").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER).setTextAlignment(TextAlignment.CENTER)
-                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
+                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight).setBold());
             scoreTable.addCell(new Cell(1, 1).add(searchLog != null ? score.getAspect_qualified() : "").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
@@ -380,15 +400,15 @@ public abstract class DecisionHelper {
             //成绩查询时间
             scoreTable.addCell(new Cell(1, 1).add("成绩查询时间").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER).setTextAlignment(TextAlignment.CENTER)
-                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
+                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight).setBold());
             scoreTable.addCell(new Cell(1, 1).add(searchLog != null ? LocalDateHelper.format(searchLog.getLog_time()) : "").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
 
             //查询IP地址
-            scoreTable.addCell(new Cell(1, 1).add("查询IP地址").setFontSize(fontSize)
+            scoreTable.addCell(new Cell(1, 1).add("成绩查询IP").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER).setTextAlignment(TextAlignment.CENTER)
-                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
+                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight).setBold());
             scoreTable.addCell(new Cell(1, 1).add(searchLog != null ? searchLog.getLog_value() : "").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
@@ -404,23 +424,23 @@ public abstract class DecisionHelper {
             //陈述申辩内容
             scoreTable.addCell(new Cell(1, 1).add("陈述申辩内容").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER).setTextAlignment(TextAlignment.CENTER)
-                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
-            scoreTable.addCell(new Cell(1, 1).add(score.getApply_msg() != null ? score.getApply_msg() : "").setFontSize(fontSize)
+                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight).setBold());
+            scoreTable.addCell(new Cell(1, 1).add(score.getApply_msg() != null ? score.getApply_msg() : "").setFontSize(contextSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
 
             //陈述申辩时间
             scoreTable.addCell(new Cell(1, 1).add("陈述申辩时间").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER).setTextAlignment(TextAlignment.CENTER)
-                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
+                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight).setBold());
             scoreTable.addCell(new Cell(1, 1).add(score.getCheck_flag() != null ? score.getCheck_flag() : "").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
 
             //陈辩IP地址
-            scoreTable.addCell(new Cell(1, 1).add("陈辩IP地址").setFontSize(fontSize)
+            scoreTable.addCell(new Cell(1, 1).add("陈述申辩IP").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER).setTextAlignment(TextAlignment.CENTER)
-                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
+                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight).setBold());
             scoreTable.addCell(new Cell(1, 1).add(score.getEms_no() != null ? score.getEms_no() : "").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
@@ -433,26 +453,31 @@ public abstract class DecisionHelper {
             scoreTable = new Table(new float[] { 2, 6}).setWidthPercent(100).setBorder(null);
 
             //复核结论答复
-            scoreTable.addCell(new Cell(1, 1).add("复核结论答复").setFontSize(fontSize)
+            scoreTable.addCell(new Cell(1, 1).add("陈辩复核结果").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER).setTextAlignment(TextAlignment.CENTER)
-                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
-            scoreTable.addCell(new Cell(1, 1).add(score.getCheck_note() != null ? score.getCheck_note() : "").setFontSize(fontSize)
+                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight).setBold());
+            scoreTable.addCell(new Cell(1, 1).add(score.getCheck_note() != null ? score.getCheck_note() : "").setFontSize(contextSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
 
             //复核答复时间
-            scoreTable.addCell(new Cell(1, 1).add("复核答复时间").setFontSize(fontSize)
+            scoreTable.addCell(new Cell(1, 1).add("陈辩答复时间").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER).setTextAlignment(TextAlignment.CENTER)
-                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
+                    .setMarginTop(5).setMarginBottom(5).setHeight(lineHeight).setBold());
             scoreTable.addCell(new Cell(1, 1).add(score.getRecovery_time() != null ? score.getRecovery_time() : "").setFontSize(fontSize)
                     .setVerticalAlignment(VerticalAlignment.MIDDLE).setHorizontalAlignment(HorizontalAlignment.CENTER)
                     .setMarginLeft(10).setMarginTop(5).setMarginBottom(5).setHeight(lineHeight));
 
             doc.add(scoreTable);
 
-            p1 = new Paragraph("说明:成绩复核事项为“空”表明考生查询成绩后未提出成绩复核申请。").setFontSize(fontSize).setBold();
+            p1 = new Paragraph("说明:成绩复核事项为“空”表明考生未在规定时间内提出成绩复核申请。").setFontSize(fontSize).setBold();
             doc.add(p1.setMarginTop(15f));
 
+            doc.add(new Paragraph("\n"));
+            doc.add(new Paragraph("中央美术学院").setFontSize(fontSize).setTextAlignment(TextAlignment.RIGHT).setPaddingRight(30f));
+            doc.add(new Paragraph(getExamDate(LocalDate.now()))
+                    .setFontSize(fontSize).setTextAlignment(TextAlignment.RIGHT).setPaddingRight(16f));
+
             ItextPdfHelper.closePdf(doc);
 
             //更新文件路径
@@ -471,6 +496,13 @@ public abstract class DecisionHelper {
         return file;
     }
 
+    private static String getExamDate(LocalDate exam_date) {
+        DateTimeFormatter date = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
+        if(exam_date != null)
+            return date.format(exam_date);
+        return null;
+    }
+
     public static Document createPdf(File file, PageSize pageSize, String passwd) {
         PdfDocument pdfDoc;
         Document doc;