瀏覽代碼

导出答案错误判断题

xiatian 4 年之前
父節點
當前提交
1a01a02627
共有 20 個文件被更改,包括 1590 次插入12 次删除
  1. 1 1
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Course.java
  2. 87 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/CourseProperty.java
  3. 1 1
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/IdBase.java
  4. 1 1
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/MongoBaseEntity.java
  5. 3 3
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Paper.java
  6. 1 1
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/PaperDetail.java
  7. 312 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/PaperDetailUnit.java
  8. 78 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Property.java
  9. 62 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/QuesOption.java
  10. 70 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/QuesProperty.java
  11. 67 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/QuesResource.java
  12. 436 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Question.java
  13. 119 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/QuestionAudio.java
  14. 1 1
      src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Specialty.java
  15. 1 1
      src/main/java/cn/com/qmth/dp/examcloud/oe/enums/question/PaperStatus.java
  16. 1 1
      src/main/java/cn/com/qmth/dp/examcloud/oe/enums/question/PaperType.java
  17. 77 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/enums/question/QuesStructType.java
  18. 191 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_abnormal_boolquestion/ExportAbnormalBoolQuestionCountService.java
  19. 79 0
      src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_abnormal_boolquestion/RetDto.java
  20. 2 2
      src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/ExportQuestionsCountService.java

+ 1 - 1
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/entity/Course.java → src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Course.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.entity;
+package cn.com.qmth.dp.examcloud.oe.entity.question;
 
 
 /**
 /**
  * Created by songyue on 16/12/26.
  * Created by songyue on 16/12/26.

+ 87 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/CourseProperty.java

@@ -0,0 +1,87 @@
+package cn.com.qmth.dp.examcloud.oe.entity.question;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author weiwenhai
+ * @describle 课程属性
+ * @date 2017.11.2
+ */
+public class CourseProperty extends IdBase {
+    @NotNull
+    private Long orgId;
+
+    @NotNull
+    private Long courseId;
+
+    private String courseCode;
+
+    private String courseName;
+
+    @NotNull
+    private String name;
+
+    private Boolean enable;
+
+    private Date updateTime;//更新时间
+
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public Long getCourseId() {
+        return courseId;
+    }
+
+    public void setCourseId(Long courseId) {
+        this.courseId = courseId;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+}

+ 1 - 1
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/entity/IdBase.java → src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/IdBase.java

@@ -5,7 +5,7 @@
  * *************************************************
  * *************************************************
  */
  */
 
 
-package cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.entity;
+package cn.com.qmth.dp.examcloud.oe.entity.question;
 
 
 import org.springframework.data.annotation.Id;
 import org.springframework.data.annotation.Id;
 
 

+ 1 - 1
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/entity/MongoBaseEntity.java → src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/MongoBaseEntity.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.entity;
+package cn.com.qmth.dp.examcloud.oe.entity.question;
 
 
 import java.util.Date;
 import java.util.Date;
 
 

+ 3 - 3
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/entity/Paper.java → src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Paper.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.entity;
+package cn.com.qmth.dp.examcloud.oe.entity.question;
 
 
 import java.text.SimpleDateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Date;
@@ -6,8 +6,8 @@ import java.util.Map;
 
 
 import org.springframework.data.mongodb.core.index.Indexed;
 import org.springframework.data.mongodb.core.index.Indexed;
 
 
-import cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.PaperStatus;
-import cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.PaperType;
+import cn.com.qmth.dp.examcloud.oe.enums.question.PaperStatus;
+import cn.com.qmth.dp.examcloud.oe.enums.question.PaperType;
 import cn.com.qmth.examcloud.api.commons.enums.CourseLevel;
 import cn.com.qmth.examcloud.api.commons.enums.CourseLevel;
 
 
 /**
 /**

+ 1 - 1
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/entity/PaperDetail.java → src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/PaperDetail.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.entity;
+package cn.com.qmth.dp.examcloud.oe.entity.question;
 
 
 import org.springframework.data.mongodb.core.mapping.DBRef;
 import org.springframework.data.mongodb.core.mapping.DBRef;
 
 

+ 312 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/PaperDetailUnit.java

@@ -0,0 +1,312 @@
+package cn.com.qmth.dp.examcloud.oe.entity.question;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.data.mongodb.core.mapping.DBRef;
+
+import cn.com.qmth.dp.examcloud.oe.enums.question.PaperType;
+import cn.com.qmth.dp.examcloud.oe.enums.question.QuesStructType;
+
+public class PaperDetailUnit extends MongoBaseEntity implements Comparable<PaperDetailUnit> {
+
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 266448283780973578L;
+
+	@DBRef(lazy = false)
+    private Paper paper;// 关联的试卷
+
+    private Integer number;// 小题序号
+
+    private Double score;// 小题分数
+
+    private List<Double> subScoreList;// 对应套题的情况下,各子题的分数分布
+
+    @DBRef(lazy = false)
+    private PaperDetail paperDetail;// 关联的大题
+
+    private QuesStructType questionType;// 小题类型
+
+    @DBRef(lazy = false)
+    private Question question;// 关联试题
+
+    /**
+     * 选择题下option的排序,按照number排序 一般:4,2,3,1 套题下的选择题:1,2,3,4;2,3,4,1;3,2,1,4
+     * 题与题之间按分号";"分隔
+     */
+    private String optionOrder;
+
+    private String creator;// 创建人id
+
+    private String createTime;// 创建时间
+
+    private PaperType paperType;
+
+    /**
+     * 作答限时 K12
+     */
+    private Long timeLimit;
+
+    public PaperDetailUnit() {
+    }
+
+    public PaperDetailUnit(Paper paper, PaperDetail paperDetail, Question question) {
+        this.paper = paper;
+        this.questionType = question.getQuestionType();
+        this.question = question;
+        this.createTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
+        this.paperDetail = paperDetail;
+        this.score = 0d;
+    }
+
+    public Paper getPaper() {
+        return paper;
+    }
+
+    public void setPaper(Paper paper) {
+        this.paper = paper;
+    }
+
+    public Integer getNumber() {
+        return number;
+    }
+
+    public void setNumber(Integer number) {
+        this.number = number;
+    }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+        // 非套题或试题未设置时,不做额外处理
+        if (questionType != QuesStructType.NESTED_ANSWER_QUESTION || question == null) {
+            return;
+        }
+        // 当前分数设置为空时,同时设置子题分数为空
+        if (score == null) {
+            subScoreList = null;
+            return;
+        }
+        // 总分与子题分数之和相同,则不做额外处理
+        if (subScoreList != null && subScoreList.size() > 0 && getSubScoreSum() == score) {
+            return;
+        }
+        // 根据试题与总分设置情况重置子题分数
+        if (question.getSubQuestions() != null) {
+            initSubScoreList(score, question.getSubQuestions());
+        }
+    }
+
+    public PaperDetail getPaperDetail() {
+        return paperDetail;
+    }
+
+    public void setPaperDetail(PaperDetail paperDetail) {
+        this.paperDetail = paperDetail;
+    }
+
+    public QuesStructType getQuestionType() {
+        return questionType;
+    }
+
+    public void setQuestionType(QuesStructType questionType) {
+        this.questionType = questionType;
+    }
+
+    public Question getQuestion() {
+        return question;
+    }
+
+    public void setQuestion(Question question) {
+        this.question = question;
+        // 非套题或总分未设置时,不做额外处理
+        if (questionType != QuesStructType.NESTED_ANSWER_QUESTION || score == null) {
+            return;
+        }
+        // 当前试题或子题列表为空时,同时设置子题分数为空
+        if (question == null || question.getSubQuestions() == null) {
+            subScoreList = null;
+            return;
+        }
+        // 当前试题子题数量与子题分数数量相同,不做额外处理
+        if (subScoreList != null && subScoreList.size() == question.getSubQuestions().size()) {
+            return;
+        }
+        // 根据试题与总分设置情况重置子题分数
+        initSubScoreList(score, question.getSubQuestions());
+    }
+
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public List<Double> getSubScoreList() {
+        return subScoreList;
+    }
+
+    public String getOptionOrder() {
+        return optionOrder;
+    }
+
+    public void setOptionOrder(String optionOrder) {
+        this.optionOrder = optionOrder;
+    }
+
+    public PaperType getPaperType() {
+        return paperType;
+    }
+
+    public void setPaperType(PaperType paperType) {
+        if (paper != null) {
+            this.paperType = paper.getPaperType();
+        } else {
+            this.paperType = paperType;
+        }
+    }
+
+    public void setSubScoreList(List<Double> subScoreList) {
+        this.subScoreList = subScoreList;
+        if (subScoreList != null) {
+            double totalScore = 0;
+            for (Double score : subScoreList) {
+                if (score == null) {
+                    score = 0d;
+                }
+                totalScore += score;
+            }
+            this.score = formatDouble(totalScore);
+        }
+    }
+
+    public void setSubScoreListNew(List<Double> subScoreList) {
+        this.subScoreList = subScoreList;
+    }
+    public static double formatDouble(double number) {
+        BigDecimal formatNumber = BigDecimal.valueOf(number);
+        return formatNumber.setScale(2, RoundingMode.HALF_UP).doubleValue();
+    }
+    public Long getTimeLimit() {
+        return timeLimit;
+    }
+
+    public void setTimeLimit(Long timeLimit) {
+        this.timeLimit = timeLimit;
+    }
+
+    @Override
+    public int compareTo(PaperDetailUnit unit) {
+        /*if (unit != null) {
+            if (this.getQuestionType().getId() > unit.getQuestionType().getId()) {
+                return 1;
+            } else if (this.getQuestionType().getId() == unit.getQuestionType().getId()) {
+                return 0;
+            }
+        }*/
+        if (unit != null) {
+            if (this.getNumber() == null) return -1;
+            if (unit.getNumber() == null) return 1;
+            if (this.getNumber() > unit.getNumber()) {
+                return 1;
+            } else if (this.getNumber() < unit.getNumber()) {
+                return -1;
+            } else {
+                return 0;
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * 根据预设总分自动拆解套题子题的分数分布 目前采取均分后累加到最后一题的做法
+     *
+     * @param totalScore
+     * @param questionList
+     */
+    private void initSubScoreList(double totalScore, List<Question> questionList) {
+        List<Double> scoreList = new ArrayList<>();
+        int count = questionList.size();
+        if (count > 0) {
+            int baseScore = (int) (totalScore / count);
+            double leftScore = totalScore;
+            for (int i = 0; i < count; i++) {
+                scoreList.add((double) baseScore);
+                leftScore -= baseScore;
+            }
+            if (leftScore > 0) {
+                scoreList.set(count - 1, baseScore + leftScore);
+            }
+            this.subScoreList = scoreList;
+        }
+    }
+
+    private double getSubScoreSum() {
+        double totalScore = 0;
+        if (subScoreList != null) {
+            for (Double score : subScoreList) {
+                totalScore += score;
+            }
+        }
+        return formatDouble(totalScore);
+    }
+
+    public int getDetailNumber() {
+        return this.paperDetail.getNumber();
+    }
+
+    public String getDetailId() {
+        return this.paperDetail.getId();
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result
+                + ((question == null) ? 0 : question.getId().hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj) {
+            return true;
+        }
+        if (obj == null) {
+            return false;
+        }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        PaperDetailUnit other = (PaperDetailUnit) obj;
+        if (question == null) {
+            if (other.question != null) {
+                return false;
+            }
+        } else if (!question.getId().equals(other.question.getId())) {
+            return false;
+        }
+        return true;
+    }
+
+}

+ 78 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Property.java

@@ -0,0 +1,78 @@
+package cn.com.qmth.dp.examcloud.oe.entity.question;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author weiwenhai
+ * @describle 属性
+ * @date 2017.11.6
+ */
+public class Property extends IdBase {
+    public static final String ROOT_PARENT_ID = "0";
+
+    @NotNull
+    private Long orgId;
+
+    @NotNull
+    private String coursePropertyId;
+
+    @NotNull
+    private String parentId;
+
+    @NotNull
+    private String name;
+
+    @NotNull
+    private Integer number;//序号
+
+    private String remark;
+
+    public Long getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(Long orgId) {
+        this.orgId = orgId;
+    }
+
+    public String getCoursePropertyId() {
+        return coursePropertyId;
+    }
+
+    public void setCoursePropertyId(String coursePropertyId) {
+        this.coursePropertyId = coursePropertyId;
+    }
+
+    public String getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(String parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getNumber() {
+        return number;
+    }
+
+    public void setNumber(Integer number) {
+        this.number = number;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+}

+ 62 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/QuesOption.java

@@ -0,0 +1,62 @@
+package cn.com.qmth.dp.examcloud.oe.entity.question;
+
+import java.io.Serializable;
+
+/**
+ * Created by songyue on 16/12/27.
+ */
+public class QuesOption implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 选项编号 在第一次导入或者新建题目时初始化, 初始化之后不可改变
+     */
+    private String number;
+
+    private String optionBody;// 选项内容
+
+    private String optionBodyWord;// 选项word
+
+
+    /**
+     * 是否是正确答案 1:是 0:否
+     */
+    private short isCorrect;
+
+    public String getNumber() {
+        return number;
+    }
+
+    public void setNumber(String number) {
+        this.number = number;
+    }
+
+    public String getOptionBody() {
+        return optionBody;
+    }
+
+    public void setOptionBody(String optionBody) {
+        this.optionBody = optionBody;
+    }
+
+    public String getOptionBodyWord() {
+        return optionBodyWord;
+    }
+
+    public void setOptionBodyWord(String optionBodyWord) {
+        this.optionBodyWord = optionBodyWord;
+    }
+
+    public QuesOption() {
+    }
+
+    public short getIsCorrect() {
+        return isCorrect;
+    }
+
+    public void setIsCorrect(short isCorrect) {
+        this.isCorrect = isCorrect;
+    }
+
+}

+ 70 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/QuesProperty.java

@@ -0,0 +1,70 @@
+package cn.com.qmth.dp.examcloud.oe.entity.question;
+
+public class QuesProperty extends IdBase {
+
+    private String coursePropertyName;//课程属性名
+
+    private Property firstProperty;//一级属性
+
+    private Property secondProperty;//二级属性
+
+    public QuesProperty() {
+
+    }
+
+    public QuesProperty(Property firstProperty, Property secondProperty, CourseProperty courseProperty) {
+        this.firstProperty = firstProperty;
+        this.secondProperty = secondProperty;
+        this.coursePropertyName = courseProperty.getName();
+    }
+
+    public Property getFirstProperty() {
+        return firstProperty;
+    }
+
+    public void setFirstProperty(Property firstProperty) {
+        this.firstProperty = firstProperty;
+    }
+
+    public Property getSecondProperty() {
+        return secondProperty;
+    }
+
+    public void setSecondProperty(Property secondProperty) {
+        this.secondProperty = secondProperty;
+    }
+
+    public String getCoursePropertyName() {
+        return coursePropertyName;
+    }
+
+    public void setCoursePropertyName(String coursePropertyName) {
+        this.coursePropertyName = coursePropertyName;
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((id == null) ? 0 : id.hashCode());
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        QuesProperty other = (QuesProperty) obj;
+        if (id == null) {
+            if (other.id != null)
+                return false;
+        } else if (!id.equals(other.id))
+            return false;
+        return true;
+    }
+
+}

+ 67 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/QuesResource.java

@@ -0,0 +1,67 @@
+package cn.com.qmth.dp.examcloud.oe.entity.question;
+
+import org.bson.types.ObjectId;
+
+import java.io.Serializable;
+
+/**
+ * Created by songyue on 16/12/27.
+ */
+public class QuesResource implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    private String resourceNo;//资源编号
+
+    private String resourceType;//资源类型(题干、答案等)
+
+    private String fileType;//文件类型(png、gif)
+
+    private int sort;//排序
+
+    private ObjectId fileId;//GridFs中存储地址
+
+    public String getResourceNo() {
+        return resourceNo;
+    }
+
+    public void setResourceNo(String resourceNo) {
+        this.resourceNo = resourceNo;
+    }
+
+    public String getResourceType() {
+        return resourceType;
+    }
+
+    public void setResourceType(String resourceType) {
+        this.resourceType = resourceType;
+    }
+
+    public int getSort() {
+        return sort;
+    }
+
+    public void setSort(int sort) {
+        this.sort = sort;
+    }
+
+    public String getFileType() {
+        return fileType;
+    }
+
+    public void setFileType(String fileType) {
+        this.fileType = fileType;
+    }
+
+    public ObjectId getFileId() {
+        return fileId;
+    }
+
+    public void setFileId(ObjectId fileId) {
+        this.fileId = fileId;
+    }
+
+    public QuesResource() {
+
+    }
+
+}

+ 436 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Question.java

@@ -0,0 +1,436 @@
+package cn.com.qmth.dp.examcloud.oe.entity.question;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.data.annotation.Transient;
+
+import cn.com.qmth.dp.examcloud.oe.enums.question.QuesStructType;
+import cn.com.qmth.examcloud.question.commons.core.question.AnswerType;
+
+/**
+ * Created by songyue on 16/12/27.
+ */
+public class Question extends MongoBaseEntity {
+
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 448493904015571457L;
+
+	private String quesBody;// 题干,默认为html
+
+    private String quesBodyWord;// 题干word
+
+    /**
+     * 试题wordpkg对象序列化数据
+     */
+    // private byte[] quesPkg;
+
+    /**
+     * 试题pkg路径Id
+     */
+    private String quesPkgPathId;
+
+    private String quesAnswer;// 答案,默认为html
+
+    private String quesAnswerWord;// 答案word
+
+    private String quesAnswerAnalysis;// 答案解析,默认为html
+
+    private String quesAnswerAnalysisWord;// 答案word解析
+
+    private List<QuesOption> quesOptions;// 试题选项
+    
+    private String quesOptionsWord;//试题选项word解析
+
+    private List<QuesResource> quesResource;// 试题resource(试题资源库集合,适用于多媒体介质试题)
+
+    private QuesStructType questionType;// 试题结构类型
+
+    private String createTime;// 创建时间
+
+    private String updateTime;// 更新时间
+
+    private List<Question> subQuestions;// 子题目,用于套题
+
+    private Double score;// 预设分值
+
+    @Deprecated
+    private String courseNo;// 课程CODE
+
+    @Deprecated
+    private String courseName;// 课程名称
+
+    @Deprecated
+    private String courseLevel;// 课程层次
+
+    @Deprecated
+    private String courseMajor;// 课程专业
+
+    private Course course;
+
+    private String orgId; // 机构ID
+
+    private Map<String, String> quesParams;// 试题属性
+
+    /**
+     * 是否包含音频
+     */
+    private Boolean hasAudio;
+
+    private List<QuestionAudio> questionAudios;
+
+    private String quesName;// 来源大题
+
+    private Integer number;
+
+    private Specialty specialty;
+
+    /*
+     * 作答类型
+     */
+    private AnswerType answerType;
+
+    /**
+     * 试题属性
+     */
+    private List<QuesProperty> quesProperties;// 关联多组属性
+
+    private Double difficultyDegree; // 难度系数
+
+    private Boolean publicity; // 公开度
+
+    private String difficulty;// 难度
+
+    private List<String> propertyGroup;// 试题属性组合(蓝图组卷使用)
+
+    /**
+     * 试题标签,用于K12做查询条件
+     */
+    private Map<String, String> properties;
+
+    /**
+     * 是否脱离试卷存在,如果为true,是K12的导入题
+     */
+    private Boolean isolated;
+
+    @Transient
+    private List<QuestionAudio> audioList;// 音频列表(复制试卷使用,不存数据)
+
+    public void addAudio(QuestionAudio audio) {
+        if (audioList == null) {
+            audioList = new ArrayList<>();
+        }
+        audioList.add(audio);
+    }
+
+    public List<QuestionAudio> getAudioList() {
+        return audioList;
+    }
+
+    public void setAudioList(List<QuestionAudio> audioList) {
+        this.audioList = audioList;
+    }
+
+    public String getQuesBody() {
+        return quesBody;
+    }
+
+    public void setQuesBody(String quesBody) {
+        this.quesBody = quesBody;
+    }
+
+    public String getQuesBodyWord() {
+        return quesBodyWord;
+    }
+
+    public void setQuesBodyWord(String quesBodyWord) {
+        this.quesBodyWord = quesBodyWord;
+    }
+
+    public String getQuesAnswer() {
+        return quesAnswer;
+    }
+
+    public void setQuesAnswer(String quesAnswer) {
+        this.quesAnswer = quesAnswer;
+    }
+
+    public String getQuesAnswerWord() {
+        return quesAnswerWord;
+    }
+
+    public void setQuesAnswerWord(String quesAnswerWord) {
+        this.quesAnswerWord = quesAnswerWord;
+    }
+
+    public String getQuesAnswerAnalysis() {
+        return quesAnswerAnalysis;
+    }
+
+    public void setQuesAnswerAnalysis(String quesAnswerAnalysis) {
+        this.quesAnswerAnalysis = quesAnswerAnalysis;
+    }
+
+    public String getQuesAnswerAnalysisWord() {
+        return quesAnswerAnalysisWord;
+    }
+
+    public void setQuesAnswerAnalysisWord(String quesAnswerAnalysisWord) {
+        this.quesAnswerAnalysisWord = quesAnswerAnalysisWord;
+    }
+
+    public List<QuesOption> getQuesOptions() {
+        return quesOptions;
+    }
+
+    public void setQuesOptions(List<QuesOption> quesOptions) {
+        this.quesOptions = quesOptions;
+    }
+
+    public List<QuesResource> getQuesResource() {
+        return quesResource;
+    }
+
+    public void setQuesResource(List<QuesResource> quesResource) {
+        this.quesResource = quesResource;
+    }
+
+    public QuesStructType getQuestionType() {
+        return questionType;
+    }
+
+    public void setQuestionType(QuesStructType questionType) {
+        this.questionType = questionType;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(String updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public List<Question> getSubQuestions() {
+        return subQuestions;
+    }
+
+    public void setSubQuestions(List<Question> subQuestions) {
+        this.subQuestions = subQuestions;
+    }
+
+    public Map<String, String> getQuesParams() {
+        return quesParams;
+    }
+
+    public void setQuesParams(Map<String, String> quesParams) {
+        this.quesParams = quesParams;
+    }
+
+    // public byte[] getQuesPkg() {
+    // return quesPkg;
+    // }
+    //
+    // public WordprocessingMLPackage getPkgObj() {
+    // if (this.quesPkg != null && this.quesPkg.length > 0) {
+    // return DocxProcessUtil.getPkg(this.quesPkg);
+    // } else {
+    // return null;
+    // }
+    //
+    // }
+    //
+    // public void setQuesPkg(byte[] quesPkg) {
+    // this.quesPkg = quesPkg;
+    // }
+
+    public Double getScore() {
+        return score;
+    }
+
+    public void setScore(Double score) {
+        this.score = score;
+    }
+
+    public String getCourseNo() {
+        return courseNo;
+    }
+
+    public void setCourseNo(String courseNo) {
+        this.courseNo = courseNo;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public String getOrgId() {
+        return orgId;
+    }
+
+    public void setOrgId(String orgId) {
+        this.orgId = orgId;
+    }
+
+    public String getCourseLevel() {
+        return courseLevel;
+    }
+
+    public void setCourseLevel(String courseLevel) {
+        this.courseLevel = courseLevel;
+    }
+
+    public String getCourseMajor() {
+        return courseMajor;
+    }
+
+    public void setCourseMajor(String courseMajor) {
+        this.courseMajor = courseMajor;
+    }
+
+    public Boolean getHasAudio() {
+        return hasAudio;
+    }
+
+    public void setHasAudio(Boolean hasAudio) {
+        this.hasAudio = hasAudio;
+    }
+
+    public List<QuestionAudio> getQuestionAudios() {
+        return questionAudios;
+    }
+
+    public void setQuestionAudios(List<QuestionAudio> questionAudios) {
+        this.questionAudios = questionAudios;
+    }
+
+    public Course getCourse() {
+        return course;
+    }
+
+    public void setCourse(Course course) {
+        this.course = course;
+    }
+
+    public String getQuesName() {
+        return quesName;
+    }
+
+    public void setQuesName(String quesName) {
+        this.quesName = quesName;
+    }
+
+    public Integer getNumber() {
+        return number;
+    }
+
+    public void setNumber(Integer number) {
+        this.number = number;
+    }
+
+    public Specialty getSpecialty() {
+        return specialty;
+    }
+
+    public void setSpecialty(Specialty specialty) {
+        this.specialty = specialty;
+    }
+
+    public String getQuesPkgPathId() {
+        return quesPkgPathId;
+    }
+
+    public void setQuesPkgPathId(String quesPkgPathId) {
+        this.quesPkgPathId = quesPkgPathId;
+    }
+
+    public Boolean getPublicity() {
+        return publicity;
+    }
+
+    public void setPublicity(Boolean publicity) {
+        this.publicity = publicity;
+    }
+
+    public List<QuesProperty> getQuesProperties() {
+        return quesProperties;
+    }
+
+    public void setQuesProperties(List<QuesProperty> quesProperties) {
+        this.quesProperties = quesProperties;
+    }
+
+    public Double getDifficultyDegree() {
+        return difficultyDegree;
+    }
+
+    public void setDifficultyDegree(Double difficultyDegree) {
+        this.difficultyDegree = difficultyDegree;
+    }
+
+    public String getDifficulty() {
+        return difficulty;
+    }
+
+    public void setDifficulty(String difficulty) {
+        this.difficulty = difficulty;
+    }
+
+    public List<String> getPropertyGroup() {
+        return propertyGroup;
+    }
+
+    public void setPropertyGroup(List<String> propertyGroup) {
+        this.propertyGroup = propertyGroup;
+    }
+
+    public Map<String, String> getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Map<String, String> properties) {
+        this.properties = properties;
+    }
+
+    public Boolean getIsolated() {
+        return isolated;
+    }
+
+    public void setIsolated(Boolean isolated) {
+        this.isolated = isolated;
+    }
+
+    public AnswerType getAnswerType() {
+        return answerType;
+    }
+
+    public void setAnswerType(AnswerType answerType) {
+        this.answerType = answerType;
+    }
+
+    
+    public String getQuesOptionsWord() {
+        return quesOptionsWord;
+    }
+
+    
+    public void setQuesOptionsWord(String quesOptionsWord) {
+        this.quesOptionsWord = quesOptionsWord;
+    }
+
+}

+ 119 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/QuestionAudio.java

@@ -0,0 +1,119 @@
+package cn.com.qmth.dp.examcloud.oe.entity.question;
+
+import java.util.Date;
+
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * @author chenken
+ * @date 2017年8月1日 上午10:56:23
+ * @company QMTH
+ * @description QuestionAudio.java
+ */
+public class QuestionAudio extends MongoBaseEntity {
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = 6995367410867753147L;
+
+	/**
+     * 试题ID
+     */
+    private String questionId;
+
+    /**
+     * 题干OR选项
+     private AudioPositionType audioPositionType;
+
+     */
+    /**
+     * 文件名称
+     */
+    private String fileName;
+    /**
+     * 文件后缀
+     */
+    private String fileSuffixes;
+    /**
+     * 存放路径
+     */
+    private String fileUrl;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 创建人
+     */
+    private String createUser;
+
+    public QuestionAudio() {
+
+    }
+
+    public QuestionAudio(String questionId, String fileName, String fileUrl) {
+        this.questionId = questionId;
+        this.fileName = fileName;
+        if (StringUtils.isNotBlank(fileName)) {
+            this.fileSuffixes = fileName.substring(fileName.indexOf(".") + 1, fileName.length());
+        }
+        this.fileUrl = fileUrl;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getQuestionId() {
+        return questionId;
+    }
+
+    public void setQuestionId(String questionId) {
+        this.questionId = questionId;
+    }
+
+    public String getFileName() {
+        return fileName;
+    }
+
+    public void setFileName(String fileName) {
+        this.fileName = fileName;
+    }
+
+    public String getFileUrl() {
+        return fileUrl;
+    }
+
+    public void setFileUrl(String fileUrl) {
+        this.fileUrl = fileUrl;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getCreateUser() {
+        return createUser;
+    }
+
+    public void setCreateUser(String createUser) {
+        this.createUser = createUser;
+    }
+
+    public String getFileSuffixes() {
+        return fileSuffixes;
+    }
+
+    public void setFileSuffixes(String fileSuffixes) {
+        this.fileSuffixes = fileSuffixes;
+    }
+
+}

+ 1 - 1
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/entity/Specialty.java → src/main/java/cn/com/qmth/dp/examcloud/oe/entity/question/Specialty.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.entity;
+package cn.com.qmth.dp.examcloud.oe.entity.question;
 
 
 import java.util.Date;
 import java.util.Date;
 
 

+ 1 - 1
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/PaperStatus.java → src/main/java/cn/com/qmth/dp/examcloud/oe/enums/question/PaperStatus.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.dp.examcloud.oe.modules.export_questions_count;
+package cn.com.qmth.dp.examcloud.oe.enums.question;
 
 
 /**
 /**
  * Created by songyue on 17/3/15.
  * Created by songyue on 17/3/15.

+ 1 - 1
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/PaperType.java → src/main/java/cn/com/qmth/dp/examcloud/oe/enums/question/PaperType.java

@@ -1,4 +1,4 @@
-package cn.com.qmth.dp.examcloud.oe.modules.export_questions_count;
+package cn.com.qmth.dp.examcloud.oe.enums.question;
 
 
 /**
 /**
  * Created by songyue on 17/3/15.
  * Created by songyue on 17/3/15.

+ 77 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/enums/question/QuesStructType.java

@@ -0,0 +1,77 @@
+package cn.com.qmth.dp.examcloud.oe.enums.question;
+
+public enum QuesStructType {
+
+    /**
+     * 单选
+     */
+    SINGLE_ANSWER_QUESTION(1L, "单选", true, false),
+    /**
+     * 多选
+     */
+    MULTIPLE_ANSWER_QUESTION(2L, "多选", true, false),
+    /**
+     * 判断
+     */
+    BOOL_ANSWER_QUESTION(3L, "判断", true, false),
+    /**
+     * 填空
+     */
+    FILL_BLANK_QUESTION(4L, "填空", false, false),
+    /**
+     * 问答
+     */
+    TEXT_ANSWER_QUESTION(5L, "问答", false, false),
+    /**
+     * 套题
+     */
+    NESTED_ANSWER_QUESTION(6L, "套题", false, true);
+
+    private Long id;
+    private String name;
+    private boolean objective;//是否是客观题
+    private boolean combline;//是否是组合题
+
+    QuesStructType(Long id, String name, boolean objective, boolean combline) {
+        this.id = id;
+        this.name = name;
+        this.objective = objective;
+        this.combline = combline;
+    }
+
+    /**
+     * 通过ID获取试题类型
+     *
+     * @param id
+     * @return
+     */
+    public static QuesStructType getQuesStructTypeById(Long id) {
+        for (QuesStructType type : QuesStructType.values()) {
+            if (id.equals(type.getId())) {
+                return type;
+            }
+        }
+        return null;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public boolean isObjective() {
+        return objective;
+    }
+
+    public boolean isCombline() {
+        return combline;
+    }
+
+    public String toString() {
+        return getName();
+    }
+
+}

+ 191 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_abnormal_boolquestion/ExportAbnormalBoolQuestionCountService.java

@@ -0,0 +1,191 @@
+package cn.com.qmth.dp.examcloud.oe.modules.export_abnormal_boolquestion;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.bson.types.ObjectId;
+import org.springframework.beans.factory.annotation.Autowired;
+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.dp.examcloud.oe.entity.question.Paper;
+import cn.com.qmth.dp.examcloud.oe.entity.question.PaperDetail;
+import cn.com.qmth.dp.examcloud.oe.entity.question.PaperDetailUnit;
+import cn.com.qmth.dp.examcloud.oe.entity.question.Question;
+import cn.com.qmth.dp.examcloud.oe.excel.ExportUtils;
+
+/**
+ * 错误的判断题小题数量
+ * 
+ * @author chenken
+ *
+ */
+@Service
+public class ExportAbnormalBoolQuestionCountService {
+	private static Map<String, String> orgMap = new HashMap<String, String>();
+	static {
+		orgMap.put("0", "启明泰和");
+		orgMap.put("1", "石油大学(北京)");
+		orgMap.put("115", "测试");
+		orgMap.put("135", "山东大学");
+		orgMap.put("136", "电子科技大学");
+		orgMap.put("137", "陕西师范大学");
+		orgMap.put("302", "天津大学");
+		orgMap.put("303", "测试大学");
+		orgMap.put("371", "西安交通大学");
+		orgMap.put("372", "武汉理工大学");
+		orgMap.put("718", "西南交通大学");
+		orgMap.put("1065", "华中科技大学");
+		orgMap.put("1226", "河南优特");
+		orgMap.put("1251", "湖北交通职业技术学院");
+		orgMap.put("1252", "武汉软件工程职业学院");
+		orgMap.put("1256", "华南师范大学");
+		orgMap.put("1347", "华中师范大学");
+		orgMap.put("1348", "福建师范大学");
+		orgMap.put("1350", "优特教育");
+		orgMap.put("1353", "奥鹏教育");
+		orgMap.put("1384", "西南财经大学");
+		orgMap.put("1385", "北京师范大学");
+		orgMap.put("1387", "中国地质大学(北京)");
+		orgMap.put("1388", "北京开放大学");
+		orgMap.put("1394", "西安电子科技大学");
+		orgMap.put("1407", "重庆大学");
+		orgMap.put("1408", "中国医科大学(奥鹏)");
+		orgMap.put("1562", "北京交通大学(奥鹏)");
+		orgMap.put("1627", "中国地质大学(武汉)");
+		orgMap.put("1680", "南开大学(奥鹏)");
+		orgMap.put("1681", "东北师范大学(奥鹏)");
+		orgMap.put("1734", "北京航空航天大学(奥鹏)");
+		orgMap.put("1745", "中国石油大学(华东)");
+		orgMap.put("1759", "教务平台(全日制)");
+		orgMap.put("1769", "地质大学(武汉)入学");
+		orgMap.put("1775", "演示-ACC");
+		orgMap.put("16197", "河南应用技术职业学院");
+		orgMap.put("16198", "中国地质大学(北京)入学");
+		orgMap.put("16358", "武汉第二轻工业学校");
+		orgMap.put("16575", "印刷机构");
+		orgMap.put("16801", "启明内考");
+		orgMap.put("16816", "华东师范大学");
+		orgMap.put("16915", "中南大学");
+		orgMap.put("16923", "IPECC-PS小学");
+		orgMap.put("16924", "IEPCC-JHS中学");
+		orgMap.put("17068", "广东开放大学");
+		orgMap.put("17129", "郑州市第四中学");
+		orgMap.put("17141", "好学优课");
+		orgMap.put("17144", "河南汇龙");
+		orgMap.put("17172", "中央音乐学院");
+		orgMap.put("17196", "江汉大学");
+		orgMap.put("17202", "武汉大学");
+		orgMap.put("17332", "华南理工大学-继教院");
+		orgMap.put("17349", "华南理工大学-本科");
+		orgMap.put("17351", "云南开放大学");
+		orgMap.put("17354", "湖北美术学院");
+		orgMap.put("17421", "河南财经政法大学");
+		orgMap.put("17426", "北京学测教育科技有限公司");
+		orgMap.put("17430", "华东师大国际合作交流中心");
+		orgMap.put("17439", "齐鲁医药学院");
+		orgMap.put("17440", "华中师范大学教务处");
+		orgMap.put("17441", "中央美术学院");
+		orgMap.put("17457", "青岛滨海学院");
+		orgMap.put("17458", "山东协和学院");
+		orgMap.put("17459", "齐鲁师范学院");
+		orgMap.put("17504", "潍坊理工学院");
+		orgMap.put("17506", "赣州职业技术学院");
+		orgMap.put("17510", "山东管理学院");
+		orgMap.put("17511", "山东现代学院");
+		orgMap.put("17512", "青岛港湾职业技术学院");
+		orgMap.put("17538", "潍坊医学院");
+		orgMap.put("17542", "北京邮电大学");
+		orgMap.put("17672", "中央民族大学");
+		orgMap.put("17673", "河南大学");
+		orgMap.put("17674", "北京语言大学");
+		orgMap.put("17682", "大连交通大学");
+		orgMap.put("17710", "中国艺术研究院");
+		orgMap.put("17781", "深圳第三职业技术学校");
+		orgMap.put("17782", "上海大学");
+		orgMap.put("17796", "中国社会科学院大学");
+		orgMap.put("17797", "西安交通大学入学考试");
+		orgMap.put("17798", "福建师范大学-学位");
+		orgMap.put("17808", "福建师范课程");
+		orgMap.put("17810", "华中师范大学心理学院");
+		orgMap.put("17905", "华中师范大学城环学院");
+		orgMap.put("17913", "深圳第三职业技术学校-入学");
+		orgMap.put("17919", "启明_测试");
+		orgMap.put("17933", "中央美术学院附属中等美术学校(央美附中)");
+		orgMap.put("18000", "南京大学网院");
+		orgMap.put("18005", "上海大学美术学院");
+		orgMap.put("18011", "齐鲁医药学院继续教育中心");
+		orgMap.put("18108", "四川农业大学");
+		orgMap.put("18410", "清华大学美术学院");
+		orgMap.put("18414", "四川农业大学wj");
+		orgMap.put("18417", "安徽邮电职业技术学院");
+		orgMap.put("18420", "中央美术学院继续教育学院");
+		orgMap.put("18428", "北京奥鹏远程教育中心有限公司");
+		orgMap.put("18462", "河南济源职业技术学院");
+
+	}
+	@Autowired
+	MongoTemplate mongoTemplate;
+
+	public void start() {
+		Date start = new Date();
+		Query query = new Query();
+		query.addCriteria(Criteria.where("questionType").is("BOOL_ANSWER_QUESTION").and("quesAnswer").exists(true).nin("正确","错误","","<p></p>"));
+		List<Question> quess=mongoTemplate.find(query, Question.class, "question");
+		if (quess != null && quess.size() > 0) {
+			List<RetDto> ret = new ArrayList<RetDto>();
+			System.out.println("total:" + quess.size());
+			int index = 0;
+			for (Question ques : quess) {
+				index++;
+				System.out.println("index:" + index);
+				RetDto dto=new RetDto(ques.getOrgId(), ques.getCourse().getName(), ques.getCourse().getCode(), ques.getQuesAnswer());
+				Query query2 = new Query();
+				query2.addCriteria(Criteria.where("question.$id").is(new ObjectId(ques.getId())));
+				PaperDetailUnit u=mongoTemplate.findOne(query2, PaperDetailUnit.class, "paperDetailUnit");
+				dto.setNumber(u.getNumber());
+				dto.setPaperName(u.getPaper().getName());
+				dto.setQuesName(u.getPaperDetail().getName());
+				dto.setOrgName(orgMap.get(ques.getOrgId()));
+				ret.add(dto);
+			}
+			FileOutputStream fos = null;
+			try {
+				File file = new File("d:/ret.xlsx");
+				if (file.exists()) {
+					file.delete();
+				}
+				file.createNewFile();
+				fos = new FileOutputStream(file);
+				ExportUtils.makeExcel(RetDto.class, ret, fos);
+			} catch (Exception e) {
+				e.printStackTrace();
+			} finally {
+				if (fos != null) {
+					try {
+						fos.close();
+					} catch (IOException e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+				}
+			}
+		}else {
+			System.out.println("total:0");
+		}
+		Date end = new Date();
+		System.out.println("*****************end:" + ((end.getTime() - start.getTime()) / (1000 * 60)) + "分钟");
+	}
+
+
+}

+ 79 - 0
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_abnormal_boolquestion/RetDto.java

@@ -0,0 +1,79 @@
+package cn.com.qmth.dp.examcloud.oe.modules.export_abnormal_boolquestion;
+
+import cn.com.qmth.dp.examcloud.oe.excel.ExcelProperty;
+
+public class RetDto {
+	@ExcelProperty(name = "学校ID", width = 40, index = 1)
+	private String orgId;
+	@ExcelProperty(name = "学校名称", width = 40, index = 2)
+	private String orgName;
+	@ExcelProperty(name = "课程名称", width = 40, index = 3)
+	private String courseName;
+	@ExcelProperty(name = "课程代码", width = 40, index = 4)
+	private String courseCode;
+	@ExcelProperty(name = "试卷名称", width = 40, index = 5)
+	private String paperName;
+	@ExcelProperty(name = "大题名称", width = 40, index = 6)
+	private String quesName;
+	@ExcelProperty(name = "小题号", width = 40, index = 7)
+	private Integer number;
+	@ExcelProperty(name = "答案内容", width = 40, index = 8)
+	private String answer;
+	public String getCourseName() {
+		return courseName;
+	}
+	public void setCourseName(String courseName) {
+		this.courseName = courseName;
+	}
+	public String getCourseCode() {
+		return courseCode;
+	}
+	public void setCourseCode(String courseCode) {
+		this.courseCode = courseCode;
+	}
+	public String getQuesName() {
+		return quesName;
+	}
+	public void setQuesName(String quesName) {
+		this.quesName = quesName;
+	}
+	public String getOrgId() {
+		return orgId;
+	}
+	public void setOrgId(String orgId) {
+		this.orgId = orgId;
+	}
+	public String getOrgName() {
+		return orgName;
+	}
+	public void setOrgName(String orgName) {
+		this.orgName = orgName;
+	}
+	public String getPaperName() {
+		return paperName;
+	}
+	public void setPaperName(String paperName) {
+		this.paperName = paperName;
+	}
+	public RetDto(String orgId, String courseName, String courseCode, String answer) {
+		super();
+		this.orgId = orgId;
+		this.courseName = courseName;
+		this.courseCode = courseCode;
+		this.answer = answer;
+	}
+	public Integer getNumber() {
+		return number;
+	}
+	public void setNumber(Integer number) {
+		this.number = number;
+	}
+	public String getAnswer() {
+		return answer;
+	}
+	public void setAnswer(String answer) {
+		this.answer = answer;
+	}
+	
+	
+}

+ 2 - 2
src/main/java/cn/com/qmth/dp/examcloud/oe/modules/export_questions_count/ExportQuestionsCountService.java

@@ -21,9 +21,9 @@ import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import cn.com.qmth.dp.examcloud.oe.entity.question.Paper;
+import cn.com.qmth.dp.examcloud.oe.entity.question.PaperDetail;
 import cn.com.qmth.dp.examcloud.oe.excel.ExportUtils;
 import cn.com.qmth.dp.examcloud.oe.excel.ExportUtils;
-import cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.entity.Paper;
-import cn.com.qmth.dp.examcloud.oe.modules.export_questions_count.entity.PaperDetail;
 
 
 /**大题下小题数量
 /**大题下小题数量
  * @author chenken
  * @author chenken