Browse Source

修改学校查询成绩接口

chenken 6 năm trước cách đây
mục cha
commit
303774010e

+ 1 - 1
examcloud-exchange-outer-api-provider/src/main/java/cn/com/qmth/examcloud/exchange/outer/api/controller/sydx/ScoreController.java

@@ -37,7 +37,7 @@ public class ScoreController  extends ControllerSupport{
     @ApiOperation(value = "查询成绩:根据考试名称、机构ID和学生考试方式查询")
     @GetMapping
     public ResponseEntity<?> query(@RequestParam(name = "examRemark") String examRemark,
-                                @RequestParam(name = "examStuRemark") String examStuRemark,
+                                @RequestParam(name = "examStuRemark",required=false) String examStuRemark,
                                 HttpServletRequest request) {
     	try{
     		if (StringUtils.isEmpty(examRemark)) {

+ 2 - 2
examcloud-exchange-outer-dao/src/main/java/cn/com/qmth/examcloud/exchange/dao/ExamRecordDao.java

@@ -12,9 +12,9 @@ import cn.com.qmth.examcloud.common.dto.em.ExamRecord;
  */
 public interface ExamRecordDao {
 
-	List<ExamRecord> findByExamStudentId(Long examStudentId);
+	/*List<ExamRecord> findByExamStudentId(Long examStudentId);
 	
-	public ExamRecord findByScoreId(Long scoreId);
+	public ExamRecord findByScoreId(Long scoreId);*/
 
 }
 

+ 1 - 1
examcloud-exchange-outer-dao/src/main/java/cn/com/qmth/examcloud/exchange/dao/ExamScoreDao.java

@@ -12,7 +12,7 @@ import cn.com.qmth.examcloud.common.dto.em.ExamScore;
  */
 public interface ExamScoreDao {
 
-	List<ExamScore> findByExamRecordIdIn(List<Long> examRecordIds);
+	/*List<ExamScore> findByExamRecordIdIn(List<Long> examRecordIds);*/
 
 }
 

+ 2 - 2
examcloud-exchange-outer-dao/src/main/java/cn/com/qmth/examcloud/exchange/dao/impl/ExamScoreDaoImpl.java

@@ -22,7 +22,7 @@ public class ExamScoreDaoImpl implements ExamScoreDao{
 	
 	private JdbcTemplate jdbcTemplate;
 
-	@Override
+	/*@Override
 	public List<ExamScore> findByExamRecordIdIn(List<Long> examRecordIds) {
 		StringBuffer examRecordIdsString = new StringBuffer();
 		for(Long number:examRecordIds){
@@ -46,7 +46,7 @@ public class ExamScoreDaoImpl implements ExamScoreDao{
 				return examScore;
 			}
 		});
-	}
+	}*/
 
 }
 

+ 2 - 0
examcloud-exchange-outer-dao/src/main/java/cn/com/qmth/examcloud/exchange/dao/impl/OutletScoreDaoImpl.java

@@ -6,6 +6,7 @@ import java.util.List;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.jdbc.core.RowMapper;
 import org.springframework.stereotype.Repository;
@@ -25,6 +26,7 @@ public class OutletScoreDaoImpl implements OutletScoreDao{
 
 	private static final Logger log = LoggerFactory.getLogger(OutletScoreDaoImpl.class);
 	
+	@Autowired
 	public JdbcTemplate jdbcTemplate;
 	
 	@Override

+ 6 - 0
examcloud-exchange-outer-service/pom.xml

@@ -25,6 +25,12 @@
 			<artifactId>examcloud-core-examwork-api-client</artifactId>
 			<version>${examcloud.version}</version>
 		</dependency>
+		
+		<dependency>
+			<groupId>cn.com.qmth.examcloud.rmi</groupId>
+			<artifactId>examcloud-core-oe-admin-api-client</artifactId>
+			<version>${examcloud.version}</version>
+		</dependency>
 
 	</dependencies>
 </project>

+ 46 - 26
examcloud-exchange-outer-service/src/main/java/cn/com/qmth/examcloud/exchange/outer/service/impl/OutletScoreServiceImpl.java

@@ -11,18 +11,22 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import cn.com.qmth.examcloud.common.dto.em.ExamRecord;
-import cn.com.qmth.examcloud.common.dto.em.ExamScore;
 import cn.com.qmth.examcloud.common.dto.em.ExamStudent;
 import cn.com.qmth.examcloud.common.dto.em.enums.ExamRecordStatus;
 import cn.com.qmth.examcloud.common.dto.em.enums.MarkingType;
+import cn.com.qmth.examcloud.core.oe.admin.api.ExamRecordCloudService;
+import cn.com.qmth.examcloud.core.oe.admin.api.ExamScoreCloudService;
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamRecordForSelectScore;
+import cn.com.qmth.examcloud.core.oe.admin.api.bean.ExamScoreBean;
+import cn.com.qmth.examcloud.core.oe.admin.api.request.QueryExamRecordForSelectScoreReq;
+import cn.com.qmth.examcloud.core.oe.admin.api.request.QueryExamScoreReq;
+import cn.com.qmth.examcloud.core.oe.admin.api.response.QueryExamRecordForSelectScoreResp;
+import cn.com.qmth.examcloud.core.oe.admin.api.response.QueryExamScoreResp;
 import cn.com.qmth.examcloud.examwork.api.ExamCloudService;
 import cn.com.qmth.examcloud.examwork.api.request.GetExamPropertyReq;
 import cn.com.qmth.examcloud.examwork.api.request.GetExamReq;
 import cn.com.qmth.examcloud.examwork.api.response.GetExamPropertyResp;
 import cn.com.qmth.examcloud.examwork.api.response.GetExamResp;
-import cn.com.qmth.examcloud.exchange.dao.ExamRecordDao;
-import cn.com.qmth.examcloud.exchange.dao.ExamScoreDao;
 import cn.com.qmth.examcloud.exchange.dao.OutletScoreDao;
 import cn.com.qmth.examcloud.exchange.dao.bean.OutletScore;
 import cn.com.qmth.examcloud.exchange.outer.service.OutletScoreService;
@@ -40,13 +44,13 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 	private OutletScoreDao outletScoreDao;
 	
 	@Autowired
-	private ExamRecordDao examRecordDao;
+	private ExamCloudService examCloudService;
 	
 	@Autowired
-	private ExamScoreDao examScoreDao;
+	private ExamScoreCloudService examScoreCloudService;
 	
 	@Autowired
-	private ExamCloudService examCloudService;
+	private ExamRecordCloudService examRecordCloudService;
 	
 	@Override
 	public List<OutletScore> getExamScoreById(Long scoreId)  throws Exception{
@@ -57,7 +61,7 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 	}
 	
 	/**
-	 * examStuRemark已废弃 2018-10-15 chenken
+	 * examStuRemark不再使用  2018-10-15 chenken
 	 */
 	@Override
 	public List<OutletScore> queryExamScore(String examName, String examStuRemark,Long rootOrgId) throws Exception {
@@ -107,7 +111,11 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 	}
 	
 	private OutletScore findExamData(OutletScore outletScore,ExamStudent examStudent) throws Exception{
-        List<ExamRecord> examRecordList = examRecordDao.findByExamStudentId(examStudent.getId());
+		QueryExamRecordForSelectScoreReq req = new QueryExamRecordForSelectScoreReq();
+		req.setExamStudentId(examStudent.getId());
+		QueryExamRecordForSelectScoreResp resp = examRecordCloudService.queryExamRecordForSelectScore(req);
+		List<ExamRecordForSelectScore> examRecordList = resp.getExamRecordForSelectScoreList();
+        //List<ExamRecord> examRecordList = examRecordDao.findByExamStudentId(examStudent.getId());
         Boolean isFinished = examStudent.getFinished();
         if(isFinished==null){
         	isFinished = false;
@@ -130,18 +138,23 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 	 * 1.设置最终成绩
 	 * 2.设置考试结束时间
 	 */
-	public void setFinalExamScoreAndEndTime(Boolean isFinished,OutletScore outletScore,List<ExamRecord> examRecordList,String markingType){
+	public void setFinalExamScoreAndEndTime(Boolean isFinished,OutletScore outletScore,List<ExamRecordForSelectScore> examRecordList,String markingType){
 		if(!isFinished){
 			return;
 		}
-		ExamScore examScore = finalExamScore(examRecordList,markingType);
+		ExamScoreBean examScore = finalExamScore(examRecordList,markingType);
     	if(examScore != null){
     		outletScore.setScoreId(examScore.getId());
             outletScore.setTotalScore(examScore.getTotalScore());
             outletScore.setObjectiveScore(examScore.getObjectiveScore());
             outletScore.setSubjectiveScore(examScore.getSubjectiveScore());
             //设置考试结束时间和人脸识别成功率
-            ExamRecord examRecord = examRecordDao.findByScoreId(examScore.getId());
+            QueryExamRecordForSelectScoreReq req = new QueryExamRecordForSelectScoreReq();
+    		req.setExamScoreId(examScore.getId());
+    		QueryExamRecordForSelectScoreResp resp = examRecordCloudService.queryExamRecordForSelectScore(req);
+    		List<ExamRecordForSelectScore> examRecordForSelectScoreList = resp.getExamRecordForSelectScoreList();
+            
+    		ExamRecordForSelectScore examRecord = examRecordForSelectScoreList.get(0);
             if(examRecord != null){
             	SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             	Date endTime =  examRecord.getEndTime();
@@ -159,11 +172,11 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 	 * @param examRecordList
 	 * @param markingType
 	 */
-	private ExamScore finalExamScore(List<ExamRecord> examRecordAllList,String markingType) {
+	private ExamScoreBean finalExamScore(List<ExamRecordForSelectScore> examRecordAllList,String markingType) {
     	//第一次过滤考试记录:正常结束或者被系统处理的
-    	List<ExamRecord> firstFilterExamRecordList = examRecordAllList.stream().filter(examRecord->{
-    		return  examRecord.getStatus() == ExamRecordStatus.EXAM_END || 
-    				examRecord.getStatus() == ExamRecordStatus.EXAM_OVERDUE;
+    	List<ExamRecordForSelectScore> firstFilterExamRecordList = examRecordAllList.stream().filter(examRecord->{
+    		return  examRecord.getStatus().equals(ExamRecordStatus.EXAM_END.name())|| 
+    				examRecord.getStatus().equals(ExamRecordStatus.EXAM_OVERDUE.name());
     	}).collect(Collectors.toList());
     	
         if (firstFilterExamRecordList != null && firstFilterExamRecordList.size()>0) {
@@ -172,32 +185,39 @@ public class OutletScoreServiceImpl implements OutletScoreService{
         	 * 1.没有违纪的
         	 * 2.没有警告的或有警告已审核通过的
         	 */
-            Stream<ExamRecord> secondFilterExamRecordStream = firstFilterExamRecordList.stream().filter(examRecord -> {
-                return examRecord.getInvigilatorOperation() != 1 &&
+            Stream<ExamRecordForSelectScore> secondFilterExamRecordStream = firstFilterExamRecordList.stream().filter(examRecord -> {
+                return examRecord.getIsIllegality() &&
                 		(!examRecord.getIsWarn() || (examRecord.getIsWarn() && examRecord.getIsAudit()));
             });
             
-            List<ExamRecord> secondFilterExamRecords = secondFilterExamRecordStream.collect(Collectors.toList());
+            List<ExamRecordForSelectScore> secondFilterExamRecords = secondFilterExamRecordStream.collect(Collectors.toList());
             if(secondFilterExamRecords == null|| secondFilterExamRecords.size() == 0){
             	return null;
             }
             //取出有效记录的成绩
             List<Long> examRecordIds = new ArrayList<Long>();
             for(int i = 0;i<secondFilterExamRecords.size();i++){
-            	examRecordIds.add(secondFilterExamRecords.get(i).getId());
+            	examRecordIds.add(secondFilterExamRecords.get(i).getExamRecordDataId());
             }
-            List<ExamScore> effectiveExamScoreList = examScoreDao.findByExamRecordIdIn(examRecordIds);
+            
+            QueryExamScoreReq queryExamScoreReq = new QueryExamScoreReq();
+            queryExamScoreReq.setExamRecordDataIds(examRecordIds);
+            QueryExamScoreResp resp = examScoreCloudService.queryExamScore(queryExamScoreReq);
+            
+            List<ExamScoreBean> effectiveExamScoreList = resp.getExamScoreBeans();
+            
+            //List<ExamScore> effectiveExamScoreList = examScoreDao.findByExamRecordIdIn(examRecordIds);
             
             //全部评阅规则或客观分最高规则:取总分最高
             if(markingType.equals(MarkingType.ALL.name())||markingType.equals(MarkingType.OBJECT_SCORE_MAX.name())){
-				List<ExamScore> examScores = effectiveExamScoreList
+				List<ExamScoreBean> examScores = effectiveExamScoreList
 											.stream()
 											.sorted((o1,o2)->o2.getTotalScore().compareTo(o1.getTotalScore()))
 											.collect(Collectors.toList());
 				return examScores.get(0);
             }else if(markingType.equals(MarkingType.LAST_SUBMIT.name())){
             	//最后一次提交规则:取最后一次的成绩
-            	List<ExamScore> examScores = effectiveExamScoreList
+            	List<ExamScoreBean> examScores = effectiveExamScoreList
 											.stream()
 											.sorted((o1,o2)->o2.getId().compareTo(o1.getId()))
 											.collect(Collectors.toList());
@@ -218,15 +238,15 @@ public class OutletScoreServiceImpl implements OutletScoreService{
 	 * @param examRecordList
 	 * @return
 	 */
-	private Boolean isBreachThePrinciple(Boolean isFinished,List<ExamRecord> examRecordList) {
+	private Boolean isBreachThePrinciple(Boolean isFinished,List<ExamRecordForSelectScore> examRecordList) {
 		if(!isFinished){
     		return null;
     	}
 		if(examRecordList==null || examRecordList.size()==0){
 			return false;
 		}
-    	List<ExamRecord> examRecordFilterList = examRecordList.stream().filter(examRecord -> {
-    		return  examRecord.getInvigilatorOperation() == 1;
+    	List<ExamRecordForSelectScore> examRecordFilterList = examRecordList.stream().filter(examRecord -> {
+    		return  examRecord.getIsIllegality();
     	}).collect(Collectors.toList());
         return (examRecordFilterList == null || examRecordFilterList.size()==0)?false:true;
 	}