Joburgess 5 jaren geleden
bovenliggende
commit
6cc596ba7a

+ 9 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/ExamRegistrationDao.java

@@ -177,4 +177,13 @@ public interface ExamRegistrationDao extends BaseDAO<Long, ExamRegistration> {
      * @return java.util.List<com.keao.edu.user.entity.ExamRegistration>
      */
     List<ExamRegistration> getNotInRoomStudents(@Param("examId") Long examId);
+
+    /**
+     * @describe 统计合作单位的招生人数
+     * @author Joburgess
+     * @date 2020.08.12
+     * @param organIds:
+     * @return com.keao.edu.user.dto.OrganExamRegistStatisticsDto
+     */
+    OrganExamRegistStatisticsDto getOrganExamRegistStatistics(@Param("organIds") List<Integer> organIds);
 }

+ 48 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/OrganExamRegistStatisticsDto.java

@@ -0,0 +1,48 @@
+package com.keao.edu.user.dto;
+
+/**
+ * @Author Joburgess
+ * @Date 2020.08.12
+ */
+public class OrganExamRegistStatisticsDto {
+
+    private Integer organId;
+
+    private String organName;
+
+    private Integer thisYearRegistStudentNum;
+
+    private Integer historyRegistStudentNum;
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public Integer getThisYearRegistStudentNum() {
+        return thisYearRegistStudentNum;
+    }
+
+    public void setThisYearRegistStudentNum(Integer thisYearRegistStudentNum) {
+        this.thisYearRegistStudentNum = thisYearRegistStudentNum;
+    }
+
+    public Integer getHistoryRegistStudentNum() {
+        return historyRegistStudentNum;
+    }
+
+    public void setHistoryRegistStudentNum(Integer historyRegistStudentNum) {
+        this.historyRegistStudentNum = historyRegistStudentNum;
+    }
+}

+ 9 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/ExamRegistrationService.java

@@ -91,4 +91,13 @@ public interface ExamRegistrationService extends BaseService<Long, ExamRegistrat
     * @return
     */
    PageInfo<StudentBaseExamsDto> studentBaseExams(QueryInfo queryInfo);
+
+   /**
+    * @describe 统计合作单位的招生人数
+    * @author Joburgess
+    * @date 2020.08.12
+    * @param organId:
+    * @return com.keao.edu.user.dto.OrganExamRegistStatisticsDto
+    */
+   OrganExamRegistStatisticsDto getOrganExamRegistStatistics(Integer organId);
 }

+ 10 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRegistrationServiceImpl.java

@@ -29,6 +29,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
 
 import java.math.BigDecimal;
 import java.util.*;
@@ -399,4 +400,13 @@ public class ExamRegistrationServiceImpl extends BaseServiceImpl<Long, ExamRegis
         pageInfo.setRows(dataList);
         return pageInfo;
     }
+
+    @Override
+    public OrganExamRegistStatisticsDto getOrganExamRegistStatistics(Integer organId) {
+        List<Integer> childOrganIds = organizationService.getChildOrganIds(organId, false);
+        if(CollectionUtils.isEmpty(childOrganIds)){
+            return null;
+        }
+        return examRegistrationDao.getOrganExamRegistStatistics(childOrganIds);
+    }
 }

+ 14 - 0
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamRegistrationMapper.xml

@@ -646,4 +646,18 @@
 			AND er.status_ IN ('AUDIT_PASS', 'AUDIT_WAIT')
 			AND NOT EXISTS ( SELECT id_ FROM exam_room_student_relation WHERE examination_basic_id_ = #{examId} AND er.id_ = exam_registration_id_ )
 	</select>
+
+    <select id="getOrganExamRegistStatistics" resultType="com.keao.edu.user.dto.OrganExamRegistStatisticsDto">
+		SELECT
+			o.id_ 'organId',
+			o.name_ 'organName',
+			SUM(CASE YEAR(er.create_time_) WHEN YEAR(NOW()) THEN 1 ELSE 0 END) 'thisYearRegistStudentNum',
+			SUM(CASE WHEN YEAR(er.create_time_)!=YEAR(NOW()) THEN 1 ELSE 0 END) 'historyRegistStudentNum'
+		FROM
+			organization o
+			LEFT JOIN exam_registration er ON er.organ_id_ = o.id_
+		WHERE er.status_ IN ('AUDIT_WAIT', 'AUDIT_PASS', 'AUDIT_REJECT')
+		GROUP BY
+			er.organ_id_
+	</select>
 </mapper>

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

@@ -153,4 +153,20 @@ public class ExamRegistrationController extends BaseController {
         return succeed(examRegistrationService.repay(student.getId(), orderNo));
     }
 
+    @ApiOperation(value = "统计合作单位的招生人数")
+    @GetMapping(value = "getOrganExamRegistStatistics")
+    @PreAuthorize("@pcs.hasPermissions('examRegistration/getOrganExamRegistStatistics')")
+    public HttpResponseResult<OrganExamRegistStatisticsDto> getOrganExamRegistStatistics(){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        Integer organId = null;
+        if(!sysUser.getIsSuperAdmin()){
+            Employee employee = employeeService.get(sysUser.getId());
+            if(Objects.isNull(employee)){
+                return failed("用户信息异常");
+            }
+            organId = employee.getOrganId();
+        }
+        return succeed(examRegistrationService.getOrganExamRegistStatistics(organId));
+    }
+
 }