老师端接口及修改表结构

master
xiaoCJ 1 year ago
parent f47ba0998b
commit 82bc5b7226

@ -35,4 +35,13 @@ public class Constant {
public static final String NINE = "999";
public static final String TZBG = "投资报告";
public static final String FINISHED = "已完成";
public static final String UNFINISHED = "未完成";
public static final String XMGZFX = "项目评估分析";
public static final String YWJDJL = "业务尽调结论";
public static final String CWJDJL = "财务尽调结论";
public static final String XDGZJL = "相对估值结论";
public static final String JDGZJL = "绝对估值结论";
}

@ -1,5 +1,6 @@
package com.sztzjy.fund_investment.controller;
import com.sztzjy.fund_investment.annotation.AnonymousAccess;
import com.sztzjy.fund_investment.entity.Fundraising;
import com.sztzjy.fund_investment.mapper.FundraisingMapper;
import com.sztzjy.fund_investment.service.ISysFundraisingService;
@ -26,6 +27,7 @@ public class FundraisingController {
@Autowired
FundraisingMapper fundraisingMapper;
@AnonymousAccess
@GetMapping("getFundraising")
@ApiOperation("资金募资回显")
public ResultEntity getFundraising(@ApiParam("流程id") @RequestParam String flowId) {
@ -33,6 +35,7 @@ public class FundraisingController {
return new ResultEntity(HttpStatus.OK,"资金募资回显成功",fundraising);
}
@AnonymousAccess
@GetMapping("insertFundraising")
@ApiOperation("新增基金募资")
public ResultEntity insertFundraising(@ApiParam("流程id") @RequestParam String flowId,

@ -4,8 +4,10 @@ import cn.hutool.core.util.IdUtil;
import com.sztzjy.fund_investment.annotation.AnonymousAccess;
import com.sztzjy.fund_investment.config.Constant;
import com.sztzjy.fund_investment.entity.*;
import com.sztzjy.fund_investment.mapper.FlowMapper;
import com.sztzjy.fund_investment.mapper.PerformanceScoreMapper;
import com.sztzjy.fund_investment.mapper.TopicsMapper;
import com.sztzjy.fund_investment.mapper.UserTableMapper;
import com.sztzjy.fund_investment.service.TopicService;
import com.sztzjy.fund_investment.util.ResultEntity;
import io.swagger.annotations.Api;
@ -33,7 +35,10 @@ public class TopicController {
private TopicService topicService;
@Autowired
private PerformanceScoreMapper performanceScoreMapper;
@Autowired
private UserTableMapper userTableMapper;
@Autowired
private FlowMapper flowMapper;
/*
* @author xcj
@ -124,7 +129,7 @@ public class TopicController {
@AnonymousAccess
@GetMapping("/getVideoScore")
@ApiOperation("实务认知计算视频得分接口")
public ResultEntity<BigDecimal> getVideoScore(@ApiParam("观看视频时间,单位秒") @RequestParam Integer time,
public void getVideoScore(@ApiParam("观看视频时间,单位秒") @RequestParam Integer time,
@RequestParam String flowId,
@RequestParam String schoolId) {
@ -132,7 +137,7 @@ public class TopicController {
PerformanceScore performanceScore = new PerformanceScore();
//观看2分钟以上得满分5分否则不得分
BigDecimal score = BigDecimal.ZERO;
BigDecimal score;
if (time >= 120) {
score = BigDecimal.valueOf(5);
performanceScore.setPracticalCognitionScore(score);
@ -142,39 +147,48 @@ public class TopicController {
performanceScore.setId(IdUtil.simpleUUID());
performanceScore.setSchoolId(schoolId);
performanceScore.setFlowId(flowId);
FlowExample flowExample = new FlowExample();
flowExample.createCriteria().andFlowIdEqualTo(flowId);
List<Flow> flows = flowMapper.selectByExample(flowExample);
Flow flow = flows.get(0);
UserTable userTable = userTableMapper.selectByPrimaryKey(flow.getUserid());
performanceScore.setClassId(userTable.getClassId());
performanceScore.setPracticalCognitionTime(new Date());
// performanceScore.setFundraisingScore(BigDecimal.ZERO);
// performanceScore.setProjectSearchScore(BigDecimal.ZERO);
// performanceScore.setProjectSearchReportScore(BigDecimal.ZERO);
// performanceScore.setProjectDueDiligenceScore(BigDecimal.ZERO);
// performanceScore.setProjectValuationEstimationRiskScore(BigDecimal.ZERO);
// performanceScore.setProjectDueDiligenceBusinessReportScore(BigDecimal.ZERO);
// performanceScore.setProjectDueDiligenceFinanceReportScore(BigDecimal.ZERO);
// performanceScore.setProjectValuationRelativeScore(BigDecimal.ZERO);
// performanceScore.setProjectValuationScore(BigDecimal.ZERO);
// performanceScore.setProjectValuationAbsoluteScore(BigDecimal.ZERO);
// performanceScore.setProjectUseValuationAbsoluteScore(BigDecimal.ZERO);
// performanceScore.setProjectUseValuationRelativeScore(BigDecimal.ZERO);
// performanceScore.setInvestmentSigningVlauationReportScore(BigDecimal.ZERO);
// performanceScore.setInvestmentSigningDiligenceReportScore(BigDecimal.ZERO);
// performanceScore.setInvestmentSigningInvestScore(BigDecimal.ZERO);
// performanceScore.setInvestmentSigningScore(BigDecimal.ZERO);
// performanceScore.setIpoFlowScore(BigDecimal.ZERO);
// performanceScore.setIpoListedConditionScore(BigDecimal.ZERO);
// performanceScore.setNewPricingIssuanceScore(BigDecimal.ZERO);
// performanceScore.setPricingIssuanceConfirmScore(BigDecimal.ZERO);
// performanceScore.setInitPricingIssuanceScore(BigDecimal.ZERO);
// performanceScore.setPricingIssuanceEnteringScore(BigDecimal.ZERO);
// performanceScore.setProfitManagementMarketValueScore(BigDecimal.ZERO);
// performanceScore.setProfitManagementFundScore(BigDecimal.ZERO);
// performanceScore.setProfitManagementFundExitScore(BigDecimal.ZERO);
// performanceScore.setProfitManagementMarketValueExitScore(BigDecimal.ZERO);
// performanceScore.setProfitDistributionScore(BigDecimal.ZERO);
// performanceScore.setInvestmentReportScore(BigDecimal.ZERO);
// performanceScore.setExperienceScore(BigDecimal.ZERO);
// performanceScore.setTotalScore(BigDecimal.ZERO);
//防止后面算分有问题在第一个步骤初始化成0
performanceScore.setKnowledgeAssessmentScore(BigDecimal.ZERO);
performanceScore.setFundraisingScore(BigDecimal.ZERO);
performanceScore.setProjectSearchScore(BigDecimal.ZERO);
performanceScore.setProjectSearchReportScore(BigDecimal.ZERO);
performanceScore.setProjectDueDiligenceScore(BigDecimal.ZERO);
performanceScore.setProjectValuationEstimationRiskScore(BigDecimal.ZERO);
performanceScore.setProjectDueDiligenceBusinessReportScore(BigDecimal.ZERO);
performanceScore.setProjectDueDiligenceFinanceReportScore(BigDecimal.ZERO);
performanceScore.setProjectValuationRelativeScore(BigDecimal.ZERO);
performanceScore.setProjectValuationScore(BigDecimal.ZERO);
performanceScore.setProjectValuationAbsoluteScore(BigDecimal.ZERO);
performanceScore.setProjectUseValuationAbsoluteScore(BigDecimal.ZERO);
performanceScore.setProjectUseValuationRelativeScore(BigDecimal.ZERO);
performanceScore.setInvestmentSigningVlauationReportScore(BigDecimal.ZERO);
performanceScore.setInvestmentSigningDiligenceReportScore(BigDecimal.ZERO);
performanceScore.setInvestmentSigningInvestScore(BigDecimal.ZERO);
performanceScore.setInvestmentSigningScore(BigDecimal.ZERO);
performanceScore.setIpoFlowScore(BigDecimal.ZERO);
performanceScore.setIpoListedConditionScore(BigDecimal.ZERO);
performanceScore.setIpoListedSectorScore(BigDecimal.ZERO);
performanceScore.setNewPricingIssuanceScore(BigDecimal.ZERO);
performanceScore.setPricingIssuanceConfirmScore(BigDecimal.ZERO);
performanceScore.setInitPricingIssuanceScore(BigDecimal.ZERO);
performanceScore.setPricingIssuanceEnteringScore(BigDecimal.ZERO);
performanceScore.setProfitManagementMarketValueScore(BigDecimal.ZERO);
performanceScore.setProfitManagementFundScore(BigDecimal.ZERO);
performanceScore.setProfitManagementFundExitScore(BigDecimal.ZERO);
performanceScore.setProfitManagementMarketValueExitScore(BigDecimal.ZERO);
performanceScore.setProfitDistributionScore(BigDecimal.ZERO);
performanceScore.setInvestmentReportScore(BigDecimal.ZERO);
performanceScore.setExperienceScore(BigDecimal.ZERO);
performanceScore.setTotalScore(BigDecimal.ZERO);
performanceScoreMapper.insert(performanceScore);
return new ResultEntity<>(score);
}

@ -1,10 +1,18 @@
package com.sztzjy.fund_investment.controller.tea;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.pagehelper.PageInfo;
import com.sztzjy.fund_investment.annotation.AnonymousAccess;
import com.sztzjy.fund_investment.config.security.TokenProvider;
import com.sztzjy.fund_investment.entity.TeaClassScore;
import com.sztzjy.fund_investment.entity.dto.TeaClassScoreDto;
import com.sztzjy.fund_investment.entity.dto.UserDto;
import com.sztzjy.fund_investment.entity.TrainingReport;
import com.sztzjy.fund_investment.entity.UserTable;
import com.sztzjy.fund_investment.entity.UserTableExample;
import com.sztzjy.fund_investment.entity.dto.*;
import com.sztzjy.fund_investment.mapper.TrainingReportMapper;
import com.sztzjy.fund_investment.mapper.UserTableMapper;
import com.sztzjy.fund_investment.service.PerformanceScoreService;
import com.sztzjy.fund_investment.service.tea.ClassScoreService;
import com.sztzjy.fund_investment.util.ResultEntity;
import io.swagger.annotations.Api;
@ -13,14 +21,14 @@ import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Author xcj
@ -28,11 +36,18 @@ import java.util.List;
*/
@RestController
@RequestMapping("/tea/grade")
@Api(tags = "老师端--成绩管理/成绩详情")
@Api(tags = "老师端--成绩管理&成绩详情")
public class ClassScoreController {
@Autowired
private ClassScoreService classScoreService;
@Autowired
private TrainingReportMapper trainingReportMapper;
@Autowired
private PerformanceScoreService performanceScoreService;
@Autowired
private UserTableMapper userTableMapper;
@AnonymousAccess
@GetMapping("/getClassAVGScore")
@ -52,7 +67,7 @@ public class ClassScoreController {
@AnonymousAccess
@GetMapping("/getStudentScoreDetails")
@ApiOperation("成绩详情/成绩详情查询 展示") //只显示已提交报告的学生数据
@ApiOperation("成绩管理/成绩管理页面查询/展示")
public ResultEntity<PageInfo<UserDto>> getStudentScoreDetails(@RequestParam Integer index,
@RequestParam Integer size,
@RequestParam String schoolId,
@ -75,4 +90,93 @@ public class ClassScoreController {
return classScoreService.autoScore(schoolId);
}
@AnonymousAccess
@GetMapping("/getPerformanceScoreDto")
@ApiOperation("成绩详情/实训进度页面/展示")
public ResultEntity<PerformanceScoreDto> getPerformanceScoreDto(@ApiParam("页面返回的得分ID") @RequestParam String performanceScoreId) {
return new ResultEntity<>(classScoreService.getPerformanceScoreDto(performanceScoreId));
}
@AnonymousAccess
@GetMapping("/getStuTrainingScore")
@ApiOperation("成绩详情/实训成绩/展示")
public ResultEntity<PerformanceTrainingScoreDto> getStuTrainingScore(@ApiParam("页面返回的得分ID") @RequestParam String performanceScoreId) {
return new ResultEntity<>(classScoreService.getStuTrainingScore(performanceScoreId));
}
@AnonymousAccess
@GetMapping("/getReportStringByFlowId")
@ApiOperation("成绩详情/实训成绩/五个文本框展示")
public ResultEntity<FoundProjectDto> getReportStringByFlowId(@RequestParam String flowId) {
return new ResultEntity<>(classScoreService.getReportStringByFlowId(flowId));
}
@AnonymousAccess
@PostMapping("/updateScoreByFlowId")
@ApiOperation("成绩详情/实训成绩/五个文本框修改分数")
public ResultEntity<String> updateScoreByFlowId(@RequestParam String flowId,
@ApiParam("传Map的json字符串,例:{\"业务尽调结论\": 1,\"财务尽调结论\": 2}") @RequestParam String json) {
Map<String, Integer> map;
try {
ObjectMapper objectMapper = new ObjectMapper();
map = objectMapper.readValue(json, new TypeReference<Map<String, Integer>>() {
});
} catch (Exception e) {
throw new ClassCastException("类型转换错误");
}
return classScoreService.updateScoreByFlowId(flowId, map);
}
@AnonymousAccess
@PostMapping("/getExperience")
@ApiOperation("成绩详情/实训心得/页面展示")
public ResultEntity<TrainingReport> getExperience(@RequestParam String reportId) {
return new ResultEntity<TrainingReport>(trainingReportMapper.selectByPrimaryKey(reportId));
}
@AnonymousAccess
@GetMapping("/downloadReport")
@ApiOperation("成绩详情/实训心得/报告下载")
public void downloadReport(@RequestParam String reportId, String TOKEN, HttpServletResponse response) {
TokenProvider.getJWTUser(TOKEN);
classScoreService.downloadReport(reportId, response);
}
@AnonymousAccess
@PostMapping("/updateExperienceScore")
@ApiOperation("成绩详情/实训心得/修改心得或报告分数")
public void updateScoreByFlowId(@RequestParam String reportId,
@RequestParam Integer score,
@ApiParam("0为心得,1为报告") @RequestParam Integer type) {
TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(reportId);
if (type == 0) {
trainingReport.setExperienceScore(BigDecimal.valueOf(score));
performanceScoreService.calculateScoreByModule("experienceScore", score, trainingReport.getFlowId());
}
if (type == 1) {
trainingReport.setReportScore(BigDecimal.valueOf(score));
performanceScoreService.calculateScoreByModule("investmentReportScore", score, trainingReport.getFlowId());
}
trainingReportMapper.updateByPrimaryKey(trainingReport);
}
@AnonymousAccess
@GetMapping("/getClassNameBySchoolId")
@ApiOperation("成绩管理&互动答疑/班级下拉框")
public ResultEntity<List<String>> getClassNameBySchoolId(@RequestParam String schoolId) {
UserTableExample userTableExample = new UserTableExample();
userTableExample.createCriteria().andSchoolIdEqualTo(schoolId);
List<UserTable> userTables = userTableMapper.selectByExample(userTableExample);
List<String> list = new ArrayList<>();
for (UserTable userTable : userTables) {
list.add(userTable.getClassName());
}
return new ResultEntity<List<String>>(list);
}
}

@ -0,0 +1,110 @@
package com.sztzjy.fund_investment.controller.tea;
import com.github.pagehelper.PageInfo;
import com.sztzjy.fund_investment.annotation.AnonymousAccess;
import com.sztzjy.fund_investment.entity.QuestionAnswerWithBLOBs;
import com.sztzjy.fund_investment.entity.TopicsWithBLOBs;
import com.sztzjy.fund_investment.entity.dto.QuestionAnswerDto;
import com.sztzjy.fund_investment.mapper.QuestionAnswerMapper;
import com.sztzjy.fund_investment.mapper.TopicsMapper;
import com.sztzjy.fund_investment.service.tea.TeaTopicManageService;
import com.sztzjy.fund_investment.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.*;
/**
* @Author xcj
* @Date 2023/12/1
*/
@RequestMapping("/tea/topics")
@RestController
@Api(tags = "老师端--试题管理&互动答疑")
public class TeaTopicManageController {
@Autowired
private TeaTopicManageService teaTopicManageService;
@Autowired
private TopicsMapper topicsMapper;
@Autowired
private QuestionAnswerMapper questionAnswerMapper;
@AnonymousAccess
@GetMapping("/insertTopics")
@ApiOperation("试题管理/新增试题")
public ResultEntity<String> insertTopics(@ApiParam("topicId给字符串uuid,analysis,userAnswer,选项CDE允许为空,其他必填source固定为【自增】module值同导入功能模块")
@RequestBody TopicsWithBLOBs topics) {
return teaTopicManageService.insertTopics(topics);
}
@AnonymousAccess
@GetMapping("/getTopicsBySchoolId")
@ApiOperation("试题管理/页面搜索展示")
public ResultEntity<PageInfo<TopicsWithBLOBs>> getTopicsBySchoolId(@RequestParam Integer index,
@RequestParam Integer size,
@RequestParam String schoolId,
@ApiParam("module值同导入功能模块") @RequestParam String module,
@ApiParam("搜索框/题干") @RequestParam(required = false) String topicContent) {
return new ResultEntity<PageInfo<TopicsWithBLOBs>>(teaTopicManageService.getTopicsBySchoolId(index, size, schoolId, module, topicContent));
}
@AnonymousAccess
@GetMapping("/getByTopicId")
@ApiOperation("试题管理/查看单条数据")
public ResultEntity<TopicsWithBLOBs> getByTopicId(@RequestParam String topicId) {
return new ResultEntity<TopicsWithBLOBs>(topicsMapper.selectByPrimaryKey(topicId));
}
@AnonymousAccess
@DeleteMapping("/deleteByTopicId")
@ApiOperation("试题管理/删除单个试题(只能删除自主新增试题)")
public ResultEntity<String> deleteByTopicId(@RequestParam String topicId) {
TopicsWithBLOBs topicsWithBLOBs = topicsMapper.selectByPrimaryKey(topicId);
if (topicsWithBLOBs.getSource().equals("内置")) {
return new ResultEntity(HttpStatus.OK, "内置试题不支持删除!");
}
topicsMapper.deleteByPrimaryKey(topicId);
return new ResultEntity(HttpStatus.OK, "删除成功!");
}
@AnonymousAccess
@GetMapping("/getQuestionAnswer")
@ApiOperation("互动答疑/展示搜索")
public ResultEntity<PageInfo<QuestionAnswerDto>> getQuestionAnswer(@RequestParam Integer index,
@RequestParam Integer size,
@RequestParam String schoolId,
@ApiParam("班级下拉框") @RequestParam(required = false) String className,
@ApiParam("姓名/学号") @RequestParam(required = false) String keyWord) {
return new ResultEntity<>(teaTopicManageService.getQuestionAnswer(index, size, schoolId, className, keyWord));
}
@AnonymousAccess
@GetMapping("/recover")
@ApiOperation("互动答疑/回复问题")
public ResultEntity<String> deleteByTopicId(@ApiParam("展示接口中的id字段") @RequestParam String questionId,
@ApiParam("回复内容") String content) {
QuestionAnswerWithBLOBs questionAnswerWithBLOBs = questionAnswerMapper.selectByPrimaryKey(questionId);
if (questionAnswerWithBLOBs == null) {
return new ResultEntity(HttpStatus.INTERNAL_SERVER_ERROR, "数据不存在!");
}
questionAnswerWithBLOBs.setReplyContent(content);
questionAnswerMapper.updateByPrimaryKey(questionAnswerWithBLOBs);
return new ResultEntity(HttpStatus.OK, "回复成功!");
}
@AnonymousAccess
@GetMapping("/getQuestionById")
@ApiOperation("互动答疑/回复问题")
public ResultEntity<QuestionAnswerWithBLOBs> getQuestionById(@ApiParam("展示接口中的id字段") @RequestParam String questionId) {
return new ResultEntity<QuestionAnswerWithBLOBs>(questionAnswerMapper.selectByPrimaryKey(questionId));
}
}

@ -0,0 +1,135 @@
package com.sztzjy.fund_investment.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
/**
*
* @author xcj
* found_project
*/
public class FoundProjectDto {
@ApiModelProperty("流程id")
private String flowId;
@ApiModelProperty("寻找项目结论")
private String foundProjectConclusion;
@ApiModelProperty("业务尽调结论")
private String serviceDueDiligence;
@ApiModelProperty("财务尽调结论")
private String financialDueDiligence;
@ApiModelProperty("项目相对估值结论")
private String projectValuationRelative;
@ApiModelProperty("项目绝对估值结论")
private String projectValuationAbsolute;
@ApiModelProperty("寻找项目结论得分")
private BigDecimal foundProjectConclusionScore;
@ApiModelProperty("业务尽调结论得分")
private BigDecimal serviceDueDiligenceScore;
@ApiModelProperty("财务尽调结论得分")
private BigDecimal financialDueDiligenceScore;
@ApiModelProperty("项目相对估值结论得分")
private BigDecimal projectValuationRelativeScore;
@ApiModelProperty("项目绝对估值结论得分")
private BigDecimal projectValuationAbsoluteScore;
public String getFlowId() {
return flowId;
}
public void setFlowId(String flowId) {
this.flowId = flowId;
}
public String getFoundProjectConclusion() {
return foundProjectConclusion;
}
public void setFoundProjectConclusion(String foundProjectConclusion) {
this.foundProjectConclusion = foundProjectConclusion;
}
public String getServiceDueDiligence() {
return serviceDueDiligence;
}
public void setServiceDueDiligence(String serviceDueDiligence) {
this.serviceDueDiligence = serviceDueDiligence;
}
public String getFinancialDueDiligence() {
return financialDueDiligence;
}
public void setFinancialDueDiligence(String financialDueDiligence) {
this.financialDueDiligence = financialDueDiligence;
}
public String getProjectValuationRelative() {
return projectValuationRelative;
}
public void setProjectValuationRelative(String projectValuationRelative) {
this.projectValuationRelative = projectValuationRelative;
}
public String getProjectValuationAbsolute() {
return projectValuationAbsolute;
}
public void setProjectValuationAbsolute(String projectValuationAbsolute) {
this.projectValuationAbsolute = projectValuationAbsolute;
}
public BigDecimal getFoundProjectConclusionScore() {
return foundProjectConclusionScore;
}
public void setFoundProjectConclusionScore(BigDecimal foundProjectConclusionScore) {
this.foundProjectConclusionScore = foundProjectConclusionScore;
}
public BigDecimal getServiceDueDiligenceScore() {
return serviceDueDiligenceScore;
}
public void setServiceDueDiligenceScore(BigDecimal serviceDueDiligenceScore) {
this.serviceDueDiligenceScore = serviceDueDiligenceScore;
}
public BigDecimal getFinancialDueDiligenceScore() {
return financialDueDiligenceScore;
}
public void setFinancialDueDiligenceScore(BigDecimal financialDueDiligenceScore) {
this.financialDueDiligenceScore = financialDueDiligenceScore;
}
public BigDecimal getProjectValuationRelativeScore() {
return projectValuationRelativeScore;
}
public void setProjectValuationRelativeScore(BigDecimal projectValuationRelativeScore) {
this.projectValuationRelativeScore = projectValuationRelativeScore;
}
public BigDecimal getProjectValuationAbsoluteScore() {
return projectValuationAbsoluteScore;
}
public void setProjectValuationAbsoluteScore(BigDecimal projectValuationAbsoluteScore) {
this.projectValuationAbsoluteScore = projectValuationAbsoluteScore;
}
}

@ -0,0 +1,322 @@
package com.sztzjy.fund_investment.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author xcj
* performance_score
*/
public class PerformanceScoreDto {
@ApiModelProperty("表ID")
private String id;
@ApiModelProperty("流程ID")
private String flowId;
@ApiModelProperty("实务认知学习进度")
private String practicalCognitionSchedule;
@ApiModelProperty("知识测评进度")
private String knowledgeAssessmentSchedule;
@ApiModelProperty("基金募资进度")
private String fundraisingSchedule;
@ApiModelProperty("寻找项目进度")
private String projectSearchSchedule;
@ApiModelProperty("项目尽调进度")
private String projectDueDiligenceSchedule;
@ApiModelProperty("项目估值进度")
private String projectValuationSchedule;
@ApiModelProperty("签约投资进度")
private String investmentSigningSchedule;
@ApiModelProperty("IPO申请进度")
private String ipoSchedule;
@ApiModelProperty("询价发行进度")
private String pricingIssuanceSchedule;
@ApiModelProperty("收益管理进度")
private String profitManagementSchedule;
@ApiModelProperty("收益分配进度")
private String profitDistributionSchedule;
@ApiModelProperty("投资报告进度")
private String investmentReportSchedule;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("实务认知完成时间")
private Date practicalCognitionTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("知识测评完成时间")
private Date knowledgeAssessmentTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("基金募资完成时间")
private Date fundraisingTime;
@ApiModelProperty("寻找项目完成时间")
private Date projectSearchTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("项目尽调完成时间")
private Date projectDueDiligenceTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("项目估值完成时间")
private Date projectValuationTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("签约投资完成时间")
private Date investmentSigningTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("ipo页面完成时间")
private Date ipoTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("询价发行完成时间")
private Date pricingIssuanceTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("收益管理完成时间")
private Date profitManagementTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("收益分配完成时间")
private Date profitDistributionTime;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("投资报告页面完成时间")
private Date investmentReportTime;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getFlowId() {
return flowId;
}
public void setFlowId(String flowId) {
this.flowId = flowId;
}
public String getPracticalCognitionSchedule() {
return practicalCognitionSchedule;
}
public void setPracticalCognitionSchedule(String practicalCognitionSchedule) {
this.practicalCognitionSchedule = practicalCognitionSchedule;
}
public String getKnowledgeAssessmentSchedule() {
return knowledgeAssessmentSchedule;
}
public void setKnowledgeAssessmentSchedule(String knowledgeAssessmentSchedule) {
this.knowledgeAssessmentSchedule = knowledgeAssessmentSchedule;
}
public String getFundraisingSchedule() {
return fundraisingSchedule;
}
public void setFundraisingSchedule(String fundraisingSchedule) {
this.fundraisingSchedule = fundraisingSchedule;
}
public String getProjectSearchSchedule() {
return projectSearchSchedule;
}
public void setProjectSearchSchedule(String projectSearchSchedule) {
this.projectSearchSchedule = projectSearchSchedule;
}
public String getProjectDueDiligenceSchedule() {
return projectDueDiligenceSchedule;
}
public void setProjectDueDiligenceSchedule(String projectDueDiligenceSchedule) {
this.projectDueDiligenceSchedule = projectDueDiligenceSchedule;
}
public String getProjectValuationSchedule() {
return projectValuationSchedule;
}
public void setProjectValuationSchedule(String projectValuationSchedule) {
this.projectValuationSchedule = projectValuationSchedule;
}
public String getInvestmentSigningSchedule() {
return investmentSigningSchedule;
}
public void setInvestmentSigningSchedule(String investmentSigningSchedule) {
this.investmentSigningSchedule = investmentSigningSchedule;
}
public String getIpoSchedule() {
return ipoSchedule;
}
public void setIpoSchedule(String ipoSchedule) {
this.ipoSchedule = ipoSchedule;
}
public String getPricingIssuanceSchedule() {
return pricingIssuanceSchedule;
}
public void setPricingIssuanceSchedule(String pricingIssuanceSchedule) {
this.pricingIssuanceSchedule = pricingIssuanceSchedule;
}
public String getProfitManagementSchedule() {
return profitManagementSchedule;
}
public void setProfitManagementSchedule(String profitManagementSchedule) {
this.profitManagementSchedule = profitManagementSchedule;
}
public String getProfitDistributionSchedule() {
return profitDistributionSchedule;
}
public void setProfitDistributionSchedule(String profitDistributionSchedule) {
this.profitDistributionSchedule = profitDistributionSchedule;
}
public String getInvestmentReportSchedule() {
return investmentReportSchedule;
}
public void setInvestmentReportSchedule(String investmentReportSchedule) {
this.investmentReportSchedule = investmentReportSchedule;
}
public Date getPracticalCognitionTime() {
return practicalCognitionTime;
}
public void setPracticalCognitionTime(Date practicalCognitionTime) {
this.practicalCognitionTime = practicalCognitionTime;
}
public Date getKnowledgeAssessmentTime() {
return knowledgeAssessmentTime;
}
public void setKnowledgeAssessmentTime(Date knowledgeAssessmentTime) {
this.knowledgeAssessmentTime = knowledgeAssessmentTime;
}
public Date getFundraisingTime() {
return fundraisingTime;
}
public void setFundraisingTime(Date fundraisingTime) {
this.fundraisingTime = fundraisingTime;
}
public Date getProjectSearchTime() {
return projectSearchTime;
}
public void setProjectSearchTime(Date projectSearchTime) {
this.projectSearchTime = projectSearchTime;
}
public Date getProjectDueDiligenceTime() {
return projectDueDiligenceTime;
}
public void setProjectDueDiligenceTime(Date projectDueDiligenceTime) {
this.projectDueDiligenceTime = projectDueDiligenceTime;
}
public Date getProjectValuationTime() {
return projectValuationTime;
}
public void setProjectValuationTime(Date projectValuationTime) {
this.projectValuationTime = projectValuationTime;
}
public Date getInvestmentSigningTime() {
return investmentSigningTime;
}
public void setInvestmentSigningTime(Date investmentSigningTime) {
this.investmentSigningTime = investmentSigningTime;
}
public Date getIpoTime() {
return ipoTime;
}
public void setIpoTime(Date ipoTime) {
this.ipoTime = ipoTime;
}
public Date getPricingIssuanceTime() {
return pricingIssuanceTime;
}
public void setPricingIssuanceTime(Date pricingIssuanceTime) {
this.pricingIssuanceTime = pricingIssuanceTime;
}
public Date getProfitManagementTime() {
return profitManagementTime;
}
public void setProfitManagementTime(Date profitManagementTime) {
this.profitManagementTime = profitManagementTime;
}
public Date getProfitDistributionTime() {
return profitDistributionTime;
}
public void setProfitDistributionTime(Date profitDistributionTime) {
this.profitDistributionTime = profitDistributionTime;
}
public Date getInvestmentReportTime() {
return investmentReportTime;
}
public void setInvestmentReportTime(Date investmentReportTime) {
this.investmentReportTime = investmentReportTime;
}
}

@ -0,0 +1,169 @@
package com.sztzjy.fund_investment.entity.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author xcj
* performance_score
*/
public class PerformanceTrainingScoreDto {
@ApiModelProperty("流程ID")
private String flowId;
@ApiModelProperty("实务认知学习分数")
private BigDecimal practicalCognitionScore;
@ApiModelProperty("知识测评分数")
private BigDecimal knowledgeAssessmentScore;
@ApiModelProperty("基金募资分数")
private BigDecimal fundraisingScore;
@ApiModelProperty("寻找项目分数")
private BigDecimal projectSearchScore;
@ApiModelProperty("项目尽调分数")
private BigDecimal projectDueDiligenceScore;
@ApiModelProperty("项目估值分数")
private BigDecimal projectValuationScore;
@ApiModelProperty("签约投资分数")
private BigDecimal investmentSigningScore;
@ApiModelProperty("IPO申请分数")
private BigDecimal ipoScore;
@ApiModelProperty("询价发行分数")
private BigDecimal pricingIssuanceScore;
@ApiModelProperty("收益管理分数")
private BigDecimal profitManagementScore;
@ApiModelProperty("收益分配分数")
private BigDecimal profitDistributionScore;
@ApiModelProperty("投资报告分数")
private BigDecimal investmentReportScore;
@ApiModelProperty("总成绩")
private BigDecimal totalScore;
public BigDecimal getTotalScore() {
return totalScore;
}
public void setTotalScore(BigDecimal totalScore) {
this.totalScore = totalScore;
}
public String getFlowId() {
return flowId;
}
public void setFlowId(String flowId) {
this.flowId = flowId;
}
public BigDecimal getPracticalCognitionScore() {
return practicalCognitionScore;
}
public void setPracticalCognitionScore(BigDecimal practicalCognitionScore) {
this.practicalCognitionScore = practicalCognitionScore;
}
public BigDecimal getKnowledgeAssessmentScore() {
return knowledgeAssessmentScore;
}
public void setKnowledgeAssessmentScore(BigDecimal knowledgeAssessmentScore) {
this.knowledgeAssessmentScore = knowledgeAssessmentScore;
}
public BigDecimal getFundraisingScore() {
return fundraisingScore;
}
public void setFundraisingScore(BigDecimal fundraisingScore) {
this.fundraisingScore = fundraisingScore;
}
public BigDecimal getProjectSearchScore() {
return projectSearchScore;
}
public void setProjectSearchScore(BigDecimal projectSearchScore) {
this.projectSearchScore = projectSearchScore;
}
public BigDecimal getProjectDueDiligenceScore() {
return projectDueDiligenceScore;
}
public void setProjectDueDiligenceScore(BigDecimal projectDueDiligenceScore) {
this.projectDueDiligenceScore = projectDueDiligenceScore;
}
public BigDecimal getProjectValuationScore() {
return projectValuationScore;
}
public void setProjectValuationScore(BigDecimal projectValuationScore) {
this.projectValuationScore = projectValuationScore;
}
public BigDecimal getInvestmentSigningScore() {
return investmentSigningScore;
}
public void setInvestmentSigningScore(BigDecimal investmentSigningScore) {
this.investmentSigningScore = investmentSigningScore;
}
public BigDecimal getIpoScore() {
return ipoScore;
}
public void setIpoScore(BigDecimal ipoScore) {
this.ipoScore = ipoScore;
}
public BigDecimal getPricingIssuanceScore() {
return pricingIssuanceScore;
}
public void setPricingIssuanceScore(BigDecimal pricingIssuanceScore) {
this.pricingIssuanceScore = pricingIssuanceScore;
}
public BigDecimal getProfitManagementScore() {
return profitManagementScore;
}
public void setProfitManagementScore(BigDecimal profitManagementScore) {
this.profitManagementScore = profitManagementScore;
}
public BigDecimal getProfitDistributionScore() {
return profitDistributionScore;
}
public void setProfitDistributionScore(BigDecimal profitDistributionScore) {
this.profitDistributionScore = profitDistributionScore;
}
public BigDecimal getInvestmentReportScore() {
return investmentReportScore;
}
public void setInvestmentReportScore(BigDecimal investmentReportScore) {
this.investmentReportScore = investmentReportScore;
}
}

@ -0,0 +1,40 @@
package com.sztzjy.fund_investment.entity.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author xcj
* @Date 2023/12/1
*/
@Data
public class QuestionAnswerDto {
@ApiModelProperty("表ID")
private String id;
@ApiModelProperty("流程ID")
private String flowId;
@ApiModelProperty("学校ID")
private String schoolid;
@ApiModelProperty("提问时间")
private Date questionTime;
@ApiModelProperty("提问内容")
private String questionContent;
@ApiModelProperty("回复内容")
private String replyContent;
@ApiModelProperty("姓名")
private String name;
@ApiModelProperty("学号")
private String studentId;
@ApiModelProperty("班级名称")
private String className;
}

@ -13,6 +13,9 @@ import java.math.BigDecimal;
public class UserDto {
private String userid;
@ApiModelProperty("用户得分ID")
private String performanceScoreId;
@ApiModelProperty("流程ID")
private String flowId;
@ -40,6 +43,6 @@ public class UserDto {
@ApiModelProperty("报告名称")
private String reportName;
@ApiModelProperty("报告url")
private String url;
@ApiModelProperty("报告ID")
private String reportId;
}

@ -31,9 +31,9 @@ public class PerformanceScoreServiceImpl implements PerformanceScoreService {
List<PerformanceScore> performanceScores = performanceScoreMapper.selectByExample(performanceScoreExample);
PerformanceScore performanceScore = performanceScores.get(0);
// BigDecimal scoreOld =(BigDecimal) performanceScore.get(methodName);
// BigDecimal addScore = scoreOld.add(BigDecimal.valueOf(score));
BigDecimal scoreOld =(BigDecimal) performanceScore.get(methodName);
performanceScore.set(methodName, BigDecimal.valueOf(score));
performanceScore.setTotalScore(performanceScore.getTotalScore().add(BigDecimal.valueOf(score).subtract(scoreOld)));
performanceScoreMapper.updateByPrimaryKey(performanceScore);
}

@ -2,19 +2,22 @@ package com.sztzjy.fund_investment.service.serviceImpl.tea;
import cn.hutool.core.util.IdUtil;
import com.github.pagehelper.PageInfo;
import com.sztzjy.fund_investment.config.Constant;
import com.sztzjy.fund_investment.entity.*;
import com.sztzjy.fund_investment.entity.dto.TeaClassScoreDto;
import com.sztzjy.fund_investment.entity.dto.UserDto;
import com.sztzjy.fund_investment.entity.dto.*;
import com.sztzjy.fund_investment.mapper.*;
import com.sztzjy.fund_investment.service.PerformanceScoreService;
import com.sztzjy.fund_investment.service.tea.ClassScoreService;
import com.sztzjy.fund_investment.util.PageUtil;
import com.sztzjy.fund_investment.util.ResultEntity;
import com.sztzjy.fund_investment.util.excel.FilePortUtil;
import com.sztzjy.fund_investment.util.file.IFileUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.util.Assert;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
@ -43,6 +46,8 @@ public class ClassScoreServiceImpl implements ClassScoreService {
private PerformanceScoreService performanceScoreService;
@Autowired
private TrainingReportMapper trainingReportMapper;
@Autowired
private IFileUtil fileUtil;
/*
@ -121,11 +126,12 @@ public class ClassScoreServiceImpl implements ClassScoreService {
UserTableExample userTableExample = new UserTableExample();
UserTableExample.Criteria criteria = userTableExample.createCriteria();
UserTableExample.Criteria orCriteria = userTableExample.createCriteria();
criteria.andSchoolIdEqualTo(schoolId);
if (!classId.isEmpty()) {
if (StringUtils.isNotBlank(classId)) {
criteria.andClassIdEqualTo(classId);
}else {
criteria.andSchoolIdEqualTo(schoolId);
}
if (!studentIdOrName.isEmpty()) {
if (StringUtils.isNotBlank(studentIdOrName)) {
criteria.andNameEqualTo(studentIdOrName);
orCriteria.andStudentIdEqualTo(studentIdOrName);
}
@ -138,31 +144,25 @@ public class ClassScoreServiceImpl implements ClassScoreService {
Flow flow = flowMapper.selectByPrimaryKey(userTable.getUserid());
String flowId = flow.getFlowId();
TrainingReportExample trainingReportExample = new TrainingReportExample();
trainingReportExample.createCriteria().andFlowIdEqualTo(flowId).andSchoolIdEqualTo(schoolId);
trainingReportExample.createCriteria().andFlowIdEqualTo(flowId); //todo 查询时看需不需要加上模块
List<TrainingReport> trainingReports = reportMapper.selectByExample(trainingReportExample);
//老师端只展示提交了报告的有得分的数据,先筛选再封装
if (trainingReports.isEmpty()) {
continue;
}
PerformanceScoreExample performanceScoreExample = new PerformanceScoreExample();
performanceScoreExample.createCriteria().andFlowIdEqualTo(flowId).andSchoolIdEqualTo(schoolId);
performanceScoreExample.createCriteria().andFlowIdEqualTo(flowId);
List<PerformanceScore> performanceScores = performanceScoreMapper.selectByExample(performanceScoreExample);
if (performanceScores.isEmpty()) {
continue;
}
if (!performanceScores.isEmpty()) {
PerformanceScore performanceScore = performanceScores.get(0);
if (performanceScore.getInvestmentReportScore() == null || performanceScore.getInvestmentReportScore().compareTo(BigDecimal.ZERO) == 0) {
continue;
}
if (!trainingReports.isEmpty()) {
for (TrainingReport trainingReport : trainingReports) {
userDto.setUrl(trainingReport.getUrl());
userDto.setReportId(trainingReport.getId());
userDto.setReportName(trainingReport.getReportName());
}
userDto.setFlowId(flowId);
userDto.setScore(performanceScore.getTotalScore());
userDto.setPerformanceScoreId(performanceScore.getId());
userDtoList.add(userDto);
}
}
}
if (userDtoList.size() <= 0) {
return null;
}
@ -200,7 +200,6 @@ public class ClassScoreServiceImpl implements ClassScoreService {
}
PerformanceScore performanceScore = performanceScores.get(0);
for (TrainingReport trainingReport : trainingReports) {
userDto.setUrl(trainingReport.getUrl());
userDto.setReportName(trainingReport.getReportName());
}
userDto.setFlowId(flowId);
@ -311,7 +310,7 @@ public class ClassScoreServiceImpl implements ClassScoreService {
}
//实验报告,未上传 0 分 上传得两分
if (!(url.isEmpty())&&!(reportName.isEmpty())){
if (!(url.isEmpty()) && !(reportName.isEmpty())) {
performanceScoreService.calculateScoreByModule("investmentReportScore", 2, flowId);//todo 需要修改
trainingReport.setReportScore(BigDecimal.valueOf(2));
}
@ -323,6 +322,213 @@ public class ClassScoreServiceImpl implements ClassScoreService {
return new ResultEntity<>(HttpStatus.NOT_FOUND);
}
/*
* @author xcj
* @Date 2023/11/29
*/
@Override
public PerformanceScoreDto getPerformanceScoreDto(String performanceScoreId) {
PerformanceScore performanceScore = performanceScoreMapper.selectByPrimaryKey(performanceScoreId);
PerformanceScoreDto performanceScoreDto = new PerformanceScoreDto();
//实务认知
if (performanceScore.getPracticalCognitionTime() != null) {
performanceScoreDto.setPracticalCognitionSchedule(Constant.FINISHED);
performanceScoreDto.setPracticalCognitionTime(performanceScore.getPracticalCognitionTime());
} else {
performanceScoreDto.setPracticalCognitionSchedule(Constant.UNFINISHED);
}
//知识测评
if (performanceScore.getKnowledgeAssessmentTime() != null) {
performanceScoreDto.setKnowledgeAssessmentSchedule(Constant.FINISHED);
performanceScoreDto.setKnowledgeAssessmentTime(performanceScore.getKnowledgeAssessmentTime());
} else {
performanceScoreDto.setKnowledgeAssessmentSchedule(Constant.UNFINISHED);
}
//基金募资
if (performanceScore.getFundraisingTime() != null) {
performanceScoreDto.setFundraisingSchedule(Constant.FINISHED);
performanceScoreDto.setFundraisingTime(performanceScore.getFundraisingTime());
} else {
performanceScoreDto.setFundraisingSchedule(Constant.UNFINISHED);
}
//寻找项目
if (performanceScore.getProjectSearchTime() != null) {
performanceScoreDto.setProjectSearchSchedule(Constant.FINISHED);
performanceScoreDto.setProjectSearchTime(performanceScore.getProjectSearchTime());
} else {
performanceScoreDto.setProjectSearchSchedule(Constant.UNFINISHED);
}
//项目尽调
if (performanceScore.getProjectDueDiligenceTime() != null) {
performanceScoreDto.setProjectDueDiligenceSchedule(Constant.FINISHED);
performanceScoreDto.setProjectDueDiligenceTime(performanceScore.getProjectDueDiligenceTime());
} else {
performanceScoreDto.setProjectDueDiligenceSchedule(Constant.UNFINISHED);
}
//项目估值
if (performanceScore.getProjectValuationTime() != null) {
performanceScoreDto.setProjectValuationSchedule(Constant.FINISHED);
performanceScoreDto.setProjectValuationTime(performanceScore.getProjectValuationTime());
} else {
performanceScoreDto.setProjectValuationSchedule(Constant.UNFINISHED);
}
//签约投资
if (performanceScore.getInvestmentSigningTime() != null) {
performanceScoreDto.setInvestmentSigningSchedule(Constant.FINISHED);
performanceScoreDto.setInvestmentSigningTime(performanceScore.getInvestmentSigningTime());
} else {
performanceScoreDto.setInvestmentSigningSchedule(Constant.UNFINISHED);
}
//IPO申请
if (performanceScore.getIpoTime() != null) {
performanceScoreDto.setIpoSchedule(Constant.FINISHED);
performanceScoreDto.setIpoTime(performanceScore.getIpoTime());
} else {
performanceScoreDto.setIpoSchedule(Constant.UNFINISHED);
}
//询价发行
if (performanceScore.getPricingIssuanceTime() != null) {
performanceScoreDto.setPricingIssuanceSchedule(Constant.FINISHED);
performanceScoreDto.setPricingIssuanceTime(performanceScore.getPricingIssuanceTime());
} else {
performanceScoreDto.setPricingIssuanceSchedule(Constant.UNFINISHED);
}
//收益管理
if (performanceScore.getProfitManagementTime() != null) {
performanceScoreDto.setProfitManagementSchedule(Constant.FINISHED);
performanceScoreDto.setProfitManagementTime(performanceScore.getProfitManagementTime());
} else {
performanceScoreDto.setProfitManagementSchedule(Constant.UNFINISHED);
}
//收益分配
if (performanceScore.getProfitDistributionTime() != null) {
performanceScoreDto.setProfitDistributionSchedule(Constant.FINISHED);
performanceScoreDto.setProfitDistributionTime(performanceScore.getProfitDistributionTime());
} else {
performanceScoreDto.setProfitDistributionSchedule(Constant.UNFINISHED);
}
//投资报告
if (performanceScore.getInvestmentReportTime() != null) {
performanceScoreDto.setInvestmentReportSchedule(Constant.FINISHED);
performanceScoreDto.setInvestmentReportTime(performanceScore.getInvestmentReportTime());
} else {
performanceScoreDto.setInvestmentReportSchedule(Constant.UNFINISHED);
}
return performanceScoreDto;
}
/*
* @author xcj
* @Date 2023/11/29
*/
@Override
public PerformanceTrainingScoreDto getStuTrainingScore(String performanceScoreId) {
PerformanceScore performanceScore = performanceScoreMapper.selectByPrimaryKey(performanceScoreId);
PerformanceTrainingScoreDto performanceTrainingScoreDto = new PerformanceTrainingScoreDto();
performanceTrainingScoreDto.setFlowId(performanceScore.getFlowId());
performanceTrainingScoreDto.setPracticalCognitionScore(performanceScore.getPracticalCognitionScore());
performanceTrainingScoreDto.setKnowledgeAssessmentScore(performanceScore.getKnowledgeAssessmentScore());
performanceTrainingScoreDto.setFundraisingScore(performanceScore.getFundraisingScore());
performanceTrainingScoreDto.setProjectSearchScore(performanceScore.getProjectSearchScore().add(performanceScore.getProjectSearchReportScore()));
performanceTrainingScoreDto.setProjectDueDiligenceScore(performanceScore.getProjectDueDiligenceScore()
.add(performanceScore.getProjectDueDiligenceFinanceReportScore()
.add(performanceScore.getProjectDueDiligenceBusinessReportScore()
.add(performanceScore.getProjectValuationEstimationRiskScore()))));
performanceTrainingScoreDto.setProjectValuationScore(performanceScore.getProjectValuationRelativeScore()
.add(performanceScore.getProjectValuationScore()
.add(performanceScore.getProjectValuationAbsoluteScore()
.add(performanceScore.getProjectUseValuationAbsoluteScore()
.add(performanceScore.getProjectUseValuationRelativeScore())))));
performanceTrainingScoreDto.setInvestmentSigningScore(performanceScore.getInvestmentSigningVlauationReportScore()
.add(performanceScore.getInvestmentSigningDiligenceReportScore()
.add(performanceScore.getInvestmentSigningInvestScore()
.add(performanceScore.getInvestmentSigningScore()))));
performanceTrainingScoreDto.setIpoScore(performanceScore.getIpoFlowScore().add(performanceScore.getIpoListedConditionScore()
.add(performanceScore.getIpoListedSectorScore())));
performanceTrainingScoreDto.setPricingIssuanceScore(performanceScore.getNewPricingIssuanceScore()
.add(performanceScore.getPricingIssuanceConfirmScore().add(performanceScore.getInitPricingIssuanceScore()
.add(performanceScore.getPricingIssuanceEnteringScore()))));
performanceTrainingScoreDto.setProfitManagementScore(performanceScore.getProfitManagementMarketValueScore()
.add(performanceScore.getProfitManagementFundScore()
.add(performanceScore.getProfitManagementFundExitScore()
.add(performanceScore.getProfitManagementMarketValueExitScore()))));
performanceTrainingScoreDto.setProfitDistributionScore(performanceScore.getProfitDistributionScore());
performanceTrainingScoreDto.setInvestmentReportScore(performanceScore.getInvestmentReportScore().add(performanceScore.getExperienceScore()));
performanceTrainingScoreDto.setTotalScore(performanceScore.getTotalScore());
return performanceTrainingScoreDto;
}
/*
* @author xcj
* @Date 2023/11/30
*/
@Override
public FoundProjectDto getReportStringByFlowId(String flowId) {
FoundProject foundProject = foundProjectMapper.selectByPrimaryKey(flowId);
FoundProjectDto dto = new FoundProjectDto();
BeanUtils.copyProperties(foundProject, dto);
PerformanceScoreExample example = new PerformanceScoreExample();
example.createCriteria().andFlowIdEqualTo(flowId);
List<PerformanceScore> performanceScores = performanceScoreMapper.selectByExample(example);
PerformanceScore performanceScore = performanceScores.get(0);
dto.setFoundProjectConclusionScore(performanceScore.getProjectSearchReportScore());
dto.setServiceDueDiligenceScore(performanceScore.getProjectDueDiligenceBusinessReportScore());
dto.setFinancialDueDiligenceScore(performanceScore.getProjectDueDiligenceFinanceReportScore());
dto.setProjectValuationRelativeScore(performanceScore.getProjectValuationRelativeScore());
dto.setProjectValuationAbsoluteScore(performanceScore.getProjectValuationAbsoluteScore());
return dto;
}
/*
* @author xcj
* @Date 2023/11/30
*/
@Override
public ResultEntity<String> updateScoreByFlowId(String flowId, Map<String, Integer> map) {
for (Map.Entry<String, Integer> entry : map.entrySet()) {
String key = entry.getKey();
Integer score = entry.getValue();
try {
if (key.equals(Constant.XMGZFX)) { //寻找项目/评估结论得分
performanceScoreService.calculateScoreByModule("projectSearchReportScore", score, flowId);
}
if (key.equals(Constant.YWJDJL)) { //项目尽调/业务尽调结论得分
performanceScoreService.calculateScoreByModule("projectDueDiligenceBusinessReportScore", score, flowId);
}
if (key.equals(Constant.CWJDJL)) { //项目尽调/财务尽调结论得分
performanceScoreService.calculateScoreByModule("projectDueDiligenceFinanceReportScore", score, flowId);
}
if (key.equals(Constant.XDGZJL)) { //项目估值/相对估值结论得分
performanceScoreService.calculateScoreByModule("projectValuationRelativeScore", score, flowId);
}
if (key.equals(Constant.JDGZJL)) { //项目估值/绝对估值结论得分
performanceScoreService.calculateScoreByModule("projectValuationAbsoluteScore", score, flowId);
}
} catch (Exception e) {
return new ResultEntity<>(HttpStatus.INTERNAL_SERVER_ERROR, "评分失败!");
}
}
return new ResultEntity<>(HttpStatus.OK, "评分成功!");
}
/*
* @author xcj
* @Date 2023/12/1
*/
@Override
public void downloadReport(String reportId, HttpServletResponse response) {
TrainingReport trainingReport = trainingReportMapper.selectByPrimaryKey(reportId);
Assert.isTrue(trainingReport != null && trainingReport.getUrl() != null, "报告不存在");
fileUtil.download(response, trainingReport.getReportName(), trainingReport.getUrl());
}
/*
* @author xcj

@ -0,0 +1,120 @@
package com.sztzjy.fund_investment.service.serviceImpl.tea;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sztzjy.fund_investment.entity.*;
import com.sztzjy.fund_investment.entity.dto.QuestionAnswerDto;
import com.sztzjy.fund_investment.mapper.FlowMapper;
import com.sztzjy.fund_investment.mapper.QuestionAnswerMapper;
import com.sztzjy.fund_investment.mapper.TopicsMapper;
import com.sztzjy.fund_investment.mapper.UserTableMapper;
import com.sztzjy.fund_investment.service.tea.TeaTopicManageService;
import com.sztzjy.fund_investment.util.PageUtil;
import com.sztzjy.fund_investment.util.ResultEntity;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
* @Author xcj
* @Date 2023/12/1
*/
@Service
public class TeaTopicManageServiceImpl implements TeaTopicManageService {
@Autowired
private TopicsMapper topicsMapper;
@Autowired
private QuestionAnswerMapper questionAnswerMapper;
@Autowired
private UserTableMapper userTableMapper;
@Autowired
private FlowMapper flowMapper;
@Override
public ResultEntity<String> insertTopics(TopicsWithBLOBs topics) {
if (StringUtils.isNotBlank(topics.getTopicContent())) {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "题干不能为空!");
}
if (StringUtils.isNotBlank(topics.getChoicesa()) || StringUtils.isNotBlank(topics.getChoicesb())) {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "选项不能为空!");
}
if (StringUtils.isNotBlank(topics.getTopicType())) {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "题型不能为空!");
}
if (StringUtils.isNotBlank(topics.getAnswer())) {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "答案不能为空!");
}
if (topics.getScore() == null || topics.getScore() == 0) {
return new ResultEntity<>(HttpStatus.BAD_REQUEST, "分值不能为空!");
}
topicsMapper.insert(topics);
return new ResultEntity<>(HttpStatus.OK, "新增成功!");
}
/* /
* @author xcj
* @Date 2023/12/1
*/
@Override
public PageInfo<TopicsWithBLOBs> getTopicsBySchoolId(Integer index, Integer size, String schoolId, String module, String topicContent) {
PageHelper.startPage(index, size);
TopicsExample topicsExample = new TopicsExample();
TopicsExample.Criteria criteria = topicsExample.createCriteria();
criteria.andSchoolIdEqualTo(schoolId).andModuleEqualTo(module);
if (!("").equals(topicContent) && topicContent != null) {
topicContent = "%" + topicContent + "%";
criteria.andTopicIdEqualTo(topicContent);
}
List<TopicsWithBLOBs> topicsWithBLOBs = topicsMapper.selectByExampleWithBLOBs(topicsExample);
return new PageInfo<>(topicsWithBLOBs);
}
/**
* @author xcj
* @Date 2023/12/1
*/
@Override
public PageInfo<QuestionAnswerDto> getQuestionAnswer(Integer index, Integer size, String schoolId, String className, String keyWord) {
QuestionAnswerExample questionAnswerExample = new QuestionAnswerExample();
questionAnswerExample.createCriteria().andSchoolidEqualTo(schoolId);
List<QuestionAnswer> questionAnswers = questionAnswerMapper.selectByExample(questionAnswerExample);
UserTableExample userTableExample = new UserTableExample();
UserTableExample.Criteria criteria = userTableExample.createCriteria();
UserTableExample.Criteria or = userTableExample.createCriteria();
criteria.andSchoolIdEqualTo(schoolId);
if (StringUtils.isNotBlank(className)){
criteria.andClassNameEqualTo(className);
}
if (StringUtils.isNotBlank(keyWord)){
criteria.andStudentIdEqualTo(keyWord);
or.andNameEqualTo(keyWord);
}
userTableExample.or(or);
List<UserTable> userTables = userTableMapper.selectByExample(userTableExample);
List<QuestionAnswerDto> list = new ArrayList<>();
for (UserTable userTable : userTables) {
Flow flow = flowMapper.selectByPrimaryKey(userTable.getUserid());
String flowId = flow.getFlowId();
for (QuestionAnswer questionAnswer : questionAnswers) {
if (questionAnswer.getFlowId().equals(flowId)) {
QuestionAnswerDto questionAnswerDto = new QuestionAnswerDto();
BeanUtils.copyProperties(userTable, questionAnswerDto);
BeanUtils.copyProperties(questionAnswer, questionAnswerDto);
list.add(questionAnswerDto);
}
}
}
PageInfo pageInfo = PageUtil.pageHelper(list, index, size);
return pageInfo;
}
}

@ -2,14 +2,15 @@ package com.sztzjy.fund_investment.service.tea;
import com.github.pagehelper.PageInfo;
import com.sztzjy.fund_investment.entity.TeaClassScore;
import com.sztzjy.fund_investment.entity.dto.TeaClassScoreDto;
import com.sztzjy.fund_investment.entity.dto.UserDto;
import com.sztzjy.fund_investment.entity.dto.*;
import com.sztzjy.fund_investment.util.ResultEntity;
import io.swagger.models.auth.In;
import org.springframework.http.HttpStatus;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Author xcj
@ -26,4 +27,14 @@ public interface ClassScoreService {
ResultEntity<HttpStatus> autoScore(String schoolId);
PerformanceScoreDto getPerformanceScoreDto(String flowId);
PerformanceTrainingScoreDto getStuTrainingScore(String performanceScoreId);
FoundProjectDto getReportStringByFlowId(String flowId);
ResultEntity<String> updateScoreByFlowId(String flowId, Map<String, Integer>map);
void downloadReport(String reportId, HttpServletResponse response);
}

@ -0,0 +1,19 @@
package com.sztzjy.fund_investment.service.tea;
import com.github.pagehelper.PageInfo;
import com.sztzjy.fund_investment.entity.TopicsWithBLOBs;
import com.sztzjy.fund_investment.entity.dto.QuestionAnswerDto;
import com.sztzjy.fund_investment.util.ResultEntity;
/**
* @Author xcj
* @Date 2023/12/1
*/
public interface TeaTopicManageService {
ResultEntity<String> insertTopics(TopicsWithBLOBs topics);
PageInfo<TopicsWithBLOBs> getTopicsBySchoolId(Integer index, Integer size,String schoolId, String module,String topicContent);
PageInfo<QuestionAnswerDto> getQuestionAnswer(Integer index, Integer size,String schoolId, String className, String keyWord);
}

@ -7,6 +7,8 @@
<result column="found_project_conclusion" jdbcType="VARCHAR" property="foundProjectConclusion" />
<result column="service_due_diligence" jdbcType="VARCHAR" property="serviceDueDiligence" />
<result column="financial_due_diligence" jdbcType="VARCHAR" property="financialDueDiligence" />
<result column="project_valuation_relative" jdbcType="VARCHAR" property="projectValuationRelative" />
<result column="project_valuation_absolute" jdbcType="VARCHAR" property="projectValuationAbsolute" />
</resultMap>
<sql id="Example_Where_Clause">
<where>
@ -67,7 +69,8 @@
</where>
</sql>
<sql id="Base_Column_List">
flow_id, project_pool_id, found_project_conclusion, service_due_diligence, financial_due_diligence
flow_id, project_pool_id, found_project_conclusion, service_due_diligence, financial_due_diligence,
project_valuation_relative, project_valuation_absolute
</sql>
<select id="selectByExample" parameterType="com.sztzjy.fund_investment.entity.FoundProjectExample" resultMap="BaseResultMap">
select
@ -101,10 +104,12 @@
</delete>
<insert id="insert" parameterType="com.sztzjy.fund_investment.entity.FoundProject">
insert into found_project (flow_id, project_pool_id, found_project_conclusion,
service_due_diligence, financial_due_diligence
service_due_diligence, financial_due_diligence,
project_valuation_relative, project_valuation_absolute
)
values (#{flowId,jdbcType=VARCHAR}, #{projectPoolId,jdbcType=VARCHAR}, #{foundProjectConclusion,jdbcType=VARCHAR},
#{serviceDueDiligence,jdbcType=VARCHAR}, #{financialDueDiligence,jdbcType=VARCHAR}
#{serviceDueDiligence,jdbcType=VARCHAR}, #{financialDueDiligence,jdbcType=VARCHAR},
#{projectValuationRelative,jdbcType=VARCHAR}, #{projectValuationAbsolute,jdbcType=VARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.fund_investment.entity.FoundProject">
@ -125,6 +130,12 @@
<if test="financialDueDiligence != null">
financial_due_diligence,
</if>
<if test="projectValuationRelative != null">
project_valuation_relative,
</if>
<if test="projectValuationAbsolute != null">
project_valuation_absolute,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="flowId != null">
@ -142,6 +153,12 @@
<if test="financialDueDiligence != null">
#{financialDueDiligence,jdbcType=VARCHAR},
</if>
<if test="projectValuationRelative != null">
#{projectValuationRelative,jdbcType=VARCHAR},
</if>
<if test="projectValuationAbsolute != null">
#{projectValuationAbsolute,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.sztzjy.fund_investment.entity.FoundProjectExample" resultType="java.lang.Long">
@ -168,6 +185,12 @@
<if test="record.financialDueDiligence != null">
financial_due_diligence = #{record.financialDueDiligence,jdbcType=VARCHAR},
</if>
<if test="record.projectValuationRelative != null">
project_valuation_relative = #{record.projectValuationRelative,jdbcType=VARCHAR},
</if>
<if test="record.projectValuationAbsolute != null">
project_valuation_absolute = #{record.projectValuationAbsolute,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
@ -179,7 +202,9 @@
project_pool_id = #{record.projectPoolId,jdbcType=VARCHAR},
found_project_conclusion = #{record.foundProjectConclusion,jdbcType=VARCHAR},
service_due_diligence = #{record.serviceDueDiligence,jdbcType=VARCHAR},
financial_due_diligence = #{record.financialDueDiligence,jdbcType=VARCHAR}
financial_due_diligence = #{record.financialDueDiligence,jdbcType=VARCHAR},
project_valuation_relative = #{record.projectValuationRelative,jdbcType=VARCHAR},
project_valuation_absolute = #{record.projectValuationAbsolute,jdbcType=VARCHAR}
<if test="_parameter != null">
<include refid="Update_By_Example_Where_Clause" />
</if>
@ -199,6 +224,12 @@
<if test="financialDueDiligence != null">
financial_due_diligence = #{financialDueDiligence,jdbcType=VARCHAR},
</if>
<if test="projectValuationRelative != null">
project_valuation_relative = #{projectValuationRelative,jdbcType=VARCHAR},
</if>
<if test="projectValuationAbsolute != null">
project_valuation_absolute = #{projectValuationAbsolute,jdbcType=VARCHAR},
</if>
</set>
where flow_id = #{flowId,jdbcType=VARCHAR}
</update>
@ -207,7 +238,9 @@
set project_pool_id = #{projectPoolId,jdbcType=VARCHAR},
found_project_conclusion = #{foundProjectConclusion,jdbcType=VARCHAR},
service_due_diligence = #{serviceDueDiligence,jdbcType=VARCHAR},
financial_due_diligence = #{financialDueDiligence,jdbcType=VARCHAR}
financial_due_diligence = #{financialDueDiligence,jdbcType=VARCHAR},
project_valuation_relative = #{projectValuationRelative,jdbcType=VARCHAR},
project_valuation_absolute = #{projectValuationAbsolute,jdbcType=VARCHAR}
where flow_id = #{flowId,jdbcType=VARCHAR}
</update>
</mapper>
Loading…
Cancel
Save