zouxuan 2 anni fa
parent
commit
a46dda3971

+ 8 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/SchoolIndexStatWrapper.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
 
 
+import java.math.BigDecimal;
+
 public class SchoolIndexStatWrapper {
 public class SchoolIndexStatWrapper {
 
 
     @Data
     @Data
@@ -105,7 +107,7 @@ public class SchoolIndexStatWrapper {
         private Integer totalNum = 0;
         private Integer totalNum = 0;
 
 
         @ApiModelProperty("出勤率")
         @ApiModelProperty("出勤率")
-        private Integer attendanceRate = 0;
+        private BigDecimal attendanceRate = BigDecimal.ZERO;
     }
     }
 
 
     @Data
     @Data
@@ -113,18 +115,18 @@ public class SchoolIndexStatWrapper {
     public static class StudentLesson {
     public static class StudentLesson {
 
 
         @ApiModelProperty("应交人数")
         @ApiModelProperty("应交人数")
-        private Integer expectNum;
+        private Integer expectNum = 0;
 
 
         @ApiModelProperty("实际提交人数")
         @ApiModelProperty("实际提交人数")
-        private Integer actualNum;
+        private Integer actualNum = 0;
 
 
         @ApiModelProperty("合格提交人数")
         @ApiModelProperty("合格提交人数")
-        private Integer passNum;
+        private Integer passNum = 0;
 
 
         @ApiModelProperty("提交率")
         @ApiModelProperty("提交率")
-        private Integer commitRate;
+        private BigDecimal commitRate = BigDecimal.ZERO;
 
 
         @ApiModelProperty("合格率")
         @ApiModelProperty("合格率")
-        private Integer passRate;
+        private BigDecimal passRate = BigDecimal.ZERO;
     }
     }
 }
 }

+ 16 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SchoolIndexStatServiceImpl.java

@@ -15,6 +15,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
+import java.math.BigDecimal;
 import java.text.Collator;
 import java.text.Collator;
 import java.util.*;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
@@ -175,9 +176,10 @@ public class SchoolIndexStatServiceImpl implements SchoolIndexStatService {
         //获取学员考勤数据
         //获取学员考勤数据
         SchoolIndexStatWrapper.StudentAttendance studentAttendance = studentAttendanceDao.statCoopAttendance(musicGroupIds,queryDto);
         SchoolIndexStatWrapper.StudentAttendance studentAttendance = studentAttendanceDao.statCoopAttendance(musicGroupIds,queryDto);
         if(Objects.nonNull(studentAttendance)){
         if(Objects.nonNull(studentAttendance)){
-            int num = studentAttendance.getNormalNum() + studentAttendance.getLateNum();
+            Integer num = studentAttendance.getNormalNum() + studentAttendance.getLateNum();
             if(num > 0){
             if(num > 0){
-                studentAttendance.setAttendanceRate(num / studentAttendance.getTotalNum());
+                studentAttendance.setAttendanceRate(new BigDecimal(num).
+                        divide(new BigDecimal(studentAttendance.getTotalNum()),4,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).setScale(2));
             }
             }
         }
         }
         return studentAttendance;
         return studentAttendance;
@@ -195,7 +197,18 @@ public class SchoolIndexStatServiceImpl implements SchoolIndexStatService {
             return new SchoolIndexStatWrapper.StudentLesson();
             return new SchoolIndexStatWrapper.StudentLesson();
         }
         }
         this.setTime(queryDto);
         this.setTime(queryDto);
-        return lessonExaminationDao.schoolLessonStat(musicGroupIds,queryDto);
+        SchoolIndexStatWrapper.StudentLesson studentLesson = lessonExaminationDao.schoolLessonStat(musicGroupIds, queryDto);
+        if(Objects.nonNull(studentLesson)){
+            if(studentLesson.getActualNum() > 0){
+                studentLesson.setCommitRate(new BigDecimal(studentLesson.getActualNum()).
+                        divide(new BigDecimal(studentLesson.getExpectNum()),4,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).setScale(2));
+            }
+            if(studentLesson.getPassNum() > 0){
+                studentLesson.setPassRate(new BigDecimal(studentLesson.getPassNum()).
+                        divide(new BigDecimal(studentLesson.getExpectNum()),4,BigDecimal.ROUND_DOWN).multiply(new BigDecimal(100)).setScale(2));
+            }
+        }
+        return studentLesson;
     }
     }
 
 
     private void setTime(SchoolIndexStatWrapper.QueryDto queryDto){
     private void setTime(SchoolIndexStatWrapper.QueryDto queryDto){

+ 1 - 3
mec-biz/src/main/resources/config/mybatis/LessonExaminationMapper.xml

@@ -162,9 +162,7 @@
         group by s.id_
         group by s.id_
     </select>
     </select>
     <select id="schoolLessonStat" resultType="com.ym.mec.biz.dal.wrapper.SchoolIndexStatWrapper$StudentLesson">
     <select id="schoolLessonStat" resultType="com.ym.mec.biz.dal.wrapper.SchoolIndexStatWrapper$StudentLesson">
-        select SUM(cs.expectNum) expectNum,SUM(cs.actualNum) actualNum,SUM(cs.passNum) passNum,
-        TRUNCATE(SUM(cs.actualNum)/SUM(cs.expectNum),1) commitRate,
-        TRUNCATE(SUM(cs.passNum)/SUM(cs.expectNum),1) passRate
+        select SUM(cs.expectNum) expectNum,SUM(cs.actualNum) actualNum,SUM(cs.passNum) passNum
         from (
         from (
         select ch.expect_num_ expectNum,ch.completed_num_ actualNum,ch.completed_num_ passNum from
         select ch.expect_num_ expectNum,ch.completed_num_ actualNum,ch.completed_num_ passNum from
         course_homework ch
         course_homework ch