瀏覽代碼

班级量化考核

大数据与最优化研究所 1 年之前
父節點
當前提交
28e9839723

+ 9 - 3
src/main/java/com/xjrsoft/module/student/dto/CalssQuantitativeAssessmentPageDto.java

@@ -23,7 +23,7 @@ public class CalssQuantitativeAssessmentPageDto extends PageInput {
     @ApiModelProperty("入学年级(base_grade)")
     private Long gradeId;
     /**
-    * 学期ID(base_semester)
+    * 学期ID(base_semester)每一种统计数据需要关联学期
     */
     @ApiModelProperty("学期ID(base_semester)")
     private Long baseSemesterId;
@@ -43,12 +43,12 @@ public class CalssQuantitativeAssessmentPageDto extends PageInput {
     @ApiModelProperty("姓名")
     private String name;
     /**
-     * 开始时间
+     * 考核开始时间
      */
     @ApiModelProperty("开始时间")
     private LocalDateTime startTime;
     /**
-     * 结束时间
+     * 考核结束时间
      */
     @ApiModelProperty("结束时间")
     private LocalDateTime endTime;
@@ -57,4 +57,10 @@ public class CalssQuantitativeAssessmentPageDto extends PageInput {
      */
     @ApiModelProperty(value = "班级Id集合", hidden = true)
     private List<Long> classIdList;
+
+    /**
+     * 学期ID(base_semester)每一种统计数据需要关联学期
+     */
+    @ApiModelProperty(value = "学期ID(base_semester)", hidden = true)
+    private Long baseStudentAssessmentCategoryId;
 }

+ 10 - 0
src/main/java/com/xjrsoft/module/student/dto/QuantitativeAssessmentSingleScoreDto.java

@@ -14,6 +14,16 @@ public class QuantitativeAssessmentSingleScoreDto implements Serializable {
 
     private List<Long> classIdList;
 
+    /**
+     * 学期ID(base_semester)每一种统计数据需要关联学期
+     */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseStudentAssessmentCategoryId;
+    /**
+     * 学期ID(base_semester)每一种统计数据需要关联学期
+     */
+    @ApiModelProperty("学期ID(base_semester)")
+    private Long baseSemesterId;
     /**
      * 开始时间
      */

+ 1 - 7
src/main/java/com/xjrsoft/module/student/mapper/BaseStudentAssessmentInspectionMapper.java

@@ -57,13 +57,7 @@ public interface BaseStudentAssessmentInspectionMapper extends MPJBaseMapper<Bas
     List<QuantitativeAssessmentSubTableExcelVo> getQuantitativeAssessmentSubTableExcelVoList(@Param("dto") QuantitativeAssessmentExcelDto dto);
 
     //个人行为
-    List<QuantitativeAssessmentSingleScoreVo> getIndividualBehaviorList(@Param("dto") QuantitativeAssessmentSingleScoreDto dto);
-
-    //常规管理
-    List<QuantitativeAssessmentSingleScoreVo> getConventionalManagementList(@Param("dto") QuantitativeAssessmentSingleScoreDto dto);
-
-    //获奖及荣誉奖彰
-    List<QuantitativeAssessmentSingleScoreVo> getAwardsAndHonorList(@Param("dto") QuantitativeAssessmentSingleScoreDto dto);
+    List<QuantitativeAssessmentSingleScoreVo> getAssessmentInspectionByClassIdList(@Param("dto") QuantitativeAssessmentSingleScoreDto dto);
 
     List<QuantitativeAssessmentSingleScoreVo> getParamilitaryList(@Param("dto") QuantitativeAssessmentSingleScoreDto dto);
 

+ 47 - 27
src/main/java/com/xjrsoft/module/student/service/impl/BaseStudentAssessmentInspectionServiceImpl.java

@@ -256,6 +256,10 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
                 .selectAs(BaseClass::getIsGraduate, CalssQuantitativeAssessmentPageVo::getClassStatus)
                 .leftJoin(XjrUser.class, XjrUser::getId, BaseClass::getTeacherId)
                 .leftJoin(BaseClassMajorSet.class, BaseClassMajorSet::getClassId, BaseClass::getId)
+                .eq(dto.getGradeId() != null, BaseClass::getGradeId, dto.getGradeId())
+                .eq(dto.getClassId() != null, BaseClass::getId, dto.getClassId())
+                .eq(dto.getClassStatus() != null, BaseClass::getIsGraduate, dto.getClassStatus())
+                .like(dto.getName() != null && !dto.getName().equals(""), XjrUser::getName, dto.getName())
                 .disableSubLogicDel();
 
         IPage<CalssQuantitativeAssessmentPageVo> resultPage = baseClassMapper.selectJoinPage(page, CalssQuantitativeAssessmentPageVo.class, baseClassMPJLambdaWrapper);
@@ -265,34 +269,20 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
         for(CalssQuantitativeAssessmentPageVo c: resultPage.getRecords()){
             classIdList.add(Long.parseLong(c.getClassId()));
         }
+        dto.setClassIdList(classIdList);
 
-        if(classIdList.size() > 0){
+        if(!classIdList.isEmpty()){
             //学生个人行为
-            List<QuantitativeAssessmentSingleScoreVo> individualBehaviorList = assessmentInspectionMapper.getIndividualBehaviorList(new QuantitativeAssessmentSingleScoreDto(){{
-                setClassIdList(classIdList);
-            }});
-            Map<Long , QuantitativeAssessmentSingleScoreVo> individualBehaviorMap = new HashMap<>();
-            for (QuantitativeAssessmentSingleScoreVo q : individualBehaviorList) {
-                individualBehaviorMap.put(q.getClassId(), q);
-            }
+            dto.setBaseStudentAssessmentCategoryId(1768178717588197377L);
+            Map<Long , QuantitativeAssessmentSingleScoreVo> individualBehaviorMap = getQuantitativeAssessmentSingleScoreMap(dto);
 
             //常规管理
-            List<QuantitativeAssessmentSingleScoreVo> conventionalManagementList = assessmentInspectionMapper.getConventionalManagementList(new QuantitativeAssessmentSingleScoreDto(){{
-                setClassIdList(classIdList);
-            }});
-            Map<Long , QuantitativeAssessmentSingleScoreVo> conventionalManagementMap = new HashMap<>();
-            for (QuantitativeAssessmentSingleScoreVo q : conventionalManagementList) {
-                conventionalManagementMap.put(q.getClassId(), q);
-            }
+            dto.setBaseStudentAssessmentCategoryId(1769927649167151105L);
+            Map<Long , QuantitativeAssessmentSingleScoreVo> conventionalManagementMap = getQuantitativeAssessmentSingleScoreMap(dto);
 
             //获奖及荣誉奖彰
-            List<QuantitativeAssessmentSingleScoreVo> awardsAndHonorableList = assessmentInspectionMapper.getAwardsAndHonorList(new QuantitativeAssessmentSingleScoreDto(){{
-                setClassIdList(classIdList);
-            }});
-            Map<Long , QuantitativeAssessmentSingleScoreVo> awardsAndHonorableMap = new HashMap<>();
-            for (QuantitativeAssessmentSingleScoreVo q : awardsAndHonorableList) {
-                awardsAndHonorableMap.put(q.getClassId(), q);
-            }
+            dto.setBaseStudentAssessmentCategoryId(1768179375900987394L);
+            Map<Long , QuantitativeAssessmentSingleScoreVo> awardsAndHonorableMap = getQuantitativeAssessmentSingleScoreMap(dto);
 
             //准军事化考核
             List<QuantitativeAssessmentSingleScoreVo> paramilitaryList = assessmentInspectionMapper.getParamilitaryList(new QuantitativeAssessmentSingleScoreDto(){{
@@ -307,10 +297,11 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
             for(CalssQuantitativeAssessmentPageVo c: resultPage.getRecords()){
                 Long classId = Long.parseLong(c.getClassId());
                 if(individualBehaviorMap.get(classId) != null){
-                    c.setStuPersonalBehaviorSubScore(individualBehaviorMap.get(classId).getScore());
-                    ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
+                    c.setStuPersonalBehaviorSubScore(individualBehaviorMap.get(classId).getSumScore());
+                    c.setStuPersonalBehaviorScore((100 + individualBehaviorMap.get(classId).getSumScore())/100*25);
+                    /* ScriptEngine engine = new ScriptEngineManager().getEngineByName("js");
                     String geRenXingWeiGongShi = "sumSubScore/itemCount";
-                    /*int totalScore = scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateSubmitRecordId()).getTotalScore();
+                    int totalScore = scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateSubmitRecordId()).getTotalScore();
                     int itemCount = scoreBySubmitRecordId.get(mobileResultPageVo.getEvaluateSubmitRecordId()).getItemCount();
                     double res = 0;
                     String newStr1 = zonghezhishu.replace("totalScore", ""+totalScore);
@@ -327,11 +318,17 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
                 }
 
                 if(conventionalManagementMap.get(classId) != null){
-                    c.setClassConventionalManageSubScore(conventionalManagementMap.get(classId).getScore());
+                    c.setClassConventionalManageSubScore(conventionalManagementMap.get(classId).getSumScore());
+                    c.setClassConventionalManageScore((100 + conventionalManagementMap.get(classId).getSumScore())/100*25);
                 }
 
                 if(awardsAndHonorableMap.get(classId) != null){
-                    c.setHonorSumScore(awardsAndHonorableMap.get(classId).getScore());
+                    c.setHonorSumScore(awardsAndHonorableMap.get(classId).getSumScore());
+                    if(awardsAndHonorableMap.get(classId).getSumScore() < 10){
+                        c.setHonorScore(awardsAndHonorableMap.get(classId).getSumScore());
+                    }else {
+                        c.setHonorScore(10D);
+                    }
                 }
             }
         }
@@ -339,6 +336,29 @@ public class BaseStudentAssessmentInspectionServiceImpl extends MPJBaseServiceIm
         return resultPage;
     }
 
+    private Map<Long, QuantitativeAssessmentSingleScoreVo> getQuantitativeAssessmentSingleScoreMap(CalssQuantitativeAssessmentPageDto dto){
+        List<QuantitativeAssessmentSingleScoreVo> individualBehaviorList = assessmentInspectionMapper.getAssessmentInspectionByClassIdList(new QuantitativeAssessmentSingleScoreDto(){{
+            setClassIdList(dto.getClassIdList());
+            setBaseStudentAssessmentCategoryId(dto.getBaseStudentAssessmentCategoryId());
+            if(dto.getBaseSemesterId() != null){
+                setBaseSemesterId(dto.getBaseSemesterId());
+            }
+            if(dto.getStartTime() != null){
+                setStartTime(dto.getStartTime());
+            }
+            if(dto.getEndTime() != null){
+                setStartTime(dto.getEndTime());
+            }
+        }});
+        Map<Long , QuantitativeAssessmentSingleScoreVo> individualBehaviorMap = new HashMap<>();
+        for (QuantitativeAssessmentSingleScoreVo q : individualBehaviorList) {
+            if(q.getClassId() != null){
+                individualBehaviorMap.put(q.getClassId(), q);
+            }
+        }
+       return individualBehaviorMap;
+    }
+
     @Override
     @Transactional
     public Boolean dataHandle(Long id) {

+ 1 - 1
src/main/java/com/xjrsoft/module/student/vo/QuantitativeAssessmentSingleScoreVo.java

@@ -6,5 +6,5 @@ import lombok.Data;
 public class QuantitativeAssessmentSingleScoreVo {
     private Long classId;
 
-    private Double score;
+    private Double sumScore;
 }

+ 1 - 0
src/main/resources/application-dev.yml

@@ -108,6 +108,7 @@ xjrsoft:
       - /oauth2/* # oauth2
       - /system/bindOpenid # 绑定openid
       - /schedule/schedule/receive-msg
+      - /system/check-QR-code-login
   email:
     host:  #邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
     port:  # 邮件服务器的SMTP端口,可选,默认25

+ 1 - 0
src/main/resources/application-pre.yml

@@ -92,6 +92,7 @@ xjrsoft:
       - /oauth2/* # oauth2
       - /system/bindOpenid # 绑定openid
       - /schedule/schedule/receive-msg
+      - /system/check-QR-code-login
   email:
     host:  #邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
     port:  # 邮件服务器的SMTP端口,可选,默认25

+ 1 - 0
src/main/resources/application-prod.yml

@@ -87,6 +87,7 @@ xjrsoft:
       - /oauth2/* # oauth2
       - /system/bindOpenid # 绑定openid
       - /schedule/schedule/receive-msg
+      - /system/check-QR-code-login
   email:
     host:  #邮件服务器的SMTP地址,可选,默认为smtp.<发件人邮箱后缀>
     port:  # 邮件服务器的SMTP端口,可选,默认25

+ 20 - 14
src/main/resources/mapper/student/BaseStudentAssessmentInspectionMapper.xml

@@ -186,25 +186,31 @@
         order by t.class_id, t.user_id
     </select>
 
-    <select id="getIndividualBehaviorList" parameterType="com.xjrsoft.module.student.dto.QuantitativeAssessmentSingleScoreDto" resultType="com.xjrsoft.module.student.vo.QuantitativeAssessmentSingleScoreVo">
+    <select id="getAssessmentInspectionByClassIdList" parameterType="com.xjrsoft.module.student.dto.QuantitativeAssessmentSingleScoreDto" resultType="com.xjrsoft.module.student.vo.QuantitativeAssessmentSingleScoreVo">
         select
-           t.class_id as classId,
-           sum(t1.score) as score
-        from base_student_assessment_student_relation t
-                 left join base_student_assessment_inspection t1 on t1.id = t.base_student_assessment_inspection_id
-                 left join base_student_assessment_category t2 on t2.id = t1.base_student_assessment_category_id
-        where t1.base_student_assessment_category_id = 1754411541353992192
-          and t.class_id in
-        <foreach item="classId" index="index" collection="dto.classIdList" open="(" close=")" separator=",">
-            #{classId}
-        </foreach>
+        t.class_ids as class_id,
+        sum(t.score) as sumScore
+        from base_student_assessment_inspection t
+        where t.delete_mark = 0
+        <if test="dto.classIdList != null and !dto.classIdList.isEmpty()">
+            and t.class_ids in
+            <foreach item="classId" index="index" collection="dto.classIdList" open="(" close=")" separator=",">
+                #{classId}
+            </foreach>
+        </if>
+        <if test="dto.baseStudentAssessmentCategoryId != null and dto.baseStudentAssessmentCategoryId > 0">
+            and t.base_student_assessment_category_id = #{dto.baseStudentAssessmentCategoryId}
+        </if>
+        <if test="dto.baseSemesterId != null and dto.baseSemesterId > 0">
+            and t.base_semester_id &gt; #{dto.baseSemesterId}
+        </if>
         <if test="dto.startTime != null and dto.startTime != ''">
-            and t1.create_date &gt; #{dto.startTime}
+            and t.create_date &gt; #{dto.startTime}
         </if>
         <if test="dto.endTime != null and dto.endTime != ''">
-            and t1.create_date &lt; #{dto.endTime}
+            and t.create_date &lt; #{dto.endTime}
         </if>
-        group by t.class_id;
+        group by t.class_ids;
     </select>
 
     <select id="getConventionalManagementList" parameterType="com.xjrsoft.module.student.dto.QuantitativeAssessmentSingleScoreDto" resultType="com.xjrsoft.module.student.vo.QuantitativeAssessmentSingleScoreVo">