xiatian 3 سال پیش
والد
کامیت
1b5e037891
13فایلهای تغییر یافته به همراه190 افزوده شده و 78 حذف شده
  1. 92 72
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditEntityConvert.java
  2. 12 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditExcel.java
  3. 12 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditInfo.java
  4. 1 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditMapper.java
  5. 1 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordEntityConvert.java
  6. 11 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordInfo.java
  7. 13 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ExamScoreInfo.java
  8. 3 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentEntityConvert.java
  9. 13 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentExcel.java
  10. 13 1
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentUnFinishedExcel.java
  11. 5 0
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamRecordServiceImpl.java
  12. 7 2
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamScoreServiceImpl.java
  13. 7 3
      examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamStudentServiceImpl.java

+ 92 - 72
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditEntityConvert.java

@@ -7,20 +7,29 @@
 
 package cn.com.qmth.examcloud.core.oe.admin.service.bean.examaudit;
 
-import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
-import cn.com.qmth.examcloud.core.oe.admin.dao.enums.AuditStatus;
-import cn.com.qmth.examcloud.core.oe.admin.dao.enums.CourseLevel;
-import cn.com.qmth.examcloud.core.oe.admin.dao.enums.IsSuccess;
-import com.google.common.collect.Lists;
-import com.mysql.cj.util.StringUtils;
-import org.apache.commons.beanutils.BeanUtils;
-import org.springframework.data.domain.Page;
-
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.beanutils.BeanUtils;
+import org.apache.commons.beanutils.ConvertUtils;
+import org.apache.commons.beanutils.converters.BigDecimalConverter;
+import org.apache.commons.beanutils.converters.DoubleConverter;
+import org.apache.commons.beanutils.converters.IntegerConverter;
+import org.apache.commons.beanutils.converters.LongConverter;
+import org.apache.commons.beanutils.converters.ShortConverter;
+import org.springframework.data.domain.Page;
+
+import com.google.common.collect.Lists;
+import com.mysql.cj.util.StringUtils;
+
+import cn.com.qmth.examcloud.commons.exception.ExamCloudRuntimeException;
+import cn.com.qmth.examcloud.core.oe.admin.dao.enums.AuditStatus;
+import cn.com.qmth.examcloud.core.oe.admin.dao.enums.CourseLevel;
+import cn.com.qmth.examcloud.core.oe.admin.dao.enums.IsSuccess;
+
 /**
  * 类信息转换
  *
@@ -28,72 +37,83 @@ import java.util.Map;
  * @since: 2018/8/21
  */
 public class ExamAuditEntityConvert {
+	static {
+		ConvertUtils.register(new LongConverter(null), Long.class);
+		ConvertUtils.register(new ShortConverter(null), Short.class);
+		ConvertUtils.register(new IntegerConverter(null), Integer.class);
+		ConvertUtils.register(new DoubleConverter(null), Double.class);
+		ConvertUtils.register(new BigDecimalConverter(null), BigDecimal.class);
+	}
 
-    public static List<ExamAuditInfo> of(List<HashMap> maps) {
-        if (maps == null || maps.size() == 0) {
-            return Lists.newArrayList();
-        }
-        List<ExamAuditInfo> list = new ArrayList<>();
-        for (Map map : maps) {
-            try {
-                //转换Map数据
-                ExamAuditInfo info = new ExamAuditInfo();
-                BeanUtils.populate(info, map);
-                //转换枚举名称
-                info.setCourseLevel(CourseLevel.getCourseLevelTitle(info.getCourseLevel()));
-                info.setStatus(AuditStatus.getTitle(info.getStatus()));
-                IsSuccess result = IsSuccess.strToEnum(info.getFaceVerifyResult());
-                if (result != null) {
-                    info.setFaceVerifyResult(result.getDesc());
-                }
+	public static List<ExamAuditInfo> of(List<HashMap> maps) {
+		if (maps == null || maps.size() == 0) {
+			return Lists.newArrayList();
+		}
+		List<ExamAuditInfo> list = new ArrayList<>();
+		for (Map map : maps) {
+			try {
+				// 转换Map数据
+				ExamAuditInfo info = new ExamAuditInfo();
+				BeanUtils.populate(info, map);
+				// 转换枚举名称
+				info.setCourseLevel(CourseLevel.getCourseLevelTitle(info.getCourseLevel()));
+				info.setStatus(AuditStatus.getTitle(info.getStatus()));
+				IsSuccess result = IsSuccess.strToEnum(info.getFaceVerifyResult());
+				if (result != null) {
+					info.setFaceVerifyResult(result.getDesc());
+				}
 
-                //                DisciplineType disciplineType = DisciplineType.tramsformByType(info.getDisciplineType());
-                //                if (disciplineType != null) {
-                //                    info.setDisciplineType(disciplineType.getName());
-                //                }
+				// DisciplineType disciplineType =
+				// DisciplineType.tramsformByType(info.getDisciplineType());
+				// if (disciplineType != null) {
+				// info.setDisciplineType(disciplineType.getName());
+				// }
 
-                list.add(info);
-            } catch (Exception e) {
-                throw new ExamCloudRuntimeException(e.getMessage(), e.getCause());
-            }
-        }
-        return list;
-    }
+				list.add(info);
+			} catch (Exception e) {
+				throw new ExamCloudRuntimeException(e.getMessage(), e.getCause());
+			}
+		}
+		return list;
+	}
 
-    public static List<ExamAuditExcel> ofExcel(Page<ExamAuditInfo> page) {
-        List<ExamAuditExcel> list = new ArrayList<>();
-        if (page == null || page.getContent() == null) {
-            return list;
-        }
-        page.getContent().forEach(e -> {
-            ExamAuditExcel excel = new ExamAuditExcel();
-            excel.setExamRecordDataId(e.getExamRecordDataId());
-            /*DisciplineType disciplineType = DisciplineType.tramsformByType(e.getDisciplineType());
-            if(disciplineType!=null){
-            	excel.setDisciplineType(disciplineType.getName());
-            }*/
-            excel.setOrgName(e.getOrgName());
-            excel.setDisciplineType(e.getDisciplineType());
-            excel.setExamName(e.getExamName());
-            excel.setStudentCode(e.getStudentCode());
-            excel.setStudentName(e.getStudentName());
-            excel.setCourseCode(e.getCourseCode());
-            excel.setCourseName(e.getCourseName());
-            excel.setCourseLevel(e.getCourseLevel());
-            excel.setFaceSuccessCount(e.getFaceSuccessCount());
-            excel.setFaceStrangerCount(e.getFaceStrangerCount());
-            excel.setFaceTotalCount(e.getFaceTotalCount());
-            excel.setFaceSuccessPercent(e.getFaceSuccessPercent());
-            if (!StringUtils.isNullOrEmpty(e.getDisciplineDetail()) && e.getDisciplineDetail().indexOf("&&") != -1) {
-                excel.setDisciplineDetail(e.getDisciplineDetail().replace("&&", "\r\n"));
-            } else {
-                excel.setDisciplineDetail(e.getDisciplineDetail());
-            }
-            excel.setObjectiveScore(Double.valueOf(e.getObjectiveScore()));
-            excel.setIp(e.getIp());
-            list.add(excel);
-        });
-        return list;
-    }
+	public static List<ExamAuditExcel> ofExcel(Page<ExamAuditInfo> page) {
+		List<ExamAuditExcel> list = new ArrayList<>();
+		if (page == null || page.getContent() == null) {
+			return list;
+		}
+		page.getContent().forEach(e -> {
+			ExamAuditExcel excel = new ExamAuditExcel();
+			excel.setExamRecordDataId(e.getExamRecordDataId());
+			/*
+			 * DisciplineType disciplineType =
+			 * DisciplineType.tramsformByType(e.getDisciplineType());
+			 * if(disciplineType!=null){ excel.setDisciplineType(disciplineType.getName());
+			 * }
+			 */
+			excel.setExamStageOrder(e.getExamStageOrder());
+			excel.setOrgName(e.getOrgName());
+			excel.setDisciplineType(e.getDisciplineType());
+			excel.setExamName(e.getExamName());
+			excel.setStudentCode(e.getStudentCode());
+			excel.setStudentName(e.getStudentName());
+			excel.setCourseCode(e.getCourseCode());
+			excel.setCourseName(e.getCourseName());
+			excel.setCourseLevel(e.getCourseLevel());
+			excel.setFaceSuccessCount(e.getFaceSuccessCount());
+			excel.setFaceStrangerCount(e.getFaceStrangerCount());
+			excel.setFaceTotalCount(e.getFaceTotalCount());
+			excel.setFaceSuccessPercent(e.getFaceSuccessPercent());
+			if (!StringUtils.isNullOrEmpty(e.getDisciplineDetail()) && e.getDisciplineDetail().indexOf("&&") != -1) {
+				excel.setDisciplineDetail(e.getDisciplineDetail().replace("&&", "\r\n"));
+			} else {
+				excel.setDisciplineDetail(e.getDisciplineDetail());
+			}
+			excel.setObjectiveScore(Double.valueOf(e.getObjectiveScore()));
+			excel.setIp(e.getIp());
+			list.add(excel);
+		});
+		return list;
+	}
 
 }

+ 12 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditExcel.java

@@ -70,6 +70,9 @@ public class ExamAuditExcel implements JsonSerializable {
 
     @ExcelProperty(name = "Ip", index = 15)
     private String ip;
+    
+    @ExcelProperty(name = "场次号", width = 30, index = 16)
+    private Integer examStageOrder;
 
     public Long getExamRecordDataId() {
         return examRecordDataId;
@@ -199,4 +202,13 @@ public class ExamAuditExcel implements JsonSerializable {
         this.ip = ip;
     }
 
+	public Integer getExamStageOrder() {
+		return examStageOrder;
+	}
+
+	public void setExamStageOrder(Integer examStageOrder) {
+		this.examStageOrder = examStageOrder;
+	}
+
+    
 }

+ 12 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditInfo.java

@@ -238,6 +238,9 @@ public class ExamAuditInfo implements JsonSerializable {
     
     @ExcelProperty(name = "切屏次数", width = 30, index = 15)
     private Integer switchScreenCount;
+    
+    @ExcelProperty(name = "场次号", width = 30, index = 16)
+    private Integer examStageOrder;
 
     public Long getId() {
         return id;
@@ -575,5 +578,14 @@ public class ExamAuditInfo implements JsonSerializable {
 		this.switchScreenCount = switchScreenCount;
 	}
 
+	public Integer getExamStageOrder() {
+		return examStageOrder;
+	}
+
+	public void setExamStageOrder(Integer examStageOrder) {
+		this.examStageOrder = examStageOrder;
+	}
+
+
     
 }

+ 1 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examaudit/ExamAuditMapper.java

@@ -45,6 +45,7 @@ public class ExamAuditMapper {
         columns.append("record.start_time as paperStartTime,");
         columns.append("record.end_time as paperSubmitTime,");
         columns.append("record.switch_screen_count as switchScreenCount,");
+        columns.append("record.exam_stage_order as examStageOrder,");
         columns.append("GROUP_CONCAT(DISTINCT process.source_ip) ip");
         return columns.toString();
     }

+ 1 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordEntityConvert.java

@@ -77,6 +77,7 @@ public class ExamRecordEntityConvert {
         info.setIdentityNumber(record.getIdentityNumber());
         info.setCourseId(record.getCourseId());
         info.setSwitchScreenCount(record.getSwitchScreenCount());
+        info.setExamStageOrder(record.getExamStageOrder());
 
         long courseId = record.getCourseId();
         CourseCacheBean courseBean = ExamCacheTransferHelper.getCachedCourse(courseId);

+ 11 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examrecord/ExamRecordInfo.java

@@ -358,6 +358,9 @@ public class ExamRecordInfo implements JsonSerializable {
     
     @ExcelProperty(name = "切屏次数", width = 30, index = 34)
     private Integer switchScreenCount;
+    
+    @ExcelProperty(name = "场次号", width = 30, index = 35)
+    private Integer examStageOrder;
 
     public Long getId() {
         return id;
@@ -865,5 +868,13 @@ public class ExamRecordInfo implements JsonSerializable {
 		this.switchScreenCount = switchScreenCount;
 	}
 
+	public Integer getExamStageOrder() {
+		return examStageOrder;
+	}
+
+	public void setExamStageOrder(Integer examStageOrder) {
+		this.examStageOrder = examStageOrder;
+	}
+
     
 }

+ 13 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examscore/ExamScoreInfo.java

@@ -164,6 +164,9 @@ public class ExamScoreInfo implements JsonSerializable {
      */
     @ExcelProperty(name = "采集人", width = 30, index = 18)
     private String infoCollector;
+    
+    @ExcelProperty(name = "场次号", width = 30, index = 20)
+    private Integer examStageOrder;
 
     public Long getExamId() {
         return examId;
@@ -373,4 +376,14 @@ public class ExamScoreInfo implements JsonSerializable {
         this.subjectiveScore = subjectiveScore;
     }
 
+	public Integer getExamStageOrder() {
+		return examStageOrder;
+	}
+
+	public void setExamStageOrder(Integer examStageOrder) {
+		this.examStageOrder = examStageOrder;
+	}
+    
+    
+
 }

+ 3 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentEntityConvert.java

@@ -84,6 +84,7 @@ public class ExamStudentEntityConvert {
         info.setUsedNum(entity.getUsedNum());
         info.setExtraNum(entity.getExtraNum());
         info.setGrade(entity.getGrade());
+        info.setExamStageOrder(entity.getExamStageOrder());
         return info;
     }
 
@@ -104,6 +105,7 @@ public class ExamStudentEntityConvert {
             excel.setCourseName(e.getCourseName());
             excel.setOrgName(e.getOrgName());
             excel.setFinished(e.getFinishedStatus());
+            excel.setExamStageOrder(e.getExamStageOrder());
             list.add(excel);
         });
         return list;
@@ -155,6 +157,7 @@ public class ExamStudentEntityConvert {
             excel.setExamSiteName(e.getExamSiteName());
             excel.setGrade(e.getGrade());
             excel.setPhone(e.getPhone());
+            excel.setExamStageOrder(e.getExamStageOrder());
             list.add(excel);
         });
         return list;

+ 13 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentExcel.java

@@ -49,6 +49,9 @@ public class ExamStudentExcel implements Serializable {
 
     @ExcelProperty(name = "完成状态", index = 10)
     private String finished;
+    
+    @ExcelProperty(name = "场次号", width = 30, index = 11)
+    private Integer examStageOrder;
 
     public String getStudentCode() {
         return studentCode;
@@ -130,4 +133,14 @@ public class ExamStudentExcel implements Serializable {
         this.finished = finished;
     }
 
+	public Integer getExamStageOrder() {
+		return examStageOrder;
+	}
+
+	public void setExamStageOrder(Integer examStageOrder) {
+		this.examStageOrder = examStageOrder;
+	}
+    
+    
+
 }

+ 13 - 1
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/bean/examstudent/ExamStudentUnFinishedExcel.java

@@ -56,7 +56,9 @@ public class ExamStudentUnFinishedExcel implements JsonSerializable {
 
     @ExcelProperty(name = "年级", index = 13)
     private String grade;
-
+    @ExcelProperty(name = "场次号", index = 14)
+    private Integer examStageOrder;
+    
     public String getStudentCode() {
         return studentCode;
     }
@@ -161,4 +163,14 @@ public class ExamStudentUnFinishedExcel implements JsonSerializable {
         this.grade = grade;
     }
 
+	public Integer getExamStageOrder() {
+		return examStageOrder;
+	}
+
+	public void setExamStageOrder(Integer examStageOrder) {
+		this.examStageOrder = examStageOrder;
+	}
+    
+    
+
 }

+ 5 - 0
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamRecordServiceImpl.java

@@ -148,6 +148,7 @@ public class ExamRecordServiceImpl implements ExamRecordService {
             "record_data.paper_struct_id paperStructId," +
             "record_data.info_collector infoCollector," +
             "record_data.switch_screen_count switchScreenCount," +
+            "record_data.exam_stage_order examStageOrder," +
             "audit.audit_user_name audit_user_name," +
             "GROUP_CONCAT(DISTINCT process.source_ip) ip," +
             "eoes.objective_score objectiveTotalScore," +
@@ -205,6 +206,7 @@ public class ExamRecordServiceImpl implements ExamRecordService {
             "record_data.paper_struct_id paper_struct_id," +
             "record_data.info_collector info_collector," +
             "record_data.switch_screen_count switchScreenCount," +
+            "record_data.exam_stage_order examStageOrder," +
             "audit.audit_user_name audit_user_name," +
             "GROUP_CONCAT(DISTINCT process.source_ip) ip" +
             " from ec_oe_exam_record_data record_data " +
@@ -393,6 +395,9 @@ public class ExamRecordServiceImpl implements ExamRecordService {
         examRecordData.setIp(rs.getString("ip"));
         examRecordData.setAuditUserName(rs.getString("audit_user_name"));
         examRecordData.setSwitchScreenCount(rs.getInt("switchScreenCount"));
+        if(rs.getString("examStageOrder")!=null) {
+        	examRecordData.setExamStageOrder(rs.getInt("examStageOrder"));
+        }
 
         return examRecordData;
     }

+ 7 - 2
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamScoreServiceImpl.java

@@ -128,6 +128,7 @@ public class ExamScoreServiceImpl implements ExamScoreService {
         examScore.setInfoCollector(examStudent.getInfoCollector());
         examScore.setSpecialtyName(examStudent.getSpecialtyName());
         examScore.setGrade(examStudent.getGrade());
+        examScore.setExamStageOrder(examStudent.getExamStageOrder());
         Long examTimes = examBean.getExamTimes();
         if (examTimes != null) {
             Integer extraExamNum = examStudent.getExtraNum() == null ? 0 : examStudent.getExtraNum();
@@ -181,7 +182,7 @@ public class ExamScoreServiceImpl implements ExamScoreService {
         StringBuffer sql = new StringBuffer();
         sql.append("select id,exam_student_id,exam_id,course_id,course_code,course_level,finished,student_id,student_code,student_name,identity_number"
                 + ",info_collector,root_org_id,org_id,paper_type,used_num,extra_num"
-                + ",specialty_code,specialty_name,grade from ec_oe_exam_student where 1=1 ");
+                + ",specialty_code,specialty_name,grade,exam_stage_order from ec_oe_exam_student where 1=1 ");
         if (query.getOrgId() != null) {
             sql.append(" and org_id=" + query.getOrgId());
         }
@@ -251,7 +252,7 @@ public class ExamScoreServiceImpl implements ExamScoreService {
         StringBuffer sql = new StringBuffer();
         sql.append("select id,exam_student_id,exam_id,course_id,course_code,course_level,finished,student_id,student_code,student_name,identity_number"
                 + ",info_collector,root_org_id,org_id,paper_type,used_num,extra_num"
-                + ",specialty_code,specialty_name,grade from ec_oe_exam_student where 1=1 ");
+                + ",specialty_code,specialty_name,grade,exam_stage_order from ec_oe_exam_student where 1=1 ");
         if (query.getOrgId() != null) {
             sql.append(" and org_id=" + query.getOrgId());
         }
@@ -314,6 +315,7 @@ public class ExamScoreServiceImpl implements ExamScoreService {
         ExamSettingsCacheBean examBean = ExamCacheTransferHelper.getCachedExam(examStudent.getExamId(),
                 examStudent.getStudentId(), examStudent.getExamStageId());
         ExamScoreInfo examScore = new ExamScoreInfo();
+        examScore.setExamStageOrder(examStudent.getExamStageOrder());
         examScore.setExamId(examStudent.getExamId());
         examScore.setExamName(examBean.getName());
         examScore.setStudentId(examStudent.getStudentId());
@@ -471,6 +473,9 @@ public class ExamScoreServiceImpl implements ExamScoreService {
         examStudentEntity.setSpecialtyCode(rs.getString("specialty_code"));
         examStudentEntity.setSpecialtyName(rs.getString("specialty_name"));
         examStudentEntity.setGrade(rs.getString("grade"));
+        if(rs.getString("exam_stage_order")!=null) {
+        	examStudentEntity.setExamStageOrder(rs.getInt("exam_stage_order"));
+        }
         return examStudentEntity;
     }
 

+ 7 - 3
examcloud-core-oe-admin-service/src/main/java/cn/com/qmth/examcloud/core/oe/admin/service/impl/ExamStudentServiceImpl.java

@@ -246,7 +246,7 @@ public class ExamStudentServiceImpl implements ExamStudentService {
 
         sql.append(",student_id,student_code,student_name,identity_number"
                 + ",info_collector,root_org_id,org_id,paper_type,used_num,extra_num"
-                + ",specialty_code,specialty_name,grade from ec_oe_exam_student t1 where 1=1 ");
+                + ",specialty_code,specialty_name,grade,t1.exam_stage_order from ec_oe_exam_student t1 where 1=1 ");
         sql.append(selectExamStudentConfitionSql(query, examBean.getExamType()));
         sql.append(" order by id desc");
         int currentNum = (query.getPageNo() - 1) * query.getPageSize();
@@ -398,7 +398,7 @@ public class ExamStudentServiceImpl implements ExamStudentService {
 
         sql.append(",student_id,student_code,student_name,identity_number"
                 + ",info_collector,root_org_id,org_id,paper_type,used_num,extra_num"
-                + ",specialty_code,specialty_name,grade from ec_oe_exam_student t1 where 1=1 ");
+                + ",specialty_code,specialty_name,grade,exam_stage_order from ec_oe_exam_student t1 where 1=1 ");
         sql.append(selectExamStudentConfitionSql(query, examBean.getExamType()));
         int currentNum = (pageNo - 1) * pageSize;
         sql.append(" order by id limit " + currentNum + "," + pageSize);
@@ -429,7 +429,7 @@ public class ExamStudentServiceImpl implements ExamStudentService {
 
         sql.append(",student_id,student_code,student_name,identity_number"
                 + ",info_collector,root_org_id,org_id,paper_type,used_num,extra_num"
-                + ",specialty_code,specialty_name,grade from ec_oe_exam_student t1 where 1=1 ");
+                + ",specialty_code,specialty_name,grade,t1.exam_stage_order stageOrder from ec_oe_exam_student t1 where 1=1 ");
         sql.append(selectExamStudentConfitionSql(query, examBean.getExamType()));
         sql.append(" order by id desc");
 
@@ -618,6 +618,10 @@ public class ExamStudentServiceImpl implements ExamStudentService {
         examStudentEntity.setSpecialtyCode(rs.getString("specialty_code"));
         examStudentEntity.setSpecialtyName(rs.getString("specialty_name"));
         examStudentEntity.setGrade(rs.getString("grade"));
+        if(rs.getString("exam_stage_order")!=null) {
+        	examStudentEntity.setExamStageOrder(rs.getInt("exam_stage_order"));
+        }
+        
         return examStudentEntity;
     }