Pārlūkot izejas kodu

添加专业检索字段

weiwenhai 7 gadi atpakaļ
vecāks
revīzija
b765291300

+ 85 - 0
cqb-base/src/main/java/com/qmth/cqb/base/model/Specialty.java

@@ -0,0 +1,85 @@
+package com.qmth.cqb.base.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @date       2017.10.25
+ * @author     weiwenhai
+ * @describle  题库 专业    同步基础信息的   
+ */
+public class Specialty implements Serializable{
+
+	private static final long serialVersionUID = -7144603935406955299L;
+	
+	private Long id;
+	
+	private String code;
+	
+	private String name;
+	
+	private Long orgId;
+	
+	private Date createTime;
+	
+	private Date updateTime;
+	
+	private Boolean enable;
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getCode() {
+		return code;
+	}
+
+	public void setCode(String code) {
+		this.code = code;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public Long getOrgId() {
+		return orgId;
+	}
+
+	public void setOrgId(Long orgId) {
+		this.orgId = orgId;
+	}
+
+	public Date getCreateTime() {
+		return createTime;
+	}
+
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public Boolean getEnable() {
+		return enable;
+	}
+
+	public void setEnable(Boolean enable) {
+		this.enable = enable;
+	}
+	
+}

+ 2 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/dao/PaperRepo.java

@@ -29,5 +29,7 @@ public interface PaperRepo extends MongoRepository<Paper, String>, QueryByExampl
     List<Paper> findByCourseNoAndOrgId(String courseNo,String orgId);
     
     List<Paper> findByIdIn(List<String> paperIds);
+    
+    List<Paper> findBySpecialtyCodeAndOrgId(String specialtyCode,String orgId);
 
 }

+ 13 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/model/Paper.java

@@ -4,6 +4,8 @@ import java.io.Serializable;
 import java.util.Map;
 
 import com.qmth.cqb.base.model.Course;
+import com.qmth.cqb.base.model.Specialty;
+
 import org.springframework.data.annotation.Id;
 import org.springframework.data.mongodb.core.index.Indexed;
 
@@ -62,6 +64,8 @@ public class Paper implements Serializable {
     private String orgId;
 
     private Map<String, String> params;// 导入试卷属性
+    
+    private Specialty specialty;
 
     public static long getSerialVersionUID() {
         return serialVersionUID;
@@ -222,4 +226,13 @@ public class Paper implements Serializable {
     public void setCourse(Course course) {
         this.course = course;
     }
+
+	public Specialty getSpecialty() {
+		return specialty;
+	}
+
+	public void setSpecialty(Specialty specialty) {
+		this.specialty = specialty;
+	}
+    
 }

+ 20 - 0
cqb-paper/src/main/java/com/qmth/cqb/paper/model/PaperSearchInfo.java

@@ -15,6 +15,10 @@ public class PaperSearchInfo implements Serializable {
     private String creator;// 录入员
 
     private String courseNo;// 课程代码
+    
+    private String specialtyNo;// 专业代码
+    
+    private String level;// 层次
 
     private String orgId;// 机构Id
 
@@ -82,4 +86,20 @@ public class PaperSearchInfo implements Serializable {
         this.paperStatus = paperStatus;
     }
 
+	public String getSpecialtyNo() {
+		return specialtyNo;
+	}
+
+	public void setSpecialtyNo(String specialtyNo) {
+		this.specialtyNo = specialtyNo;
+	}
+
+	public String getLevel() {
+		return level;
+	}
+
+	public void setLevel(String level) {
+		this.level = level;
+	}
+    
 }

+ 2 - 1
cqb-paper/src/main/java/com/qmth/cqb/paper/rpc/ExamCourseClient.java

@@ -24,6 +24,7 @@ public interface ExamCourseClient {
 	String findPageExamCourse(@RequestParam("exam_id") Long examId,
 										   @RequestParam(value = "course_code",required = false) String courseCode,
 										   @RequestParam("cur_page") Integer  currentPage,
-										   @RequestParam("page_size") Integer  pageSize);
+										   @RequestParam("page_size") Integer  pageSize,
+										   @RequestParam(value = "course_level",required = false) String courseLevel);
 }
 

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

@@ -97,6 +97,6 @@ public interface ExtractConfigService {
 	 * @param courseNo
 	 * @return
 	 */
-	public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo);
+	public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo, String courseLevel);
 	
 }

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

@@ -56,7 +56,7 @@ public class ExportPaperServiceImpl implements ExportPaperService{
 
 	@Override
 	public void exportPaperFile(String paperId,String serviceName,String exportContentList,HttpServletResponse response) throws Exception {
-		ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById(serviceName);
+		ExportPaperAbstractService exportPaperAbstractService = (ExportPaperAbstractService) SpringContextUtils.getBeanById("sxsfExportPaperService");
 		//根据试卷id查询试卷 
 		Paper paper = paperRepo.findOne(paperId);
 		List<Paper> papers = new ArrayList<Paper>();

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

@@ -659,8 +659,8 @@ public class ExtractConfigServiceImpl implements ExtractConfigService {
     }
     
 	@Override
-	public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo) {
-		String examCourseJson = examCourseClient.findPageExamCourse(examId,courseNo,currentPage,pageSize);
+	public Page<ExtractConfig> findPageExtractConfig(int currentPage,int pageSize, Long examId, String courseNo, String courseLevel) {
+		String examCourseJson = examCourseClient.findPageExamCourse(examId,courseNo,currentPage,pageSize,courseLevel);
 		
 		PageExamCourse pageExamCourse = GsonUtil.getInstanceByJson(examCourseJson,PageExamCourse.class);
 		

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

@@ -157,6 +157,12 @@ public class PaperServiceImpl implements PaperService{
         if(StringUtils.isNotBlank(paperSearchInfo.getCourseNo())){
         	query.addCriteria(Criteria.where("course.code").is(paperSearchInfo.getCourseNo()));
         }
+        if(StringUtils.isNotBlank(paperSearchInfo.getSpecialtyNo())){
+        	query.addCriteria(Criteria.where("specialty.code").is(paperSearchInfo.getSpecialtyNo()));
+        }
+        if(StringUtils.isNotBlank(paperSearchInfo.getLevel())){
+        	query.addCriteria(Criteria.where("course.level").is(paperSearchInfo.getLevel()));
+        }
         query.addCriteria(Criteria.where("course.enable").is("true"));
         query.addCriteria(Criteria.where("orgId").is(paperSearchInfo.getOrgId()));
         long count = this.mongoTemplate.count(query, Paper.class);
@@ -267,6 +273,9 @@ public class PaperServiceImpl implements PaperService{
         if(StringUtils.isNotBlank(paperSearchInfo.getCourseNo())){
         	query.addCriteria(Criteria.where("course.code").is(paperSearchInfo.getCourseNo()));
         }
+        if(StringUtils.isNotBlank(paperSearchInfo.getLevel())){
+        	query.addCriteria(Criteria.where("course.level").is(paperSearchInfo.getLevel()));
+        }
         query.addCriteria(Criteria.where("course.enable").is("true"));
         query.addCriteria(Criteria.where("orgId").is(paperSearchInfo.getOrgId()));
         long count = this.mongoTemplate.count(query, Paper.class);

+ 3 - 2
cqb-paper/src/main/java/com/qmth/cqb/paper/web/ExtractConfigController.java

@@ -61,9 +61,10 @@ public class ExtractConfigController {
 	public ResponseEntity findPageExtractConfig(@PathVariable int currentPage,
 														       @PathVariable int pageSize,
 															   @RequestParam("examId") Long examId,
-															   @RequestParam("courseNo") String courseNo){
+															   @RequestParam("courseNo") String courseNo,
+															   @RequestParam("courseLevel") String courseLevel){
 		try{
-			Page<ExtractConfig> extractConfigPageList = extractConfigService.findPageExtractConfig(currentPage,pageSize,examId,courseNo);
+			Page<ExtractConfig> extractConfigPageList = extractConfigService.findPageExtractConfig(currentPage,pageSize,examId,courseNo,courseLevel);
 			return new ResponseEntity<Page<ExtractConfig>>(extractConfigPageList,HttpStatus.OK);
 		}catch(Exception e){
 			e.printStackTrace();

+ 4 - 0
cqb-question-resource/src/main/java/com/qmth/cqb/question/dao/QuesRepo.java

@@ -1,7 +1,9 @@
 package com.qmth.cqb.question.dao;
 
 import cn.com.qmth.examcloud.common.dto.question.enums.QuesStructType;
+
 import com.qmth.cqb.question.model.Question;
+
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.mongodb.repository.MongoRepository;
@@ -21,4 +23,6 @@ public interface QuesRepo extends MongoRepository<Question, String>, QueryByExam
                                                                    QuesStructType quesType, String orgId,Pageable page);
 
     List<Question> findByCourseNoAndOrgId(String courseNo, String orgId);
+    
+    List<Question> findBySpecialtyCodeAndOrgId(String specialtyCode,String orgId);
 }

+ 13 - 1
cqb-question-resource/src/main/java/com/qmth/cqb/question/model/Question.java

@@ -5,6 +5,8 @@ import java.util.List;
 import java.util.Map;
 
 import com.qmth.cqb.base.model.Course;
+import com.qmth.cqb.base.model.Specialty;
+
 import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
 import org.springframework.data.annotation.Id;
 
@@ -80,6 +82,8 @@ public class Question implements Serializable {
     
     private Integer number;
     
+    private Specialty specialty;
+    
     public static long getSerialVersionUID() {
         return serialVersionUID;
     }
@@ -304,5 +308,13 @@ public class Question implements Serializable {
 	public void setNumber(Integer number) {
 		this.number = number;
 	}
-    
+
+	public Specialty getSpecialty() {
+		return specialty;
+	}
+
+	public void setSpecialty(Specialty specialty) {
+		this.specialty = specialty;
+	}
+	
 }

+ 71 - 0
cqb-starter/src/main/java/com/qmth/cqb/sync/DataReceiveService.java

@@ -5,6 +5,7 @@ import com.qmth.commons.dataSync.core.entity.BaseSyncData;
 import com.qmth.commons.dataSync.core.service.DataSyncService;
 import com.qmth.cqb.base.dao.CourseRepo;
 import com.qmth.cqb.base.model.Course;
+import com.qmth.cqb.base.model.Specialty;
 import com.qmth.cqb.paper.dao.ExtractConfigRepo;
 import com.qmth.cqb.paper.dao.PaperRepo;
 import com.qmth.cqb.paper.model.ExtractConfig;
@@ -12,12 +13,14 @@ import com.qmth.cqb.paper.model.Paper;
 import com.qmth.cqb.question.dao.QuesRepo;
 import com.qmth.cqb.question.model.Question;
 import com.qmth.cqb.utils.CommonUtils;
+
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -158,5 +161,73 @@ public class DataReceiveService {
         log.info("-----------coursesync end---------");
     }
 
+    @DataReceive(domain = "cn.com.qmth.examcloud.common.dto.core.SpecialtySync")
+    public synchronized void readSpecialty(BaseSyncData baseSyncData) {
+        log.info("-----------specialty start---------");
+        log.info(baseSyncData.toString());
+        String specialtyCode = baseSyncData.getEntity().get("code");
+        String orgId = baseSyncData.getEntity().get("orgId");
+        String specialtyName = baseSyncData.getEntity().get("name");
+        String enable = baseSyncData.getEntity().get("enable");
+        if (StringUtils.isEmpty(specialtyCode)
+                || StringUtils.isEmpty(orgId)
+                || StringUtils.isEmpty(specialtyName)
+                || StringUtils.isEmpty(enable)) {
+            log.error("entity value is null");
+            return;
+        }
+        
+        boolean specialtyEnable = false;
+        if(enable == "true"){
+        	specialtyEnable = true;
+        }
+
+        List<Paper> papers = paperRepo.findBySpecialtyCodeAndOrgId(specialtyCode, orgId);
+        if (papers != null && papers.size() > 0) {
+            for (Paper paper : papers) {
+                Specialty specialty = paper.getSpecialty();
+                if(specialty != null){
+                	specialty.setName(specialtyName);
+                	specialty.setEnable(specialtyEnable);
+                	specialty.setUpdateTime(new Date());
+                    paper.setSpecialty(specialty);
+                }else{
+                	Specialty tempSpecialty = new Specialty();
+                	tempSpecialty.setCode(specialtyCode);
+                	tempSpecialty.setCreateTime(new Date());
+                	tempSpecialty.setEnable(specialtyEnable);
+                	tempSpecialty.setOrgId(Long.valueOf(orgId));
+                	tempSpecialty.setName(specialtyName);
+                	paper.setSpecialty(tempSpecialty);
+                }
+            }
+            paperRepo.save(papers);
+        }
+
+        List<Question> questions = quesRepo.findBySpecialtyCodeAndOrgId(specialtyCode, orgId);
+        if (questions != null && questions.size() > 0) {
+            for (Question question : questions) {
+            	Specialty specialty = question.getSpecialty();
+                if(specialty != null){
+                	specialty.setName(specialtyName);
+                	specialty.setEnable(specialtyEnable);
+                	specialty.setUpdateTime(new Date());
+                	question.setSpecialty(specialty);
+                }else{
+                	Specialty tempSpecialty = new Specialty();
+                	tempSpecialty.setCode(specialtyCode);
+                	tempSpecialty.setCreateTime(new Date());
+                	tempSpecialty.setEnable(specialtyEnable);
+                	tempSpecialty.setOrgId(Long.valueOf(orgId));
+                	tempSpecialty.setName(specialtyName);
+                	question.setSpecialty(tempSpecialty);
+                }
+            }
+            quesRepo.save(questions);
+        }
+
+        log.info("-----------coursesync end---------");
+    }
+
 
 }