فهرست منبع

Merge branch 'master' of http://git.dayaedu.com/yonge/edu-saas

zouxuan 5 سال پیش
والد
کامیت
fc8df0cb37
17فایلهای تغییر یافته به همراه570 افزوده شده و 4 حذف شده
  1. 9 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRegistrationController.java
  2. 11 1
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRoomController.java
  3. 36 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRegistrationDao.java
  4. 10 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRoomDao.java
  5. 9 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/StudentExamResultDao.java
  6. 54 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRegistrationStatisticsDto.java
  7. 78 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRoomStatisticsDto.java
  8. 125 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/StudentExamResult.java
  9. 10 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRegistrationService.java
  10. 11 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRoomService.java
  11. 8 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/StudentExamResultService.java
  12. 11 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java
  13. 32 2
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java
  14. 22 0
      edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/StudentExamResultServiceImpl.java
  15. 50 1
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml
  16. 10 0
      edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRoomMapper.xml
  17. 84 0
      edu-user/edu-user-server/src/main/resources/config/mybatis/StudentExamResultMapper.xml

+ 9 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRegistrationController.java

@@ -5,6 +5,7 @@ import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.controller.BaseController;
 import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
+import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.ExamRegistration;
 import com.keao.edu.user.page.ExamRegistrationQueryInfo;
 import com.keao.edu.user.service.ExamRegistrationService;
@@ -59,4 +60,12 @@ public class ExamRegistrationController extends BaseController {
         return succeed(examRegistrationService.addRegistration(examRegistration));
     }
 
+    @ApiOperation(value = "获取招生统计信息")
+    @GetMapping(value = "getExamRegistrationStaticsInfo")
+    @PreAuthorize("@pcs.hasPermissions('examRegistration/getExamRegistrationStaticsInfo')")
+    public HttpResponseResult<ExamRegistrationStatisticsDto> getExamRegistrationStaticsInfo(Integer examId){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        return succeed(examRegistrationService.getExamRegistrationStaticsInfo(sysUser.getId(), examId));
+    }
+
 }

+ 11 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/ExamRoomController.java

@@ -1,5 +1,7 @@
 package com.keao.edu.user.controller;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.keao.edu.auth.api.client.SysUserFeignService;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.controller.BaseController;
@@ -7,6 +9,7 @@ import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.user.api.entity.ExamRoom;
 import com.keao.edu.user.dto.ExamRoomDto;
+import com.keao.edu.user.dto.ExamRoomStatisticsDto;
 import com.keao.edu.user.page.ExamRoomQueryInfo;
 import com.keao.edu.user.service.ExamRoomService;
 import io.swagger.annotations.Api;
@@ -72,7 +75,14 @@ public class ExamRoomController extends BaseController {
 
     @ApiModelProperty("获取教室")
     @GetMapping(value = "/get")
-    public ExamRoom deleteExamRooms(Long id){
+    public ExamRoom getExamRoom(Long id){
         return examRoomService.get(id);
     }
+
+    @ApiModelProperty("获取考场统计信息")
+    @GetMapping(value = "/getExamRoomStatisticsInfo")
+    public HttpResponseResult<ExamRoomStatisticsDto> getExamRoomStatisticsInfo(Integer examId){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        return succeed(examRoomService.getExamRoomStatisticsInfo(sysUser.getId(), examId));
+    }
 }

+ 36 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRegistrationDao.java

@@ -2,6 +2,7 @@ package com.keao.edu.user.dao;
 
 
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.ExamRegistration;
 import org.apache.ibatis.annotations.Param;
 
@@ -19,4 +20,39 @@ public interface ExamRegistrationDao extends BaseDAO<Long, ExamRegistration> {
     int countWithoutExamRoomStudentNum(@Param("organIds")List<Integer> organIds,
                                        @Param("examId") Integer examId);
 
+    /**
+     * @describe 统计已分配教室学员数量
+     * @author Joburgess
+     * @date 2020.06.30
+     * @param organIds:
+     * @param examId:
+     * @return int
+     */
+    int countInExamRoomStudentNum(@Param("organIds")List<Integer> organIds,
+                                  @Param("examId") Integer examId);
+
+    /**
+     * @describe 统计总报名人数
+     * @author Joburgess
+     * @date 2020.06.30
+     * @param organIds:
+     * @param examId:
+     * @return int
+     */
+    int countTotalRegistrationStudentNumWithExam(@Param("organIds")List<Integer> organIds,
+                                                 @Param("examId") Integer examId);
+
+    /**
+     * @describe 统计招生信息
+     * @author Joburgess
+     * @date 2020.06.30
+     * @param selfOrganId: 本级合作单位编号
+     * @param organIds: 本级及子级合作单位编号
+     * @param examId: 考级项目编号
+     * @return com.keao.edu.user.dto.ExamRegistrationStatisticsDto
+     */
+    ExamRegistrationStatisticsDto getExamRegistrationStaticsInfo(@Param("selfOrganId") Integer selfOrganId,
+                                                                 @Param("organIds") List<Integer> organIds,
+                                                                 @Param("examId") Integer examId);
+
 }

+ 10 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/ExamRoomDao.java

@@ -34,6 +34,16 @@ public interface ExamRoomDao extends BaseDAO<Long, ExamRoom> {
      * @return int
      */
     int batchDeleteExamRooms(@Param("examRoomIds") List<Long> examRoomIds);
+    
+    /**
+     * @describe 获取指定考级项目下的考场
+     * @author Joburgess
+     * @date 2020.06.30
+     * @param examId: 
+     * @return java.util.List<com.keao.edu.user.api.entity.ExamRoom>
+     */
+    List<ExamRoom> getWithExam(@Param("organIds") List<Integer> organIds,
+                                @Param("examId") Integer examId);
 
 //    int batchUpdateExamRoomPushStatus(@Param())
 }

+ 9 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/StudentExamResultDao.java

@@ -0,0 +1,9 @@
+package com.keao.edu.user.dao;
+
+import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.user.entity.StudentExamResult;
+
+public interface StudentExamResultDao extends BaseDAO<Long, StudentExamResult> {
+
+	
+}

+ 54 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRegistrationStatisticsDto.java

@@ -0,0 +1,54 @@
+package com.keao.edu.user.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.06.30
+ */
+public class ExamRegistrationStatisticsDto {
+
+    @ApiModelProperty(value = "总招生人数")
+    private int totalRegistrationStudentNum;
+
+    @ApiModelProperty(value = "子合作伙伴招生人数")
+    private int childOrganRegistrationStudentNum;
+
+    @ApiModelProperty(value = "待审核人数")
+    private int waitAuditStudentNum;
+
+    @ApiModelProperty(value = "退费人数")
+    private int refundedStudentNum;
+
+    public int getTotalRegistrationStudentNum() {
+        return totalRegistrationStudentNum;
+    }
+
+    public void setTotalRegistrationStudentNum(int totalRegistrationStudentNum) {
+        this.totalRegistrationStudentNum = totalRegistrationStudentNum;
+    }
+
+    public int getChildOrganRegistrationStudentNum() {
+        return childOrganRegistrationStudentNum;
+    }
+
+    public void setChildOrganRegistrationStudentNum(int childOrganRegistrationStudentNum) {
+        this.childOrganRegistrationStudentNum = childOrganRegistrationStudentNum;
+    }
+
+    public int getWaitAuditStudentNum() {
+        return waitAuditStudentNum;
+    }
+
+    public void setWaitAuditStudentNum(int waitAuditStudentNum) {
+        this.waitAuditStudentNum = waitAuditStudentNum;
+    }
+
+    public int getRefundedStudentNum() {
+        return refundedStudentNum;
+    }
+
+    public void setRefundedStudentNum(int refundedStudentNum) {
+        this.refundedStudentNum = refundedStudentNum;
+    }
+}

+ 78 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dto/ExamRoomStatisticsDto.java

@@ -0,0 +1,78 @@
+package com.keao.edu.user.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.06.30
+ */
+public class ExamRoomStatisticsDto {
+
+    @ApiModelProperty(value = "考场数量")
+    private int examRoomNum;
+
+    @ApiModelProperty(value = "考场分派老师数量")
+    private int examRoomTeacherNum;
+
+    @ApiModelProperty(value = "已安排考试学生数量")
+    private int inRoomStudentNum;
+
+    @ApiModelProperty(value = "总报名学生数量")
+    private int totalRegistrationStudentNum;
+
+    @ApiModelProperty(value = "第一次考试时间")
+    private Date firstExamTime;
+
+    @ApiModelProperty(value = "最后一次考试时间")
+    private Date lastExamTime;
+
+    public int getExamRoomNum() {
+        return examRoomNum;
+    }
+
+    public void setExamRoomNum(int examRoomNum) {
+        this.examRoomNum = examRoomNum;
+    }
+
+    public int getExamRoomTeacherNum() {
+        return examRoomTeacherNum;
+    }
+
+    public void setExamRoomTeacherNum(int examRoomTeacherNum) {
+        this.examRoomTeacherNum = examRoomTeacherNum;
+    }
+
+    public int getInRoomStudentNum() {
+        return inRoomStudentNum;
+    }
+
+    public void setInRoomStudentNum(int inRoomStudentNum) {
+        this.inRoomStudentNum = inRoomStudentNum;
+    }
+
+    public int getTotalRegistrationStudentNum() {
+        return totalRegistrationStudentNum;
+    }
+
+    public void setTotalRegistrationStudentNum(int totalRegistrationStudentNum) {
+        this.totalRegistrationStudentNum = totalRegistrationStudentNum;
+    }
+
+    public Date getFirstExamTime() {
+        return firstExamTime;
+    }
+
+    public void setFirstExamTime(Date firstExamTime) {
+        this.firstExamTime = firstExamTime;
+    }
+
+    public Date getLastExamTime() {
+        return lastExamTime;
+    }
+
+    public void setLastExamTime(Date lastExamTime) {
+        this.lastExamTime = lastExamTime;
+    }
+}

+ 125 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/StudentExamResult.java

@@ -0,0 +1,125 @@
+package com.keao.edu.user.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(student_exam_result):
+ */
+public class StudentExamResult {
+
+	/**  */
+	private Long id;
+	
+	/**  */
+	private Integer examinationBasicId;
+	
+	/**  */
+	private Integer studentId;
+	
+	/** 考试结果 */
+	private String result;
+	
+	/** 确认状态(1-已确认 0-未确认) */
+	private boolean confirmStatus;
+	
+	/**  */
+	private String memo;
+	
+	/** 操作人编号 */
+	private Integer operatorId;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private java.util.Date updateTime;
+	
+	/**  */
+	private String tenantId;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setExaminationBasicId(Integer examinationBasicId){
+		this.examinationBasicId = examinationBasicId;
+	}
+	
+	public Integer getExaminationBasicId(){
+		return this.examinationBasicId;
+	}
+			
+	public void setStudentId(Integer studentId){
+		this.studentId = studentId;
+	}
+	
+	public Integer getStudentId(){
+		return this.studentId;
+	}
+			
+	public void setResult(String result){
+		this.result = result;
+	}
+	
+	public String getResult(){
+		return this.result;
+	}
+			
+	public void setConfirmStatus(boolean confirmStatus){
+		this.confirmStatus = confirmStatus;
+	}
+	
+	public boolean isConfirmStatus(){
+		return this.confirmStatus;
+	}
+			
+	public void setMemo(String memo){
+		this.memo = memo;
+	}
+	
+	public String getMemo(){
+		return this.memo;
+	}
+			
+	public void setOperatorId(Integer operatorId){
+		this.operatorId = operatorId;
+	}
+	
+	public Integer getOperatorId(){
+		return this.operatorId;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	public void setTenantId(String tenantId){
+		this.tenantId = tenantId;
+	}
+	
+	public String getTenantId(){
+		return this.tenantId;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 10 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRegistrationService.java

@@ -3,6 +3,7 @@ package com.keao.edu.user.service;
 
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.BaseService;
+import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.ExamRegistration;
 import com.keao.edu.user.page.ExamRegistrationQueryInfo;
 
@@ -19,4 +20,13 @@ public interface ExamRegistrationService extends BaseService<Long, ExamRegistrat
     */
    PageInfo<ExamRegistration> queryExamRegistrationStudents(ExamRegistrationQueryInfo queryInfo);
 
+   /**
+    * @describe 统计招生信息
+    * @author Joburgess
+    * @date 2020.06.30
+    * @param organId:
+    * @return com.keao.edu.user.dto.ExamRegistrationStatisticsDto
+    */
+   ExamRegistrationStatisticsDto getExamRegistrationStaticsInfo(Integer organId, Integer examId);
+
 }

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/ExamRoomService.java

@@ -5,6 +5,7 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.BaseService;
 import com.keao.edu.user.api.entity.ExamRoom;
 import com.keao.edu.user.dto.ExamRoomDto;
+import com.keao.edu.user.dto.ExamRoomStatisticsDto;
 import com.keao.edu.user.page.ExamRoomQueryInfo;
 
 public interface ExamRoomService extends BaseService<Long, ExamRoom> {
@@ -50,4 +51,14 @@ public interface ExamRoomService extends BaseService<Long, ExamRoom> {
      * @return void
      */
     void sendExamPlan(Integer organId, Integer examId);
+
+    /**
+     * @describe 获取考场统计信息
+     * @author Joburgess
+     * @date 2020.06.30
+     * @param organId:
+     * @param examId:
+     * @return com.keao.edu.user.dto.ExamRoomStatisticsDto
+     */
+    ExamRoomStatisticsDto getExamRoomStatisticsInfo(Integer organId, Integer examId);
 }

+ 8 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/StudentExamResultService.java

@@ -0,0 +1,8 @@
+package com.keao.edu.user.service;
+
+import com.keao.edu.common.service.BaseService;
+import com.keao.edu.user.entity.StudentExamResult;
+
+public interface StudentExamResultService extends BaseService<Long, StudentExamResult> {
+
+}

+ 11 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java

@@ -8,6 +8,7 @@ import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.page.QueryInfo;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.dao.*;
+import com.keao.edu.user.dto.ExamRegistrationStatisticsDto;
 import com.keao.edu.user.entity.ExamCertification;
 import com.keao.edu.user.entity.ExamRegistration;
 import com.keao.edu.user.entity.ExaminationBasic;
@@ -105,4 +106,14 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
 		pageInfo.setRows(dataList);
 		return pageInfo;
 	}
+
+	@Override
+	public ExamRegistrationStatisticsDto getExamRegistrationStaticsInfo(Integer organId, Integer examId) {
+		List<Integer> childOrganIds = organizationService.getChildOrganIds(organId, true);
+		ExamRegistrationStatisticsDto examRegistrationStaticsInfo = examRegistrationDao.getExamRegistrationStaticsInfo(organId, childOrganIds, examId);
+		if(Objects.isNull(examRegistrationStaticsInfo)){
+			examRegistrationStaticsInfo=new ExamRegistrationStatisticsDto();
+		}
+		return examRegistrationStaticsInfo;
+	}
 }

+ 32 - 2
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java

@@ -12,6 +12,7 @@ import com.keao.edu.user.dao.ExamRegistrationDao;
 import com.keao.edu.user.dao.ExamRoomDao;
 import com.keao.edu.user.dao.ExamRoomStudentRelationDao;
 import com.keao.edu.user.dto.ExamRoomDto;
+import com.keao.edu.user.dto.ExamRoomStatisticsDto;
 import com.keao.edu.user.enums.ExamModeEnum;
 import com.keao.edu.user.page.ExamRoomQueryInfo;
 import com.keao.edu.user.service.ExamRoomService;
@@ -21,6 +22,7 @@ import com.keao.edu.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
 
 import java.util.*;
 import java.util.stream.Collectors;
@@ -48,8 +50,8 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
 
-		List<Integer> nextLevelOrganIds = organizationService.getNextLevelOrganIds(queryInfo.getOrganId(), true);
-		params.put("organIds", nextLevelOrganIds);
+		List<Integer> childOrganIds = organizationService.getChildOrganIds(queryInfo.getOrganId(), true);
+		params.put("organIds", childOrganIds);
 
 		List<ExamRoomDto> dataList = null;
 		int count = examRoomDao.countExamRoomPage(params);
@@ -113,6 +115,34 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 		if(withoutExamRoomStudentNum>0){
 			throw new BizException("存在未安排教室的学员");
 		}
+	}
+
+	@Override
+	public ExamRoomStatisticsDto getExamRoomStatisticsInfo(Integer organId, Integer examId) {
+		ExamRoomStatisticsDto examRoomStatisticsInfo=new ExamRoomStatisticsDto();
+
+        List<Integer> childOrganIds = organizationService.getChildOrganIds(organId, true);
+
+		examRoomStatisticsInfo.setTotalRegistrationStudentNum(examRegistrationDao.countTotalRegistrationStudentNumWithExam(childOrganIds, examId));
+		examRoomStatisticsInfo.setInRoomStudentNum(examRegistrationDao.countInExamRoomStudentNum(childOrganIds, examId));
+
+		List<ExamRoom> examRooms = examRoomDao.getWithExam(childOrganIds, examId);
+		if(!CollectionUtils.isEmpty(examRooms)){
+			examRoomStatisticsInfo.setExamRoomNum(examRooms.size());
+			examRoomStatisticsInfo.setFirstExamTime(examRooms.stream().min(Comparator.comparing(ExamRoom::getExamTime)).get().getExamTime());
+			examRoomStatisticsInfo.setLastExamTime(examRooms.stream().max(Comparator.comparing(ExamRoom::getExamTime)).get().getExamTime());
+			int teacherNum=0;
+			for (ExamRoom examRoom : examRooms) {
+				if(Objects.nonNull(examRoom.getMainTeacherUserId())){
+					teacherNum+=1;
+				}
+				if(StringUtils.isNotBlank(examRoom.getAssistantTeacherUserIdList())){
+					teacherNum = teacherNum + StringUtils.countMatches(examRoom.getAssistantTeacherUserIdList(), ",") + 1;
+				}
+			}
+			examRoomStatisticsInfo.setExamRoomTeacherNum(teacherNum);
+		}
 
+        return examRoomStatisticsInfo;
 	}
 }

+ 22 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/StudentExamResultServiceImpl.java

@@ -0,0 +1,22 @@
+package com.keao.edu.user.service.impl;
+
+import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.service.impl.BaseServiceImpl;
+import com.keao.edu.user.dao.StudentExamResultDao;
+import com.keao.edu.user.entity.StudentExamResult;
+import com.keao.edu.user.service.StudentExamResultService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class StudentExamResultServiceImpl extends BaseServiceImpl<Long, StudentExamResult> implements StudentExamResultService {
+	
+	@Autowired
+	private StudentExamResultDao studentExamResultDao;
+
+	@Override
+	public BaseDAO<Long, StudentExamResult> getDAO() {
+		return studentExamResultDao;
+	}
+	
+}

+ 50 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -154,11 +154,60 @@
 		FROM
 			exam_registration er
 		LEFT JOIN exam_room_student_relation ersr ON ersr.student_id_ = er.student_id_
-		ersr.organ_id_ IN
+		WHERE ersr.organ_id_ IN
 		<foreach collection="organIds" item="organI" separator="," open="(" close=")">
 			#{organI}
 		</foreach>
 		AND er.examination_basic_id_ = #{examId}
 		AND ersr.id_ IS NULL
 	</select>
+
+	<select id="countInExamRoomStudentNum" resultType="int">
+		SELECT
+			COUNT(ersr.id_)
+		FROM
+			exam_room_student_relation ersr
+		LEFT JOIN exam_registration er ON ersr.student_id_ = er.student_id_ AND er.examination_basic_id_=ersr.examination_basic_id_
+		WHERE er.organ_id_ IN
+		<foreach collection="organIds" item="organI" separator="," open="(" close=")">
+			#{organI}
+		</foreach>
+		AND ersr.examination_basic_id_ = #{examId}
+	</select>
+
+	<resultMap id="ExamRegistrationStatisticsDto" type="com.keao.edu.user.dto.ExamRegistrationStatisticsDto">
+		<result property="totalRegistrationStudentNum" column="totalRegistrationStudentNum"/>
+		<result property="childOrganRegistrationStudentNum" column="childOrganRegistrationStudentNum"/>
+		<result property="waitAuditStudentNum" column="waitAuditStudentNum"/>
+		<result property="refundedStudentNum" column="refundedStudentNum"/>
+	</resultMap>
+
+    <select id="getExamRegistrationStaticsInfo" resultMap="ExamRegistrationStatisticsDto">
+		SELECT
+			SUM( CASE WHEN er.organ_id_ = #{selfOrganId} THEN 1 ELSE 0 END ) totalRegistrationStudentNum,
+			SUM( CASE WHEN er.organ_id_ != #{selfOrganId} THEN 1 ELSE 0 END ) childOrganRegistrationStudentNum,
+			SUM( CASE WHEN er.status_ = 'AUDIT_WAIT' THEN 1 ELSE 0 END ) waitAuditStudentNum,
+			SUM( CASE WHEN er.status_ = 'REFUNDED' THEN 1 ELSE 0 END ) refundedStudentNum
+		FROM
+			exam_registration er
+		WHERE
+			er.examination_basic_id_ = #{examId}
+			AND er.organ_id_ IN
+			<foreach collection="organIds" item="organId" separator="," open="(" close=")">
+				#{organId}
+			</foreach>
+    </select>
+
+	<select id="countTotalRegistrationStudentNumWithExam" resultType="int">
+		SELECT
+			COUNT(er.id_)
+		FROM
+		exam_registration er
+		WHERE er.organ_id_ IN
+		<foreach collection="organIds" item="organI" separator="," open="(" close=")">
+			#{organI}
+		</foreach>
+		AND er.examination_basic_id_ = #{examId}
+		AND er.status_ != ''
+	</select>
 </mapper>

+ 10 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/ExamRoomMapper.xml

@@ -133,16 +133,19 @@
 			</if>
 		</where>
 	</sql>
+	
 	<resultMap type="com.keao.edu.user.dto.ExamRoomDto" id="ExamRoomDto" extends="ExamRoom">
 		<association property="examLocation" javaType="com.keao.edu.user.entity.ExamLocation" resultMap="com.keao.edu.user.dao.ExamLocationDao.ExamLocation"/>
 		<association property="examinationBasic" javaType="com.keao.edu.user.entity.ExaminationBasic" resultMap="com.keao.edu.user.dao.ExaminationBasicDao.ExaminationBasic"/>
 	</resultMap>
+	
     <select id="countExamRoomPage" resultType="java.lang.Integer">
 		SELECT COUNT(er.id_) FROM exam_room er
 		LEFT JOIN exam_location el ON er.exam_location_id_ = el.id_ AND er.tenant_id_ = el.tenant_id_
 		LEFT JOIN examination_basic eb ON FIND_IN_SET(er.exam_location_id_,eb.exam_location_id_list_) AND er.tenant_id_ = eb.tenant_id_
 		<include refid="queryExamRoomPageSql"/>
 	</select>
+	
 	<select id="queryExamRoomPage" resultMap="ExamRoomDto">
 		SELECT er.*,eb.* FROM exam_room er
 		LEFT JOIN exam_location el ON er.exam_location_id_ = el.id_ AND er.tenant_id_ = el.tenant_id_
@@ -151,4 +154,11 @@
 		ORDER BY eb.expect_exam_start_time_ DESC
 		<include refid="global.limit"/>
 	</select>
+	
+    <select id="getWithExam" resultMap="ExamRoom">
+		SELECT * FROM exam_room WHERE examination_basic_id_=#{examId} AND organ_id_ IN
+		<foreach collection="organIds" item="organId" separator="," open="(" close=")">
+			#{organId}
+		</foreach>
+    </select>
 </mapper>

+ 84 - 0
edu-user/edu-user-server/src/main/resources/config/mybatis/StudentExamResultMapper.xml

@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.keao.edu.user.dao.StudentExamResultDao">
+	
+	<resultMap type="com.keao.edu.user.entity.StudentExamResult" id="StudentExamResult">
+		<result column="id_" property="id" />
+		<result column="examination_basic_id_" property="examinationBasicId" />
+		<result column="student_id_" property="studentId" />
+		<result column="result_" property="result" />
+		<result column="confirm_status_" property="confirmStatus" />
+		<result column="memo_" property="memo" />
+		<result column="operator_id_" property="operatorId" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+		<result column="tenant_id_" property="tenantId" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="StudentExamResult" >
+		SELECT * FROM student_exam_result WHERE id_ = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="StudentExamResult">
+		SELECT * FROM student_exam_result ORDER BY id_
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.keao.edu.user.entity.StudentExamResult" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		INSERT INTO student_exam_result (id_,examination_basic_id_,student_id_,result_,confirm_status_,memo_,operator_id_,create_time_,update_time_,tenant_id_)
+		VALUES(#{id},#{examinationBasicId},#{studentId},#{result},#{confirmStatus},#{memo},#{operatorId},NOW(),NOW(),#{tenantId})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.keao.edu.user.entity.StudentExamResult">
+		UPDATE student_exam_result
+		<set>
+			<if test="examinationBasicId != null">
+				examination_basic_id_ = #{examinationBasicId},
+			</if>
+			<if test="operatorId != null">
+				operator_id_ = #{operatorId},
+			</if>
+			<if test="id != null">
+				id_ = #{id},
+			</if>
+			<if test="tenantId != null">
+				tenant_id_ = #{tenantId},
+			</if>
+			<if test="confirmStatus != null">
+				confirm_status_ = #{confirmStatus},
+			</if>
+			<if test="studentId != null">
+				student_id_ = #{studentId},
+			</if>
+			<if test="result != null">
+				result_ = #{result},
+			</if>
+			<if test="memo != null">
+				memo_ = #{memo},
+			</if>
+				update_time_ = NOW()
+		</set> WHERE id_ = #{id}
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM student_exam_result WHERE id_ = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="StudentExamResult" parameterType="map">
+		SELECT * FROM student_exam_result ORDER BY id_ <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM student_exam_result
+	</select>
+</mapper>