diff --git a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java
index 7d797f5..7f49921 100644
--- a/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java
+++ b/ruoyi-biemo/src/main/java/com/ruoyi/biemo/business/controller/TrainingScoreController.java
@@ -1,17 +1,17 @@
 package com.ruoyi.biemo.business.controller;
 
 import com.alibaba.fastjson.JSONObject;
+
 import com.github.pagehelper.PageInfo;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.system.domain.SysGradeWeight;
-import com.ruoyi.system.domain.SysGradeWeightExample;
 import com.ruoyi.system.domain.SysTrainingScore;
 import com.ruoyi.system.domain.SysTrainingScoreExample;
 import com.ruoyi.system.domain.vo.ReportDto;
+import com.ruoyi.system.domain.vo.TrainingScoreVo;
 import com.ruoyi.system.mapper.SysGradeWeightMapper;
 import com.ruoyi.system.mapper.SysTrainingScoreMapper;
 import com.ruoyi.system.service.ISysTrainingScoreService;
-import org.apache.lucene.search.Weight;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
@@ -29,12 +29,12 @@ public class TrainingScoreController {
     SysGradeWeightMapper gradeWeightMapper;
 
     @PostMapping("/addScore")
-    private void addScore(@RequestBody JSONObject jsonObject) {
+    private void addScore(@RequestBody JSONObject jsonObject){
         String controlsName = jsonObject.getString("controlsName");
         Long userId = jsonObject.getLong("userId");
         //检查状态是否提交且变更的值是否有数据 如果返回值为false 则执行更新操作
         SysTrainingScore sysTrainingScore = trainingScoreService.checkStatusAndControlsName(userId, controlsName);
-        if (sysTrainingScore != null) {
+        if(sysTrainingScore!=null){
             //更新userid的进度和分数
             sysTrainingScore.calculateDataScore();
             trainingScoreService.updateByPrimaryKeySelective(sysTrainingScore);
@@ -42,9 +42,41 @@ public class TrainingScoreController {
     }
 
     @PostMapping("/selectScore")
-    private SysTrainingScore selectScore(@RequestBody JSONObject jsonObject) {
+    private TrainingScoreVo selectScore(@RequestBody JSONObject jsonObject){
         Long userId = jsonObject.getLong("userId");
-        return trainingScoreService.selectByUserId(userId);
+        SysTrainingScore sysTrainingScore = trainingScoreService.selectByUserId(userId);
+        TrainingScoreVo trainingScoreVo=new TrainingScoreVo(sysTrainingScore);
+        return trainingScoreVo;
+    }
+
+    //一键审批
+    @PostMapping("/approvalAll")
+    private String approvalAll(){
+        List<SysTrainingScore> trainingScoreList=trainingScoreService.selectAllReportContent();
+        if (trainingScoreList.isEmpty()){
+            return "没有可审批的数据";
+        }
+        for (int i = 0; i < trainingScoreList.size(); i++) {
+            SysTrainingScore sysTrainingScore = trainingScoreList.get(i);
+            String reportContent = sysTrainingScore.getReportContent();
+            int wordCount = reportContent.replace(" ","").length(); // 获取文本的字数
+
+            int score;
+            if (wordCount <= 50) {
+                score = 40;
+            } else if (wordCount <= 350) {
+                int extraWords = wordCount - 50; // 超出50字的额外字数
+                int extraScore = extraWords / 10 * 2; // 计算额外的得分
+                score = 40 + extraScore;
+            } else {
+                score = 100; // 超过350字直接满分
+            }
+            SysTrainingScore trainingScore=new SysTrainingScore();
+            trainingScore.setId(sysTrainingScore.getId());
+            trainingScore.setTrainingReportScore(score);
+            trainingScoreService.updateByPrimaryKeySelective(trainingScore);
+        }
+        return "审批完毕";
     }
 
     //实训报告上传
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTrainingScore.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTrainingScore.java
index 3f0ba8e..b61c7e3 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTrainingScore.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/SysTrainingScore.java
@@ -1,6 +1,11 @@
 package com.ruoyi.system.domain;
 
+import com.ruoyi.common.constant.TrainingScoreConstants;
+
+import java.lang.reflect.Method;
+import java.text.DecimalFormat;
 import java.util.Date;
+import java.util.Map;
 
 public class SysTrainingScore {
     /**
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTrainingScoreMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTrainingScoreMapper.java
index 90a2a5a..ea7402f 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTrainingScoreMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTrainingScoreMapper.java
@@ -3,8 +3,10 @@ package com.ruoyi.system.mapper;
 import com.ruoyi.system.domain.SysTrainingScore;
 import com.ruoyi.system.domain.SysTrainingScoreExample;
 import java.util.List;
-import org.apache.ibatis.annotations.Param;
 
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+@Mapper
 public interface SysTrainingScoreMapper {
     /**
      * This method was generated by MyBatis Generator.
@@ -117,4 +119,6 @@ public interface SysTrainingScoreMapper {
      * @mbg.generated Fri Aug 11 13:24:16 CST 2023
      */
     int updateByPrimaryKey(SysTrainingScore record);
+
+    List<SysTrainingScore> selectAllReportContent();
 }
\ No newline at end of file
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTrainingScoreService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTrainingScoreService.java
index c42f987..2e34959 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTrainingScoreService.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysTrainingScoreService.java
@@ -22,6 +22,7 @@ public interface ISysTrainingScoreService {
 
     SysTrainingScore selectByUserId(Long userId);
 
+    List<SysTrainingScore> selectAllReportContent();
     PageInfo<ReportDto> teacherGetReport(Integer index, Integer size , Double reportWeight, Double operatorWeight, String keyWord, String stuClass);
 
     List<String>selectClass();
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java
index 7511162..eb7f61c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTrainingScoreServiceImpl.java
@@ -76,6 +76,11 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
         return new PageInfo<>(reportDtoList);
     }
 
+    @Override
+    public List<SysTrainingScore> selectAllReportContent() {
+        return trainingScoreMapper.selectAllReportContent();
+    }
+
 
     @Override
     public SysTrainingScore checkStatusAndControlsName(Long userId, String controlsName) {
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysTrainingScoreMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysTrainingScoreMapper.xml
index 1a7101b..ab301f1 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysTrainingScoreMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysTrainingScoreMapper.xml
@@ -194,6 +194,9 @@
     -->
     report_content
   </sql>
+  <select id="selectAllReportContent" resultMap="BaseResultMap">
+    select id,userid,report_content from sys_training_score  WHERE training_report_score IS NULL
+  </select>
   <select id="selectByExampleWithBLOBs" parameterType="com.ruoyi.system.domain.SysTrainingScoreExample" resultMap="ResultMapWithBLOBs">
     <!--
       WARNING - @mbg.generated