diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuConceptBlockController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuConceptBlockController.java
index ddd1bf9..149d973 100644
--- a/src/main/java/com/sztzjy/digital_credit/controller/StuConceptBlockController.java
+++ b/src/main/java/com/sztzjy/digital_credit/controller/StuConceptBlockController.java
@@ -52,6 +52,10 @@ public class StuConceptBlockController {
 
 
 
+
+
+
+
     @ApiOperation("区块链学习资源查看")
     @PostMapping("/getBlockResources")
     @AnonymousAccess
diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuEnterPriseByInfoEntryController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuEnterPriseByInfoEntryController.java
index 0750c8c..8bbdbf0 100644
--- a/src/main/java/com/sztzjy/digital_credit/controller/StuEnterPriseByInfoEntryController.java
+++ b/src/main/java/com/sztzjy/digital_credit/controller/StuEnterPriseByInfoEntryController.java
@@ -133,6 +133,16 @@ public class StuEnterPriseByInfoEntryController {
 
 
 
+
+    @ApiOperation("财务指标盈利能力查询")
+    @AnonymousAccess
+    @GetMapping("/getFinancialProfitAbilitySelect")
+    public ResultEntity getFinancialProfitAbilitySelect(@NotBlank String userId){
+        return infoEntryService.getFinancialProfitAbilitySelect(userId);
+
+    }
+
+
     @ApiOperation("财务指标盈利能力自动保存")
     @AnonymousAccess
     @PostMapping("/getFinancialProfitAbilityByAuto")
@@ -150,6 +160,20 @@ public class StuEnterPriseByInfoEntryController {
 
     }
 
+
+
+
+
+    @ApiOperation("财务指标偿债能力查询")
+    @AnonymousAccess
+    @GetMapping("/getFinancialSolvencySelect")
+    public ResultEntity getFinancialSolvencySelect(@NotBlank String userId){
+        return infoEntryService.getFinancialSolvencySelect(userId);
+
+    }
+
+
+
     @ApiOperation("财务指标偿债能力自动保存")
     @AnonymousAccess
     @PostMapping("/getFinancialSolvencyByAuto")
@@ -169,6 +193,13 @@ public class StuEnterPriseByInfoEntryController {
 
 
 
+    @ApiOperation("财务指标营运能力查询")
+    @AnonymousAccess
+    @GetMapping("/getFinancialOperatingCapacitySelect")
+    public ResultEntity getFinancialOperatingCapacitySelect(@NotBlank String userId){
+        return infoEntryService.getFinancialOperatingCapacitySelect(userId);
+
+    }
 
 
     @ApiOperation("财务指标营运能力自动保存")
@@ -189,7 +220,13 @@ public class StuEnterPriseByInfoEntryController {
     }
 
 
+    @ApiOperation("财务指标成长能力查询")
+    @AnonymousAccess
+    @GetMapping("/getFinancialGrowthAbilitySelect")
+    public ResultEntity getFinancialGrowthAbilitySelect(@NotBlank String userId){
+        return infoEntryService.getFinancialGrowthAbilitySelect(userId);
 
+    }
     @ApiOperation("财务指标成长能力自动保存")
     @AnonymousAccess
     @PostMapping("/getFinancialGrowthAbilityByAuto")
@@ -209,6 +246,14 @@ public class StuEnterPriseByInfoEntryController {
 
 
 
+    @ApiOperation("财务指标杜邦分析查询")
+    @AnonymousAccess
+    @GetMapping("/getFinancialDuPontAnalysisSelect")
+    public ResultEntity getFinancialDuPontAnalysisSelect(@NotBlank String userId){
+        return infoEntryService.getFinancialDuPontAnalysisSelect(userId);
+
+    }
+
     @ApiOperation("财务指标杜邦分析自动保存")
     @AnonymousAccess
     @PostMapping("/getFinancialDuPontAnalysisByAuto")
diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuExperimentTrainByCreditController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuExperimentTrainByCreditController.java
index 2fb99cf..be36cd8 100644
--- a/src/main/java/com/sztzjy/digital_credit/controller/StuExperimentTrainByCreditController.java
+++ b/src/main/java/com/sztzjy/digital_credit/controller/StuExperimentTrainByCreditController.java
@@ -52,7 +52,13 @@ public class StuExperimentTrainByCreditController {
         return  experimentTrainByCreditService.trainByPublicSave(learning);
     }
 
+    @ApiOperation("查看接口")
+    @AnonymousAccess
+    @GetMapping("/readTrainInfo")
+    public ResultEntity readTrainInfo(String module,String userId){
 
+        return  experimentTrainByCreditService.readTrainInfo(module,userId);
+    }
 
 
     @ApiOperation("查看统一功能")
@@ -65,6 +71,8 @@ public class StuExperimentTrainByCreditController {
         HashMap<String, String> map = new HashMap<>();
         map.put("负债信息概要","/credit/**");
         map.put("参保信息样板","/credit/**");
+        map.put("个人信用信息查询及报送授权书","/credit/个人信用信息查询及报送授权书.pdf");
+        map.put("担保协议书","/credit/担保协议书.pdf");
 
 
         String fileUrl = map.get(name);
@@ -83,11 +91,27 @@ public class StuExperimentTrainByCreditController {
 
 //    担保协议书
 
-    @PostMapping("/downloadDoc")
+    @GetMapping("/downloadDoc")
     @AnonymousAccess
-    @ApiOperation("下载担保协议书")
-    public void download(HttpServletResponse response){
-        iFileUtil.download(response,"/credit/**");
+    @ApiOperation("文件下载")
+    public void download(HttpServletResponse response,@ApiParam("个人信用信息查询/数据说明表") String docName){
+
+        String url = null;
+        if ("个人信用信息查询".equals(docName))
+        {
+            url= "个人信用信息查询及报送授权书.pdf";
+        }
+        if ("数据说明表".equals(docName))
+        {
+            url= "数据说明表.xls";
+        }
+
+
+
+
+        iFileUtil.download(response,url);
     }
 
 }
+
+
diff --git a/src/main/java/com/sztzjy/digital_credit/controller/StuUserPortraitController.java b/src/main/java/com/sztzjy/digital_credit/controller/StuUserPortraitController.java
index f50d600..14e831e 100644
--- a/src/main/java/com/sztzjy/digital_credit/controller/StuUserPortraitController.java
+++ b/src/main/java/com/sztzjy/digital_credit/controller/StuUserPortraitController.java
@@ -11,6 +11,8 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.constraints.NotBlank;
+
 /**
  * @author 17803
  * @date 2024-04-23 9:38
@@ -37,6 +39,14 @@ public class StuUserPortraitController {
     }
 
 
+    @ApiOperation("用户画像数据查询")
+    @AnonymousAccess
+    @GetMapping("/getBaseInfoByUserPortrait")
+    public ResultEntity getBaseInfoByUserPortrait(@NotBlank String userId,@NotBlank String module){
+        return userPortraitControllerService.getBaseInfoByUserPortrait(userId,module);
+
+    }
+
     @ApiOperation("用户画像:重新实训")
     @AnonymousAccess
     @GetMapping("/reTraining")
diff --git a/src/main/java/com/sztzjy/digital_credit/controller/adminTerminal/AdminBlockController.java b/src/main/java/com/sztzjy/digital_credit/controller/adminTerminal/AdminBlockController.java
index 654dcef..7868639 100644
--- a/src/main/java/com/sztzjy/digital_credit/controller/adminTerminal/AdminBlockController.java
+++ b/src/main/java/com/sztzjy/digital_credit/controller/adminTerminal/AdminBlockController.java
@@ -8,17 +8,21 @@ import com.nimbusds.jose.shaded.gson.Gson;
 import com.sztzjy.digital_credit.annotation.AnonymousAccess;
 import com.sztzjy.digital_credit.config.security.TokenProvider;
 import com.sztzjy.digital_credit.entity.*;
+import com.sztzjy.digital_credit.entity.dto.AdminKnowSummaryDto;
+import com.sztzjy.digital_credit.mapper.StuKnowSummaryMapper;
 import com.sztzjy.digital_credit.service.AdminBlockService;
 import com.sztzjy.digital_credit.util.ResultEntity;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -33,6 +37,27 @@ public class AdminBlockController {
     @Resource
     private AdminBlockService adminBlockService;
 
+    @Autowired
+    private StuKnowSummaryMapper stuKnowSummaryMapper;
+
+
+    @PostMapping("/addKnowSummary")
+    @ApiOperation("添加知识概要")
+    @AnonymousAccess
+    public ResultEntity addKnowSummary(@RequestBody AdminKnowSummaryDto adminKnowSummaryDto){
+
+        StuKnowSummary stuKnowSummary = new StuKnowSummary();
+        stuKnowSummary.setContext(adminKnowSummaryDto.getContext());
+        stuKnowSummary.setCreateTime(new Date());
+        stuKnowSummary.setModule(adminKnowSummaryDto.getModule());
+        stuKnowSummary.setUploadAuthor(adminKnowSummaryDto.getUserId());
+
+        stuKnowSummaryMapper.insertSelective(stuKnowSummary);
+
+        return new ResultEntity<>(HttpStatus.OK,"新增成功!");
+
+    }
+
 
     @PostMapping("/getResources")
     @ApiOperation("学习资源查看")
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/StuKnowSummary.java b/src/main/java/com/sztzjy/digital_credit/entity/StuKnowSummary.java
new file mode 100644
index 0000000..58ce016
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/StuKnowSummary.java
@@ -0,0 +1,78 @@
+package com.sztzjy.digital_credit.entity;
+
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+/**
+ * 知识概要
+ *
+ * @author whb
+ * stu_know_summary
+ */
+public class StuKnowSummary {
+    @ApiModelProperty("id")
+    private Integer id;
+
+    @ApiModelProperty("归属模块")
+    private String module;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+    @ApiModelProperty("上传作者")
+    private String uploadAuthor;
+
+    @ApiModelProperty("文本内容")
+    private String context;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getModule() {
+        return module;
+    }
+
+    public void setModule(String module) {
+        this.module = module == null ? null : module.trim();
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+
+    public String getUploadAuthor() {
+        return uploadAuthor;
+    }
+
+    public void setUploadAuthor(String uploadAuthor) {
+        this.uploadAuthor = uploadAuthor == null ? null : uploadAuthor.trim();
+    }
+
+    public String getContext() {
+        return context;
+    }
+
+    public void setContext(String context) {
+        this.context = context == null ? null : context.trim();
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/StuKnowSummaryExample.java b/src/main/java/com/sztzjy/digital_credit/entity/StuKnowSummaryExample.java
new file mode 100644
index 0000000..bae3d78
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/StuKnowSummaryExample.java
@@ -0,0 +1,520 @@
+package com.sztzjy.digital_credit.entity;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+public class StuKnowSummaryExample {
+    protected String orderByClause;
+
+    protected boolean distinct;
+
+    protected List<Criteria> oredCriteria;
+
+    public StuKnowSummaryExample() {
+        oredCriteria = new ArrayList<>();
+    }
+
+    public void setOrderByClause(String orderByClause) {
+        this.orderByClause = orderByClause;
+    }
+
+    public String getOrderByClause() {
+        return orderByClause;
+    }
+
+    public void setDistinct(boolean distinct) {
+        this.distinct = distinct;
+    }
+
+    public boolean isDistinct() {
+        return distinct;
+    }
+
+    public List<Criteria> getOredCriteria() {
+        return oredCriteria;
+    }
+
+    public void or(Criteria criteria) {
+        oredCriteria.add(criteria);
+    }
+
+    public Criteria or() {
+        Criteria criteria = createCriteriaInternal();
+        oredCriteria.add(criteria);
+        return criteria;
+    }
+
+    public Criteria createCriteria() {
+        Criteria criteria = createCriteriaInternal();
+        if (oredCriteria.size() == 0) {
+            oredCriteria.add(criteria);
+        }
+        return criteria;
+    }
+
+    protected Criteria createCriteriaInternal() {
+        Criteria criteria = new Criteria();
+        return criteria;
+    }
+
+    public void clear() {
+        oredCriteria.clear();
+        orderByClause = null;
+        distinct = false;
+    }
+
+    protected abstract static class GeneratedCriteria {
+        protected List<Criterion> criteria;
+
+        protected GeneratedCriteria() {
+            super();
+            criteria = new ArrayList<>();
+        }
+
+        public boolean isValid() {
+            return criteria.size() > 0;
+        }
+
+        public List<Criterion> getAllCriteria() {
+            return criteria;
+        }
+
+        public List<Criterion> getCriteria() {
+            return criteria;
+        }
+
+        protected void addCriterion(String condition) {
+            if (condition == null) {
+                throw new RuntimeException("Value for condition cannot be null");
+            }
+            criteria.add(new Criterion(condition));
+        }
+
+        protected void addCriterion(String condition, Object value, String property) {
+            if (value == null) {
+                throw new RuntimeException("Value for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value));
+        }
+
+        protected void addCriterion(String condition, Object value1, Object value2, String property) {
+            if (value1 == null || value2 == null) {
+                throw new RuntimeException("Between values for " + property + " cannot be null");
+            }
+            criteria.add(new Criterion(condition, value1, value2));
+        }
+
+        public Criteria andIdIsNull() {
+            addCriterion("id is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIsNotNull() {
+            addCriterion("id is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdEqualTo(Integer value) {
+            addCriterion("id =", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotEqualTo(Integer value) {
+            addCriterion("id <>", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThan(Integer value) {
+            addCriterion("id >", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdGreaterThanOrEqualTo(Integer value) {
+            addCriterion("id >=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThan(Integer value) {
+            addCriterion("id <", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdLessThanOrEqualTo(Integer value) {
+            addCriterion("id <=", value, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdIn(List<Integer> values) {
+            addCriterion("id in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotIn(List<Integer> values) {
+            addCriterion("id not in", values, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdBetween(Integer value1, Integer value2) {
+            addCriterion("id between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andIdNotBetween(Integer value1, Integer value2) {
+            addCriterion("id not between", value1, value2, "id");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleIsNull() {
+            addCriterion("module is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleIsNotNull() {
+            addCriterion("module is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleEqualTo(String value) {
+            addCriterion("module =", value, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleNotEqualTo(String value) {
+            addCriterion("module <>", value, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleGreaterThan(String value) {
+            addCriterion("module >", value, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleGreaterThanOrEqualTo(String value) {
+            addCriterion("module >=", value, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleLessThan(String value) {
+            addCriterion("module <", value, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleLessThanOrEqualTo(String value) {
+            addCriterion("module <=", value, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleLike(String value) {
+            addCriterion("module like", value, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleNotLike(String value) {
+            addCriterion("module not like", value, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleIn(List<String> values) {
+            addCriterion("module in", values, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleNotIn(List<String> values) {
+            addCriterion("module not in", values, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleBetween(String value1, String value2) {
+            addCriterion("module between", value1, value2, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andModuleNotBetween(String value1, String value2) {
+            addCriterion("module not between", value1, value2, "module");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNull() {
+            addCriterion("create_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIsNotNull() {
+            addCriterion("create_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeEqualTo(Date value) {
+            addCriterion("create_time =", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotEqualTo(Date value) {
+            addCriterion("create_time <>", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThan(Date value) {
+            addCriterion("create_time >", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("create_time >=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThan(Date value) {
+            addCriterion("create_time <", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("create_time <=", value, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeIn(List<Date> values) {
+            addCriterion("create_time in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotIn(List<Date> values) {
+            addCriterion("create_time not in", values, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeBetween(Date value1, Date value2) {
+            addCriterion("create_time between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andCreateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("create_time not between", value1, value2, "createTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNull() {
+            addCriterion("update_time is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIsNotNull() {
+            addCriterion("update_time is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeEqualTo(Date value) {
+            addCriterion("update_time =", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotEqualTo(Date value) {
+            addCriterion("update_time <>", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThan(Date value) {
+            addCriterion("update_time >", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeGreaterThanOrEqualTo(Date value) {
+            addCriterion("update_time >=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThan(Date value) {
+            addCriterion("update_time <", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeLessThanOrEqualTo(Date value) {
+            addCriterion("update_time <=", value, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeIn(List<Date> values) {
+            addCriterion("update_time in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotIn(List<Date> values) {
+            addCriterion("update_time not in", values, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeBetween(Date value1, Date value2) {
+            addCriterion("update_time between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUpdateTimeNotBetween(Date value1, Date value2) {
+            addCriterion("update_time not between", value1, value2, "updateTime");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorIsNull() {
+            addCriterion("upload_author is null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorIsNotNull() {
+            addCriterion("upload_author is not null");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorEqualTo(String value) {
+            addCriterion("upload_author =", value, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorNotEqualTo(String value) {
+            addCriterion("upload_author <>", value, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorGreaterThan(String value) {
+            addCriterion("upload_author >", value, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorGreaterThanOrEqualTo(String value) {
+            addCriterion("upload_author >=", value, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorLessThan(String value) {
+            addCriterion("upload_author <", value, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorLessThanOrEqualTo(String value) {
+            addCriterion("upload_author <=", value, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorLike(String value) {
+            addCriterion("upload_author like", value, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorNotLike(String value) {
+            addCriterion("upload_author not like", value, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorIn(List<String> values) {
+            addCriterion("upload_author in", values, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorNotIn(List<String> values) {
+            addCriterion("upload_author not in", values, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorBetween(String value1, String value2) {
+            addCriterion("upload_author between", value1, value2, "uploadAuthor");
+            return (Criteria) this;
+        }
+
+        public Criteria andUploadAuthorNotBetween(String value1, String value2) {
+            addCriterion("upload_author not between", value1, value2, "uploadAuthor");
+            return (Criteria) this;
+        }
+    }
+
+    public static class Criteria extends GeneratedCriteria {
+        protected Criteria() {
+            super();
+        }
+    }
+
+    public static class Criterion {
+        private String condition;
+
+        private Object value;
+
+        private Object secondValue;
+
+        private boolean noValue;
+
+        private boolean singleValue;
+
+        private boolean betweenValue;
+
+        private boolean listValue;
+
+        private String typeHandler;
+
+        public String getCondition() {
+            return condition;
+        }
+
+        public Object getValue() {
+            return value;
+        }
+
+        public Object getSecondValue() {
+            return secondValue;
+        }
+
+        public boolean isNoValue() {
+            return noValue;
+        }
+
+        public boolean isSingleValue() {
+            return singleValue;
+        }
+
+        public boolean isBetweenValue() {
+            return betweenValue;
+        }
+
+        public boolean isListValue() {
+            return listValue;
+        }
+
+        public String getTypeHandler() {
+            return typeHandler;
+        }
+
+        protected Criterion(String condition) {
+            super();
+            this.condition = condition;
+            this.typeHandler = null;
+            this.noValue = true;
+        }
+
+        protected Criterion(String condition, Object value, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.typeHandler = typeHandler;
+            if (value instanceof List<?>) {
+                this.listValue = true;
+            } else {
+                this.singleValue = true;
+            }
+        }
+
+        protected Criterion(String condition, Object value) {
+            this(condition, value, null);
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
+            super();
+            this.condition = condition;
+            this.value = value;
+            this.secondValue = secondValue;
+            this.typeHandler = typeHandler;
+            this.betweenValue = true;
+        }
+
+        protected Criterion(String condition, Object value, Object secondValue) {
+            this(condition, value, secondValue, null);
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/StuScoreCenterExample.java b/src/main/java/com/sztzjy/digital_credit/entity/StuScoreCenterExample.java
index 7c57bfb..037a581 100644
--- a/src/main/java/com/sztzjy/digital_credit/entity/StuScoreCenterExample.java
+++ b/src/main/java/com/sztzjy/digital_credit/entity/StuScoreCenterExample.java
@@ -2,7 +2,6 @@ package com.sztzjy.digital_credit.entity;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 public class StuScoreCenterExample {
@@ -1055,136 +1054,6 @@ public class StuScoreCenterExample {
             addCriterion("number_of_training not between", value1, value2, "numberOfTraining");
             return (Criteria) this;
         }
-
-        public Criteria andCompletionTimeIsNull() {
-            addCriterion("completion_time is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeIsNotNull() {
-            addCriterion("completion_time is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeEqualTo(Date value) {
-            addCriterion("completion_time =", value, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeNotEqualTo(Date value) {
-            addCriterion("completion_time <>", value, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeGreaterThan(Date value) {
-            addCriterion("completion_time >", value, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeGreaterThanOrEqualTo(Date value) {
-            addCriterion("completion_time >=", value, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeLessThan(Date value) {
-            addCriterion("completion_time <", value, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeLessThanOrEqualTo(Date value) {
-            addCriterion("completion_time <=", value, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeIn(List<Date> values) {
-            addCriterion("completion_time in", values, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeNotIn(List<Date> values) {
-            addCriterion("completion_time not in", values, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeBetween(Date value1, Date value2) {
-            addCriterion("completion_time between", value1, value2, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andCompletionTimeNotBetween(Date value1, Date value2) {
-            addCriterion("completion_time not between", value1, value2, "completionTime");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameIsNull() {
-            addCriterion("class_name is null");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameIsNotNull() {
-            addCriterion("class_name is not null");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameEqualTo(String value) {
-            addCriterion("class_name =", value, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameNotEqualTo(String value) {
-            addCriterion("class_name <>", value, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameGreaterThan(String value) {
-            addCriterion("class_name >", value, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameGreaterThanOrEqualTo(String value) {
-            addCriterion("class_name >=", value, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameLessThan(String value) {
-            addCriterion("class_name <", value, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameLessThanOrEqualTo(String value) {
-            addCriterion("class_name <=", value, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameLike(String value) {
-            addCriterion("class_name like", value, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameNotLike(String value) {
-            addCriterion("class_name not like", value, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameIn(List<String> values) {
-            addCriterion("class_name in", values, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameNotIn(List<String> values) {
-            addCriterion("class_name not in", values, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameBetween(String value1, String value2) {
-            addCriterion("class_name between", value1, value2, "className");
-            return (Criteria) this;
-        }
-
-        public Criteria andClassNameNotBetween(String value1, String value2) {
-            addCriterion("class_name not between", value1, value2, "className");
-            return (Criteria) this;
-        }
     }
 
     public static class Criteria extends GeneratedCriteria {
diff --git a/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminKnowSummaryDto.java b/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminKnowSummaryDto.java
new file mode 100644
index 0000000..51aa00a
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/entity/dto/AdminKnowSummaryDto.java
@@ -0,0 +1,19 @@
+package com.sztzjy.digital_credit.entity.dto;
+
+import lombok.Data;
+
+/**
+ * @author 17803
+ * @date 2024-06-21 17:50
+ */
+
+@Data
+public class AdminKnowSummaryDto {
+
+    private String context;
+
+    private String userId;
+
+    private String module;
+
+}
diff --git a/src/main/java/com/sztzjy/digital_credit/mapper/StuKnowSummaryMapper.java b/src/main/java/com/sztzjy/digital_credit/mapper/StuKnowSummaryMapper.java
new file mode 100644
index 0000000..c62293c
--- /dev/null
+++ b/src/main/java/com/sztzjy/digital_credit/mapper/StuKnowSummaryMapper.java
@@ -0,0 +1,36 @@
+package com.sztzjy.digital_credit.mapper;
+
+import com.sztzjy.digital_credit.entity.StuKnowSummary;
+import com.sztzjy.digital_credit.entity.StuKnowSummaryExample;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+
+public interface StuKnowSummaryMapper {
+    long countByExample(StuKnowSummaryExample example);
+
+    int deleteByExample(StuKnowSummaryExample example);
+
+    int deleteByPrimaryKey(Integer id);
+
+    int insert(StuKnowSummary record);
+
+    int insertSelective(StuKnowSummary record);
+
+    List<StuKnowSummary> selectByExampleWithBLOBs(StuKnowSummaryExample example);
+
+    List<StuKnowSummary> selectByExample(StuKnowSummaryExample example);
+
+    StuKnowSummary selectByPrimaryKey(Integer id);
+
+    int updateByExampleSelective(@Param("record") StuKnowSummary record, @Param("example") StuKnowSummaryExample example);
+
+    int updateByExampleWithBLOBs(@Param("record") StuKnowSummary record, @Param("example") StuKnowSummaryExample example);
+
+    int updateByExample(@Param("record") StuKnowSummary record, @Param("example") StuKnowSummaryExample example);
+
+    int updateByPrimaryKeySelective(StuKnowSummary record);
+
+    int updateByPrimaryKeyWithBLOBs(StuKnowSummary record);
+
+    int updateByPrimaryKey(StuKnowSummary record);
+}
\ No newline at end of file
diff --git a/src/main/java/com/sztzjy/digital_credit/mapper/StuScoreCenterMapper.java b/src/main/java/com/sztzjy/digital_credit/mapper/StuScoreCenterMapper.java
index eba6190..305272f 100644
--- a/src/main/java/com/sztzjy/digital_credit/mapper/StuScoreCenterMapper.java
+++ b/src/main/java/com/sztzjy/digital_credit/mapper/StuScoreCenterMapper.java
@@ -4,7 +4,6 @@ import com.sztzjy.digital_credit.entity.StuScoreCenter;
 import com.sztzjy.digital_credit.entity.StuScoreCenterExample;
 import java.util.List;
 import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
 
 public interface StuScoreCenterMapper {
     long countByExample(StuScoreCenterExample example);
diff --git a/src/main/java/com/sztzjy/digital_credit/service/StuEnterPriseByInfoEntryService.java b/src/main/java/com/sztzjy/digital_credit/service/StuEnterPriseByInfoEntryService.java
index 38824a4..594ae8c 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/StuEnterPriseByInfoEntryService.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/StuEnterPriseByInfoEntryService.java
@@ -170,4 +170,45 @@ public interface StuEnterPriseByInfoEntryService {
     */
 
     ResultEntity getFinancialDuPontAnalysisBySub(StuDuPontAnalysis duPontAnalysis);
+
+    /**
+        * 财务指标盈利能力查询
+        * @param userId
+        * @return
+    */
+
+
+    ResultEntity getFinancialProfitAbilitySelect(String userId);
+    /**
+        * 财务指标盈利能力查询
+        * @param userId
+        * @return
+    */
+
+
+    ResultEntity getFinancialSolvencySelect(String userId);
+
+    /**
+        * 财务指标营运能力查询
+        * @param userId
+        * @return
+    */
+
+    ResultEntity getFinancialOperatingCapacitySelect(String userId);
+
+    /**
+        * 财务指标成长能力查询
+        * @param userId
+        * @return
+    */
+
+    ResultEntity getFinancialGrowthAbilitySelect(String userId);
+
+    /**
+        * 财务指标杜邦分析查询
+        * @param userId
+        * @return
+    */
+
+    ResultEntity getFinancialDuPontAnalysisSelect(String userId);
 }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/StuExperimentTrainByCreditService.java b/src/main/java/com/sztzjy/digital_credit/service/StuExperimentTrainByCreditService.java
index e696164..05de78c 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/StuExperimentTrainByCreditService.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/StuExperimentTrainByCreditService.java
@@ -15,4 +15,13 @@ public interface StuExperimentTrainByCreditService {
     */
 
     ResultEntity trainByPublicSave(StuMachineLearning learning);
+
+    /**
+        * 查看接口
+        * @param module
+	* @param userId
+        * @return
+    */
+
+    ResultEntity readTrainInfo(String module, String userId);
 }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/StuUserPortraitControllerService.java b/src/main/java/com/sztzjy/digital_credit/service/StuUserPortraitControllerService.java
index 707a84f..5ea5283 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/StuUserPortraitControllerService.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/StuUserPortraitControllerService.java
@@ -26,4 +26,12 @@ public interface StuUserPortraitControllerService {
     Boolean userPortraitSubState(String userId);
 
     ResultEntity reTraining(String userId);
+
+    /**
+        * 基本信息查询
+        * @param userId
+        * @return
+    */
+
+    ResultEntity getBaseInfoByUserPortrait(String userId,String module);
 }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java
index 5ce8591..6c785be 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuEnterPriseByInfoEntryServiceImpl.java
@@ -245,7 +245,7 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
     public ResultEntity saveCreditRecordsInfoByAuto(StuCreditRecords creditRecords) {
         //查询有无数据,有数据就更新,没有数据就保存
         StuCreditRecordsExample creditRecordsExample = new StuCreditRecordsExample();
-        creditRecordsExample.createCriteria().andUserIdEqualTo(creditRecords.getId());
+        creditRecordsExample.createCriteria().andUserIdEqualTo(creditRecords.getUserId());
 
         List<StuCreditRecords> stuCreditRecordsList = creditRecordsMapper.selectByExample(creditRecordsExample);
         if (!stuCreditRecordsList.isEmpty()){
@@ -864,6 +864,111 @@ public class StuEnterPriseByInfoEntryServiceImpl implements StuEnterPriseByInfoE
         }
     }
 
+    /**
+        * 财务指标盈利能力查询
+        * @param userId
+        * @return
+    */
+
+    @Override
+    public ResultEntity getFinancialProfitAbilitySelect(String userId) {
+
+        StuProfitAbilityExample profitAbilityExample = new StuProfitAbilityExample();
+        profitAbilityExample.createCriteria().andUserIdEqualTo(userId);
+        List<StuProfitAbility> profitAbilityList = profitAbilityMapper.selectByExample(profitAbilityExample);
+        if (profitAbilityList.isEmpty())
+        {
+            return new ResultEntity<>(HttpStatus.OK);
+        }else {
+            return new ResultEntity<>(HttpStatus.OK,profitAbilityList.get(0));
+        }
+    }
+
+    /**
+        * 财务指标盈利能力查询
+        * @param userId
+        * @return
+    */
+
+    @Override
+    public ResultEntity getFinancialSolvencySelect(String userId) {
+
+        StuSolvencyExample solvencyExample = new StuSolvencyExample();
+        solvencyExample.createCriteria().andUserIdEqualTo(userId);
+
+        List<StuSolvency> stuSolvencyList = solvencyMapper.selectByExample(solvencyExample);
+        if (stuSolvencyList.isEmpty())
+        {
+            return new ResultEntity<>(HttpStatus.OK);
+        }else {
+            return new ResultEntity<>(HttpStatus.OK,stuSolvencyList.get(0));
+        }
+
+    }
+
+    /**
+        * 财务指标营运能力查询
+        * @param userId
+        * @return
+    */
+
+    @Override
+    public ResultEntity getFinancialOperatingCapacitySelect(String userId) {
+        //查询有无数据,有数据就更新,没有数据就保存
+        StuOperatingCapacityExample operatingCapacityExample = new StuOperatingCapacityExample();
+        operatingCapacityExample.createCriteria().andUserIdEqualTo(userId);
+
+        List<StuOperatingCapacity> operatingCapacityList = operatingCapacityMapper.selectByExample(operatingCapacityExample);
+
+        if (operatingCapacityList.isEmpty())
+        {
+            return new ResultEntity<>(HttpStatus.OK);
+        }else {
+            return new ResultEntity<>(HttpStatus.OK,operatingCapacityList.get(0));
+        }
+    }
+
+    /**
+        * 财务指标成长能力查询
+        * @param userId
+        * @return
+    */
+
+    @Override
+    public ResultEntity getFinancialGrowthAbilitySelect(String userId) {
+        StuGrowthAbilityExample growthAbilityExample = new StuGrowthAbilityExample();
+        growthAbilityExample.createCriteria().andUserIdEqualTo(userId);
+
+        List<StuGrowthAbility> growthAbilityList = growthAbilityMapper.selectByExample(growthAbilityExample);
+        if (growthAbilityList.isEmpty())
+        {
+            return new ResultEntity<>(HttpStatus.OK);
+        }else {
+            return new ResultEntity<>(HttpStatus.OK,growthAbilityList.get(0));
+        }
+    }
+
+    /**
+        * 财务指标杜邦分析查询
+        * @param userId
+        * @return
+    */
+
+    @Override
+    public ResultEntity getFinancialDuPontAnalysisSelect(String userId) {
+        StuDuPontAnalysisExample duPontAnalysisExample = new StuDuPontAnalysisExample();
+        duPontAnalysisExample.createCriteria().andUserIdEqualTo(userId);
+        List<StuDuPontAnalysis> duPontAnalysisList = duPontAnalysisMapper.selectByExample(duPontAnalysisExample);
+        if (duPontAnalysisList.isEmpty())
+        {
+            return new ResultEntity<>(HttpStatus.OK);
+        }else {
+            return new ResultEntity<>(HttpStatus.OK,duPontAnalysisList.get(0));
+        }
+
+    }
+
+
     //财务指标杜邦分析提交算分
     private StuDuPontAnalysis financialDuPontAnalysisCheck(StuDuPontAnalysis duPontAnalysis) {
         int sum = 0;
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuExperimentTrainByCreditServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuExperimentTrainByCreditServiceImpl.java
index 45caf37..5fc1e1d 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuExperimentTrainByCreditServiceImpl.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuExperimentTrainByCreditServiceImpl.java
@@ -39,10 +39,15 @@ public class StuExperimentTrainByCreditServiceImpl implements StuExperimentTrain
 
         if (!machineLearningList.isEmpty()) {
 
-            if (machineLearningList.get(0).getSubState() == 1)
-            {
-                return new ResultEntity<>(HttpStatus.OK,"保存成功!");
-            }
+//             if (machineLearningList.get(0).getSubState() == null)
+//            {
+//                machineLearningList.get(0).setSubState(0);
+//            }
+//
+//            if (machineLearningList.get(0).getSubState() == 1)
+//            {
+//                return new ResultEntity<>(HttpStatus.OK,"保存成功!");
+//            }
 
                 //已经有数据
             StuMachineLearning machineLearning = machineLearningList.get(0);
@@ -68,4 +73,26 @@ public class StuExperimentTrainByCreditServiceImpl implements StuExperimentTrain
         }
 
     }
+
+    /**
+        * 查看接口
+        * @param module
+	* @param userId
+        * @return
+    */
+
+    @Override
+    public ResultEntity readTrainInfo(String module, String userId) {
+        StuMachineLearningExample machineLearningExample = new StuMachineLearningExample();
+        machineLearningExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(module);
+        List<StuMachineLearning> machineLearningList = machineLearningMapper.selectByExample(machineLearningExample);
+        if (machineLearningList.isEmpty())
+        {
+            return new ResultEntity<>(HttpStatus.OK);
+        }
+
+        return new ResultEntity<>(HttpStatus.OK,"查询成功",machineLearningList.get(0));
+
+
+    }
 }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java
index 5cc4359..7d96072 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuRateServiceImpl.java
@@ -581,6 +581,11 @@ public class StuRateServiceImpl implements StuRateService {
         stuBaseInfoExample.createCriteria().andUserIdEqualTo(userId);
         List<StuBaseInfo> stuBaseInfoList = baseInfoMapper.selectByExample(stuBaseInfoExample);
         if (!stuBaseInfoList.isEmpty()){
+
+            if (stuBaseInfoList.get(0).getSubState() == null) {
+                stuBaseInfoList.get(0).setSubState(0);
+            }
+
             if (stuBaseInfoList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -602,6 +607,11 @@ public class StuRateServiceImpl implements StuRateService {
         stuCreditRecordsExample.createCriteria().andUserIdEqualTo(userId);
         List<StuCreditRecords> stuCreditRecordsList = creditRecordsMapper.selectByExample(stuCreditRecordsExample);
         if (!stuCreditRecordsList.isEmpty()){
+
+            if (stuCreditRecordsList.get(0).getSubState() == null) {
+                stuCreditRecordsList.get(0).setSubState(0);
+            }
+
             if (stuBaseInfoList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -615,6 +625,11 @@ public class StuRateServiceImpl implements StuRateService {
         stuDuPontAnalysisExample.createCriteria().andUserIdEqualTo(userId);
         List<StuDuPontAnalysis> duPontAnalysisList = duPontAnalysisMapper.selectByExample(stuDuPontAnalysisExample);
         if (!duPontAnalysisList.isEmpty()){
+            if (duPontAnalysisList.get(0).getSubState() == null) {
+                duPontAnalysisList.get(0).setSubState(0);
+            }
+
+
             if (duPontAnalysisList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -628,6 +643,9 @@ public class StuRateServiceImpl implements StuRateService {
         stuGrowthAbilityExample.createCriteria().andUserIdEqualTo(userId);
         List<StuGrowthAbility> growthAbilityList = growthAbilityMapper.selectByExample(stuGrowthAbilityExample);
         if (!growthAbilityList.isEmpty()){
+            if (growthAbilityList.get(0).getSubState() == null) {
+                growthAbilityList.get(0).setSubState(0);
+            }
             if (growthAbilityList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -641,6 +659,9 @@ public class StuRateServiceImpl implements StuRateService {
         stuOperatingCapacityExample.createCriteria().andUserIdEqualTo(userId);
         List<StuOperatingCapacity> operatingCapacityList = operatingCapacityMapper.selectByExample(stuOperatingCapacityExample);
         if (!operatingCapacityList.isEmpty()){
+            if (operatingCapacityList.get(0).getSubState() == null) {
+                operatingCapacityList.get(0).setSubState(0);
+            }
             if (operatingCapacityList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -653,6 +674,12 @@ public class StuRateServiceImpl implements StuRateService {
         stuOperationAssetAnalysisModuleExample.createCriteria().andUserIdEqualTo(userId);
         List<StuOperationAssetAnalysisModule> operationAssetAnalysisModuleList = operationAssetAnalysisModuleMapper.selectByExample(stuOperationAssetAnalysisModuleExample);
         if (!operationAssetAnalysisModuleList.isEmpty()){
+            if (operationAssetAnalysisModuleList.get(0).getSubState() == null) {
+                operationAssetAnalysisModuleList.get(0).setSubState(0);
+            }
+
+
+
             if (operationAssetAnalysisModuleList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -665,6 +692,11 @@ public class StuRateServiceImpl implements StuRateService {
         stuProfitAbilityExample.createCriteria().andUserIdEqualTo(userId);
         List<StuProfitAbility> profitAbilityList = profitAbilityMapper.selectByExample(stuProfitAbilityExample);
         if (!profitAbilityList.isEmpty()){
+            if (profitAbilityList.get(0).getSubState() == null) {
+                profitAbilityList.get(0).setSubState(0);
+            }
+
+
             if (profitAbilityList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -677,6 +709,10 @@ public class StuRateServiceImpl implements StuRateService {
         ratingModelExample.createCriteria().andUserIdEqualTo(userId);
         List<StuRatingModel> stuRatingModelList = ratingModelMapper.selectByExample(ratingModelExample);
         if (!stuRatingModelList.isEmpty()){
+            if (stuRatingModelList.get(0).getSubState() == null) {
+                stuRatingModelList.get(0).setSubState(0);
+            }
+
             if (stuRatingModelList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -689,6 +725,10 @@ public class StuRateServiceImpl implements StuRateService {
         stuRatingResultExample.createCriteria().andUserIdEqualTo(userId);
         List<StuRatingResult> ratingResultList = ratingResultMapper.selectByExample(stuRatingResultExample);
         if (!ratingResultList.isEmpty()){
+
+            if (ratingResultList.get(0).getSubState() == null) {
+                ratingResultList.get(0).setSubState(0);
+            }
             if (ratingResultList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -701,6 +741,10 @@ public class StuRateServiceImpl implements StuRateService {
         stuScoreModuleExample.createCriteria().andUserIdEqualTo(userId);
         List<StuScoreModule> scoreModuleList = scoreModuleMapper.selectByExample(stuScoreModuleExample);
         if (!scoreModuleList.isEmpty()){
+            if (scoreModuleList.get(0).getSubState() == null) {
+                scoreModuleList.get(0).setSubState(0);
+            }
+
             if (scoreModuleList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
@@ -713,6 +757,11 @@ public class StuRateServiceImpl implements StuRateService {
         stuSolvencyExample.createCriteria().andUserIdEqualTo(userId);
         List<StuSolvency> stuSolvencyList = solvencyMapper.selectByExample(stuSolvencyExample);
         if (!stuSolvencyList.isEmpty()){
+
+            if (stuSolvencyList.get(0).getSubState() == null) {
+                stuSolvencyList.get(0).setSubState(0);
+            }
+
             if (stuSolvencyList.get(0).getSubState() != 1) {
                 arrayList.add(0);
             }
diff --git a/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserPortraitControllerServiceImpl.java b/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserPortraitControllerServiceImpl.java
index 6ac12db..1aae8c2 100644
--- a/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserPortraitControllerServiceImpl.java
+++ b/src/main/java/com/sztzjy/digital_credit/service/impl/StuUserPortraitControllerServiceImpl.java
@@ -5,10 +5,7 @@ package com.sztzjy.digital_credit.service.impl;/**
 
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.IdUtil;
-import com.sztzjy.digital_credit.entity.StuUser;
-import com.sztzjy.digital_credit.entity.StuUserExample;
-import com.sztzjy.digital_credit.entity.StuUserPortrait;
-import com.sztzjy.digital_credit.entity.StuUserPortraitExample;
+import com.sztzjy.digital_credit.entity.*;
 import com.sztzjy.digital_credit.mapper.StuUserMapper;
 import com.sztzjy.digital_credit.mapper.StuUserPortraitMapper;
 import com.sztzjy.digital_credit.service.StuPersonalCreditService;
@@ -105,6 +102,28 @@ public class StuUserPortraitControllerServiceImpl implements StuUserPortraitCont
 
 
 
+    /**
+     * 基本信息查询
+     * @param userId
+     * @return
+     */
+
+    @Override
+    public ResultEntity getBaseInfoByUserPortrait(String userId,String module) {
+        StuUserPortraitExample infoExample = new StuUserPortraitExample();
+        infoExample.createCriteria().andUserIdEqualTo(userId).andModuleEqualTo(module);
+
+        List<StuUserPortrait> stuBaseInfoList = userPortraitMapper.selectByExample(infoExample);
+
+        if (!stuBaseInfoList.isEmpty()){
+
+            return  new ResultEntity<>(HttpStatus.OK,"获取成功",stuBaseInfoList.get(0));
+        }
+
+        return  new ResultEntity<>(HttpStatus.OK,"获取成功");
+    }
+
+
     /**
         * 用户画像提交状态
         * @param userId
@@ -151,6 +170,8 @@ public class StuUserPortraitControllerServiceImpl implements StuUserPortraitCont
     }
 
 
+
+
     //将分数保存到用户表,如果重新实训将用户表数据删除
     private void saveScoreToUser(StuUserPortrait portrait) {
         StuUserExample userExample = new StuUserExample();
diff --git a/src/main/resources/mappers/StuKnowSummaryMapper.xml b/src/main/resources/mappers/StuKnowSummaryMapper.xml
new file mode 100644
index 0000000..8cf87d7
--- /dev/null
+++ b/src/main/resources/mappers/StuKnowSummaryMapper.xml
@@ -0,0 +1,270 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sztzjy.digital_credit.mapper.StuKnowSummaryMapper">
+  <resultMap id="BaseResultMap" type="com.sztzjy.digital_credit.entity.StuKnowSummary">
+    <id column="id" jdbcType="INTEGER" property="id" />
+    <result column="module" jdbcType="VARCHAR" property="module" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="upload_author" jdbcType="VARCHAR" property="uploadAuthor" />
+  </resultMap>
+  <resultMap extends="BaseResultMap" id="ResultMapWithBLOBs" type="com.sztzjy.digital_credit.entity.StuKnowSummary">
+    <result column="context" jdbcType="LONGVARCHAR" property="context" />
+  </resultMap>
+  <sql id="Example_Where_Clause">
+    <where>
+      <foreach collection="oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Update_By_Example_Where_Clause">
+    <where>
+      <foreach collection="example.oredCriteria" item="criteria" separator="or">
+        <if test="criteria.valid">
+          <trim prefix="(" prefixOverrides="and" suffix=")">
+            <foreach collection="criteria.criteria" item="criterion">
+              <choose>
+                <when test="criterion.noValue">
+                  and ${criterion.condition}
+                </when>
+                <when test="criterion.singleValue">
+                  and ${criterion.condition} #{criterion.value}
+                </when>
+                <when test="criterion.betweenValue">
+                  and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
+                </when>
+                <when test="criterion.listValue">
+                  and ${criterion.condition}
+                  <foreach close=")" collection="criterion.value" item="listItem" open="(" separator=",">
+                    #{listItem}
+                  </foreach>
+                </when>
+              </choose>
+            </foreach>
+          </trim>
+        </if>
+      </foreach>
+    </where>
+  </sql>
+  <sql id="Base_Column_List">
+    id, module, create_time, update_time, upload_author
+  </sql>
+  <sql id="Blob_Column_List">
+    context
+  </sql>
+  <select id="selectByExampleWithBLOBs" parameterType="com.sztzjy.digital_credit.entity.StuKnowSummaryExample" resultMap="ResultMapWithBLOBs">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from stu_know_summary
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByExample" parameterType="com.sztzjy.digital_credit.entity.StuKnowSummaryExample" resultMap="BaseResultMap">
+    select
+    <if test="distinct">
+      distinct
+    </if>
+    <include refid="Base_Column_List" />
+    from stu_know_summary
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+    <if test="orderByClause != null">
+      order by ${orderByClause}
+    </if>
+  </select>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="ResultMapWithBLOBs">
+    select 
+    <include refid="Base_Column_List" />
+    ,
+    <include refid="Blob_Column_List" />
+    from stu_know_summary
+    where id = #{id,jdbcType=INTEGER}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
+    delete from stu_know_summary
+    where id = #{id,jdbcType=INTEGER}
+  </delete>
+  <delete id="deleteByExample" parameterType="com.sztzjy.digital_credit.entity.StuKnowSummaryExample">
+    delete from stu_know_summary
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </delete>
+  <insert id="insert" parameterType="com.sztzjy.digital_credit.entity.StuKnowSummary">
+    insert into stu_know_summary (id, module, create_time, 
+      update_time, upload_author, context
+      )
+    values (#{id,jdbcType=INTEGER}, #{module,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, 
+      #{updateTime,jdbcType=TIMESTAMP}, #{uploadAuthor,jdbcType=VARCHAR}, #{context,jdbcType=LONGVARCHAR}
+      )
+  </insert>
+  <insert id="insertSelective" parameterType="com.sztzjy.digital_credit.entity.StuKnowSummary">
+    insert into stu_know_summary
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        id,
+      </if>
+      <if test="module != null">
+        module,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+      <if test="uploadAuthor != null">
+        upload_author,
+      </if>
+      <if test="context != null">
+        context,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=INTEGER},
+      </if>
+      <if test="module != null">
+        #{module,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="uploadAuthor != null">
+        #{uploadAuthor,jdbcType=VARCHAR},
+      </if>
+      <if test="context != null">
+        #{context,jdbcType=LONGVARCHAR},
+      </if>
+    </trim>
+  </insert>
+  <select id="countByExample" parameterType="com.sztzjy.digital_credit.entity.StuKnowSummaryExample" resultType="java.lang.Long">
+    select count(*) from stu_know_summary
+    <if test="_parameter != null">
+      <include refid="Example_Where_Clause" />
+    </if>
+  </select>
+  <update id="updateByExampleSelective" parameterType="map">
+    update stu_know_summary
+    <set>
+      <if test="record.id != null">
+        id = #{record.id,jdbcType=INTEGER},
+      </if>
+      <if test="record.module != null">
+        module = #{record.module,jdbcType=VARCHAR},
+      </if>
+      <if test="record.createTime != null">
+        create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.updateTime != null">
+        update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="record.uploadAuthor != null">
+        upload_author = #{record.uploadAuthor,jdbcType=VARCHAR},
+      </if>
+      <if test="record.context != null">
+        context = #{record.context,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExampleWithBLOBs" parameterType="map">
+    update stu_know_summary
+    set id = #{record.id,jdbcType=INTEGER},
+      module = #{record.module,jdbcType=VARCHAR},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      upload_author = #{record.uploadAuthor,jdbcType=VARCHAR},
+      context = #{record.context,jdbcType=LONGVARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByExample" parameterType="map">
+    update stu_know_summary
+    set id = #{record.id,jdbcType=INTEGER},
+      module = #{record.module,jdbcType=VARCHAR},
+      create_time = #{record.createTime,jdbcType=TIMESTAMP},
+      update_time = #{record.updateTime,jdbcType=TIMESTAMP},
+      upload_author = #{record.uploadAuthor,jdbcType=VARCHAR}
+    <if test="_parameter != null">
+      <include refid="Update_By_Example_Where_Clause" />
+    </if>
+  </update>
+  <update id="updateByPrimaryKeySelective" parameterType="com.sztzjy.digital_credit.entity.StuKnowSummary">
+    update stu_know_summary
+    <set>
+      <if test="module != null">
+        module = #{module,jdbcType=VARCHAR},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="uploadAuthor != null">
+        upload_author = #{uploadAuthor,jdbcType=VARCHAR},
+      </if>
+      <if test="context != null">
+        context = #{context,jdbcType=LONGVARCHAR},
+      </if>
+    </set>
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKeyWithBLOBs" parameterType="com.sztzjy.digital_credit.entity.StuKnowSummary">
+    update stu_know_summary
+    set module = #{module,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      upload_author = #{uploadAuthor,jdbcType=VARCHAR},
+      context = #{context,jdbcType=LONGVARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.sztzjy.digital_credit.entity.StuKnowSummary">
+    update stu_know_summary
+    set module = #{module,jdbcType=VARCHAR},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      upload_author = #{uploadAuthor,jdbcType=VARCHAR}
+    where id = #{id,jdbcType=INTEGER}
+  </update>
+</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mappers/StuScoreCenterMapper.xml b/src/main/resources/mappers/StuScoreCenterMapper.xml
index 1f67c73..20521ce 100644
--- a/src/main/resources/mappers/StuScoreCenterMapper.xml
+++ b/src/main/resources/mappers/StuScoreCenterMapper.xml
@@ -17,8 +17,6 @@
     <result column="training_score_two" jdbcType="DECIMAL" property="trainingScoreTwo" />
     <result column="training_score_three" jdbcType="DECIMAL" property="trainingScoreThree" />
     <result column="number_of_training" jdbcType="INTEGER" property="numberOfTraining" />
-    <result column="completion_time" jdbcType="TIMESTAMP" property="completionTime" />
-    <result column="class_name" jdbcType="VARCHAR" property="className" />
   </resultMap>
   <sql id="Example_Where_Clause">
     <where>
@@ -81,7 +79,7 @@
   <sql id="Base_Column_List">
     id, learning_projects, training_duration, training_total_score, score_weight, training_score, 
     class_ranking, completion_status, user_id, module, ascription, training_score_one, 
-    training_score_two, training_score_three, number_of_training, completion_time, class_name
+    training_score_two, training_score_three, number_of_training
   </sql>
   <select id="selectByExample" parameterType="com.sztzjy.digital_credit.entity.StuScoreCenterExample" resultMap="BaseResultMap">
     select
@@ -118,14 +116,14 @@
       training_total_score, score_weight, training_score, 
       class_ranking, completion_status, user_id, 
       module, ascription, training_score_one, 
-      training_score_two, training_score_three, number_of_training, 
-      completion_time, class_name)
+      training_score_two, training_score_three, number_of_training
+      )
     values (#{id,jdbcType=INTEGER}, #{learningProjects,jdbcType=VARCHAR}, #{trainingDuration,jdbcType=INTEGER}, 
       #{trainingTotalScore,jdbcType=DECIMAL}, #{scoreWeight,jdbcType=DECIMAL}, #{trainingScore,jdbcType=DECIMAL}, 
       #{classRanking,jdbcType=INTEGER}, #{completionStatus,jdbcType=VARCHAR}, #{userId,jdbcType=VARCHAR}, 
       #{module,jdbcType=VARCHAR}, #{ascription,jdbcType=VARCHAR}, #{trainingScoreOne,jdbcType=DECIMAL}, 
-      #{trainingScoreTwo,jdbcType=DECIMAL}, #{trainingScoreThree,jdbcType=DECIMAL}, #{numberOfTraining,jdbcType=INTEGER}, 
-      #{completionTime,jdbcType=TIMESTAMP}, #{className,jdbcType=VARCHAR})
+      #{trainingScoreTwo,jdbcType=DECIMAL}, #{trainingScoreThree,jdbcType=DECIMAL}, #{numberOfTraining,jdbcType=INTEGER}
+      )
   </insert>
   <insert id="insertSelective" parameterType="com.sztzjy.digital_credit.entity.StuScoreCenter">
     insert into stu_score_center
@@ -175,12 +173,6 @@
       <if test="numberOfTraining != null">
         number_of_training,
       </if>
-      <if test="completionTime != null">
-        completion_time,
-      </if>
-      <if test="className != null">
-        class_name,
-      </if>
     </trim>
     <trim prefix="values (" suffix=")" suffixOverrides=",">
       <if test="id != null">
@@ -228,12 +220,6 @@
       <if test="numberOfTraining != null">
         #{numberOfTraining,jdbcType=INTEGER},
       </if>
-      <if test="completionTime != null">
-        #{completionTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="className != null">
-        #{className,jdbcType=VARCHAR},
-      </if>
     </trim>
   </insert>
   <select id="countByExample" parameterType="com.sztzjy.digital_credit.entity.StuScoreCenterExample" resultType="java.lang.Long">
@@ -290,12 +276,6 @@
       <if test="record.numberOfTraining != null">
         number_of_training = #{record.numberOfTraining,jdbcType=INTEGER},
       </if>
-      <if test="record.completionTime != null">
-        completion_time = #{record.completionTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="record.className != null">
-        class_name = #{record.className,jdbcType=VARCHAR},
-      </if>
     </set>
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
@@ -317,9 +297,7 @@
       training_score_one = #{record.trainingScoreOne,jdbcType=DECIMAL},
       training_score_two = #{record.trainingScoreTwo,jdbcType=DECIMAL},
       training_score_three = #{record.trainingScoreThree,jdbcType=DECIMAL},
-      number_of_training = #{record.numberOfTraining,jdbcType=INTEGER},
-      completion_time = #{record.completionTime,jdbcType=TIMESTAMP},
-      class_name = #{record.className,jdbcType=VARCHAR}
+      number_of_training = #{record.numberOfTraining,jdbcType=INTEGER}
     <if test="_parameter != null">
       <include refid="Update_By_Example_Where_Clause" />
     </if>
@@ -369,12 +347,6 @@
       <if test="numberOfTraining != null">
         number_of_training = #{numberOfTraining,jdbcType=INTEGER},
       </if>
-      <if test="completionTime != null">
-        completion_time = #{completionTime,jdbcType=TIMESTAMP},
-      </if>
-      <if test="className != null">
-        class_name = #{className,jdbcType=VARCHAR},
-      </if>
     </set>
     where id = #{id,jdbcType=INTEGER}
   </update>
@@ -393,9 +365,7 @@
       training_score_one = #{trainingScoreOne,jdbcType=DECIMAL},
       training_score_two = #{trainingScoreTwo,jdbcType=DECIMAL},
       training_score_three = #{trainingScoreThree,jdbcType=DECIMAL},
-      number_of_training = #{numberOfTraining,jdbcType=INTEGER},
-      completion_time = #{completionTime,jdbcType=TIMESTAMP},
-      class_name = #{className,jdbcType=VARCHAR}
+      number_of_training = #{numberOfTraining,jdbcType=INTEGER}
     where id = #{id,jdbcType=INTEGER}
   </update>
 </mapper>
\ No newline at end of file