xiaof hace 4 años
padre
commit
732df6c5e8
Se han modificado 13 ficheros con 312 adiciones y 9 borrados
  1. 64 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/CourseInfo.java
  2. 53 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/ExamInfo.java
  3. 31 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/ReportResult.java
  4. 42 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/StudentInfo.java
  5. 12 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/entity/TAExamCourseRecord.java
  6. 5 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TAExamCourseRecordMapper.java
  7. 2 0
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TBExamStudentService.java
  8. 35 3
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseServiceImpl.java
  9. 6 4
      teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java
  10. 0 0
      teachcloud-report-business/src/main/resources/db/init-table.sql
  11. 24 0
      teachcloud-report-business/src/main/resources/mapper/TAExamCourseRecordMapper.xml
  12. 37 1
      teachcloud-report-business/src/main/resources/mapper/TBExamStudentMapper.xml
  13. 1 1
      teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/StudentReportController.java

+ 64 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/CourseInfo.java

@@ -0,0 +1,64 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Date: 2021/6/9.
+ */
+public class CourseInfo {
+
+    @ApiModelProperty(value = "试卷编号")
+    private String examCode;
+
+    @ApiModelProperty(value = "课程代码")
+    private String courseCode;
+
+    @ApiModelProperty(value = "课程名称")
+    private String courseName;
+
+    @ApiModelProperty(value = "是否缺考")
+    private Boolean absent;
+
+    @ApiModelProperty(value = "是否发布")
+    private String publishStatus;
+
+    public String getExamCode() {
+        return examCode;
+    }
+
+    public void setExamCode(String examCode) {
+        this.examCode = examCode;
+    }
+
+    public String getCourseCode() {
+        return courseCode;
+    }
+
+    public void setCourseCode(String courseCode) {
+        this.courseCode = courseCode;
+    }
+
+    public String getCourseName() {
+        return courseName;
+    }
+
+    public void setCourseName(String courseName) {
+        this.courseName = courseName;
+    }
+
+    public Boolean getAbsent() {
+        return absent;
+    }
+
+    public void setAbsent(Boolean absent) {
+        this.absent = absent;
+    }
+
+    public String getPublishStatus() {
+        return publishStatus;
+    }
+
+    public void setPublishStatus(String publishStatus) {
+        this.publishStatus = publishStatus;
+    }
+}

+ 53 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/ExamInfo.java

@@ -0,0 +1,53 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Date: 2021/6/9.
+ */
+public class ExamInfo {
+
+    @ApiModelProperty(value = "试卷编号")
+    private String examCode;
+
+    @ApiModelProperty(value = "创建时间")
+    private String createTime;
+
+    @ApiModelProperty(value = "考试名称")
+    private String examName;
+
+    @ApiModelProperty(value = "是否缺考")
+    private CourseInfo courseInfo;
+
+    public String getExamCode() {
+        return examCode;
+    }
+
+    public void setExamCode(String examCode) {
+        this.examCode = examCode;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getExamName() {
+        return examName;
+    }
+
+    public void setExamName(String examName) {
+        this.examName = examName;
+    }
+
+    public CourseInfo getCourseInfo() {
+        return courseInfo;
+    }
+
+    public void setCourseInfo(CourseInfo courseInfo) {
+        this.courseInfo = courseInfo;
+    }
+}

+ 31 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/ReportResult.java

@@ -0,0 +1,31 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Date: 2021/6/9.
+ */
+public class ReportResult {
+
+    @ApiModelProperty(value = "考生信息")
+    private StudentInfo studentInfo;
+
+    @ApiModelProperty(value = "考试信息")
+    private ExamInfo examInfo;
+
+    public StudentInfo getStudentInfo() {
+        return studentInfo;
+    }
+
+    public void setStudentInfo(StudentInfo studentInfo) {
+        this.studentInfo = studentInfo;
+    }
+
+    public ExamInfo getExamInfo() {
+        return examInfo;
+    }
+
+    public void setExamInfo(ExamInfo examInfo) {
+        this.examInfo = examInfo;
+    }
+}

+ 42 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/bean/result/StudentInfo.java

@@ -0,0 +1,42 @@
+package com.qmth.teachcloud.report.business.bean.result;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Date: 2021/6/9.
+ */
+public class StudentInfo {
+
+    @ApiModelProperty(value = "考号")
+    private String studentCode;
+
+    @ApiModelProperty(value = "学校")
+    private String school;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    public String getStudentCode() {
+        return studentCode;
+    }
+
+    public void setStudentCode(String studentCode) {
+        this.studentCode = studentCode;
+    }
+
+    public String getSchool() {
+        return school;
+    }
+
+    public void setSchool(String school) {
+        this.school = school;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 12 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/entity/TAExamCourseRecord.java

@@ -66,6 +66,10 @@ public class TAExamCourseRecord implements Serializable {
     @TableField(value = "standardized_coefficients")
     private BigDecimal standardizedCoefficients;
 
+    @ApiModelProperty(value = "是否应届")
+    @TableField(value = "current")
+    private Integer current;
+
     public Long getSchoolId() {
         return schoolId;
     }
@@ -149,4 +153,12 @@ public class TAExamCourseRecord implements Serializable {
     public void setStandardizedCoefficients(BigDecimal standardizedCoefficients) {
         this.standardizedCoefficients = standardizedCoefficients;
     }
+
+    public Integer getCurrent() {
+        return current;
+    }
+
+    public void setCurrent(Integer current) {
+        this.current = current;
+    }
 }

+ 5 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/mapper/TAExamCourseRecordMapper.java

@@ -2,6 +2,10 @@ package com.qmth.teachcloud.report.business.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.qmth.teachcloud.report.business.entity.TAExamCourseRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +17,5 @@ import com.qmth.teachcloud.report.business.entity.TAExamCourseRecord;
  */
 public interface TAExamCourseRecordMapper extends BaseMapper<TAExamCourseRecord> {
 
+    List<TAExamCourseRecord> listExamCourseRecord(@Param("schoolId") Long schoolId, @Param("semester") String semester, @Param("examId") Long examId, @Param("courseCode") String courseCode);
 }

+ 2 - 0
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/TBExamStudentService.java

@@ -145,4 +145,6 @@ public interface TBExamStudentService extends IService<TBExamStudent> {
      * @return
      */
     IPage<TBStudentReportResult> reportList(IPage<Map> iPage, Long schoolId, Long examId, Long collegeId, String courseCode, Long clazzId, Boolean absent);
+
+    ReportResult reportResult(Long convertIdToLong, String studentCode);
 }

+ 35 - 3
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TAExamCourseServiceImpl.java

@@ -5,13 +5,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.report.business.bean.result.TAExamCourseResult;
 import com.qmth.teachcloud.report.business.entity.TAExamCourse;
+import com.qmth.teachcloud.report.business.entity.TAExamCourseRecord;
 import com.qmth.teachcloud.report.business.enums.PublishStatusEnum;
 import com.qmth.teachcloud.report.business.enums.SemesterEnum;
 import com.qmth.teachcloud.report.business.mapper.TAExamCourseMapper;
+import com.qmth.teachcloud.report.business.mapper.TAExamCourseRecordMapper;
 import com.qmth.teachcloud.report.business.service.TAExamCourseService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -30,6 +35,9 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
     @Resource
     TAExamCourseMapper taExamCourseMapper;
 
+    @Resource
+    TAExamCourseRecordMapper taExamCourseRecordMapper;
+
     /**
      * 开课课程考试总览列表接口
      *
@@ -50,6 +58,7 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         return taExamCourseMapper.getOverview(schoolId, semester, examId, courseCode);
     }
+
     /**
      * 赋分管理列表接口
      *
@@ -70,10 +79,33 @@ public class TAExamCourseServiceImpl extends ServiceImpl<TAExamCourseMapper, TAE
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         Map<String, Object> map = new HashMap<>();
         // 不及格率
-        Map<String, String > scoreAndRate = taExamCourseMapper.getScoreAndRate(schoolId, semester, examId, courseCode);
+        Map<String, String> scoreAndRate = taExamCourseMapper.getScoreAndRate(schoolId, semester, examId, courseCode);
         map.put("scoreAndRate", scoreAndRate);
-        // 成绩正态分布 todo
-
+        // 成绩正态分布
+        String[] strings = {"90~100", "80~89", "70~79", "60~69", "55~59", "1~54"};
+        List<Map<String, Object>> mapList = new ArrayList<>();
+        for (String string : strings) {
+            String[] str = string.split("~");
+            double startScore = Double.parseDouble(str[0]);
+            double endScore = Double.parseDouble(str[1]);
+            List<TAExamCourseRecord> taExamCourseRecords = taExamCourseRecordMapper.listExamCourseRecord(schoolId, semester, examId, courseCode);
+            // 全部有效人数
+            int totalRealityCount = taExamCourseRecords.size();
+            // 本分数段人数
+            long totalScoreCount = taExamCourseRecords.stream().filter(m -> m.getAssignedScore().doubleValue() >= startScore && m.getAssignedScore().doubleValue() <= endScore).count();
+            // 应届有效人数
+            long totalCurrentCount = taExamCourseRecords.stream().filter(m -> m.getCurrent() == 1).count();
+            // 本分数段应届有效人数
+            long totalScoreCurrentCount = taExamCourseRecords.stream().filter(m -> m.getCurrent() == 1 && m.getAssignedScore().doubleValue() >= startScore && m.getAssignedScore().doubleValue() <= endScore).count();
+            Map<String, Object> objectMap = new HashMap<>();
+            objectMap.put("scores", String.join(",", str));
+            objectMap.put("totalRealityCount", totalRealityCount);
+            objectMap.put("totalRate", totalRealityCount == 0 ? 0 : new BigDecimal(totalScoreCount).divide(new BigDecimal(totalRealityCount), 2, BigDecimal.ROUND_HALF_UP));
+            objectMap.put("currentRealityCount", totalCurrentCount);
+            objectMap.put("totalRate", totalCurrentCount == 0 ? 0 : new BigDecimal(totalScoreCurrentCount).divide(new BigDecimal(totalCurrentCount), 2, BigDecimal.ROUND_HALF_UP));
+            mapList.add(objectMap);
+        }
+        map.put("grades", mapList);
         return map;
     }
 }

+ 6 - 4
teachcloud-report-business/src/main/java/com/qmth/teachcloud/report/business/service/impl/TBExamStudentServiceImpl.java

@@ -14,10 +14,7 @@ import com.qmth.teachcloud.common.util.ExcelUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.excel.ExcelError;
 import com.qmth.teachcloud.report.business.bean.dto.ExamStudentTypeDto;
-import com.qmth.teachcloud.report.business.bean.result.InspectCollegeResult;
-import com.qmth.teachcloud.report.business.bean.result.TBExamStudentResult;
-import com.qmth.teachcloud.report.business.bean.result.TBStudentReportResult;
-import com.qmth.teachcloud.report.business.bean.result.TeachCollegeResult;
+import com.qmth.teachcloud.report.business.bean.result.*;
 import com.qmth.teachcloud.report.business.entity.TBExamStudent;
 import com.qmth.teachcloud.report.business.mapper.TBExamStudentMapper;
 import com.qmth.teachcloud.report.business.service.TBExamStudentService;
@@ -209,4 +206,9 @@ public class TBExamStudentServiceImpl extends ServiceImpl<TBExamStudentMapper, T
     public IPage<TBStudentReportResult> reportList(IPage<Map> iPage, Long schoolId, Long examId, Long collegeId, String courseCode, Long clazzId, Boolean absent) {
         return tbExamStudentMapper.reportList(iPage, schoolId, examId, collegeId, courseCode, clazzId, absent);
     }
+
+    @Override
+    public ReportResult reportResult(Long schoolId, String studentCode) {
+        return null;
+    }
 }

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
teachcloud-report-business/src/main/resources/db/init-table.sql


+ 24 - 0
teachcloud-report-business/src/main/resources/mapper/TAExamCourseRecordMapper.xml

@@ -2,4 +2,28 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.qmth.teachcloud.report.business.mapper.TAExamCourseRecordMapper">
 
+    <select id="listExamCourseRecord"
+            resultType="com.qmth.teachcloud.report.business.entity.TAExamCourseRecord">
+        SELECT
+            a.assigned_score assignedScore,
+            a.student_code studentCode,
+            a.current
+        FROM
+            t_a_exam_course_record a
+                LEFT JOIN
+            t_b_exam b ON a.exam_id = b.id
+        WHERE
+        <where>
+            and b.school_id = #{schoolId}
+            <if test="semester != null and semester != ''">
+                AND b.semester = #{semester}
+            </if>
+            <if test="examId != null">
+                AND a.exam_id = #{examId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                AND a.course_code = #{courseCode}
+            </if>
+        </where>
+    </select>
 </mapper>

+ 37 - 1
teachcloud-report-business/src/main/resources/mapper/TBExamStudentMapper.xml

@@ -195,6 +195,42 @@
     </select>
 
     <select id="reportList" resultType="com.qmth.teachcloud.report.business.bean.result.TBStudentReportResult">
-
+        SELECT
+            c.name inspectCollegeName,
+            b.exam_code examCode,
+            a.course_code courseCode,
+            a.student_code studentCode,
+            a.course_name courseName,
+            b.school_id schoolId,
+            b.exam_name examName,
+            a.name studentName,
+            d.clazz_name clazzName,
+            a.absent
+        FROM
+            t_b_exam_student a
+                LEFT JOIN
+            t_b_exam b ON a.exam_id = b.id
+                LEFT JOIN
+            sys_org c ON a.inspect_college_id = c.id
+                LEFT JOIN
+            t_b_school_clazz d ON a.clazz_id = d.id
+        <where>
+            and b.school_id = #{schoolId}
+            <if test="examId != null">
+                and a.exam_id = #{examId}
+            </if>
+            <if test="collegeId != null">
+                and a.inspect_college_id = #{collegeId}
+            </if>
+            <if test="courseCode != null and courseCode != ''">
+                and a.course_code = #{courseCode}
+            </if>
+            <if test="clazzId != null">
+                and a.clazz_id = #{clazzId}
+            </if>
+            <if test="absent != null">
+                and a.absent = #{absent}
+            </if>
+        </where>
     </select>
 </mapper>

+ 1 - 1
teachcloud-report/src/main/java/com/qmth/teachcloud/report/api/StudentReportController.java

@@ -48,7 +48,7 @@ public class StudentReportController {
     @ApiResponses({@ApiResponse(code = 200, message = "考生信息", response = TBExamStudentResult.class)})
     public Result reportResult(@ApiParam(value = "学校id", required = true) @RequestParam String schoolId,
                                @ApiParam(value = "学号", required = true) @RequestParam String studentCode) {
-        return ResultUtil.ok();
+        return ResultUtil.ok(tbExamStudentService.reportResult(SystemConstant.convertIdToLong(schoolId), studentCode));
     }
 
     @ApiOperation(value = "学生报告接口")

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio