diff --git a/src/main/java/com/sztzjy/financial_bigdata/controller/stu/ExamController.java b/src/main/java/com/sztzjy/financial_bigdata/controller/stu/ExamController.java
index b1cd864..c5abb5d 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/controller/stu/ExamController.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/controller/stu/ExamController.java
@@ -86,7 +86,10 @@ public class ExamController {
     @GetMapping("startCase")
     @ApiOperation("**案例考核开始考试")
     @AnonymousAccess
-    public ResultEntity<List<TestTestSysCaseQuestionStepWithBLOBs>> startCase(@RequestParam String examManageId,@RequestParam String userId,@RequestParam String classId,@ApiParam("默认差第一条 传递first")@RequestParam String caseId){
+    public ResultEntity<List<TestTestSysCaseQuestionStepWithBLOBs>> startCase(@RequestParam String examManageId,
+                                                                              @RequestParam String userId,
+                                                                              @RequestParam String classId,
+                                                                              @ApiParam("默认差第一条 传递first")@RequestParam String caseId){
         List<TestTestSysCaseQuestionStepWithBLOBs> list= null;
         try {
             list = examService.startCase(examManageId,userId,classId,caseId);
diff --git a/src/main/java/com/sztzjy/financial_bigdata/controller/stu/StuKnowledgeNote.java b/src/main/java/com/sztzjy/financial_bigdata/controller/stu/StuKnowledgeNote.java
index 36adcb0..c125bac 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/controller/stu/StuKnowledgeNote.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/controller/stu/StuKnowledgeNote.java
@@ -5,13 +5,14 @@ import com.sztzjy.financial_bigdata.annotation.AnonymousAccess;
 import com.sztzjy.financial_bigdata.entity.StuTrainingExample;
 import com.sztzjy.financial_bigdata.entity.StuTrainingWithBLOBs;
 import com.sztzjy.financial_bigdata.entity.SysKnowledgeSummary;
-import com.sztzjy.financial_bigdata.entity.SysObjectiveQuestionExample;
+import com.sztzjy.financial_bigdata.entity.SysWeight;
 import com.sztzjy.financial_bigdata.entity.resource_entity.TestSysKnowledgeSummary;
 import com.sztzjy.financial_bigdata.entity.stu_dto.ReceivingObject;
 import com.sztzjy.financial_bigdata.mapper.StuTrainingMapper;
 import com.sztzjy.financial_bigdata.mapper.SysKnowledgeSummaryMapper;
-import com.sztzjy.financial_bigdata.mapper.SysObjectiveQuestionMapper;
+import com.sztzjy.financial_bigdata.mapper.SysWeightMapper;
 import com.sztzjy.financial_bigdata.resourceCenterAPI.KnowledgeSummaryApi;
+import com.sztzjy.financial_bigdata.service.tea.ITeaGradeManageService;
 import com.sztzjy.financial_bigdata.util.PdfUtil;
 import com.sztzjy.financial_bigdata.util.ResultEntity;
 import com.sztzjy.financial_bigdata.util.file.IFileUtil;
@@ -32,6 +33,7 @@ import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -50,6 +52,10 @@ public class StuKnowledgeNote {
     private String filePath;
     @Autowired
     private SysKnowledgeSummaryMapper sysKnowledgeSummaryMapper;
+    @Autowired
+    private SysWeightMapper sysWeightMapper;
+    @Autowired
+    private ITeaGradeManageService iTeaGradeManageService;
 
     @AnonymousAccess
     @ApiOperation("知识笔记-保存")
@@ -112,10 +118,13 @@ public class StuKnowledgeNote {
     @AnonymousAccess
     @ApiOperation("***知识概要-获取页面")
     @PostMapping("getSysKnowledgeSummaryByChapterId")
-    public ResultEntity<TestSysKnowledgeSummary> getSysKnowledgeSummaryByChapterId(@RequestParam String chapterId,@RequestParam String courseId, @RequestParam String schoolId, @RequestParam String systemOwner) {
+    public ResultEntity<TestSysKnowledgeSummary> getSysKnowledgeSummaryByChapterId(@RequestParam String chapterId, @RequestParam String courseId, @RequestParam String schoolId, @RequestParam String systemOwner) {
         TestSysKnowledgeSummary sysKnowledgeSummary = null;
         try {
-            sysKnowledgeSummary = KnowledgeSummaryApi.getSysKnowledgeSummary(courseId,chapterId, schoolId, systemOwner);
+            sysKnowledgeSummary = KnowledgeSummaryApi.getSysKnowledgeSummary(courseId, chapterId, schoolId, systemOwner);
+            if(sysKnowledgeSummary==null){
+                return new ResultEntity<>(HttpStatus.OK, "无知识概要");
+            }
         } catch (IOException e) {
             return new ResultEntity<>(HttpStatus.BAD_REQUEST, "资源中心接口异常");
         }
@@ -161,7 +170,39 @@ public class StuKnowledgeNote {
         } else {
             return new ResultEntity<>(list.get(0).getTrainingId());
         }
+    }
+
+
+    @AnonymousAccess
+    @ApiOperation("知识概要-算分")
+    @PostMapping("getScore") //阅读1分钟得60分,1分钟以下不得分,多1分钟加10分。 60分为默认值老师可修改
+    public ResultEntity<BigDecimal> getScore(@ApiParam("数字 单位分钟") @RequestParam Integer minutes,
+                                             @RequestParam String courseId,
+                                             @RequestParam String schoolId,
+                                             @RequestParam String systemOwner,
+                                             @RequestParam String trainingId) {
+        StuTrainingWithBLOBs stuTrainingWithBLOBs = stuTrainingMapper.selectByPrimaryKey(trainingId);
+        if (stuTrainingWithBLOBs.getKnowledgeSummaryCompleteStatus() != null) {
+            //不为空直接返回
+            return new ResultEntity<>(stuTrainingWithBLOBs.getKnowledgeSummaryScore());
+        }
 
+        //为空设置
+        SysWeight sysWeight = iTeaGradeManageService.getSysWeightResultEntity(courseId, schoolId, systemOwner);
+        BigDecimal knowledgeSummaryDefaultRule = sysWeight.getKnowledgeSummaryDefaultRule();
+        if (minutes < 1) {
+            stuTrainingWithBLOBs.setKnowledgeSummaryScore(BigDecimal.ZERO);
+        } else if (minutes == 1) {
+            stuTrainingWithBLOBs.setKnowledgeSummaryScore(knowledgeSummaryDefaultRule); //老师只能修改这个分值
+        } else {
+            int extraMinutes = minutes - 1;
+            int totalScore = 60 + extraMinutes * 10;
+            knowledgeSummaryDefaultRule = BigDecimal.valueOf(totalScore);
+            stuTrainingWithBLOBs.setKnowledgeSummaryScore(knowledgeSummaryDefaultRule);
+        }
+        stuTrainingWithBLOBs.setResourceLearningCompleteStatus(minutes);
+        stuTrainingMapper.updateByPrimaryKey(stuTrainingWithBLOBs);
+        return new ResultEntity<>(knowledgeSummaryDefaultRule);
     }
 
 
diff --git a/src/main/java/com/sztzjy/financial_bigdata/controller/stu/StuScoreController.java b/src/main/java/com/sztzjy/financial_bigdata/controller/stu/StuScoreController.java
index 3c86ada..8403239 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/controller/stu/StuScoreController.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/controller/stu/StuScoreController.java
@@ -9,6 +9,8 @@ import com.sztzjy.financial_bigdata.mapper.StuTrainingMapper;
 import com.sztzjy.financial_bigdata.mapper.SysWeightMapper;
 import com.sztzjy.financial_bigdata.mapper.TrainingReportMapper;
 import com.sztzjy.financial_bigdata.resourceCenterAPI.CourseAPI;
+import com.sztzjy.financial_bigdata.service.stu.StuScoreService;
+import com.sztzjy.financial_bigdata.service.tea.ITeaGradeManageService;
 import com.sztzjy.financial_bigdata.util.ResultEntity;
 import com.sztzjy.financial_bigdata.util.file.IFileUtil;
 import io.swagger.annotations.Api;
@@ -43,19 +45,24 @@ public class StuScoreController {
     private SysWeightMapper sysWeightMapper;
     @Autowired
     private StuTrainingMapper stuTrainingMapper;
+    @Autowired
+    private ITeaGradeManageService gradeManageService;
+    @Autowired
+    private StuScoreService stuScoreService;
+
 
     @AnonymousAccess
     @ApiOperation("***得分情况展示")
     @PostMapping("getScoreInfo")
     public ResultEntity<StuTrainingDto> getScoreInfo(@RequestParam String userId,
                                                      @RequestParam String chapterId,
-                                                     @RequestParam String schoolId) {
+                                                     @RequestParam String schoolId,
+                                                     @RequestParam String systemOwner) {
+        StuTrainingDto stuTrainingDto = new StuTrainingDto();
+
         StuTrainingExample stuTrainingExample = new StuTrainingExample();
         stuTrainingExample.createCriteria().andUserIdEqualTo(userId).andChapterIdEqualTo(chapterId);
         List<StuTrainingWithBLOBs> stuTrainings = stuTrainingMapper.selectByExampleWithBLOBs(stuTrainingExample);
-
-        StuTrainingDto stuTrainingDto = new StuTrainingDto();
-
         //根据章节ID拿到课程ID 再去拿权重
         SysThreeCatalog sysCourseChapter = null;
         try {
@@ -63,30 +70,14 @@ public class StuScoreController {
         } catch (IOException e) {
             return new ResultEntity<>(HttpStatus.BAD_REQUEST, "资源中心根据章节ID查询章节信息失败");
         }
-        SysWeightExample sysWeightExample = new SysWeightExample();
-        sysWeightExample.createCriteria().andCourseIdEqualTo(sysCourseChapter.getTwoId()).andSchoolIdEqualTo(schoolId);
-        List<SysWeight> sysWeights = sysWeightMapper.selectByExample(sysWeightExample);
-        if (!sysWeights.isEmpty()) {
-            SysWeight sysWeight = sysWeights.get(0);
-            BeanUtils.copyProperties(sysWeight, stuTrainingDto);  //五个权重
-        }
         if (!stuTrainings.isEmpty()) {
             StuTrainingWithBLOBs stuTrainingWithBLOBs = stuTrainings.get(0);
-
-            BeanUtils.copyProperties(stuTrainingWithBLOBs, stuTrainingDto); //四个完成情况和四个得分
-            TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(stuTrainingWithBLOBs.getReportId());
-            //设置报告相关数据
-            if (trainingReport == null || trainingReport.getTeacherScore() == null) {
-                stuTrainingDto.setReportCompleteStatus("未提交");
-                stuTrainingDto.setReportScore(null);
-            } else {
-                stuTrainingDto.setReportCompleteStatus("已提交");
-                stuTrainingDto.setReportScore(trainingReport.getTeacherScore());
-            }
+            stuTrainingDto = stuScoreService.getScoreByChapterId(schoolId, systemOwner, stuTrainingWithBLOBs, stuTrainingDto, sysCourseChapter);
         }
         return new ResultEntity<StuTrainingDto>(stuTrainingDto);
     }
 
+
     @AnonymousAccess
     @ApiOperation("实验报告展示")
     @PostMapping("getReportByUserId")
diff --git a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java
index 6e5ca78..9d508a3 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaGradeManageController.java
@@ -6,14 +6,17 @@ import com.github.pagehelper.PageInfo;
 import com.sztzjy.financial_bigdata.annotation.AnonymousAccess;
 import com.sztzjy.financial_bigdata.entity.*;
 import com.sztzjy.financial_bigdata.entity.resource_entity.SysObjectiveQuestions;
+import com.sztzjy.financial_bigdata.entity.resource_entity.SysThreeCatalog;
 import com.sztzjy.financial_bigdata.entity.resource_entity.SysTwoCatalog;
 import com.sztzjy.financial_bigdata.entity.resource_entity.TestTestSysCaseQuestionStepWithBLOBs;
+import com.sztzjy.financial_bigdata.entity.stu_dto.StuTrainingDto;
 import com.sztzjy.financial_bigdata.entity.stu_dto.StuUserDto;
 import com.sztzjy.financial_bigdata.entity.tea_dto.*;
 import com.sztzjy.financial_bigdata.mapper.*;
 import com.sztzjy.financial_bigdata.resourceCenterAPI.CaseApi;
 import com.sztzjy.financial_bigdata.resourceCenterAPI.CourseAPI;
 import com.sztzjy.financial_bigdata.resourceCenterAPI.ObjectiveApi;
+import com.sztzjy.financial_bigdata.service.stu.StuScoreService;
 import com.sztzjy.financial_bigdata.service.tea.ITeaGradeManageService;
 import com.sztzjy.financial_bigdata.service.tea.impl.TeaGradeManageServiceImpl;
 import com.sztzjy.financial_bigdata.util.PageUtil;
@@ -71,6 +74,11 @@ public class TeaGradeManageController {
     private SysWeightMapper sysWeightMapper;
     @Autowired
     private StuTheoryExamMapper stuTheoryExamMapper;
+    @Autowired
+    private StuTrainingMapper stuTrainingMapper;
+    @Autowired
+    StuScoreService stuScoreService;
+
 
     @AnonymousAccess
     @PostMapping("/getExamInfo")
@@ -85,20 +93,20 @@ public class TeaGradeManageController {
             return null;
         }
         List<TeaExamManageCountDto> teaExamManageCountDtos = new ArrayList<>();
-        Map<String, StuUser> userMap = new HashMap<>();
+        Map<Integer, StuUser> userMap = new HashMap<>();
 
-        List<String> userIds = new ArrayList<>();
+        List<Integer> userIds = new ArrayList<>();
         for (TeaExamManage teaExamManage : teaExamManages) {
-            String userId = teaExamManage.getUserId();
-            userIds.add(userId);
+            Integer zyUserId = Integer.parseInt(teaExamManage.getUserId()); //这里是智云 zyUserId
+            userIds.add(zyUserId);
         }
 
         //存储用户信息
-        StuUserExample example =new StuUserExample();
-        example.createCriteria().andSystemOnwerEqualTo(systemOwner).andUseridIn(userIds);
+        StuUserExample example = new StuUserExample();
+        example.createCriteria().andSystemOnwerEqualTo(systemOwner).andZyUseridIn(userIds);
         List<StuUser> stuUsers = userMapper.selectByExample(example);
         for (StuUser stuUser : stuUsers) {
-            userMap.put(stuUser.getUserid(), stuUser);
+            userMap.put(stuUser.getZyUserid(), stuUser);
         }
 
         for (TeaExamManage teaExamManage : teaExamManages) {
@@ -132,7 +140,7 @@ public class TeaGradeManageController {
             copyexamManageWithBLOBs.setExamTime(concatenatedTimeString); //考试时间
 
             String userId = teaExamManage.getUserId();
-            StuUser stuUser = userMap.get(userId);
+            StuUser stuUser = userMap.get(Integer.parseInt(userId));
             copyexamManageWithBLOBs.setName(stuUser.getName()); //发布人
             teaExamManageCountDtos.add(copyexamManageWithBLOBs);
         }
@@ -363,8 +371,7 @@ public class TeaGradeManageController {
         }
         // 构建班级ID列表
         List<String> classIds = stuUsers.stream()
-                .map(StuUser::getClassId)
-                .collect(Collectors.toList());
+                .map(StuUser::getClassId).distinct().collect(Collectors.toList());
 
         // 批量查询学生分数
         StuStudentExamExample studentExamExample = new StuStudentExamExample();
@@ -397,7 +404,7 @@ public class TeaGradeManageController {
             teaExamAndUserDto.setName(stuUser.getName());
             teaExamAndUserDto.setStudentId(stuUser.getStudentId());
             // 从映射关系中获取班级对象
-            if (classMap.get(stuUser.getClassId())==null){
+            if (classMap.get(stuUser.getClassId()) == null) {
                 continue;
             }
             StuClass classdata = classMap.get(stuUser.getClassId());
@@ -574,7 +581,7 @@ public class TeaGradeManageController {
     @ApiOperation("练习模式--成绩详情页面设置权重")
     public void updateWeightByModule(@ApiParam("所有框必须传") @RequestBody SysWeight sysWeight) {
         SysWeightExample sysWeightExample = new SysWeightExample();
-        sysWeightExample.createCriteria().andCourseIdEqualTo(sysWeight.getCourseId()).andSystemOwnerEqualTo(sysWeight.getSystemOwner());
+        sysWeightExample.createCriteria().andCourseIdEqualTo(sysWeight.getCourseId()).andSystemOwnerEqualTo(sysWeight.getSystemOwner()).andSchoolIdEqualTo(sysWeight.getSchoolId());
         List<SysWeight> sysWeights = sysWeightMapper.selectByExample(sysWeightExample);
         if (!sysWeights.isEmpty()) {//有 update
             sysWeightMapper.updateByPrimaryKey(sysWeight);
@@ -610,14 +617,7 @@ public class TeaGradeManageController {
     public ResultEntity<SysWeight> getModuleByCourseId(@RequestParam String courseId,
                                                        @RequestParam String schoolId,
                                                        @RequestParam String systemOwner) {
-        SysWeightExample sysWeightExample = new SysWeightExample();
-        sysWeightExample.createCriteria().andSchoolIdEqualTo(schoolId).andCourseIdEqualTo(courseId).andSystemOwnerEqualTo(systemOwner);
-        List<SysWeight> sysWeights = sysWeightMapper.selectByExample(sysWeightExample);
-        if (sysWeights.isEmpty()) {
-            //todo 是否需要设置默认权重
-            return new ResultEntity<>(new SysWeight());
-        }
-        return new ResultEntity<>(sysWeights.get(0));
+        return new ResultEntity<SysWeight>(iTeaGradeManageService.getSysWeightResultEntity(courseId, schoolId, systemOwner));
     }
 
 
@@ -659,6 +659,67 @@ public class TeaGradeManageController {
         return new ResultEntity<>(pageInfo);
     }
 
+//
+//    @AnonymousAccess
+//    @ApiOperation("老师端/练习模式得分详情展示")
+//    @PostMapping("getScoreInfo")
+//    public ResultEntity<List<StuTrainingDto>> getScoreInfo(@RequestParam String userId,
+//                                                           @RequestParam String schoolId,
+//                                                           @RequestParam String systemOwner) {
+//        List<StuTrainingDto> list = new ArrayList<>();
+//
+//        StuTrainingExample stuTrainingExample = new StuTrainingExample();
+//        stuTrainingExample.createCriteria().andUserIdEqualTo(userId);
+//        List<StuTrainingWithBLOBs> stuTrainings = stuTrainingMapper.selectByExampleWithBLOBs(stuTrainingExample);
+//        //根据章节ID拿到课程ID 再去拿权重
+//        try {
+//            for (StuTrainingWithBLOBs stuTraining : stuTrainings) {
+//                StuTrainingDto stuTrainingDto = new StuTrainingDto();
+//                String chapterId = stuTraining.getChapterId();
+//                SysThreeCatalog sysCourseChapter = CourseAPI.selectChapterByChapterId(chapterId);
+//                stuTrainingDto.setTaskModule(sysCourseChapter.getThreeName());
+//                stuTrainingDto = stuScoreService.getScoreByChapterId(schoolId, systemOwner, stuTraining, stuTrainingDto, sysCourseChapter);
+//                list.add(stuTrainingDto);
+//            }
+//        } catch (IOException e) {
+//            return new ResultEntity<>(HttpStatus.BAD_REQUEST, "资源中心根据章节ID查询章节信息失败");
+//        }
+//        return new ResultEntity<>(list);
+//    }
+
+    @AnonymousAccess
+    @ApiOperation("老师端/练习模式得分详情展示")
+    @PostMapping("getScoreInfo")
+    public ResultEntity<List<StuTrainingDto>> getScoreInfo(@RequestParam String userId,
+                                                           @RequestParam String schoolId,
+                                                           @RequestParam String systemOwner) {
+        List<StuTrainingDto> list = new ArrayList<>();
+
+        StuTrainingExample stuTrainingExample = new StuTrainingExample();
+        stuTrainingExample.createCriteria().andUserIdEqualTo(userId);
+        List<StuTrainingWithBLOBs> stuTrainings = stuTrainingMapper.selectByExampleWithBLOBs(stuTrainingExample);
+
+        Map<String, SysThreeCatalog> chapterMap = new HashMap<>();
+
+        try {
+            for (StuTrainingWithBLOBs stuTraining : stuTrainings) {
+                String chapterId = stuTraining.getChapterId();
+                SysThreeCatalog sysCourseChapter = chapterMap.get(chapterId);
+                if (sysCourseChapter == null) {
+                    sysCourseChapter = CourseAPI.selectChapterByChapterId(chapterId);
+                    chapterMap.put(chapterId, sysCourseChapter);
+                }
+                StuTrainingDto stuTrainingDto = new StuTrainingDto();
+                stuTrainingDto.setTaskModule(sysCourseChapter.getThreeName());
+                list.add(stuScoreService.getScoreByChapterId(schoolId, systemOwner, stuTraining, stuTrainingDto, sysCourseChapter));
+            }
+        } catch (IOException e) {
+            return new ResultEntity<>(HttpStatus.BAD_REQUEST, "资源中心根据章节ID查询章节信息失败");
+        }
+        return new ResultEntity<>(list);
+    }
+
+
 
 }
 
diff --git a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaResourceCenterController.java b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaResourceCenterController.java
index decda79..3ce9c8e 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaResourceCenterController.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/controller/tea/TeaResourceCenterController.java
@@ -1,9 +1,13 @@
 package com.sztzjy.financial_bigdata.controller.tea;
 
 import com.sztzjy.financial_bigdata.annotation.AnonymousAccess;
+import com.sztzjy.financial_bigdata.entity.StuTrainingWithBLOBs;
+import com.sztzjy.financial_bigdata.entity.SysWeight;
 import com.sztzjy.financial_bigdata.entity.TeaResourceCenter;
 import com.sztzjy.financial_bigdata.entity.resource_entity.SysResource;
+import com.sztzjy.financial_bigdata.mapper.StuTrainingMapper;
 import com.sztzjy.financial_bigdata.resourceCenterAPI.ResourceCenterApi;
+import com.sztzjy.financial_bigdata.service.tea.ITeaGradeManageService;
 import com.sztzjy.financial_bigdata.service.tea.ITeaResourceCenterService;
 import com.sztzjy.financial_bigdata.util.ResultEntity;
 import com.sztzjy.financial_bigdata.util.file.IFileUtil;
@@ -14,12 +18,10 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.io.IOException;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -34,6 +36,10 @@ public class TeaResourceCenterController {
     ITeaResourceCenterService resourceCenterService;
     @Value("${file.path}")
     private String filePath;
+    @Autowired
+    private StuTrainingMapper stuTrainingMapper;
+    @Autowired
+    ITeaGradeManageService iTeaGradeManageService;
 
 
     //根据课程id查看资源文件列表
@@ -70,4 +76,35 @@ public class TeaResourceCenterController {
         }
     }
 
+    @AnonymousAccess
+    @ApiOperation("学习资源-算分")
+    @PostMapping("getResourceScore") //观看资源1分钟得60分,1分钟以下不得分,多1分钟加10分。
+    public ResultEntity<BigDecimal> getScore(@ApiParam("数字 单位分钟") @RequestParam Integer minutes,
+                                          @RequestParam String courseId,
+                                          @RequestParam String schoolId,
+                                          @RequestParam String systemOwner,
+                                          @RequestParam String trainingId) {
+        StuTrainingWithBLOBs stuTrainingWithBLOBs = stuTrainingMapper.selectByPrimaryKey(trainingId);
+        if (stuTrainingWithBLOBs.getKnowledgeSummaryCompleteStatus() != null) {
+            //不为空直接返回
+            return new ResultEntity<>(stuTrainingWithBLOBs.getResourceLearningScore());
+        }
+
+        //为空设置
+        SysWeight sysWeight = iTeaGradeManageService.getSysWeightResultEntity(courseId, schoolId, systemOwner);
+        BigDecimal resourceLearningDefaultRule = sysWeight.getResourceLearningDefaultRule();
+        if (minutes < 1) {
+            stuTrainingWithBLOBs.setResourceLearningScore(BigDecimal.ZERO);
+        } else if (minutes == 1) {
+            stuTrainingWithBLOBs.setResourceLearningScore(resourceLearningDefaultRule); //老师只能修改这个分值
+        } else {
+            int extraMinutes = minutes - 1;
+            int totalScore = 60 + extraMinutes * 10;
+            resourceLearningDefaultRule = BigDecimal.valueOf(totalScore);
+            stuTrainingWithBLOBs.setResourceLearningScore(resourceLearningDefaultRule);
+        }
+        stuTrainingWithBLOBs.setResourceLearningCompleteStatus(minutes);
+        stuTrainingMapper.updateByPrimaryKey(stuTrainingWithBLOBs);
+        return new ResultEntity<>(resourceLearningDefaultRule);
+    }
 }
diff --git a/src/main/java/com/sztzjy/financial_bigdata/entity/StuUser.java b/src/main/java/com/sztzjy/financial_bigdata/entity/StuUser.java
index 242a63a..fb8dec1 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/entity/StuUser.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/entity/StuUser.java
@@ -3,12 +3,15 @@ package com.sztzjy.financial_bigdata.entity;
 import java.util.Date;
 
 import io.swagger.annotations.ApiModelProperty;
+import lombok.EqualsAndHashCode;
+
 /**
  * 学生用户信息表
  *
  * @author xcj
  * stu_userinfo
  */
+@EqualsAndHashCode
 public class StuUser {
     @ApiModelProperty("用户ID")
     private String userid;
diff --git a/src/main/java/com/sztzjy/financial_bigdata/entity/stu_dto/StuTrainingDto.java b/src/main/java/com/sztzjy/financial_bigdata/entity/stu_dto/StuTrainingDto.java
index c2f5e16..ac0316c 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/entity/stu_dto/StuTrainingDto.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/entity/stu_dto/StuTrainingDto.java
@@ -70,5 +70,6 @@ public class StuTrainingDto {
     @ApiModelProperty("实验报告完成情况")
     private String reportCompleteStatus;
 
-
+    @ApiModelProperty("模板名称")
+    private String taskModule;
 }
diff --git a/src/main/java/com/sztzjy/financial_bigdata/resourceCenterAPI/KnowledgeSummaryApi.java b/src/main/java/com/sztzjy/financial_bigdata/resourceCenterAPI/KnowledgeSummaryApi.java
index d68fae8..de868e5 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/resourceCenterAPI/KnowledgeSummaryApi.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/resourceCenterAPI/KnowledgeSummaryApi.java
@@ -30,8 +30,12 @@ public class KnowledgeSummaryApi {
                 .registerTypeAdapter(Date.class, new DateTypeAdapter())
                 .create();
         Type listType = new TypeToken<TestSysKnowledgeSummary>() {}.getType();
-        TestSysKnowledgeSummary knowledgeSummarie = gson.fromJson(object.get("respString").toString(), listType);
-        return knowledgeSummarie;
+        try {
+            TestSysKnowledgeSummary knowledgeSummarie = gson.fromJson(object.get("respString").toString(), listType);
+            return knowledgeSummarie;
+        }catch (Exception e){
+            return null;
+        }
     }
 
 }
diff --git a/src/main/java/com/sztzjy/financial_bigdata/service/stu/StuScoreService.java b/src/main/java/com/sztzjy/financial_bigdata/service/stu/StuScoreService.java
new file mode 100644
index 0000000..9db2e3e
--- /dev/null
+++ b/src/main/java/com/sztzjy/financial_bigdata/service/stu/StuScoreService.java
@@ -0,0 +1,15 @@
+package com.sztzjy.financial_bigdata.service.stu;
+
+import com.sztzjy.financial_bigdata.entity.StuTrainingWithBLOBs;
+import com.sztzjy.financial_bigdata.entity.resource_entity.SysThreeCatalog;
+import com.sztzjy.financial_bigdata.entity.stu_dto.StuTrainingDto;
+
+import java.util.List;
+
+/**
+ * @Author xcj
+ * @Date 2024/11/22
+ */
+public interface StuScoreService {
+    StuTrainingDto getScoreByChapterId(String schoolId, String systemOwner,StuTrainingWithBLOBs stuTrainingWithBLOBs, StuTrainingDto stuTrainingDto, SysThreeCatalog sysCourseChapter);
+}
diff --git a/src/main/java/com/sztzjy/financial_bigdata/service/stu/impl/ExerciseServiceImpl.java b/src/main/java/com/sztzjy/financial_bigdata/service/stu/impl/ExerciseServiceImpl.java
index c7c916b..2492979 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/service/stu/impl/ExerciseServiceImpl.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/service/stu/impl/ExerciseServiceImpl.java
@@ -56,7 +56,7 @@ public class ExerciseServiceImpl implements IExerciseService {
             return dtos;
         }else {
             StuTrainingWithBLOBs bloBs = stuTrainingWithBLOBs.get(0);
-            if (bloBs==null) {
+            if (bloBs==null) {                                                     //todo 这里为什么要调查询全部的接口
                 List<SysObjectiveQuestions> objectiveQuestionList = ObjectiveApi.selectObjectQuestionListByChapterId(chapterId);
                 for (int i = 0; i < objectiveQuestionList.size(); i++) {
                     SysObjectiveQuestions objectiveQuestion = objectiveQuestionList.get(i);
@@ -72,7 +72,7 @@ public class ExerciseServiceImpl implements IExerciseService {
             }else {
                 if(StringUtils.isBlank(bloBs.getLearningEvalAnswer())){  //判断是否提交过   未提交
                     if(bloBs.getLearningEvalIdlist()==null){
-                        List<SysObjectiveQuestions> objectiveQuestionList = ObjectiveApi.selectObjectQuestionListByChapterId(chapterId);
+                        List<SysObjectiveQuestions> objectiveQuestionList = ObjectiveApi.selectRandomObjectiveByChapterId(chapterId);
                         for (int i = 0; i < objectiveQuestionList.size(); i++) {
                             SysObjectiveQuestions objectiveQuestion = objectiveQuestionList.get(i);
                             String objectiveId = objectiveQuestion.getObjectiveId();
@@ -122,6 +122,8 @@ public class ExerciseServiceImpl implements IExerciseService {
 //        }
         List<String> stuAnswerList = new ArrayList<>();
         BigDecimal learning_eval_score= BigDecimal.valueOf(0);
+        //记录错题数
+        Integer errorCount= 0;
         List<String> objectiveIds=new ArrayList<>();
         for (int i = 0; i < objectiveQuestionDtoList.size(); i++) {
             SysObjectiveQuestionDto sysObjectiveQuestionDto = objectiveQuestionDtoList.get(i);
@@ -132,13 +134,15 @@ public class ExerciseServiceImpl implements IExerciseService {
             stuAnswerList.add(stuAnswer);
             if(answer.equals(stuAnswer)){
                 learning_eval_score= learning_eval_score.add(objectiveQuestion.getScore());
+            }else {
+                errorCount++;
             }
             objectiveIds.add(objectiveId);
         }
         StuTrainingWithBLOBs bloBs = stuTrainingWithBLOBs.get(0);
         bloBs.setLearningEvalAnswer(String.valueOf(stuAnswerList));
         bloBs.setLearningEvalScore(learning_eval_score);
-        bloBs.setLearningEvalCompleteStatus(1);
+        bloBs.setLearningEvalCompleteStatus(errorCount);
         BigDecimal progress = bloBs.getProgress();
         bloBs.setLearningEvalIdlist(String.valueOf(objectiveIds));
         if(progress==null){
diff --git a/src/main/java/com/sztzjy/financial_bigdata/service/stu/impl/StuScoreServiceImpl.java b/src/main/java/com/sztzjy/financial_bigdata/service/stu/impl/StuScoreServiceImpl.java
new file mode 100644
index 0000000..c20dad9
--- /dev/null
+++ b/src/main/java/com/sztzjy/financial_bigdata/service/stu/impl/StuScoreServiceImpl.java
@@ -0,0 +1,212 @@
+package com.sztzjy.financial_bigdata.service.stu.impl;
+
+import com.sztzjy.financial_bigdata.entity.StuTrainingWithBLOBs;
+import com.sztzjy.financial_bigdata.entity.SysWeight;
+import com.sztzjy.financial_bigdata.entity.SysWeightExample;
+import com.sztzjy.financial_bigdata.entity.TrainingReport;
+import com.sztzjy.financial_bigdata.entity.resource_entity.SysThreeCatalog;
+import com.sztzjy.financial_bigdata.entity.stu_dto.StuTrainingDto;
+import com.sztzjy.financial_bigdata.mapper.SysWeightMapper;
+import com.sztzjy.financial_bigdata.mapper.TrainingReportMapper;
+import com.sztzjy.financial_bigdata.service.stu.StuScoreService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.List;
+
+/**
+ * @Author xcj
+ * @Date 2024/11/22
+ */
+@Service
+public class StuScoreServiceImpl implements StuScoreService {
+    @Autowired
+    private SysWeightMapper sysWeightMapper;
+    @Autowired
+    TrainingReportMapper trainingReportMapper;
+
+
+//    @Override
+//    public StuTrainingDto getScoreByChapterId(String schoolId, String systemOwner, StuTrainingWithBLOBs stuTrainingWithBLOBs, StuTrainingDto stuTrainingDto, SysThreeCatalog sysCourseChapter) {
+//        SysWeightExample sysWeightExample = new SysWeightExample();
+//        sysWeightExample.createCriteria().andCourseIdEqualTo(sysCourseChapter.getTwoId()).andSchoolIdEqualTo(schoolId).andSystemOwnerEqualTo(systemOwner);
+//        List<SysWeight> sysWeights = sysWeightMapper.selectByExample(sysWeightExample);
+//        if (!sysWeights.isEmpty()) {
+//            SysWeight sysWeight = sysWeights.get(0);
+//            BeanUtils.copyProperties(sysWeight, stuTrainingDto);  //五个权重
+//        } else {
+//            //设置默认权重
+//            stuTrainingDto.setKnowledgeSummaryDefaultRule(BigDecimal.valueOf(60)); //知识概要默认计分规则 阅读1分钟得60分,1分钟以下不得分,多1分钟加10分。
+//            stuTrainingDto.setResourceLearningDefaultRule(BigDecimal.valueOf(60)); //资源学习默认计分规则 观看资源1分钟得60分,1分钟以下不得分,多1分钟加10分。
+//            stuTrainingDto.setLearningEvalDefaultRule(BigDecimal.valueOf(10)); //学习测评默认计分规则 客观题10分每道
+//            stuTrainingDto.setExpTrainingDefautRule(BigDecimal.valueOf(2));//实训题,输错/选错次数扣2分,最低0分
+//            stuTrainingDto.setKnowledgeSummaryWeight(BigDecimal.valueOf(5));
+//            stuTrainingDto.setResourceLearningWeight(BigDecimal.valueOf(5));
+//            stuTrainingDto.setLearningEvalWeight(BigDecimal.valueOf(20));
+//            stuTrainingDto.setExpTrainingWeight(BigDecimal.valueOf(60));
+//            stuTrainingDto.setReportWeight(BigDecimal.valueOf(10));
+//        }
+//        BeanUtils.copyProperties(stuTrainingWithBLOBs, stuTrainingDto); //四个完成情况和四个得分
+//        //知识概要得分
+//        Integer knowledgeSummaryCompleteStatus = 0;
+//        BigDecimal knowledgeSummaryScore = BigDecimal.ZERO;
+//        if (stuTrainingWithBLOBs.getKnowledgeSummaryCompleteStatus() != null && stuTrainingWithBLOBs.getKnowledgeSummaryCompleteStatus() != 0) {
+//            knowledgeSummaryCompleteStatus = stuTrainingWithBLOBs.getKnowledgeSummaryCompleteStatus();
+//            knowledgeSummaryScore = stuTrainingDto.getKnowledgeSummaryDefaultRule().add(BigDecimal.valueOf((knowledgeSummaryCompleteStatus - 1) * 10));
+//            if (knowledgeSummaryScore.compareTo(BigDecimal.valueOf(100)) > 0) {
+//                knowledgeSummaryScore = BigDecimal.valueOf(100);
+//            }
+//            knowledgeSummaryScore = knowledgeSummaryScore.multiply(stuTrainingDto.getKnowledgeSummaryWeight().divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
+//        }
+//        stuTrainingDto.setKnowledgeSummaryScore(knowledgeSummaryScore);
+//        //资源学习得分
+//        Integer resourceLearningCompleteStatus = 0;
+//        BigDecimal resourceLearningScore = BigDecimal.ZERO;
+//        if (stuTrainingWithBLOBs.getResourceLearningCompleteStatus() != null && stuTrainingWithBLOBs.getResourceLearningCompleteStatus() != 0) {
+//            resourceLearningCompleteStatus = stuTrainingWithBLOBs.getResourceLearningCompleteStatus();
+//            resourceLearningScore = stuTrainingDto.getResourceLearningDefaultRule().add(BigDecimal.valueOf((resourceLearningCompleteStatus - 1) * 10));
+//            if (resourceLearningScore.compareTo(BigDecimal.valueOf(100)) > 0) {
+//                resourceLearningScore = BigDecimal.valueOf(100);
+//            }
+//            resourceLearningScore = resourceLearningScore.multiply(stuTrainingDto.getResourceLearningWeight().divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP));
+//        }
+//        stuTrainingDto.setResourceLearningScore(resourceLearningScore);
+//
+//        //学习评测得分
+//        Integer learningEvalCompleteStatus = 0;
+//        BigDecimal learningEvalScore = BigDecimal.ZERO;
+//        if (stuTrainingWithBLOBs.getLearningEvalCompleteStatus() != null) {
+//            learningEvalCompleteStatus = stuTrainingWithBLOBs.getLearningEvalCompleteStatus();
+//            learningEvalScore = BigDecimal.valueOf(100).subtract(stuTrainingDto.getLearningEvalDefaultRule().multiply(BigDecimal.valueOf(learningEvalCompleteStatus)));
+//            if (learningEvalScore.compareTo(BigDecimal.valueOf(0)) < 0) {
+//                learningEvalScore = BigDecimal.valueOf(0);
+//            }
+//            stuTrainingDto.setLearningEvalScore(learningEvalScore.multiply(stuTrainingDto.getLearningEvalWeight().divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP)));
+//        } else {
+//            stuTrainingDto.setLearningEvalScore(learningEvalScore);
+//        }
+//
+//        //实验实训分数计算
+//        Integer expTrainingCompleteStatus = 0;
+//        BigDecimal expTrainingScore = BigDecimal.ZERO;
+//        if (stuTrainingWithBLOBs.getExpTrainingCompleteStatus() != null) {
+//            expTrainingCompleteStatus = stuTrainingWithBLOBs.getExpTrainingCompleteStatus();
+//            expTrainingScore = BigDecimal.valueOf(100).subtract(stuTrainingDto.getExpTrainingDefautRule().multiply(BigDecimal.valueOf(expTrainingCompleteStatus)));
+//            if (expTrainingScore.compareTo(BigDecimal.valueOf(0)) < 0) {
+//                expTrainingScore = BigDecimal.valueOf(0);
+//            }
+//            stuTrainingDto.setCaseStuScore(expTrainingScore.multiply(stuTrainingDto.getExpTrainingWeight().divide(BigDecimal.valueOf(100), 2, BigDecimal.ROUND_HALF_UP)));
+//        } else {
+//            stuTrainingDto.setCaseStuScore(expTrainingScore);
+//        }
+//
+//
+//        TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(stuTrainingWithBLOBs.getReportId());
+//        //设置报告相关数据
+//        if (trainingReport == null || trainingReport.getTeacherScore() == null) {
+//            stuTrainingDto.setReportCompleteStatus("未提交");
+//            stuTrainingDto.setReportScore(null);
+//        } else {
+//            stuTrainingDto.setReportCompleteStatus("已提交");
+//            stuTrainingDto.setReportScore(trainingReport.getTeacherScore());
+//        }
+//        return stuTrainingDto;
+//    }
+
+
+    @Override
+    public StuTrainingDto getScoreByChapterId(String schoolId, String systemOwner, StuTrainingWithBLOBs stuTrainingWithBLOBs, StuTrainingDto stuTrainingDto, SysThreeCatalog sysCourseChapter) {
+        SysWeightExample sysWeightExample = new SysWeightExample();
+        sysWeightExample.createCriteria().andCourseIdEqualTo(sysCourseChapter.getTwoId())
+                .andSchoolIdEqualTo(schoolId)
+                .andSystemOwnerEqualTo(systemOwner);
+
+        List<SysWeight> sysWeights = sysWeightMapper.selectByExample(sysWeightExample);
+        if (!sysWeights.isEmpty()) {
+            SysWeight sysWeight = sysWeights.get(0);
+            BeanUtils.copyProperties(sysWeight, stuTrainingDto);  // 提取权重数据
+        } else {
+            setDefaultWeights(stuTrainingDto);
+        }
+
+        BeanUtils.copyProperties(stuTrainingWithBLOBs, stuTrainingDto); // 完成情况和得分
+
+        // 计算各模块得分
+        calculateModuleScores(stuTrainingWithBLOBs, stuTrainingDto);
+
+        // 设置报告相关数据
+        setReportData(stuTrainingDto, stuTrainingWithBLOBs.getReportId());
+
+        return stuTrainingDto;
+    }
+
+    private void setDefaultWeights(StuTrainingDto stuTrainingDto) {
+        stuTrainingDto.setKnowledgeSummaryDefaultRule(BigDecimal.valueOf(60));
+        stuTrainingDto.setResourceLearningDefaultRule(BigDecimal.valueOf(60));
+        stuTrainingDto.setLearningEvalDefaultRule(BigDecimal.valueOf(10));
+        stuTrainingDto.setExpTrainingDefautRule(BigDecimal.valueOf(2));
+        stuTrainingDto.setKnowledgeSummaryWeight(BigDecimal.valueOf(5));
+        stuTrainingDto.setResourceLearningWeight(BigDecimal.valueOf(5));
+        stuTrainingDto.setLearningEvalWeight(BigDecimal.valueOf(20));
+        stuTrainingDto.setExpTrainingWeight(BigDecimal.valueOf(60));
+        stuTrainingDto.setReportWeight(BigDecimal.valueOf(10));
+    }
+
+    private void calculateModuleScores(StuTrainingWithBLOBs stuTrainingWithBLOBs, StuTrainingDto stuTrainingDto) {
+        stuTrainingDto.setKnowledgeSummaryScore(calculateScore(
+                stuTrainingDto.getKnowledgeSummaryDefaultRule(),
+                stuTrainingDto.getKnowledgeSummaryWeight(),
+                stuTrainingWithBLOBs.getKnowledgeSummaryCompleteStatus()
+        ));
+
+        stuTrainingDto.setResourceLearningScore(calculateScore(
+                stuTrainingDto.getResourceLearningDefaultRule(),
+                stuTrainingDto.getResourceLearningWeight(),
+                stuTrainingWithBLOBs.getResourceLearningCompleteStatus()
+        ));
+
+        stuTrainingDto.setLearningEvalScore(calculateEvaluationScore(
+                stuTrainingDto.getLearningEvalDefaultRule(),
+                stuTrainingDto.getLearningEvalWeight(),
+                stuTrainingWithBLOBs.getLearningEvalCompleteStatus()
+        ));
+
+        stuTrainingDto.setCaseStuScore(calculateEvaluationScore(
+                stuTrainingDto.getExpTrainingDefautRule(),
+                stuTrainingDto.getExpTrainingWeight(),
+                stuTrainingWithBLOBs.getExpTrainingCompleteStatus()
+        ));
+    }
+
+    private BigDecimal calculateScore(BigDecimal defaultRule, BigDecimal weight, Integer completeStatus) {
+        if (completeStatus != null && completeStatus > 0) {
+            BigDecimal score = defaultRule.add(BigDecimal.valueOf((completeStatus - 1) * 10));
+            score = score.min(BigDecimal.valueOf(100));  // 确保分数不超过100
+            return score.multiply(weight.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
+        }
+        return BigDecimal.ZERO;
+    }
+
+    private BigDecimal calculateEvaluationScore(BigDecimal defaultRule, BigDecimal weight, Integer completeStatus) {
+        if (completeStatus != null) {
+            BigDecimal score = BigDecimal.valueOf(100).subtract(defaultRule.multiply(BigDecimal.valueOf(completeStatus)));
+            return score.max(BigDecimal.ZERO).multiply(weight.divide(BigDecimal.valueOf(100), 2, RoundingMode.HALF_UP));
+        }
+        return BigDecimal.ZERO;
+    }
+
+    private void setReportData(StuTrainingDto stuTrainingDto, String reportId) {
+        TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(reportId);
+        if (trainingReport == null || trainingReport.getTeacherScore() == null) {
+            stuTrainingDto.setReportCompleteStatus("未提交");
+            stuTrainingDto.setReportScore(null);
+        } else {
+            stuTrainingDto.setReportCompleteStatus("已提交");
+            stuTrainingDto.setReportScore(trainingReport.getTeacherScore());
+        }
+    }
+
+}
diff --git a/src/main/java/com/sztzjy/financial_bigdata/service/tea/ITeaGradeManageService.java b/src/main/java/com/sztzjy/financial_bigdata/service/tea/ITeaGradeManageService.java
index 3750499..73f3e5b 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/service/tea/ITeaGradeManageService.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/service/tea/ITeaGradeManageService.java
@@ -2,10 +2,12 @@ package com.sztzjy.financial_bigdata.service.tea;
 
 import com.github.pagehelper.PageInfo;
 import com.sztzjy.financial_bigdata.entity.StuTheoryRecord;
+import com.sztzjy.financial_bigdata.entity.SysWeight;
 import com.sztzjy.financial_bigdata.entity.stu_dto.StuUserDto;
 import com.sztzjy.financial_bigdata.entity.tea_dto.TeaExaminationDetailsDto;
 import com.sztzjy.financial_bigdata.entity.tea_dto.TeaTrainingDto;
 import com.sztzjy.financial_bigdata.entity.tea_dto.TeaTrainingInfoDTO;
+import com.sztzjy.financial_bigdata.util.ResultEntity;
 
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
@@ -31,4 +33,6 @@ public interface ITeaGradeManageService {
     PageInfo<StuTheoryRecord> getTheoryInfo(Integer index, Integer size, String schoolId, String classId, String keyWord,String systemOwner);
 
     void exportTheoryExamInfo(HttpServletResponse response,String classId, String schoolId);
+
+    SysWeight getSysWeightResultEntity(String courseId, String schoolId, String systemOwner);
 }
diff --git a/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaGradeManageServiceImpl.java b/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaGradeManageServiceImpl.java
index 9f6abcb..eb068e1 100644
--- a/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaGradeManageServiceImpl.java
+++ b/src/main/java/com/sztzjy/financial_bigdata/service/tea/impl/TeaGradeManageServiceImpl.java
@@ -287,9 +287,36 @@ public class TeaGradeManageServiceImpl implements ITeaGradeManageService {
         }
     }
 
+    @Override
+    public SysWeight getSysWeightResultEntity(String courseId, String schoolId, String systemOwner) {
+        SysWeightExample sysWeightExample = new SysWeightExample();
+        sysWeightExample.createCriteria().andSchoolIdEqualTo(schoolId).andCourseIdEqualTo(courseId).andSystemOwnerEqualTo(systemOwner);
+        List<SysWeight> sysWeights = sysWeightMapper.selectByExample(sysWeightExample);
+        if (sysWeights.isEmpty()) {
+            //设置默认权重
+            SysWeight sysWeight = new SysWeight();
+            sysWeight.setCourseId(courseId);
+            sysWeight.setWeightId(IdUtil.randomUUID());
+            sysWeight.setSchoolId(schoolId);
+            sysWeight.setSystemOwner(systemOwner);
+            sysWeight.setKnowledgeSummaryDefaultRule(BigDecimal.valueOf(60)); //知识概要默认计分规则 阅读1分钟得60分,1分钟以下不得分,多1分钟加10分。
+            sysWeight.setResourceLearningDefaultRule(BigDecimal.valueOf(60)); //资源学习默认计分规则 观看资源1分钟得60分,1分钟以下不得分,多1分钟加10分。
+            sysWeight.setLearningEvalDefaultRule(BigDecimal.valueOf(10)); //学习测评默认计分规则 客观题10分每道
+            sysWeight.setExpTrainingDefautRule(BigDecimal.valueOf(2));//实训题,输错/选错次数扣2分,最低0分
+            sysWeight.setKnowledgeSummaryWeight(BigDecimal.valueOf(5));
+            sysWeight.setResourceLearningWeight(BigDecimal.valueOf(5));
+            sysWeight.setLearningEvalWeight(BigDecimal.valueOf(20));
+            sysWeight.setExpTrainingWeight(BigDecimal.valueOf(60));
+            sysWeight.setReportWeight(BigDecimal.valueOf(10));
+            sysWeightMapper.insert(sysWeight);
+            return sysWeight;
+        }
+        return sysWeights.get(0);
+    }
+
 
     private List<TeaTrainingInfoDTO> getTeaTrainingInfoDTOS(String schoolId, String keyWord, String classId, String systemOwner) {
-        List<StuUser> stuUsers =userMapper.getByNameAndStudentID(schoolId,keyWord,classId,systemOwner);
+        List<StuUser> stuUsers = userMapper.getByNameAndStudentID(schoolId, keyWord, classId, systemOwner);
 
         // 查询学生用户列表
         if (stuUsers.isEmpty()) {
@@ -299,7 +326,7 @@ public class TeaGradeManageServiceImpl implements ITeaGradeManageService {
         // 批量获取班级信息
         Set<String> classIds = stuUsers.stream().map(StuUser::getClassId).collect(Collectors.toSet());
 
-        StuClassExample example =new StuClassExample();
+        StuClassExample example = new StuClassExample();
         List<String> IDlist = new ArrayList<>(classIds);
         example.createCriteria().andClassIdIn(IDlist).andSystemOwnerEqualTo(systemOwner);
 
diff --git a/src/main/resources/mapper/StuUserMapper.xml b/src/main/resources/mapper/StuUserMapper.xml
index bad8766..aa558c3 100644
--- a/src/main/resources/mapper/StuUserMapper.xml
+++ b/src/main/resources/mapper/StuUserMapper.xml
@@ -485,7 +485,7 @@
             system_onwer =#{systemOwner}
             and role_id = 4
             <if test="classId != null and classId != ''">
-                 class_id = #{classId}
+                AND class_id = #{classId}
             </if>
             <if test="schoolId != null and schoolId != ''">
                 AND school_id = #{schoolId}