Przeglądaj źródła

提交通用题库BUG

chenken 7 lat temu
rodzic
commit
89312cd353

+ 11 - 12
cqb-paper/src/main/java/com/qmth/cqb/paper/model/PaperDetailUnit.java

@@ -51,6 +51,17 @@ public class PaperDetailUnit implements Serializable, Comparable<PaperDetailUnit
     private String createTime;// 创建时间
     
     private PaperType paperType;
+    
+    public PaperDetailUnit() {}
+    
+    public PaperDetailUnit(Paper paper,PaperDetail paperDetail,Question question) {
+        this.paper = paper;
+        this.questionType = question.getQuestionType();
+        this.question = question;
+        this.createTime = CommonUtils.getCurDateTime();
+        this.paperDetail = paperDetail;
+        this.score = 0d;
+    }
 
     public String getId() {
         return id;
@@ -194,18 +205,6 @@ public class PaperDetailUnit implements Serializable, Comparable<PaperDetailUnit
         }
     }
 
-    public PaperDetailUnit() {
-    }
-    
-    public PaperDetailUnit(Paper paper,PaperDetail paperDetail,Question question) {
-        this.paper = paper;
-        this.questionType = question.getQuestionType();
-        this.question = question;
-        this.createTime = CommonUtils.getCurDateTime();
-        this.paperDetail = paperDetail;
-        this.score = 0d;
-    }
-
 	@Override
     public int compareTo(PaperDetailUnit unit) {
         /*if (unit != null) {

+ 8 - 48
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperDetailService.java

@@ -2,38 +2,20 @@ package com.qmth.cqb.paper.service;
 
 import java.util.List;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.qmth.cqb.paper.dao.PaperDetailRepo;
-import com.qmth.cqb.paper.dao.PaperRepo;
 import com.qmth.cqb.paper.model.Paper;
 import com.qmth.cqb.paper.model.PaperDetail;
 import com.qmth.cqb.paper.model.PaperDetailUnit;
 
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 
-@Service
-public class PaperDetailService {
-
-    @Autowired
-    PaperDetailRepo paperDetailRepo;
-
-    @Autowired
-    PaperDetailUnitService unitService;
-
-    @Autowired
-    PaperRepo paperRepo;
-
+public interface PaperDetailService {
     /**
      * 根据Id获得对应所有小题
      * 
      * @param id
      * @return
      */
-    public List<PaperDetailUnit> getUnitsByPaperDetailId(String id) {
-        return unitService.getUnitsByPaperDetail(paperDetailRepo.findOne(id));
-    }
+    public List<PaperDetailUnit> getUnitsByPaperDetailId(String id);
 
     /**
      * 按ID查询大题
@@ -41,9 +23,7 @@ public class PaperDetailService {
      * @param id
      * @return
      */
-    public PaperDetail findById(String id) {
-        return paperDetailRepo.findOne(id);
-    }
+    public PaperDetail findById(String id);
 
     /**
      * 保存大题
@@ -51,13 +31,7 @@ public class PaperDetailService {
      * @param pd
      * @return
      */
-    public PaperDetail savePaperDetail(PaperDetail pd, String paperId, AccessUser user) {
-        Paper paper = paperRepo.findOne(paperId);
-        paper.setLastModifyName(user.getName());
-        paper = paperRepo.save(paper);
-        pd.setPaper(paper);
-        return paperDetailRepo.save(pd);
-    }
+    public PaperDetail savePaperDetail(PaperDetail pd, String paperId, AccessUser user);
 
     /**
      * 删除大题
@@ -65,9 +39,7 @@ public class PaperDetailService {
      * @param id
      * @return
      */
-    public void deletePaperDetail(String id) {
-        paperDetailRepo.delete(id);
-    }
+    public void deletePaperDetail(String id);
 
     /**
      * 查询同一个试卷对象对应大题
@@ -75,31 +47,19 @@ public class PaperDetailService {
      * @param paper
      * @return
      */
-    public List<PaperDetail> getPaperDetailsByPaper(Paper paper) {
-        return paperDetailRepo.findByPaperOrderByNumber(paper);
-    }
+    public List<PaperDetail> getPaperDetailsByPaper(Paper paper);
 
     /**
      * 删除试卷大题
      * 
      * @param paper
      */
-    public void deletePaperDetailsByPaper(Paper paper) {
-        List<PaperDetail> details = getPaperDetailsByPaper(paper);
-        unitService.deleteUnitsByPaperDetails(details);
-        paperDetailRepo.delete(details);
-    }
+    public void deletePaperDetailsByPaper(Paper paper);
 
     /**
      * 批量删除试卷大题
      * 
      * @param papers
      */
-    public void deletePaperDetailsByPapers(List<Paper> papers) {
-        for (Paper paper : papers) {
-            List<PaperDetail> details = getPaperDetailsByPaper(paper);
-            unitService.deleteUnitsByPaperDetails(details);
-            paperDetailRepo.delete(details);
-        }
-    }
+    public void deletePaperDetailsByPapers(List<Paper> papers);
 }

+ 23 - 98
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperDetailUnitService.java

@@ -1,40 +1,24 @@
 package com.qmth.cqb.paper.service;
 
-import java.util.ArrayList;
 import java.util.List;
 
-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 com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
 import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
 import com.qmth.cqb.paper.model.Paper;
 import com.qmth.cqb.paper.model.PaperDetail;
 import com.qmth.cqb.paper.model.PaperDetailUnit;
 import com.qmth.cqb.question.model.Question;
-import com.qmth.cqb.question.service.QuesService;
 import com.qmth.cqb.utils.enums.PaperType;
 
-import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
 import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
 
-@Service
-public class PaperDetailUnitService {
-
-    @Autowired
-    PaperDetailUnitRepo paperDetailUnitRepo;
-
-    @Autowired
-    QuesService quesService;
-
-    @Autowired
-    PaperService paperService;
-    
-    @Autowired
-    MongoTemplate mongoTemplate;
+/**
+ * 
+ * @author  	chenken
+ * @date    	2017年9月13日 上午11:32:00
+ * @company 	QMTH
+ * @description PaperDetailUnitService.java
+ */
+public interface PaperDetailUnitService {
 
     /**
      * 根据Id获得对应的试题对象
@@ -42,9 +26,7 @@ public class PaperDetailUnitService {
      * @param id
      * @return
      */
-    public Question getQuestionByPaperDetailUnitId(String id) {
-        return paperDetailUnitRepo.findOne(id).getQuestion();
-    }
+    public Question getQuestionByPaperDetailUnitId(String id);
 
     /**
      * 按ID查询小题
@@ -52,9 +34,7 @@ public class PaperDetailUnitService {
      * @param id
      * @return
      */
-    public PaperDetailUnit findById(String id) {
-        return paperDetailUnitRepo.findOne(id);
-    }
+    public PaperDetailUnit findById(String id);
 
     /**
      * 保存小题
@@ -62,45 +42,7 @@ public class PaperDetailUnitService {
      * @param pduExp
      * @return
      */
-    public PaperDetailUnit savePaperDetailUnit(PaperDetailUnitExp pduExp, AccessUser user) {
-        PaperDetailUnit oldPdu = paperDetailUnitRepo.findOne(pduExp.getId());
-        if (oldPdu.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {
-            if (pduExp.getQuestion().getId().equals(oldPdu.getQuestion().getId())) {
-                // 更新对象为套题本身
-                oldPdu.setQuestion(quesService.saveQues(pduExp.getQuestion()));
-            } else {
-                List<Double> subScoreList = oldPdu.getSubScoreList();
-                int size = oldPdu.getQuestion().getSubQuestions().size();
-                boolean match = false;
-                // 判断更新的对象是哪个子题
-                for (int index = 1; index <= size; index++) {
-                    // 检查子题分数,确保没有错误数据
-                    if (subScoreList.size() < index) {
-                        subScoreList.add(0d);
-                    }
-                    Question sub = oldPdu.getQuestion().getSubQuestions().get(index - 1);
-                    if (pduExp.getQuestion().getId().equals(sub.getId())) {
-                        // 匹配到子题
-                        subScoreList.set(index - 1, pduExp.getScore());
-                        oldPdu.getQuestion().getSubQuestions().set(index - 1, pduExp.getQuestion());
-                        match = true;
-                    }
-                }
-                if (match) {
-                    oldPdu.setQuestion(quesService.saveQues(oldPdu.getQuestion()));
-                }
-                // 更新套题unit当前总分与子题分数
-                oldPdu.setSubScoreList(subScoreList);
-            }
-        } else {
-            oldPdu.setQuestion(quesService.saveQues(pduExp.getQuestion()));
-            oldPdu.setScore(pduExp.getScore());
-        }
-        // 同时要跟新小题里面的Qustion对象
-        oldPdu = paperDetailUnitRepo.save(oldPdu);
-        paperService.formatPaper(oldPdu.getPaper(), user);
-        return oldPdu;
-    }
+    public PaperDetailUnit savePaperDetailUnit(PaperDetailUnitExp pduExp, AccessUser user);
 
     /**
      * 删除小题
@@ -108,11 +50,7 @@ public class PaperDetailUnitService {
      * @param id
      * @return
      */
-    public void deletePaperDetailUnit(String id, AccessUser user) {
-        Paper paper = paperDetailUnitRepo.findOne(id).getPaper();
-        paperDetailUnitRepo.delete(id);
-        paperService.formatPaper(paper, user);
-    }
+    public void deletePaperDetailUnit(String id, AccessUser user);
 
     /**
      * 根据大题查小题
@@ -120,41 +58,28 @@ public class PaperDetailUnitService {
      * @param paperDetail
      * @return
      */
-    public List<PaperDetailUnit> getUnitsByPaperDetail(PaperDetail paperDetail) {
-        return paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetail);
-    }
+    public List<PaperDetailUnit> getUnitsByPaperDetail(PaperDetail paperDetail);
 
     /**
      * 根据大题集合删除小题
      *
      * @param paperDetails
      */
-    public void deleteUnitsByPaperDetails(List<PaperDetail> paperDetails) {
-        List<PaperDetailUnit> units = new ArrayList<PaperDetailUnit>();
-        for (PaperDetail pd : paperDetails) {
-            units.addAll(getUnitsByPaperDetail(pd));
-        }
-        paperDetailUnitRepo.delete(units);
-    }
+    public void deleteUnitsByPaperDetails(List<PaperDetail> paperDetails);
     
-    public List<PaperDetailUnit> findByQuestionAndPaperTypes(Question question,List<PaperType> paperTypes){
-    	Query query = new Query();
-    	query.addCriteria(Criteria.where("paperType").in(paperTypes));
-    	query.addCriteria(Criteria.where("question").is(question));
-    	return this.mongoTemplate.find(query, PaperDetailUnit.class);
-    }
+    public List<PaperDetailUnit> findByQuestionAndPaperTypes(Question question,List<PaperType> paperTypes);
     
     /**
      * 查询大题下的小题
      * 按number升序或降序排列,取第一个
      * @return
      */
-    public PaperDetailUnit findTopOrderByNumber(PaperDetail paperDetail,String orderType){
-    	if("ASC".equals(orderType)){
-    		return paperDetailUnitRepo.findTopByPaperDetailOrderByNumberAsc(paperDetail);
-    	}else if("DESC".equals(orderType)){
-    		return paperDetailUnitRepo.findTopByPaperDetailOrderByNumberDesc(paperDetail);
-    	}
-		return null;
-    }
+    public PaperDetailUnit findTopOrderByNumber(PaperDetail paperDetail,String orderType);
+    
+    /**
+     * 按试卷 查询 小题,并将小题按number,createTime排序
+     * @param paper
+     * @return
+     */
+    public List<PaperDetailUnit> findByPaperAndSort(Paper paper);
 }

+ 0 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/service/PaperStructService.java

@@ -6,11 +6,9 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
-import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
 import com.qmth.cqb.paper.dao.QuesTypeNameRepo;
 import com.qmth.cqb.paper.dto.QuesNameDto;
 import com.qmth.cqb.paper.model.*;
-import com.qmth.cqb.utils.enums.PaperType;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.domain.*;

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

@@ -228,12 +228,13 @@ public class ExtractConfigFileServiceImpl implements ExtractConfigFileService {
 							List<QuestionAudio> questionAudios = questionAudioService.findQuestionAudiosByQuestionId(unit.getQuestion().getId());
 							for(QuestionAudio audio:questionAudios){
 								//名称与题号保持一致
-								String fileName = questionNumber+audio.getFileName().substring(1, audio.getFileName().length());
+								int index = audio.getFileName().indexOf("_");
+								String fileName = questionNumber+audio.getFileName().substring(index, audio.getFileName().length());
 								String audioFileName = examFile.getFileName().split("\\.")[0]+"_"+fileName;
 								UpYun upyun = new UpYun(bucketName,userName,password);
 								File file = new File(downloadDirectory+File.separator+audioFileName);
 								upyun.readFile(audio.getFileUrl(), file);
-								System.out.println("音频下载完成后返回");
+								logger.info(audioFileName+"音频下载完成后返回");
 							}
 						}
 					}

+ 114 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/PaperDetailServiceImpl.java

@@ -0,0 +1,114 @@
+package com.qmth.cqb.paper.service.impl;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.paper.dao.PaperDetailRepo;
+import com.qmth.cqb.paper.dao.PaperRepo;
+import com.qmth.cqb.paper.model.Paper;
+import com.qmth.cqb.paper.model.PaperDetail;
+import com.qmth.cqb.paper.model.PaperDetailUnit;
+import com.qmth.cqb.paper.service.PaperDetailService;
+import com.qmth.cqb.paper.service.PaperDetailUnitService;
+
+/**
+ * @author  	chenken
+ * @date    	2017年9月13日 上午11:32:33
+ * @company 	QMTH
+ * @description PaperDetailServiceImpl.java
+ */
+@Service("paperDetailService")
+public class PaperDetailServiceImpl implements PaperDetailService{
+
+    @Autowired
+    PaperDetailRepo paperDetailRepo;
+
+    @Autowired
+    PaperDetailUnitService unitService;
+
+    @Autowired
+    PaperRepo paperRepo;
+
+    /**
+     * 根据Id获得对应所有小题
+     * 
+     * @param id
+     * @return
+     */
+    public List<PaperDetailUnit> getUnitsByPaperDetailId(String id) {
+        return unitService.getUnitsByPaperDetail(paperDetailRepo.findOne(id));
+    }
+
+    /**
+     * 按ID查询大题
+     * 
+     * @param id
+     * @return
+     */
+    public PaperDetail findById(String id) {
+        return paperDetailRepo.findOne(id);
+    }
+
+    /**
+     * 保存大题
+     * 
+     * @param pd
+     * @return
+     */
+    public PaperDetail savePaperDetail(PaperDetail pd, String paperId, AccessUser user) {
+        Paper paper = paperRepo.findOne(paperId);
+        paper.setLastModifyName(user.getName());
+        paper = paperRepo.save(paper);
+        pd.setPaper(paper);
+        return paperDetailRepo.save(pd);
+    }
+
+    /**
+     * 删除大题
+     * 
+     * @param id
+     * @return
+     */
+    public void deletePaperDetail(String id) {
+        paperDetailRepo.delete(id);
+    }
+
+    /**
+     * 查询同一个试卷对象对应大题
+     * 
+     * @param paper
+     * @return
+     */
+    public List<PaperDetail> getPaperDetailsByPaper(Paper paper) {
+        return paperDetailRepo.findByPaperOrderByNumber(paper);
+    }
+
+    /**
+     * 删除试卷大题
+     * 
+     * @param paper
+     */
+    public void deletePaperDetailsByPaper(Paper paper) {
+        List<PaperDetail> details = getPaperDetailsByPaper(paper);
+        unitService.deleteUnitsByPaperDetails(details);
+        paperDetailRepo.delete(details);
+    }
+
+    /**
+     * 批量删除试卷大题
+     * 
+     * @param papers
+     */
+    public void deletePaperDetailsByPapers(List<Paper> papers) {
+        for (Paper paper : papers) {
+            List<PaperDetail> details = getPaperDetailsByPaper(paper);
+            unitService.deleteUnitsByPaperDetails(details);
+            paperDetailRepo.delete(details);
+        }
+    }
+}
+

+ 185 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/PaperDetailUnitServiceImpl.java

@@ -0,0 +1,185 @@
+package com.qmth.cqb.paper.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Sort;
+import org.springframework.data.domain.Sort.Direction;
+import org.springframework.data.domain.Sort.Order;
+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.examcloud.common.dto.question.enums.QuesStructType;
+import cn.com.qmth.examcloud.common.uac.entity.AccessUser;
+
+import com.qmth.cqb.paper.dao.PaperDetailUnitRepo;
+import com.qmth.cqb.paper.dto.PaperDetailUnitExp;
+import com.qmth.cqb.paper.model.Paper;
+import com.qmth.cqb.paper.model.PaperDetail;
+import com.qmth.cqb.paper.model.PaperDetailUnit;
+import com.qmth.cqb.paper.service.PaperDetailUnitService;
+import com.qmth.cqb.paper.service.PaperService;
+import com.qmth.cqb.question.model.Question;
+import com.qmth.cqb.question.service.QuesService;
+import com.qmth.cqb.utils.enums.PaperType;
+
+/**
+ * @author  	chenken
+ * @date    	2017年9月13日 上午11:29:56
+ * @company 	QMTH
+ * @description PaperDetailUnitServiceImpl.java
+ */
+@Service("paperDetailUnitService")
+public class PaperDetailUnitServiceImpl implements PaperDetailUnitService{
+
+    @Autowired
+    PaperDetailUnitRepo paperDetailUnitRepo;
+
+    @Autowired
+    QuesService quesService;
+
+    @Autowired
+    PaperService paperService;
+    
+    @Autowired
+    MongoTemplate mongoTemplate;
+
+    /**
+     * 根据Id获得对应的试题对象
+     *
+     * @param id
+     * @return
+     */
+    public Question getQuestionByPaperDetailUnitId(String id) {
+        return paperDetailUnitRepo.findOne(id).getQuestion();
+    }
+
+    /**
+     * 按ID查询小题
+     *
+     * @param id
+     * @return
+     */
+    public PaperDetailUnit findById(String id) {
+        return paperDetailUnitRepo.findOne(id);
+    }
+
+    /**
+     * 保存小题
+     *
+     * @param pduExp
+     * @return
+     */
+    public PaperDetailUnit savePaperDetailUnit(PaperDetailUnitExp pduExp, AccessUser user) {
+        PaperDetailUnit oldPdu = paperDetailUnitRepo.findOne(pduExp.getId());
+        if (oldPdu.getQuestionType() == QuesStructType.NESTED_ANSWER_QUESTION) {
+            if (pduExp.getQuestion().getId().equals(oldPdu.getQuestion().getId())) {
+                // 更新对象为套题本身
+                oldPdu.setQuestion(quesService.saveQues(pduExp.getQuestion()));
+            } else {
+                List<Double> subScoreList = oldPdu.getSubScoreList();
+                int size = oldPdu.getQuestion().getSubQuestions().size();
+                boolean match = false;
+                // 判断更新的对象是哪个子题
+                for (int index = 1; index <= size; index++) {
+                    // 检查子题分数,确保没有错误数据
+                    if (subScoreList.size() < index) {
+                        subScoreList.add(0d);
+                    }
+                    Question sub = oldPdu.getQuestion().getSubQuestions().get(index - 1);
+                    if (pduExp.getQuestion().getId().equals(sub.getId())) {
+                        // 匹配到子题
+                        subScoreList.set(index - 1, pduExp.getScore());
+                        oldPdu.getQuestion().getSubQuestions().set(index - 1, pduExp.getQuestion());
+                        match = true;
+                    }
+                }
+                if (match) {
+                    oldPdu.setQuestion(quesService.saveQues(oldPdu.getQuestion()));
+                }
+                // 更新套题unit当前总分与子题分数
+                oldPdu.setSubScoreList(subScoreList);
+            }
+        } else {
+            oldPdu.setQuestion(quesService.saveQues(pduExp.getQuestion()));
+            oldPdu.setScore(pduExp.getScore());
+        }
+        // 同时要跟新小题里面的Qustion对象
+        oldPdu = paperDetailUnitRepo.save(oldPdu);
+        paperService.formatPaper(oldPdu.getPaper(), user);
+        return oldPdu;
+    }
+
+    /**
+     * 删除小题
+     *
+     * @param id
+     * @return
+     */
+    public void deletePaperDetailUnit(String id, AccessUser user) {
+        Paper paper = paperDetailUnitRepo.findOne(id).getPaper();
+        paperDetailUnitRepo.delete(id);
+        paperService.formatPaper(paper, user);
+    }
+
+    /**
+     * 根据大题查小题
+     *
+     * @param paperDetail
+     * @return
+     */
+    public List<PaperDetailUnit> getUnitsByPaperDetail(PaperDetail paperDetail) {
+        return paperDetailUnitRepo.findByPaperDetailOrderByNumber(paperDetail);
+    }
+
+    /**
+     * 根据大题集合删除小题
+     *
+     * @param paperDetails
+     */
+    public void deleteUnitsByPaperDetails(List<PaperDetail> paperDetails) {
+        List<PaperDetailUnit> units = new ArrayList<PaperDetailUnit>();
+        for (PaperDetail pd : paperDetails) {
+            units.addAll(getUnitsByPaperDetail(pd));
+        }
+        paperDetailUnitRepo.delete(units);
+    }
+    
+    public List<PaperDetailUnit> findByQuestionAndPaperTypes(Question question,List<PaperType> paperTypes){
+    	Query query = new Query();
+    	query.addCriteria(Criteria.where("paperType").in(paperTypes));
+    	query.addCriteria(Criteria.where("question").is(question));
+    	return this.mongoTemplate.find(query, PaperDetailUnit.class);
+    }
+    
+    /**
+     * 查询大题下的小题
+     * 按number升序或降序排列,取第一个
+     * @return
+     */
+    public PaperDetailUnit findTopOrderByNumber(PaperDetail paperDetail,String orderType){
+    	if("ASC".equals(orderType)){
+    		return paperDetailUnitRepo.findTopByPaperDetailOrderByNumberAsc(paperDetail);
+    	}else if("DESC".equals(orderType)){
+    		return paperDetailUnitRepo.findTopByPaperDetailOrderByNumberDesc(paperDetail);
+    	}
+		return null;
+    }
+    
+    /**
+     * 按试卷 查询 小题,并将小题按number,createTime排序
+     * @param paper
+     * @return
+     */
+    public List<PaperDetailUnit> findByPaperAndSort(Paper paper){
+    	Query query = new Query();
+    	query.addCriteria(Criteria.where("paper").is(paper));
+    	query.with(new Sort(new Order(Direction.ASC,"number")));
+    	query.with(new Sort(new Order(Direction.ASC,"createTime")));
+    	return this.mongoTemplate.find(query, PaperDetailUnit.class);
+    }
+}
+

+ 1 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/service/impl/PaperServiceImpl.java

@@ -607,7 +607,7 @@ public class PaperServiceImpl implements PaperService{
      * @return
      */
     private double reSetPaperDetailUnit(Paper paper) {
-    	List<PaperDetailUnit> paperDetailUnitAll = paperDetailUnitRepo.findByPaperOrderByNumber(paper);
+    	List<PaperDetailUnit> paperDetailUnitAll = paperDetailUnitService.findByPaperAndSort(paper);
         double totalScore = 0;
         for (int i = 0;i<paperDetailUnitAll.size();i++) {
         	PaperDetailUnit unit = paperDetailUnitAll.get(i);