From 28e6e47dea924909fb79ce2c65c6651b8bbfe594 Mon Sep 17 00:00:00 2001
From: yz <3614508250@qq.com>
Date: Tue, 15 Aug 2023 15:37:27 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E4=B8=80=E9=94=AE=E5=AE=A1?=
 =?UTF-8?q?=E6=89=B9=20=E5=AE=9E=E8=AE=AD=E6=88=90=E7=BB=A9=E6=9F=A5?=
 =?UTF-8?q?=E8=AF=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../controller/TrainingScoreController.java   |  47 ++-
 .../constant/TrainingScoreConstants.java      |   6 +-
 .../ruoyi/system/domain/SysTrainingScore.java |  89 ++--
 .../system/domain/vo/TrainingScoreVo.java     | 383 +++++++++++++++++-
 .../domain/vo/TrainingTotalScoreVo.java       | 214 ++++++++++
 .../ruoyi/system/mapper/SysUserMapper.java    |  33 +-
 .../service/ISysTrainingScoreService.java     |   6 +-
 .../impl/SysTrainingScoreServiceImpl.java     |  23 +-
 .../service/impl/SysUserServiceImpl.java      |   1 +
 9 files changed, 706 insertions(+), 96 deletions(-)
 create mode 100644 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TrainingTotalScoreVo.java

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 ebcef56..fcd36ac 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
@@ -8,12 +8,14 @@ import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.enums.BusinessType;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.system.domain.SysGradeWeight;
 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.domain.vo.TrainingTotalScoreVo;
 import com.ruoyi.system.mapper.SysGradeWeightMapper;
 import com.ruoyi.system.mapper.SysTrainingScoreMapper;
 import com.ruoyi.system.mapper.SysUserMapper;
@@ -27,6 +29,7 @@ import org.springframework.web.multipart.MultipartFile;
 import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 @RestController
 @RequestMapping("/makesoft/trainingScore")
@@ -42,24 +45,50 @@ public class TrainingScoreController {
 
 
     @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);
         }
     }
 
+    //查询实训进度
     @PostMapping("/selectScore")
-    private TrainingScoreVo selectScore(@RequestBody JSONObject jsonObject) {
+    private List selectScore(@RequestBody JSONObject jsonObject){
         Long userId = jsonObject.getLong("userId");
         SysTrainingScore sysTrainingScore = trainingScoreService.selectByUserId(userId);
-        TrainingScoreVo trainingScoreVo = new TrainingScoreVo(sysTrainingScore);
-        return trainingScoreVo;
+        TrainingScoreVo trainingScoreVo=new TrainingScoreVo(sysTrainingScore);
+        List<Map> list = trainingScoreVo.ReturnTrainingScore(trainingScoreVo);
+        return list;
+    }
+
+    //查询实训成绩
+    @PostMapping("/selectTotalScore")
+    private List selectTotalScore(@RequestBody JSONObject jsonObject){
+        Long userId = jsonObject.getLong("userId");
+        SysTrainingScore sysTrainingScore = trainingScoreService.selectByUserId(userId);
+        if ("".equals(sysTrainingScore.getTrainingReportScore()) || sysTrainingScore.getTrainingReportScore()==null){
+            return null;
+        }
+        TrainingTotalScoreVo totalScoreVo=new TrainingTotalScoreVo(sysTrainingScore);
+        totalScoreVo.setTotalscore(sysTrainingScore.getTotalscore());
+        totalScoreVo.setTrainingReportScore(sysTrainingScore.getTrainingReportScore());
+        List<Map> list = totalScoreVo.ReturnTrainingTotalScore(totalScoreVo);
+        return list;
+    }
+
+    //重新实训
+    @PostMapping("/restartTraining")
+    private String restartTraining(@RequestBody JSONObject jsonObject){
+        Long userId = jsonObject.getLong("userId");
+        trainingScoreService.deleteByUserId(userId);
+        trainingScoreService.insertByUserId(userId);
+        return "重新实训成功";
     }
 
     //一键审批
@@ -72,7 +101,7 @@ public class TrainingScoreController {
         for (int i = 0; i < trainingScoreList.size(); i++) {
             SysTrainingScore sysTrainingScore = trainingScoreList.get(i);
             String reportContent = sysTrainingScore.getReportContent();
-            int wordCount = reportContent.replace(" ", "").length(); // 获取文本的字数
+            int wordCount = reportContent.replace(" ","").length(); // 获取文本的字数
 
             int score;
             if (wordCount <= 50) {
@@ -84,7 +113,7 @@ public class TrainingScoreController {
             } else {
                 score = 100; // 超过350字直接满分
             }
-            SysTrainingScore trainingScore = new SysTrainingScore();
+            SysTrainingScore trainingScore=new SysTrainingScore();
             trainingScore.setId(sysTrainingScore.getId());
             trainingScore.setTrainingReportScore(score);
             trainingScoreService.updateByPrimaryKeySelective(trainingScore);
@@ -200,6 +229,4 @@ public class TrainingScoreController {
     public SysGradeWeight getWeight() {
         return gradeWeightMapper.selectByPrimaryKey(1L);
     }
-
-
-}
\ No newline at end of file
+}
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/TrainingScoreConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/TrainingScoreConstants.java
index fdbe81d..cd3bea7 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/TrainingScoreConstants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/TrainingScoreConstants.java
@@ -12,9 +12,9 @@ public class TrainingScoreConstants {
     public static final int TEXT_SEGMENTATION_TOOLBAR_BUTTON = 3;
     public static final int TEXT_SEGMENTATION_ANALYSIS_TRAIN_BUTTON = 4;
 
-    public static final int PART_OF_SPEECH_TAGGING_STEP_DESCRIPTION = 3;
-    public static final int PART_OF_SPEECH_TAGGING_TOOLBAR_BUTTON = 3;
-    public static final int PART_OF_SPEECH_TAGGING_ANALYSIS_TRAIN_BUTTON = 4;
+    public static final int PARTOFSPEECH_TAGGING_STEP_DESCRIPTION = 3;
+    public static final int PARTOFSPEECH_TAGGING_TOOLBAR_BUTTON = 3;
+    public static final int PARTOFSPEECH_TAGGING_ANALYSIS_TRAIN_BUTTON = 4;
 
     public static final int CATEGORY_MANAGEMENT_STEP_DESCRIPTION = 3;
     public static final int CATEGORY_MANAGEMENT_ADD_BUTTON = 2;
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 b61c7e3..ff62d4a 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,7 @@
 package com.ruoyi.system.domain;
 
 import com.ruoyi.common.constant.TrainingScoreConstants;
+import com.ruoyi.common.utils.StringUtils;
 
 import java.lang.reflect.Method;
 import java.text.DecimalFormat;
@@ -2416,219 +2417,219 @@ public class SysTrainingScore {
         sentimentAnalysisScore=0;
         dataVisualizationScore=0;
         reportSubmissionScore=0;
-        DecimalFormat df = new DecimalFormat("0.00%");
+        DecimalFormat df = new DecimalFormat("0.00");
         Map<String, Integer> trainingScoreConstantsMap = TrainingScoreConstants.getTrainingScoreConstantsMap();
 
 
         int flag=0;
-        if (dataCollectionStepDescription != null) {
+        if (dataCollectionStepDescription != null && !"null".equals(dataCollectionStepDescription)) {
             dataCollectionScore += trainingScoreConstantsMap.get("dataCollectionStepDescription");
             flag++;
         }
-        if (dataCollectionToolbarButton != null) {
+        if (dataCollectionToolbarButton != null  && !"null".equals(dataCollectionToolbarButton)) {
             dataCollectionScore += trainingScoreConstantsMap.get("dataCollectionToolbarButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 2 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             dataCollectionProgress=formattedResult;
             dataCollectionTime=date;
         }
 
         flag=0;
-        if (textSegmentationStepDescription != null) {
+        if (textSegmentationStepDescription != null  && !"null".equals(textSegmentationStepDescription)) {
             textSegmentationScore += trainingScoreConstantsMap.get("textSegmentationStepDescription");
             flag++;
         }
-        if (textSegmentationToolbarButton != null) {
+        if (textSegmentationToolbarButton != null  && !"null".equals(textSegmentationToolbarButton)) {
             textSegmentationScore += trainingScoreConstantsMap.get("textSegmentationToolbarButton");
             flag++;
         }
-        if (textSegmentationAnalysisTrainButton != null) {
+        if (textSegmentationAnalysisTrainButton != null  && !"null".equals(textSegmentationAnalysisTrainButton)) {
             textSegmentationScore += trainingScoreConstantsMap.get("textSegmentationAnalysisTrainButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 3 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             textSegmentationProgress=formattedResult;
             textSegmentationTime=date;
         }
 
         flag=0;
-        if (partofspeechTaggingStepDescription != null) {
+        if ( partofspeechTaggingStepDescription!= null  && !"null".equals(partofspeechTaggingStepDescription)) {
             partofspeechTaggingScore += trainingScoreConstantsMap.get("partofspeechTaggingStepDescription");
             flag++;
         }
-        if (partofspeechTaggingToolbarButton != null) {
+        if (partofspeechTaggingToolbarButton!=null  && !"null".equals(partofspeechTaggingToolbarButton)) {
             partofspeechTaggingScore += trainingScoreConstantsMap.get("partofspeechTaggingToolbarButton");
             flag++;
         }
-        if (partofspeechTaggingAnalysisTrainButton != null) {
+        if (partofspeechTaggingAnalysisTrainButton!= null  && !"null".equals(partofspeechTaggingAnalysisTrainButton)) {
             partofspeechTaggingScore += trainingScoreConstantsMap.get("partofspeechTaggingAnalysisTrainButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 3 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             partofspeechTaggingProgress=formattedResult;
             partofspeechTaggingTime=date;
         }
 
 
         flag=0;
-        if (categoryManagementStepDescription != null) {
+        if (categoryManagementStepDescription!= null  && !"null".equals(categoryManagementStepDescription)) {
             categoryManagementScore += trainingScoreConstantsMap.get("categoryManagementStepDescription");
             flag++;
         }
-        if (categoryManagementAddButton != null) {
+        if (categoryManagementAddButton != null  && !"null".equals(categoryManagementAddButton)) {
             categoryManagementScore += trainingScoreConstantsMap.get("categoryManagementAddButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 2 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             categoryManagementProgress=formattedResult;
             categoryManagementTime=date;
         }
 
         flag=0;
-        if (textClassificationStepDescription != null) {
+        if (textClassificationStepDescription!= null  && !"null".equals(textClassificationStepDescription)) {
             textClassificationScore += trainingScoreConstantsMap.get("textClassificationStepDescription");
             flag++;
         }
-        if (textClassificationArticleClassificationButton != null) {
+        if (textClassificationArticleClassificationButton!= null   && !"null".equals(textClassificationArticleClassificationButton)) {
             textClassificationScore += trainingScoreConstantsMap.get("textClassificationArticleClassificationButton");
             flag++;
         }
-        if (textClassificationCreateArticleButton != null) {
+        if (textClassificationCreateArticleButton!= null  && !"null".equals(textClassificationCreateArticleButton)) {
             textClassificationScore += trainingScoreConstantsMap.get("textClassificationCreateArticleButton");
             flag++;
         }
-        if (textClassificationToolbarDetailsButton != null) {
+        if (textClassificationToolbarDetailsButton!= null   && !"null".equals(textClassificationToolbarDetailsButton)) {
             textClassificationScore += trainingScoreConstantsMap.get("textClassificationToolbarDetailsButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 4 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             textClassificationProgress=formattedResult;
             textClassificationTime=date;
         }
 
         flag=0;
-        if (textSummarizationStepDescription != null) {
+        if (textSummarizationStepDescription!= null   && !"null".equals(textSummarizationStepDescription)) {
             textSummarizationScore += trainingScoreConstantsMap.get("textSummarizationStepDescription");
             flag++;
         }
-        if (textSummarizationArticleSummaryButton != null) {
+        if (textSummarizationArticleSummaryButton!= null   && !"null".equals(textSummarizationArticleSummaryButton)) {
             textSummarizationScore += trainingScoreConstantsMap.get("textSummarizationArticleSummaryButton");
             flag++;
         }
-        if (textSummarizationCreateArticleButton != null) {
+        if (textSummarizationCreateArticleButton!= null   && !"null".equals(textSummarizationCreateArticleButton)) {
             textSummarizationScore += trainingScoreConstantsMap.get("textSummarizationCreateArticleButton");
             flag++;
         }
-        if (textSummarizationToolbarDetailsButton != null) {
+        if (textSummarizationToolbarDetailsButton!= null   && !"null".equals(textSummarizationToolbarDetailsButton)) {
             textSummarizationScore += trainingScoreConstantsMap.get("textSummarizationToolbarDetailsButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 4 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             textSummarizationProgress=formattedResult;
             textSummarizationTime=date;
         }
 
         flag=0;
-        if (similarityCalculationStepDescription != null) {
+        if (similarityCalculationStepDescription!= null   && !"null".equals(similarityCalculationStepDescription)) {
             similarityCalculationScore += trainingScoreConstantsMap.get("similarityCalculationStepDescription");
             flag++;
         }
-        if (similarityCalculationAddButtonTop != null) {
+        if (similarityCalculationAddButtonTop!= null   && !"null".equals(similarityCalculationAddButtonTop)) {
             similarityCalculationScore += trainingScoreConstantsMap.get("similarityCalculationAddButtonTop");
             flag++;
         }
-        if (similarityCalculationAddButtonBottom != null) {
+        if (similarityCalculationAddButtonBottom!= null   && !"null".equals(similarityCalculationAddButtonBottom)) {
             similarityCalculationScore += trainingScoreConstantsMap.get("similarityCalculationAddButtonBottom");
             flag++;
         }
-        if (similarityCalculationCalculateSimilarityButton != null) {
+        if (similarityCalculationCalculateSimilarityButton!= null   && !"null".equals(similarityCalculationCalculateSimilarityButton)) {
             similarityCalculationScore += trainingScoreConstantsMap.get("similarityCalculationCalculateSimilarityButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 4 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             similarityCalculationProgress=formattedResult;
             similarityCalculationTime=date;
         }
 
         flag=0;
-        if (sentimentAnalysisStepDescription != null) {
+        if (sentimentAnalysisStepDescription!= null   && !"null".equals(sentimentAnalysisStepDescription)) {
             sentimentAnalysisScore += trainingScoreConstantsMap.get("sentimentAnalysisStepDescription");
             flag++;
         }
-        if (sentimentAnalysisSelectButton != null) {
+        if (sentimentAnalysisSelectButton!= null   && !"null".equals(sentimentAnalysisSelectButton)) {
             sentimentAnalysisScore += trainingScoreConstantsMap.get("sentimentAnalysisSelectButton");
             flag++;
         }
-        if (sentimentAnalysisSentimentAnalysisButton != null) {
+        if (sentimentAnalysisSentimentAnalysisButton!= null   && !"null".equals(sentimentAnalysisSentimentAnalysisButton)) {
             sentimentAnalysisScore += trainingScoreConstantsMap.get("sentimentAnalysisSentimentAnalysisButton");
             flag++;
         }
-        if (sentimentAnalysisCreateSentimentWordButton != null) {
+        if (sentimentAnalysisCreateSentimentWordButton!= null   && !"null".equals(sentimentAnalysisCreateSentimentWordButton)) {
             sentimentAnalysisScore += trainingScoreConstantsMap.get("sentimentAnalysisCreateSentimentWordButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 4 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             sentimentAnalysisProgress=formattedResult;
             sentimentAnalysisTime=date;
         }
 
         flag=0;
-        if (dataVisualizationStepDescription != null) {
+        if (dataVisualizationStepDescription!= null   && !"null".equals(dataVisualizationStepDescription)) {
             dataVisualizationScore += trainingScoreConstantsMap.get("dataVisualizationStepDescription");
             flag++;
         }
-        if (dataVisualizationWordCloudButton != null) {
+        if (dataVisualizationWordCloudButton!= null   && !"null".equals(dataVisualizationWordCloudButton)) {
             dataVisualizationScore += trainingScoreConstantsMap.get("dataVisualizationWordCloudButton");
             flag++;
         }
-        if (dataVisualizationSocialNetworkAnalysisButton != null) {
+        if (dataVisualizationSocialNetworkAnalysisButton!= null   && !"null".equals(dataVisualizationSocialNetworkAnalysisButton)) {
             dataVisualizationScore += trainingScoreConstantsMap.get("dataVisualizationSocialNetworkAnalysisButton");
             flag++;
         }
-        if (dataVisualizationSentimentAnalysisButton != null) {
+        if (dataVisualizationSentimentAnalysisButton!= null   && !"null".equals(dataVisualizationSentimentAnalysisButton)) {
             dataVisualizationScore += trainingScoreConstantsMap.get("dataVisualizationSentimentAnalysisButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 4 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             dataVisualizationProgress=formattedResult;
             dataVisualizationTime=date;
         }
 
         flag=0;
-        if (reportSubmissionExperiencePageSaveButton != null) {
+        if (reportSubmissionExperiencePageSaveButton!= null   && !"null".equals(reportSubmissionExperiencePageSaveButton)) {
             reportSubmissionScore += trainingScoreConstantsMap.get("reportSubmissionExperiencePageSaveButton");
             flag++;
         }
-        if (reportSubmissionUploadReportButton != null) {
+        if (reportSubmissionUploadReportButton!= null   && !"null".equals(reportSubmissionUploadReportButton)) {
             reportSubmissionScore += trainingScoreConstantsMap.get("reportSubmissionUploadReportButton");
             flag++;
         }
-        if (reportSubmissionSubmitButton != null) {
+        if (reportSubmissionSubmitButton!= null   && !"null".equals(reportSubmissionSubmitButton)) {
             reportSubmissionScore += trainingScoreConstantsMap.get("reportSubmissionSubmitButton");
             flag++;
         }
         if(flag!=0){
             double result = (double) flag / 3 * 100;
-            String formattedResult = df.format(result / 100);
+            String formattedResult = df.format(result);
             reportSubmissionProgress=formattedResult;
             reportSubmissionTime=date;
         }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TrainingScoreVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TrainingScoreVo.java
index a6a765e..2035e67 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TrainingScoreVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TrainingScoreVo.java
@@ -3,88 +3,429 @@ package com.ruoyi.system.domain.vo;
 import com.ruoyi.system.domain.SysTrainingScore;
 
 import java.io.Serializable;
-import java.util.Date;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class TrainingScoreVo implements Serializable {
     private Integer dataCollectionScore;
-    private Date dataCollectionTime;
+    private String dataCollectionTime;
     private String dataCollectionProgress;
 
     private Integer textSegmentationScore;
-    private Date textSegmentationTime;
+    private String textSegmentationTime;
     private String textSegmentationProgress;
 
     private Integer partofspeechTaggingScore;
-    private Date partofspeechTaggingTime;
+    private String partofspeechTaggingTime;
     private String partofspeechTaggingProgress;
 
     private Integer categoryManagementScore;
-    private Date categoryManagementTime;
+    private String categoryManagementTime;
     private String categoryManagementProgress;
 
     private Integer textClassificationScore;
-    private Date textClassificationTime;
+    private String textClassificationTime;
     private String textClassificationProgress;
 
     private Integer textSummarizationScore;
-    private Date textSummarizationTime;
+    private String textSummarizationTime;
     private String textSummarizationProgress;
 
     private Integer similarityCalculationScore;
-    private Date similarityCalculationTime;
+    private String similarityCalculationTime;
     private String similarityCalculationProgress;
 
     private Integer sentimentAnalysisScore;
-    private Date sentimentAnalysisTime;
+    private String sentimentAnalysisTime;
     private String sentimentAnalysisProgress;
 
     private Integer dataVisualizationScore;
-    private Date dataVisualizationTime;
+    private String dataVisualizationTime;
     private String dataVisualizationProgress;
 
     private Integer reportSubmissionScore;
-    private Date reportSubmissionTime;
+    private String reportSubmissionTime;
     private String reportSubmissionProgress;
 
+    public Integer getDataCollectionScore() {
+        return dataCollectionScore;
+    }
+
+    public void setDataCollectionScore(Integer dataCollectionScore) {
+        this.dataCollectionScore = dataCollectionScore;
+    }
+
+    public String getDataCollectionTime() {
+        return dataCollectionTime;
+    }
+
+    public void setDataCollectionTime(String dataCollectionTime) {
+        this.dataCollectionTime = dataCollectionTime;
+    }
+
+    public String getDataCollectionProgress() {
+        return dataCollectionProgress;
+    }
+
+    public void setDataCollectionProgress(String dataCollectionProgress) {
+        this.dataCollectionProgress = dataCollectionProgress;
+    }
+
+    public Integer getTextSegmentationScore() {
+        return textSegmentationScore;
+    }
+
+    public void setTextSegmentationScore(Integer textSegmentationScore) {
+        this.textSegmentationScore = textSegmentationScore;
+    }
+
+    public String getTextSegmentationTime() {
+        return textSegmentationTime;
+    }
+
+    public void setTextSegmentationTime(String textSegmentationTime) {
+        this.textSegmentationTime = textSegmentationTime;
+    }
+
+    public String getTextSegmentationProgress() {
+        return textSegmentationProgress;
+    }
+
+    public void setTextSegmentationProgress(String textSegmentationProgress) {
+        this.textSegmentationProgress = textSegmentationProgress;
+    }
+
+    public Integer getPartofspeechTaggingScore() {
+        return partofspeechTaggingScore;
+    }
+
+    public void setPartofspeechTaggingScore(Integer partofspeechTaggingScore) {
+        this.partofspeechTaggingScore = partofspeechTaggingScore;
+    }
+
+    public String getPartofspeechTaggingTime() {
+        return partofspeechTaggingTime;
+    }
+
+    public void setPartofspeechTaggingTime(String partofspeechTaggingTime) {
+        this.partofspeechTaggingTime = partofspeechTaggingTime;
+    }
+
+    public String getPartofspeechTaggingProgress() {
+        return partofspeechTaggingProgress;
+    }
+
+    public void setPartofspeechTaggingProgress(String partofspeechTaggingProgress) {
+        this.partofspeechTaggingProgress = partofspeechTaggingProgress;
+    }
+
+    public Integer getCategoryManagementScore() {
+        return categoryManagementScore;
+    }
+
+    public void setCategoryManagementScore(Integer categoryManagementScore) {
+        this.categoryManagementScore = categoryManagementScore;
+    }
+
+    public String getCategoryManagementTime() {
+        return categoryManagementTime;
+    }
+
+    public void setCategoryManagementTime(String categoryManagementTime) {
+        this.categoryManagementTime = categoryManagementTime;
+    }
+
+    public String getCategoryManagementProgress() {
+        return categoryManagementProgress;
+    }
+
+    public void setCategoryManagementProgress(String categoryManagementProgress) {
+        this.categoryManagementProgress = categoryManagementProgress;
+    }
+
+    public Integer getTextClassificationScore() {
+        return textClassificationScore;
+    }
+
+    public void setTextClassificationScore(Integer textClassificationScore) {
+        this.textClassificationScore = textClassificationScore;
+    }
+
+    public String getTextClassificationTime() {
+        return textClassificationTime;
+    }
+
+    public void setTextClassificationTime(String textClassificationTime) {
+        this.textClassificationTime = textClassificationTime;
+    }
+
+    public String getTextClassificationProgress() {
+        return textClassificationProgress;
+    }
+
+    public void setTextClassificationProgress(String textClassificationProgress) {
+        this.textClassificationProgress = textClassificationProgress;
+    }
+
+    public Integer getTextSummarizationScore() {
+        return textSummarizationScore;
+    }
+
+    public void setTextSummarizationScore(Integer textSummarizationScore) {
+        this.textSummarizationScore = textSummarizationScore;
+    }
+
+    public String getTextSummarizationTime() {
+        return textSummarizationTime;
+    }
+
+    public void setTextSummarizationTime(String textSummarizationTime) {
+        this.textSummarizationTime = textSummarizationTime;
+    }
+
+    public String getTextSummarizationProgress() {
+        return textSummarizationProgress;
+    }
+
+    public void setTextSummarizationProgress(String textSummarizationProgress) {
+        this.textSummarizationProgress = textSummarizationProgress;
+    }
+
+    public Integer getSimilarityCalculationScore() {
+        return similarityCalculationScore;
+    }
+
+    public void setSimilarityCalculationScore(Integer similarityCalculationScore) {
+        this.similarityCalculationScore = similarityCalculationScore;
+    }
+
+    public String getSimilarityCalculationTime() {
+        return similarityCalculationTime;
+    }
+
+    public void setSimilarityCalculationTime(String similarityCalculationTime) {
+        this.similarityCalculationTime = similarityCalculationTime;
+    }
+
+    public String getSimilarityCalculationProgress() {
+        return similarityCalculationProgress;
+    }
+
+    public void setSimilarityCalculationProgress(String similarityCalculationProgress) {
+        this.similarityCalculationProgress = similarityCalculationProgress;
+    }
+
+    public Integer getSentimentAnalysisScore() {
+        return sentimentAnalysisScore;
+    }
+
+    public void setSentimentAnalysisScore(Integer sentimentAnalysisScore) {
+        this.sentimentAnalysisScore = sentimentAnalysisScore;
+    }
+
+    public String getSentimentAnalysisTime() {
+        return sentimentAnalysisTime;
+    }
+
+    public void setSentimentAnalysisTime(String sentimentAnalysisTime) {
+        this.sentimentAnalysisTime = sentimentAnalysisTime;
+    }
+
+    public String getSentimentAnalysisProgress() {
+        return sentimentAnalysisProgress;
+    }
+
+    public void setSentimentAnalysisProgress(String sentimentAnalysisProgress) {
+        this.sentimentAnalysisProgress = sentimentAnalysisProgress;
+    }
+
+    public Integer getDataVisualizationScore() {
+        return dataVisualizationScore;
+    }
+
+    public void setDataVisualizationScore(Integer dataVisualizationScore) {
+        this.dataVisualizationScore = dataVisualizationScore;
+    }
+
+    public String getDataVisualizationTime() {
+        return dataVisualizationTime;
+    }
+
+    public void setDataVisualizationTime(String dataVisualizationTime) {
+        this.dataVisualizationTime = dataVisualizationTime;
+    }
+
+    public String getDataVisualizationProgress() {
+        return dataVisualizationProgress;
+    }
+
+    public void setDataVisualizationProgress(String dataVisualizationProgress) {
+        this.dataVisualizationProgress = dataVisualizationProgress;
+    }
+
+    public Integer getReportSubmissionScore() {
+        return reportSubmissionScore;
+    }
+
+    public void setReportSubmissionScore(Integer reportSubmissionScore) {
+        this.reportSubmissionScore = reportSubmissionScore;
+    }
+
+    public String getReportSubmissionTime() {
+        return reportSubmissionTime;
+    }
+
+    public void setReportSubmissionTime(String reportSubmissionTime) {
+        this.reportSubmissionTime = reportSubmissionTime;
+    }
+
+    public String getReportSubmissionProgress() {
+        return reportSubmissionProgress;
+    }
+
+    public void setReportSubmissionProgress(String reportSubmissionProgress) {
+        this.reportSubmissionProgress = reportSubmissionProgress;
+    }
+
+    public List<Map> ReturnTrainingScore(TrainingScoreVo trainingScoreVo){
+        List<Map> list=new ArrayList<>();
+        Map dataCollectionMap=new HashMap();
+        dataCollectionMap.put("name","数据采集");
+        dataCollectionMap.put("score",trainingScoreVo.getDataCollectionScore());
+        dataCollectionMap.put("progress",trainingScoreVo.getDataCollectionProgress());
+        dataCollectionMap.put("time",trainingScoreVo.getDataCollectionTime());
+        list.add(dataCollectionMap);
+
+        Map textSegmentationMap=new HashMap();
+        textSegmentationMap.put("name","文本分词");
+        textSegmentationMap.put("score",trainingScoreVo.getTextSegmentationScore());
+        textSegmentationMap.put("progress",trainingScoreVo.getTextSegmentationProgress());
+        textSegmentationMap.put("time",trainingScoreVo.getTextSegmentationTime());
+        list.add(textSegmentationMap);
+
+        Map partofspeechTaggingMap=new HashMap();
+        partofspeechTaggingMap.put("name","词性标注");
+        partofspeechTaggingMap.put("score",trainingScoreVo.getPartofspeechTaggingScore());
+        partofspeechTaggingMap.put("progress",trainingScoreVo.getPartofspeechTaggingProgress());
+        partofspeechTaggingMap.put("time",trainingScoreVo.getPartofspeechTaggingTime());
+        list.add(partofspeechTaggingMap);
+
+        Map categoryManagementMap=new HashMap();
+        categoryManagementMap.put("name","分类管理");
+        categoryManagementMap.put("score",trainingScoreVo.getCategoryManagementScore());
+        categoryManagementMap.put("progress",trainingScoreVo.getCategoryManagementProgress());
+        categoryManagementMap.put("time",trainingScoreVo.getCategoryManagementTime());
+        list.add(categoryManagementMap);
+
+        Map textClassificationMap=new HashMap();
+        textClassificationMap.put("name","文本分类");
+        textClassificationMap.put("score",trainingScoreVo.getTextClassificationScore());
+        textClassificationMap.put("progress",trainingScoreVo.getTextClassificationProgress());
+        textClassificationMap.put("time",trainingScoreVo.getTextClassificationTime());
+        list.add(textClassificationMap);
+
+        Map textSummarizationMap=new HashMap();
+        textSummarizationMap.put("name","文本摘要");
+        textSummarizationMap.put("score",trainingScoreVo.getTextSummarizationScore());
+        textSummarizationMap.put("progress",trainingScoreVo.getTextSummarizationProgress());
+        textSummarizationMap.put("time",trainingScoreVo.getTextSummarizationTime());
+        list.add(textSummarizationMap);
+
+        Map similarityCalculationMap=new HashMap();
+        similarityCalculationMap.put("name","相似度计算");
+        similarityCalculationMap.put("score",trainingScoreVo.getSimilarityCalculationScore());
+        similarityCalculationMap.put("progress",trainingScoreVo.getSimilarityCalculationProgress());
+        similarityCalculationMap.put("time",trainingScoreVo.getSimilarityCalculationTime());
+        list.add(similarityCalculationMap);
+
+        Map sentimentAnalysisMap=new HashMap();
+        sentimentAnalysisMap.put("name","情感分析");
+        sentimentAnalysisMap.put("score",trainingScoreVo.getSentimentAnalysisScore());
+        sentimentAnalysisMap.put("progress",trainingScoreVo.getSentimentAnalysisProgress());
+        sentimentAnalysisMap.put("time",trainingScoreVo.getSentimentAnalysisTime());
+        list.add(sentimentAnalysisMap);
+
+        Map dataVisualizationMap=new HashMap();
+        dataVisualizationMap.put("name","数据可视化");
+        dataVisualizationMap.put("score",trainingScoreVo.getDataVisualizationScore());
+        dataVisualizationMap.put("progress",trainingScoreVo.getDataVisualizationProgress());
+        dataVisualizationMap.put("time",trainingScoreVo.getDataVisualizationTime());
+        list.add(dataVisualizationMap);
+
+
+        Map reportSubmissionMap=new HashMap();
+        reportSubmissionMap.put("name","报告提交");
+        reportSubmissionMap.put("score",trainingScoreVo.getReportSubmissionScore());
+        reportSubmissionMap.put("progress",trainingScoreVo.getReportSubmissionProgress());
+        reportSubmissionMap.put("time",trainingScoreVo.getReportSubmissionTime());
+        list.add(reportSubmissionMap);
+
+        return list;
+    }
+
     public TrainingScoreVo(SysTrainingScore sysTrainingScore){
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        if (sysTrainingScore.getDataCollectionTime()!=null){
+            this.dataCollectionTime=dateFormat.format(sysTrainingScore.getDataCollectionTime());;
+        }
         this.dataCollectionScore=sysTrainingScore.getDataCollectionScore();
-        this.dataCollectionTime=sysTrainingScore.getDataCollectionTime();
         this.dataCollectionProgress=sysTrainingScore.getDataCollectionProgress();
 
+        if (sysTrainingScore.getTextSegmentationTime()!=null){
+            this.textSegmentationTime=dateFormat.format(sysTrainingScore.getTextSegmentationTime());;
+        }
         this.textSegmentationScore = sysTrainingScore.getTextSegmentationScore();
-        this.textSegmentationTime = sysTrainingScore.getTextSegmentationTime();
         this.textSegmentationProgress = sysTrainingScore.getTextSegmentationProgress();
 
+        if (sysTrainingScore.getPartofspeechTaggingTime()!=null){
+            this.partofspeechTaggingTime=dateFormat.format(sysTrainingScore.getPartofspeechTaggingTime());;
+        }
         this.partofspeechTaggingScore = sysTrainingScore.getPartofspeechTaggingScore();
-        this.partofspeechTaggingTime = sysTrainingScore.getPartofspeechTaggingTime();
         this.partofspeechTaggingProgress = sysTrainingScore.getPartofspeechTaggingProgress();
 
+        if (sysTrainingScore.getCategoryManagementTime()!=null){
+            this.categoryManagementTime=dateFormat.format(sysTrainingScore.getCategoryManagementTime());;
+        }
         this.categoryManagementScore = sysTrainingScore.getCategoryManagementScore();
-        this.categoryManagementTime = sysTrainingScore.getCategoryManagementTime();
         this.categoryManagementProgress = sysTrainingScore.getCategoryManagementProgress();
 
+        if (sysTrainingScore.getTextClassificationTime()!=null){
+            this.textClassificationTime=dateFormat.format(sysTrainingScore.getTextClassificationTime());;
+        }
         this.textClassificationScore = sysTrainingScore.getTextClassificationScore();
-        this.textClassificationTime = sysTrainingScore.getTextClassificationTime();
         this.textClassificationProgress = sysTrainingScore.getTextClassificationProgress();
 
+        if (sysTrainingScore.getTextSummarizationTime()!=null){
+            this.textSummarizationTime=dateFormat.format(sysTrainingScore.getTextSummarizationTime());;
+        }
         this.textSummarizationScore = sysTrainingScore.getTextSummarizationScore();
-        this.textSummarizationTime = sysTrainingScore.getTextSummarizationTime();
         this.textSummarizationProgress = sysTrainingScore.getTextSummarizationProgress();
 
+        if (sysTrainingScore.getSimilarityCalculationTime()!=null){
+            this.similarityCalculationTime=dateFormat.format(sysTrainingScore.getSimilarityCalculationTime());;
+        }
         this.similarityCalculationScore = sysTrainingScore.getSimilarityCalculationScore();
-        this.similarityCalculationTime = sysTrainingScore.getSimilarityCalculationTime();
         this.similarityCalculationProgress = sysTrainingScore.getSimilarityCalculationProgress();
 
+        if (sysTrainingScore.getSentimentAnalysisTime()!=null){
+            this.sentimentAnalysisTime=dateFormat.format(sysTrainingScore.getSentimentAnalysisTime());;
+        }
         this.sentimentAnalysisScore = sysTrainingScore.getSentimentAnalysisScore();
-        this.sentimentAnalysisTime = sysTrainingScore.getSentimentAnalysisTime();
         this.sentimentAnalysisProgress = sysTrainingScore.getSentimentAnalysisProgress();
 
+        if (sysTrainingScore.getDataVisualizationTime()!=null){
+            this.dataVisualizationTime=dateFormat.format(sysTrainingScore.getDataVisualizationTime());;
+        }
         this.dataVisualizationScore = sysTrainingScore.getDataVisualizationScore();
-        this.dataVisualizationTime = sysTrainingScore.getDataVisualizationTime();
         this.dataVisualizationProgress = sysTrainingScore.getDataVisualizationProgress();
 
+        if (sysTrainingScore.getReportSubmissionTime()!=null){
+            this.reportSubmissionTime=dateFormat.format(sysTrainingScore.getReportSubmissionTime());;
+        }
         this.reportSubmissionScore = sysTrainingScore.getReportSubmissionScore();
-        this.reportSubmissionTime = sysTrainingScore.getReportSubmissionTime();
         this.reportSubmissionProgress = sysTrainingScore.getReportSubmissionProgress();
 
     }
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TrainingTotalScoreVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TrainingTotalScoreVo.java
new file mode 100644
index 0000000..fac7479
--- /dev/null
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/TrainingTotalScoreVo.java
@@ -0,0 +1,214 @@
+package com.ruoyi.system.domain.vo;
+
+import com.ruoyi.system.domain.SysTrainingScore;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class TrainingTotalScoreVo implements Serializable {
+    private Integer dataCollectionScore;
+    private Integer textSegmentationScore;
+    private Integer partofspeechTaggingScore;
+    private Integer categoryManagementScore;
+    private Integer textClassificationScore;
+    private Integer textSummarizationScore;
+    private Integer similarityCalculationScore;
+    private Integer sentimentAnalysisScore;
+    private Integer dataVisualizationScore;
+    private Integer reportSubmissionScore;
+    private Integer trainingOperationScore;
+    private Integer trainingReportScore;
+    private Double totalscore;
+
+    public Integer getDataCollectionScore() {
+        return dataCollectionScore;
+    }
+
+    public void setDataCollectionScore(Integer dataCollectionScore) {
+        this.dataCollectionScore = dataCollectionScore;
+    }
+
+    public Integer getTextSegmentationScore() {
+        return textSegmentationScore;
+    }
+
+    public void setTextSegmentationScore(Integer textSegmentationScore) {
+        this.textSegmentationScore = textSegmentationScore;
+    }
+
+    public Integer getPartofspeechTaggingScore() {
+        return partofspeechTaggingScore;
+    }
+
+    public void setPartofspeechTaggingScore(Integer partofspeechTaggingScore) {
+        this.partofspeechTaggingScore = partofspeechTaggingScore;
+    }
+
+    public Integer getCategoryManagementScore() {
+        return categoryManagementScore;
+    }
+
+    public void setCategoryManagementScore(Integer categoryManagementScore) {
+        this.categoryManagementScore = categoryManagementScore;
+    }
+
+    public Integer getTextClassificationScore() {
+        return textClassificationScore;
+    }
+
+    public void setTextClassificationScore(Integer textClassificationScore) {
+        this.textClassificationScore = textClassificationScore;
+    }
+
+    public Integer getTextSummarizationScore() {
+        return textSummarizationScore;
+    }
+
+    public void setTextSummarizationScore(Integer textSummarizationScore) {
+        this.textSummarizationScore = textSummarizationScore;
+    }
+
+    public Integer getSimilarityCalculationScore() {
+        return similarityCalculationScore;
+    }
+
+    public void setSimilarityCalculationScore(Integer similarityCalculationScore) {
+        this.similarityCalculationScore = similarityCalculationScore;
+    }
+
+    public Integer getSentimentAnalysisScore() {
+        return sentimentAnalysisScore;
+    }
+
+    public void setSentimentAnalysisScore(Integer sentimentAnalysisScore) {
+        this.sentimentAnalysisScore = sentimentAnalysisScore;
+    }
+
+    public Integer getDataVisualizationScore() {
+        return dataVisualizationScore;
+    }
+
+    public void setDataVisualizationScore(Integer dataVisualizationScore) {
+        this.dataVisualizationScore = dataVisualizationScore;
+    }
+
+    public Integer getReportSubmissionScore() {
+        return reportSubmissionScore;
+    }
+
+    public void setReportSubmissionScore(Integer reportSubmissionScore) {
+        this.reportSubmissionScore = reportSubmissionScore;
+    }
+
+    public Integer getTrainingOperationScore() {
+        return trainingOperationScore;
+    }
+
+    public void setTrainingOperationScore(Integer trainingOperationScore) {
+        this.trainingOperationScore = trainingOperationScore;
+    }
+
+    public Integer getTrainingReportScore() {
+        return trainingReportScore;
+    }
+
+    public void setTrainingReportScore(Integer trainingReportScore) {
+        this.trainingReportScore = trainingReportScore;
+    }
+
+    public Double getTotalscore() {
+        return totalscore;
+    }
+
+    public void setTotalscore(Double totalscore) {
+        this.totalscore = totalscore;
+    }
+
+    public TrainingTotalScoreVo(SysTrainingScore sysTrainingScore){
+        dataCollectionScore=sysTrainingScore.getDataCollectionScore();
+        textSegmentationScore=sysTrainingScore.getTextSegmentationScore();
+        partofspeechTaggingScore=sysTrainingScore.getPartofspeechTaggingScore();
+        categoryManagementScore=sysTrainingScore.getCategoryManagementScore();
+        textClassificationScore=sysTrainingScore.getTextClassificationScore();
+        textSummarizationScore=sysTrainingScore.getTextSummarizationScore();
+        similarityCalculationScore=sysTrainingScore.getSimilarityCalculationScore();
+        sentimentAnalysisScore=sysTrainingScore.getSentimentAnalysisScore();
+        dataVisualizationScore=sysTrainingScore.getDataVisualizationScore();
+        reportSubmissionScore=sysTrainingScore.getReportSubmissionScore();
+        trainingOperationScore=sysTrainingScore.getTrainingOperationScore();
+    }
+
+    public List<Map> ReturnTrainingTotalScore(TrainingTotalScoreVo trainingTotalScoreVo){
+        List<Map> list=new ArrayList<>();
+        Map dataCollectionMap=new HashMap();
+        dataCollectionMap.put("project","数据采集");
+        dataCollectionMap.put("score",trainingTotalScoreVo.getDataCollectionScore());
+        list.add(dataCollectionMap);
+
+        Map textSegmentationMap=new HashMap();
+        textSegmentationMap.put("project","文本分词");
+        textSegmentationMap.put("score",trainingTotalScoreVo.getTextSegmentationScore());
+        list.add(textSegmentationMap);
+
+        Map partofspeechTaggingMap=new HashMap();
+        partofspeechTaggingMap.put("project","词性标注");
+        partofspeechTaggingMap.put("score",trainingTotalScoreVo.getPartofspeechTaggingScore());
+        list.add(partofspeechTaggingMap);
+
+        Map categoryManagementMap=new HashMap();
+        categoryManagementMap.put("project","分类管理");
+        categoryManagementMap.put("score",trainingTotalScoreVo.getCategoryManagementScore());
+        list.add(categoryManagementMap);
+
+        Map textClassificationMap=new HashMap();
+        textClassificationMap.put("project","文本分类");
+        textClassificationMap.put("score",trainingTotalScoreVo.getTextClassificationScore());
+        list.add(textClassificationMap);
+
+        Map textSummarizationMap=new HashMap();
+        textSummarizationMap.put("project","文本摘要");
+        textSummarizationMap.put("score",trainingTotalScoreVo.getTextSummarizationScore());
+        list.add(textSummarizationMap);
+
+        Map similarityCalculationMap=new HashMap();
+        similarityCalculationMap.put("project","相似度计算");
+        similarityCalculationMap.put("score",trainingTotalScoreVo.getSimilarityCalculationScore());
+        list.add(similarityCalculationMap);
+
+        Map sentimentAnalysisMap=new HashMap();
+        sentimentAnalysisMap.put("project","情感分析");
+        sentimentAnalysisMap.put("score",trainingTotalScoreVo.getSentimentAnalysisScore());
+        list.add(sentimentAnalysisMap);
+
+        Map dataVisualizationMap=new HashMap();
+        dataVisualizationMap.put("project","数据可视化");
+        dataVisualizationMap.put("score",trainingTotalScoreVo.getDataVisualizationScore());
+        list.add(dataVisualizationMap);
+
+
+        Map reportSubmissionMap=new HashMap();
+        reportSubmissionMap.put("project","报告提交");
+        reportSubmissionMap.put("score",trainingTotalScoreVo.getReportSubmissionScore());
+        list.add(reportSubmissionMap);
+
+        Map trainingOperationMap=new HashMap();
+        trainingOperationMap.put("project","实操成绩合计");
+        trainingOperationMap.put("score",trainingTotalScoreVo.getTrainingOperationScore());
+        list.add(trainingOperationMap);
+
+        Map trainingReportMap=new HashMap();
+        trainingReportMap.put("project","实训报告得分");
+        trainingReportMap.put("score",trainingTotalScoreVo.getTrainingReportScore());
+        list.add(trainingReportMap);
+
+        Map totalscoreMap=new HashMap();
+        totalscoreMap.put("project","总成绩");
+        totalscoreMap.put("score",trainingTotalScoreVo.getTotalscore());
+        list.add(totalscoreMap);
+
+        return list;
+    }
+}
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
index 5c01798..8ff3b37 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysUserMapper.java
@@ -8,14 +8,15 @@ import com.ruoyi.common.core.domain.entity.SysUser;
 
 /**
  * 用户表 数据层
- *
+ * 
  * @author ruoyi
  */
 @Mapper
-public interface SysUserMapper {
+public interface SysUserMapper
+{
     /**
      * 根据条件分页查询用户列表
-     *
+     * 
      * @param sysUser 用户信息
      * @return 用户信息集合信息
      */
@@ -23,7 +24,7 @@ public interface SysUserMapper {
 
     /**
      * 根据条件分页查询已配用户角色列表
-     *
+     * 
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -31,7 +32,7 @@ public interface SysUserMapper {
 
     /**
      * 根据条件分页查询未分配用户角色列表
-     *
+     * 
      * @param user 用户信息
      * @return 用户信息集合信息
      */
@@ -39,7 +40,7 @@ public interface SysUserMapper {
 
     /**
      * 通过用户名查询用户
-     *
+     * 
      * @param userName 用户名
      * @return 用户对象信息
      */
@@ -47,7 +48,7 @@ public interface SysUserMapper {
 
     /**
      * 通过用户ID查询用户
-     *
+     * 
      * @param userId 用户ID
      * @return 用户对象信息
      */
@@ -55,7 +56,7 @@ public interface SysUserMapper {
 
     /**
      * 新增用户信息
-     *
+     * 
      * @param user 用户信息
      * @return 结果
      */
@@ -63,7 +64,7 @@ public interface SysUserMapper {
 
     /**
      * 修改用户信息
-     *
+     * 
      * @param user 用户信息
      * @return 结果
      */
@@ -71,16 +72,16 @@ public interface SysUserMapper {
 
     /**
      * 修改用户头像
-     *
+     * 
      * @param userName 用户名
-     * @param avatar   头像地址
+     * @param avatar 头像地址
      * @return 结果
      */
     public int updateUserAvatar(@Param("userName") String userName, @Param("avatar") String avatar);
 
     /**
      * 重置用户密码
-     *
+     * 
      * @param userName 用户名
      * @param password 密码
      * @return 结果
@@ -89,7 +90,7 @@ public interface SysUserMapper {
 
     /**
      * 通过用户ID删除用户
-     *
+     * 
      * @param userId 用户ID
      * @return 结果
      */
@@ -97,7 +98,7 @@ public interface SysUserMapper {
 
     /**
      * 批量删除用户信息
-     *
+     * 
      * @param userIds 需要删除的用户ID
      * @return 结果
      */
@@ -105,7 +106,7 @@ public interface SysUserMapper {
 
     /**
      * 校验用户名称是否唯一
-     *
+     * 
      * @param userName 用户名称
      * @return 结果
      */
@@ -131,7 +132,7 @@ public interface SysUserMapper {
     List<SysUser> selectClassStuNumberName();
 
     //查询班级
-    List<String> selectClass();
+    List<String>selectClass();
 
     List<SysUser> selectByNameStuNum(@Param("stuClass") String stuClass, @Param("keyWord") String keyWord);
 
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 bded8ef..e271ea3 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
@@ -25,7 +25,11 @@ public interface ISysTrainingScoreService {
 
     PageInfo<ReportDto> teacherGetReport(Integer index, Integer size, Double reportWeight, Double operatorWeight, String keyWord, String stuClass);
 
-    List<String> selectClass();
+    List<String>selectClass();
+
+    void deleteByUserId(Long userId);
+
+    void insertByUserId(Long userId);
 
     AjaxResult downloadReport(HttpServletResponse response, Long id);
 }
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 20ee2f7..9688d0d 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
@@ -23,6 +23,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.UUID;
 
 @Service
 public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
@@ -35,6 +36,22 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
     @Autowired
     SysGradeWeightMapper gradeWeightMapper;
 
+    @Override
+    public void deleteByUserId(Long userId){
+        SysTrainingScoreExample example = new SysTrainingScoreExample();
+        SysTrainingScoreExample.Criteria criteria = example.createCriteria();
+        criteria.andUseridEqualTo(userId);
+        trainingScoreMapper.deleteByExample(example);
+    }
+
+    @Override
+    public void insertByUserId(Long userId) {
+        SysTrainingScore sysTrainingScore=new SysTrainingScore();
+        sysTrainingScore.setId(String.valueOf(UUID.randomUUID()));
+        sysTrainingScore.setUserid(userId);
+        sysTrainingScore.setStatus(0);
+        trainingScoreMapper.insert(sysTrainingScore);
+    }
 
     @Override
     public SysTrainingScore selectByUserId(Long userId) {
@@ -56,12 +73,16 @@ public class SysTrainingScoreServiceImpl implements ISysTrainingScoreService {
         if (sysTrainingScore.getStatus() == 1) {
             return null;
         } else {
-            if (sysTrainingScore.get(controlsName) == null || ("").equals(sysTrainingScore.get(controlsName))) {
+            if (sysTrainingScore.get(controlsName) == null || ("").equals(sysTrainingScore.get(controlsName)) || "null".equals(sysTrainingScore.get(controlsName))) {
                 Map<String, Integer> trainingScoreConstantsMap = TrainingScoreConstants.getTrainingScoreConstantsMap();
                 Integer score = trainingScoreConstantsMap.get(controlsName);
                 SysTrainingScore trainingScore = new SysTrainingScore();
                 trainingScore.setId(sysTrainingScore.getId());
                 trainingScore.set(controlsName, String.valueOf(score));
+                if(controlsName.equals("dataCollectionStepDescription")){
+                    trainingScore.set("dataCollectionToolbarButton","2");
+                    sysTrainingScore.set("dataCollectionToolbarButton","2");
+                }
                 trainingScoreMapper.updateByPrimaryKeySelective(trainingScore);
                 sysTrainingScore.set(controlsName, String.valueOf(score));
                 return sysTrainingScore;
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
index 8380e2c..7f70293 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java
@@ -265,6 +265,7 @@ public class SysUserServiceImpl implements ISysUserService
         //新增实训成绩
         SysTrainingScore sysTrainingScore=new SysTrainingScore();
         sysTrainingScore.setUserid(user.getUserId());
+        sysTrainingScore.setStatus(0);
         trainingScoreMapper.insert(sysTrainingScore);
         return rows;
     }