题库表和答题记录表新增选项字段

master
xiaoCJ 1 year ago
parent 8e18b9679d
commit 2d7aff5221

@ -0,0 +1,49 @@
package com.sztzjy.fund_investment.controller.tea;
import com.sztzjy.fund_investment.annotation.AnonymousAccess;
import com.sztzjy.fund_investment.entity.TeaClassScore;
import com.sztzjy.fund_investment.entity.dto.TeaClassScoreDto;
import com.sztzjy.fund_investment.service.tea.ClassScoreService;
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.format.annotation.DateTimeFormat;
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 javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
/**
* @Author xcj
* @Date 2023/11/24
*/
@RestController
@RequestMapping
@Api(tags = "老师端--成绩管理")
public class ClassScoreController {
@Autowired
private ClassScoreService classScoreService;
@ApiOperation("班级平均成绩折线图")
@AnonymousAccess
@GetMapping("/getClassAVGScore")
public ResultEntity<List<TeaClassScore>> getClassAVGScore(@RequestParam String schoolId) {
return new ResultEntity<>(classScoreService.getClassAVGScore(schoolId));
}
@ApiOperation("班级成绩统计分析饼状图")
@AnonymousAccess
@GetMapping("/getClassScoreCount")
public ResultEntity<TeaClassScoreDto> getClassAVGScore(@ApiParam("班级框为空时传") @RequestParam(required = false) String schoolId,
@ApiParam("班级框不为空时传") @RequestParam(required = false) String classId,
@ApiParam("年月日格式/yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") @RequestParam Date time) {
return new ResultEntity<>(classScoreService.getClassScoreCount(schoolId, classId, time));
}
}

@ -176,213 +176,573 @@ public class TeaClassScoreExample {
return (Criteria) this;
}
public Criteria andFlowIdIsNull() {
addCriterion("flow_id is null");
public Criteria andSchoolIdIsNull() {
addCriterion("school_id is null");
return (Criteria) this;
}
public Criteria andFlowIdIsNotNull() {
addCriterion("flow_id is not null");
public Criteria andSchoolIdIsNotNull() {
addCriterion("school_id is not null");
return (Criteria) this;
}
public Criteria andFlowIdEqualTo(String value) {
addCriterion("flow_id =", value, "flowId");
public Criteria andSchoolIdEqualTo(String value) {
addCriterion("school_id =", value, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdNotEqualTo(String value) {
addCriterion("flow_id <>", value, "flowId");
public Criteria andSchoolIdNotEqualTo(String value) {
addCriterion("school_id <>", value, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdGreaterThan(String value) {
addCriterion("flow_id >", value, "flowId");
public Criteria andSchoolIdGreaterThan(String value) {
addCriterion("school_id >", value, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdGreaterThanOrEqualTo(String value) {
addCriterion("flow_id >=", value, "flowId");
public Criteria andSchoolIdGreaterThanOrEqualTo(String value) {
addCriterion("school_id >=", value, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdLessThan(String value) {
addCriterion("flow_id <", value, "flowId");
public Criteria andSchoolIdLessThan(String value) {
addCriterion("school_id <", value, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdLessThanOrEqualTo(String value) {
addCriterion("flow_id <=", value, "flowId");
public Criteria andSchoolIdLessThanOrEqualTo(String value) {
addCriterion("school_id <=", value, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdLike(String value) {
addCriterion("flow_id like", value, "flowId");
public Criteria andSchoolIdLike(String value) {
addCriterion("school_id like", value, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdNotLike(String value) {
addCriterion("flow_id not like", value, "flowId");
public Criteria andSchoolIdNotLike(String value) {
addCriterion("school_id not like", value, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdIn(List<String> values) {
addCriterion("flow_id in", values, "flowId");
public Criteria andSchoolIdIn(List<String> values) {
addCriterion("school_id in", values, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdNotIn(List<String> values) {
addCriterion("flow_id not in", values, "flowId");
public Criteria andSchoolIdNotIn(List<String> values) {
addCriterion("school_id not in", values, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdBetween(String value1, String value2) {
addCriterion("flow_id between", value1, value2, "flowId");
public Criteria andSchoolIdBetween(String value1, String value2) {
addCriterion("school_id between", value1, value2, "schoolId");
return (Criteria) this;
}
public Criteria andFlowIdNotBetween(String value1, String value2) {
addCriterion("flow_id not between", value1, value2, "flowId");
public Criteria andSchoolIdNotBetween(String value1, String value2) {
addCriterion("school_id not between", value1, value2, "schoolId");
return (Criteria) this;
}
public Criteria andScoreIdIsNull() {
addCriterion("score_id is null");
public Criteria andClassIdIsNull() {
addCriterion("class_id is null");
return (Criteria) this;
}
public Criteria andScoreIdIsNotNull() {
addCriterion("score_id is not null");
public Criteria andClassIdIsNotNull() {
addCriterion("class_id is not null");
return (Criteria) this;
}
public Criteria andScoreIdEqualTo(String value) {
addCriterion("score_id =", value, "scoreId");
public Criteria andClassIdEqualTo(String value) {
addCriterion("class_id =", value, "classId");
return (Criteria) this;
}
public Criteria andScoreIdNotEqualTo(String value) {
addCriterion("score_id <>", value, "scoreId");
public Criteria andClassIdNotEqualTo(String value) {
addCriterion("class_id <>", value, "classId");
return (Criteria) this;
}
public Criteria andScoreIdGreaterThan(String value) {
addCriterion("score_id >", value, "scoreId");
public Criteria andClassIdGreaterThan(String value) {
addCriterion("class_id >", value, "classId");
return (Criteria) this;
}
public Criteria andScoreIdGreaterThanOrEqualTo(String value) {
addCriterion("score_id >=", value, "scoreId");
public Criteria andClassIdGreaterThanOrEqualTo(String value) {
addCriterion("class_id >=", value, "classId");
return (Criteria) this;
}
public Criteria andScoreIdLessThan(String value) {
addCriterion("score_id <", value, "scoreId");
public Criteria andClassIdLessThan(String value) {
addCriterion("class_id <", value, "classId");
return (Criteria) this;
}
public Criteria andScoreIdLessThanOrEqualTo(String value) {
addCriterion("score_id <=", value, "scoreId");
public Criteria andClassIdLessThanOrEqualTo(String value) {
addCriterion("class_id <=", value, "classId");
return (Criteria) this;
}
public Criteria andScoreIdLike(String value) {
addCriterion("score_id like", value, "scoreId");
public Criteria andClassIdLike(String value) {
addCriterion("class_id like", value, "classId");
return (Criteria) this;
}
public Criteria andScoreIdNotLike(String value) {
addCriterion("score_id not like", value, "scoreId");
public Criteria andClassIdNotLike(String value) {
addCriterion("class_id not like", value, "classId");
return (Criteria) this;
}
public Criteria andScoreIdIn(List<String> values) {
addCriterion("score_id in", values, "scoreId");
public Criteria andClassIdIn(List<String> values) {
addCriterion("class_id in", values, "classId");
return (Criteria) this;
}
public Criteria andScoreIdNotIn(List<String> values) {
addCriterion("score_id not in", values, "scoreId");
public Criteria andClassIdNotIn(List<String> values) {
addCriterion("class_id not in", values, "classId");
return (Criteria) this;
}
public Criteria andScoreIdBetween(String value1, String value2) {
addCriterion("score_id between", value1, value2, "scoreId");
public Criteria andClassIdBetween(String value1, String value2) {
addCriterion("class_id between", value1, value2, "classId");
return (Criteria) this;
}
public Criteria andScoreIdNotBetween(String value1, String value2) {
addCriterion("score_id not between", value1, value2, "scoreId");
public Criteria andClassIdNotBetween(String value1, String value2) {
addCriterion("class_id not between", value1, value2, "classId");
return (Criteria) this;
}
public Criteria andClassIdIsNull() {
addCriterion("class_id is null");
public Criteria andClassNameIsNull() {
addCriterion("class_name is null");
return (Criteria) this;
}
public Criteria andClassIdIsNotNull() {
addCriterion("class_id is not null");
public Criteria andClassNameIsNotNull() {
addCriterion("class_name is not null");
return (Criteria) this;
}
public Criteria andClassIdEqualTo(String value) {
addCriterion("class_id =", value, "classId");
public Criteria andClassNameEqualTo(String value) {
addCriterion("class_name =", value, "className");
return (Criteria) this;
}
public Criteria andClassIdNotEqualTo(String value) {
addCriterion("class_id <>", value, "classId");
public Criteria andClassNameNotEqualTo(String value) {
addCriterion("class_name <>", value, "className");
return (Criteria) this;
}
public Criteria andClassIdGreaterThan(String value) {
addCriterion("class_id >", value, "classId");
public Criteria andClassNameGreaterThan(String value) {
addCriterion("class_name >", value, "className");
return (Criteria) this;
}
public Criteria andClassIdGreaterThanOrEqualTo(String value) {
addCriterion("class_id >=", value, "classId");
public Criteria andClassNameGreaterThanOrEqualTo(String value) {
addCriterion("class_name >=", value, "className");
return (Criteria) this;
}
public Criteria andClassIdLessThan(String value) {
addCriterion("class_id <", value, "classId");
public Criteria andClassNameLessThan(String value) {
addCriterion("class_name <", value, "className");
return (Criteria) this;
}
public Criteria andClassIdLessThanOrEqualTo(String value) {
addCriterion("class_id <=", value, "classId");
public Criteria andClassNameLessThanOrEqualTo(String value) {
addCriterion("class_name <=", value, "className");
return (Criteria) this;
}
public Criteria andClassIdLike(String value) {
addCriterion("class_id like", value, "classId");
public Criteria andClassNameLike(String value) {
addCriterion("class_name like", value, "className");
return (Criteria) this;
}
public Criteria andClassIdNotLike(String value) {
addCriterion("class_id not like", value, "classId");
public Criteria andClassNameNotLike(String value) {
addCriterion("class_name not like", value, "className");
return (Criteria) this;
}
public Criteria andClassIdIn(List<String> values) {
addCriterion("class_id in", values, "classId");
public Criteria andClassNameIn(List<String> values) {
addCriterion("class_name in", values, "className");
return (Criteria) this;
}
public Criteria andClassIdNotIn(List<String> values) {
addCriterion("class_id not in", values, "classId");
public Criteria andClassNameNotIn(List<String> values) {
addCriterion("class_name not in", values, "className");
return (Criteria) this;
}
public Criteria andClassIdBetween(String value1, String value2) {
addCriterion("class_id between", value1, value2, "classId");
public Criteria andClassNameBetween(String value1, String value2) {
addCriterion("class_name between", value1, value2, "className");
return (Criteria) this;
}
public Criteria andClassIdNotBetween(String value1, String value2) {
addCriterion("class_id not between", value1, value2, "classId");
public Criteria andClassNameNotBetween(String value1, String value2) {
addCriterion("class_name not between", value1, value2, "className");
return (Criteria) this;
}
public Criteria andExcellentCountIsNull() {
addCriterion("excellent_count is null");
return (Criteria) this;
}
public Criteria andExcellentCountIsNotNull() {
addCriterion("excellent_count is not null");
return (Criteria) this;
}
public Criteria andExcellentCountEqualTo(Integer value) {
addCriterion("excellent_count =", value, "excellentCount");
return (Criteria) this;
}
public Criteria andExcellentCountNotEqualTo(Integer value) {
addCriterion("excellent_count <>", value, "excellentCount");
return (Criteria) this;
}
public Criteria andExcellentCountGreaterThan(Integer value) {
addCriterion("excellent_count >", value, "excellentCount");
return (Criteria) this;
}
public Criteria andExcellentCountGreaterThanOrEqualTo(Integer value) {
addCriterion("excellent_count >=", value, "excellentCount");
return (Criteria) this;
}
public Criteria andExcellentCountLessThan(Integer value) {
addCriterion("excellent_count <", value, "excellentCount");
return (Criteria) this;
}
public Criteria andExcellentCountLessThanOrEqualTo(Integer value) {
addCriterion("excellent_count <=", value, "excellentCount");
return (Criteria) this;
}
public Criteria andExcellentCountIn(List<Integer> values) {
addCriterion("excellent_count in", values, "excellentCount");
return (Criteria) this;
}
public Criteria andExcellentCountNotIn(List<Integer> values) {
addCriterion("excellent_count not in", values, "excellentCount");
return (Criteria) this;
}
public Criteria andExcellentCountBetween(Integer value1, Integer value2) {
addCriterion("excellent_count between", value1, value2, "excellentCount");
return (Criteria) this;
}
public Criteria andExcellentCountNotBetween(Integer value1, Integer value2) {
addCriterion("excellent_count not between", value1, value2, "excellentCount");
return (Criteria) this;
}
public Criteria andGoodCountIsNull() {
addCriterion("good_count is null");
return (Criteria) this;
}
public Criteria andGoodCountIsNotNull() {
addCriterion("good_count is not null");
return (Criteria) this;
}
public Criteria andGoodCountEqualTo(Integer value) {
addCriterion("good_count =", value, "goodCount");
return (Criteria) this;
}
public Criteria andGoodCountNotEqualTo(Integer value) {
addCriterion("good_count <>", value, "goodCount");
return (Criteria) this;
}
public Criteria andGoodCountGreaterThan(Integer value) {
addCriterion("good_count >", value, "goodCount");
return (Criteria) this;
}
public Criteria andGoodCountGreaterThanOrEqualTo(Integer value) {
addCriterion("good_count >=", value, "goodCount");
return (Criteria) this;
}
public Criteria andGoodCountLessThan(Integer value) {
addCriterion("good_count <", value, "goodCount");
return (Criteria) this;
}
public Criteria andGoodCountLessThanOrEqualTo(Integer value) {
addCriterion("good_count <=", value, "goodCount");
return (Criteria) this;
}
public Criteria andGoodCountIn(List<Integer> values) {
addCriterion("good_count in", values, "goodCount");
return (Criteria) this;
}
public Criteria andGoodCountNotIn(List<Integer> values) {
addCriterion("good_count not in", values, "goodCount");
return (Criteria) this;
}
public Criteria andGoodCountBetween(Integer value1, Integer value2) {
addCriterion("good_count between", value1, value2, "goodCount");
return (Criteria) this;
}
public Criteria andGoodCountNotBetween(Integer value1, Integer value2) {
addCriterion("good_count not between", value1, value2, "goodCount");
return (Criteria) this;
}
public Criteria andGeneralCountIsNull() {
addCriterion("general_count is null");
return (Criteria) this;
}
public Criteria andGeneralCountIsNotNull() {
addCriterion("general_count is not null");
return (Criteria) this;
}
public Criteria andGeneralCountEqualTo(Integer value) {
addCriterion("general_count =", value, "generalCount");
return (Criteria) this;
}
public Criteria andGeneralCountNotEqualTo(Integer value) {
addCriterion("general_count <>", value, "generalCount");
return (Criteria) this;
}
public Criteria andGeneralCountGreaterThan(Integer value) {
addCriterion("general_count >", value, "generalCount");
return (Criteria) this;
}
public Criteria andGeneralCountGreaterThanOrEqualTo(Integer value) {
addCriterion("general_count >=", value, "generalCount");
return (Criteria) this;
}
public Criteria andGeneralCountLessThan(Integer value) {
addCriterion("general_count <", value, "generalCount");
return (Criteria) this;
}
public Criteria andGeneralCountLessThanOrEqualTo(Integer value) {
addCriterion("general_count <=", value, "generalCount");
return (Criteria) this;
}
public Criteria andGeneralCountIn(List<Integer> values) {
addCriterion("general_count in", values, "generalCount");
return (Criteria) this;
}
public Criteria andGeneralCountNotIn(List<Integer> values) {
addCriterion("general_count not in", values, "generalCount");
return (Criteria) this;
}
public Criteria andGeneralCountBetween(Integer value1, Integer value2) {
addCriterion("general_count between", value1, value2, "generalCount");
return (Criteria) this;
}
public Criteria andGeneralCountNotBetween(Integer value1, Integer value2) {
addCriterion("general_count not between", value1, value2, "generalCount");
return (Criteria) this;
}
public Criteria andFailCountIsNull() {
addCriterion("fail_count is null");
return (Criteria) this;
}
public Criteria andFailCountIsNotNull() {
addCriterion("fail_count is not null");
return (Criteria) this;
}
public Criteria andFailCountEqualTo(Integer value) {
addCriterion("fail_count =", value, "failCount");
return (Criteria) this;
}
public Criteria andFailCountNotEqualTo(Integer value) {
addCriterion("fail_count <>", value, "failCount");
return (Criteria) this;
}
public Criteria andFailCountGreaterThan(Integer value) {
addCriterion("fail_count >", value, "failCount");
return (Criteria) this;
}
public Criteria andFailCountGreaterThanOrEqualTo(Integer value) {
addCriterion("fail_count >=", value, "failCount");
return (Criteria) this;
}
public Criteria andFailCountLessThan(Integer value) {
addCriterion("fail_count <", value, "failCount");
return (Criteria) this;
}
public Criteria andFailCountLessThanOrEqualTo(Integer value) {
addCriterion("fail_count <=", value, "failCount");
return (Criteria) this;
}
public Criteria andFailCountIn(List<Integer> values) {
addCriterion("fail_count in", values, "failCount");
return (Criteria) this;
}
public Criteria andFailCountNotIn(List<Integer> values) {
addCriterion("fail_count not in", values, "failCount");
return (Criteria) this;
}
public Criteria andFailCountBetween(Integer value1, Integer value2) {
addCriterion("fail_count between", value1, value2, "failCount");
return (Criteria) this;
}
public Criteria andFailCountNotBetween(Integer value1, Integer value2) {
addCriterion("fail_count not between", value1, value2, "failCount");
return (Criteria) this;
}
public Criteria andClassMaxScoreIsNull() {
addCriterion("class_max_score is null");
return (Criteria) this;
}
public Criteria andClassMaxScoreIsNotNull() {
addCriterion("class_max_score is not null");
return (Criteria) this;
}
public Criteria andClassMaxScoreEqualTo(BigDecimal value) {
addCriterion("class_max_score =", value, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMaxScoreNotEqualTo(BigDecimal value) {
addCriterion("class_max_score <>", value, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMaxScoreGreaterThan(BigDecimal value) {
addCriterion("class_max_score >", value, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMaxScoreGreaterThanOrEqualTo(BigDecimal value) {
addCriterion("class_max_score >=", value, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMaxScoreLessThan(BigDecimal value) {
addCriterion("class_max_score <", value, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMaxScoreLessThanOrEqualTo(BigDecimal value) {
addCriterion("class_max_score <=", value, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMaxScoreIn(List<BigDecimal> values) {
addCriterion("class_max_score in", values, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMaxScoreNotIn(List<BigDecimal> values) {
addCriterion("class_max_score not in", values, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMaxScoreBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("class_max_score between", value1, value2, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMaxScoreNotBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("class_max_score not between", value1, value2, "classMaxScore");
return (Criteria) this;
}
public Criteria andClassMinScoreIsNull() {
addCriterion("class_min_score is null");
return (Criteria) this;
}
public Criteria andClassMinScoreIsNotNull() {
addCriterion("class_min_score is not null");
return (Criteria) this;
}
public Criteria andClassMinScoreEqualTo(BigDecimal value) {
addCriterion("class_min_score =", value, "classMinScore");
return (Criteria) this;
}
public Criteria andClassMinScoreNotEqualTo(BigDecimal value) {
addCriterion("class_min_score <>", value, "classMinScore");
return (Criteria) this;
}
public Criteria andClassMinScoreGreaterThan(BigDecimal value) {
addCriterion("class_min_score >", value, "classMinScore");
return (Criteria) this;
}
public Criteria andClassMinScoreGreaterThanOrEqualTo(BigDecimal value) {
addCriterion("class_min_score >=", value, "classMinScore");
return (Criteria) this;
}
public Criteria andClassMinScoreLessThan(BigDecimal value) {
addCriterion("class_min_score <", value, "classMinScore");
return (Criteria) this;
}
public Criteria andClassMinScoreLessThanOrEqualTo(BigDecimal value) {
addCriterion("class_min_score <=", value, "classMinScore");
return (Criteria) this;
}
public Criteria andClassMinScoreIn(List<BigDecimal> values) {
addCriterion("class_min_score in", values, "classMinScore");
return (Criteria) this;
}
public Criteria andClassMinScoreNotIn(List<BigDecimal> values) {
addCriterion("class_min_score not in", values, "classMinScore");
return (Criteria) this;
}
public Criteria andClassMinScoreBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("class_min_score between", value1, value2, "classMinScore");
return (Criteria) this;
}
public Criteria andClassMinScoreNotBetween(BigDecimal value1, BigDecimal value2) {
addCriterion("class_min_score not between", value1, value2, "classMinScore");
return (Criteria) this;
}

@ -0,0 +1,220 @@
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
* tea_class_score
*/
public class TeaClassScoreDto {
private String id;
@ApiModelProperty("学校ID")
private String schoolId;
@ApiModelProperty("班级ID")
private String classId;
@ApiModelProperty("班级名称")
private String className;
@ApiModelProperty("优秀人数")
private Integer excellentCount;
@ApiModelProperty("良好人数")
private Integer goodCount;
@ApiModelProperty("一般人数")
private Integer generalCount;
@ApiModelProperty("不及格人数")
private Integer failCount;
@ApiModelProperty("班级最高分")
private BigDecimal classMaxScore;
@ApiModelProperty("班级最低分")
private BigDecimal classMinScore;
@ApiModelProperty("班级平均分")
private BigDecimal classAverageScore;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("得分日期")
private Date startTime;
@ApiModelProperty("学校优秀人数")
private Integer schoolExcellentCount;
@ApiModelProperty("学校良好人数")
private Integer schoolGoodCount;
@ApiModelProperty("学校一般人数")
private Integer schoolGeneralCount;
@ApiModelProperty("学校不及格人数")
private Integer schoolFailCount;
@ApiModelProperty("学校班级最高分")
private BigDecimal schoolMaxScore;
@ApiModelProperty("学校班级最低分")
private BigDecimal schoolMinScore;
@ApiModelProperty("学校班级平均分")
private BigDecimal schoolAverageScore;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getSchoolId() {
return schoolId;
}
public void setSchoolId(String schoolId) {
this.schoolId = schoolId;
}
public String getClassId() {
return classId;
}
public void setClassId(String classId) {
this.classId = classId;
}
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public Integer getExcellentCount() {
return excellentCount;
}
public void setExcellentCount(Integer excellentCount) {
this.excellentCount = excellentCount;
}
public Integer getGoodCount() {
return goodCount;
}
public void setGoodCount(Integer goodCount) {
this.goodCount = goodCount;
}
public Integer getGeneralCount() {
return generalCount;
}
public void setGeneralCount(Integer generalCount) {
this.generalCount = generalCount;
}
public Integer getFailCount() {
return failCount;
}
public void setFailCount(Integer failCount) {
this.failCount = failCount;
}
public BigDecimal getClassMaxScore() {
return classMaxScore;
}
public void setClassMaxScore(BigDecimal classMaxScore) {
this.classMaxScore = classMaxScore;
}
public BigDecimal getClassMinScore() {
return classMinScore;
}
public void setClassMinScore(BigDecimal classMinScore) {
this.classMinScore = classMinScore;
}
public BigDecimal getClassAverageScore() {
return classAverageScore;
}
public void setClassAverageScore(BigDecimal classAverageScore) {
this.classAverageScore = classAverageScore;
}
public Date getStartTime() {
return startTime;
}
public void setStartTime(Date startTime) {
this.startTime = startTime;
}
public Integer getSchoolExcellentCount() {
return schoolExcellentCount;
}
public void setSchoolExcellentCount(Integer schoolExcellentCount) {
this.schoolExcellentCount = schoolExcellentCount;
}
public Integer getSchoolGoodCount() {
return schoolGoodCount;
}
public void setSchoolGoodCount(Integer schoolGoodCount) {
this.schoolGoodCount = schoolGoodCount;
}
public Integer getSchoolGeneralCount() {
return schoolGeneralCount;
}
public void setSchoolGeneralCount(Integer schoolGeneralCount) {
this.schoolGeneralCount = schoolGeneralCount;
}
public Integer getSchoolFailCount() {
return schoolFailCount;
}
public void setSchoolFailCount(Integer schoolFailCount) {
this.schoolFailCount = schoolFailCount;
}
public BigDecimal getSchoolMaxScore() {
return schoolMaxScore;
}
public void setSchoolMaxScore(BigDecimal schoolMaxScore) {
this.schoolMaxScore = schoolMaxScore;
}
public BigDecimal getSchoolMinScore() {
return schoolMinScore;
}
public void setSchoolMinScore(BigDecimal schoolMinScore) {
this.schoolMinScore = schoolMinScore;
}
public BigDecimal getSchoolAverageScore() {
return schoolAverageScore;
}
public void setSchoolAverageScore(BigDecimal schoolAverageScore) {
this.schoolAverageScore = schoolAverageScore;
}
}

@ -29,4 +29,6 @@ public interface TeaClassScoreMapper {
int updateByPrimaryKeySelective(TeaClassScore record);
int updateByPrimaryKey(TeaClassScore record);
List<TeaClassScore> selectAndOrderByTime(@Param("schoolId")String schoolId);
}

@ -0,0 +1,94 @@
package com.sztzjy.fund_investment.service.serviceImpl.tea;
import com.sztzjy.fund_investment.entity.TeaClassScore;
import com.sztzjy.fund_investment.entity.TeaClassScoreExample;
import com.sztzjy.fund_investment.entity.dto.TeaClassScoreDto;
import com.sztzjy.fund_investment.mapper.TeaClassScoreMapper;
import com.sztzjy.fund_investment.service.tea.ClassScoreService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.Date;
import java.util.List;
/**
* @Author xcj
* @Date 2023/11/24
*/
@Service
public class ClassScoreServiceImpl implements ClassScoreService {
@Autowired
private TeaClassScoreMapper teaClassScoreMapper;
/*
* @author xcj
* @Date 2023/11/24
*/
@Override
public List<TeaClassScore> getClassAVGScore(String schoolId) {
return teaClassScoreMapper.selectAndOrderByTime(schoolId);
}
/*
* @author xcj
* @Date 2023/11/24
*/
@Override
public TeaClassScoreDto getClassScoreCount(String schoolId, String classId, Date time) {
TeaClassScoreExample teaClassScoreExample = new TeaClassScoreExample();
TeaClassScoreExample.Criteria criteria = teaClassScoreExample.createCriteria();
//班级框为空 统计学校下的所有数据返回
if (classId == null && schoolId != null) {
criteria.andSchoolIdEqualTo(schoolId).andStartTimeEqualTo(time);
List<TeaClassScore> teaClassScores = teaClassScoreMapper.selectByExample(teaClassScoreExample);
int schoolExcellentCount = 0;
int schoolGoodCount = 0;
int schoolGeneralCount = 0;
int schoolFailCount = 0;
BigDecimal maxScoreBySchoolId = BigDecimal.ZERO;
BigDecimal minScoreBySchoolId = null;
BigDecimal avgScoreBySchoolId = BigDecimal.ZERO;
for (TeaClassScore teaClassScore : teaClassScores) {
schoolExcellentCount = schoolExcellentCount + teaClassScore.getExcellentCount();
schoolGoodCount = schoolGoodCount + teaClassScore.getGoodCount();
schoolGeneralCount = schoolGeneralCount + teaClassScore.getGeneralCount();
schoolFailCount = schoolFailCount + teaClassScore.getFailCount();
BigDecimal maxScore = teaClassScore.getClassMaxScore();
BigDecimal minScore = teaClassScore.getClassMinScore();
// 计算最高分
if (maxScore.compareTo(maxScoreBySchoolId) >= 0) {
maxScoreBySchoolId = maxScore;
}
// 计算最低分
if (minScoreBySchoolId == null || minScore.compareTo(minScoreBySchoolId) <= 0) {
minScoreBySchoolId = minScore;
}
//所有班级平均分累加
avgScoreBySchoolId = avgScoreBySchoolId.add(teaClassScore.getClassAverageScore()).setScale(2, RoundingMode.HALF_UP);
}
TeaClassScoreDto teaClassScoreDto = new TeaClassScoreDto();
teaClassScoreDto.setSchoolExcellentCount(schoolExcellentCount);
teaClassScoreDto.setSchoolGoodCount(schoolGoodCount);
teaClassScoreDto.setSchoolGeneralCount(schoolGeneralCount);
teaClassScoreDto.setSchoolFailCount(schoolFailCount);
BigDecimal finalAVGScore = avgScoreBySchoolId.divide(BigDecimal.valueOf(teaClassScores.size()), 2, RoundingMode.HALF_UP);
teaClassScoreDto.setClassAverageScore(finalAVGScore);
return teaClassScoreDto;
} else { //选中某个班级返回
criteria.andClassIdEqualTo(classId).andStartTimeEqualTo(time);
List<TeaClassScore> teaClassScores = teaClassScoreMapper.selectByExample(teaClassScoreExample);
TeaClassScore teaClassScore = teaClassScores.get(0);
TeaClassScoreDto teaClassScoreDto = new TeaClassScoreDto();
BeanUtils.copyProperties(teaClassScore,teaClassScoreDto);
return teaClassScoreDto;
}
}
}

@ -0,0 +1,17 @@
package com.sztzjy.fund_investment.service.tea;
import com.sztzjy.fund_investment.entity.TeaClassScore;
import com.sztzjy.fund_investment.entity.dto.TeaClassScoreDto;
import java.util.Date;
import java.util.List;
/**
* @Author xcj
* @Date 2023/11/24
*/
public interface ClassScoreService {
List<TeaClassScore> getClassAVGScore(String schoolId);
TeaClassScoreDto getClassScoreCount(String schoolId, String classId, Date time);
}

@ -1,11 +1,9 @@
package com.sztzjy.fund_investment.task;
import cn.hutool.core.util.IdUtil;
import com.sztzjy.fund_investment.config.Constant;
import com.sztzjy.fund_investment.entity.*;
import com.sztzjy.fund_investment.mapper.PerformanceScoreMapper;
import com.sztzjy.fund_investment.mapper.TeaClassScoreMapper;
import com.sztzjy.fund_investment.mapper.TrainingReportMapper;
import com.sztzjy.fund_investment.mapper.UserTableMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
@ -13,12 +11,9 @@ import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
/**
* @Author xcj
@ -30,13 +25,14 @@ public class Task {
private PerformanceScoreMapper performanceScoreMapper;
@Autowired
private TeaClassScoreMapper teaClassScoreMapper;
@Autowired
private UserTableMapper userMapper;
/* 00.00
* @author xcj
* @Date 2023/11/23
*/
//todo 重新实训需要把performance_score的数据删掉,计算班级平均分时只取最新的数据
//todo 重新实训需要把performance_score的数据删掉,计算班级平均分时只取最新的数据
@Scheduled(cron = "0 0 0 * * ?")
public void getClassScore() {
// 查到单个班级下所有的已经在投资报告页面提交过的学生的总成绩
@ -56,13 +52,45 @@ public class Task {
PerformanceScoreExample performanceScoreExample2 = new PerformanceScoreExample();
performanceScoreExample2.createCriteria().andClassIdEqualTo(classId);
List<PerformanceScore> performanceScores2 = performanceScoreMapper.selectByExample(performanceScoreExample2);
// 创建存储等级人数的Map
Map<String, Integer> gradeCounts = new HashMap<>();
gradeCounts.put("excellent", 0);
gradeCounts.put("good", 0);
gradeCounts.put("general", 0);
gradeCounts.put("fail", 0);
BigDecimal classMaxScore = BigDecimal.ZERO; // 最高分默认为0
BigDecimal classMinScore = null; // 最低分默认为null
String schoolId ="";
for (PerformanceScore score : performanceScores2) {
//第一个比较对象
BigDecimal totalScore = score.getTotalScore();
schoolId = score.getSchoolid();
// 计算最高分
if (totalScore.compareTo(classMaxScore) >= 0) {
classMaxScore = totalScore;
}
// 计算最低分
if (classMinScore == null || totalScore.compareTo(classMinScore) <= 0) {
classMinScore = totalScore;
}
//没提交报告的 算0分跳过
if (score.getInvestmentReportScore() == null || score.getInvestmentReportScore().equals(BigDecimal.ZERO)) {
continue;
}
count = count.add(BigDecimal.ONE);
BigDecimal totalScore = score.getTotalScore();
avgScore = avgScore.add(totalScore);
// 计算等级人数
if (totalScore.compareTo(BigDecimal.valueOf(90)) >= 0 && totalScore.compareTo(BigDecimal.valueOf(100)) <= 0) {
gradeCounts.put("excellent", gradeCounts.get("excellent") + 1);
} else if (totalScore.compareTo(BigDecimal.valueOf(80)) >= 0 && totalScore.compareTo(BigDecimal.valueOf(89)) <= 0) {
gradeCounts.put("good", gradeCounts.get("good") + 1);
} else if (totalScore.compareTo(BigDecimal.valueOf(60)) >= 0 && totalScore.compareTo(BigDecimal.valueOf(79)) <= 0) {
gradeCounts.put("general", gradeCounts.get("general") + 1);
} else if (totalScore.compareTo(BigDecimal.valueOf(0)) >= 0 && totalScore.compareTo(BigDecimal.valueOf(59)) <= 0) {
gradeCounts.put("fail", gradeCounts.get("fail") + 1);
}
}
TeaClassScore teaClassScore = new TeaClassScore();
//时间为年月日
@ -70,7 +98,18 @@ public class Task {
Date date = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
teaClassScore.setStartTime(date);
teaClassScore.setId(IdUtil.simpleUUID());
teaClassScore.setClassMaxScore(classMaxScore);
teaClassScore.setClassMinScore(classMinScore);
teaClassScore.setExcellentCount(gradeCounts.get("excellent"));
teaClassScore.setGoodCount(gradeCounts.get("good"));
teaClassScore.setGeneralCount(gradeCounts.get("general"));
teaClassScore.setFailCount(gradeCounts.get("fail"));
teaClassScore.setClassId(classId);
UserTableExample userTableExample =new UserTableExample();
userTableExample.createCriteria().andSchoolIdEqualTo(schoolId).andClassIdEqualTo(classId);
List<UserTable> userTables = userMapper.selectByExample(userTableExample);
UserTable userTable = userTables.get(0);
teaClassScore.setClassName(userTable.getClassName());
BigDecimal divideScore = avgScore.divide(count, 2, RoundingMode.HALF_UP);
teaClassScore.setClassAverageScore(divideScore);
teaClassScoreMapper.insert(teaClassScore);

@ -3,9 +3,15 @@
<mapper namespace="com.sztzjy.fund_investment.mapper.TeaClassScoreMapper">
<resultMap id="BaseResultMap" type="com.sztzjy.fund_investment.entity.TeaClassScore">
<id column="id" jdbcType="VARCHAR" property="id" />
<result column="flow_id" jdbcType="VARCHAR" property="flowId" />
<result column="score_id" jdbcType="VARCHAR" property="scoreId" />
<result column="school_id" jdbcType="VARCHAR" property="schoolId" />
<result column="class_id" jdbcType="VARCHAR" property="classId" />
<result column="class_name" jdbcType="VARCHAR" property="className" />
<result column="excellent_count" jdbcType="INTEGER" property="excellentCount" />
<result column="good_count" jdbcType="INTEGER" property="goodCount" />
<result column="general_count" jdbcType="INTEGER" property="generalCount" />
<result column="fail_count" jdbcType="INTEGER" property="failCount" />
<result column="class_max_score" jdbcType="DECIMAL" property="classMaxScore" />
<result column="class_min_score" jdbcType="DECIMAL" property="classMinScore" />
<result column="class_average_score" jdbcType="DECIMAL" property="classAverageScore" />
<result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
</resultMap>
@ -68,7 +74,8 @@
</where>
</sql>
<sql id="Base_Column_List">
id, flow_id, score_id, class_id, class_average_score, start_time
id, school_id, class_id, class_name, excellent_count, good_count, general_count,
fail_count, class_max_score, class_min_score, class_average_score, start_time
</sql>
<select id="selectByExample" parameterType="com.sztzjy.fund_investment.entity.TeaClassScoreExample" resultMap="BaseResultMap">
select
@ -84,6 +91,17 @@
order by ${orderByClause}
</if>
</select>
<select id="selectAndOrderByTime" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from tea_class_score
where school_id = #{schoolId,jdbcType=VARCHAR}
and start_time >= DATE_SUB(NOW(), INTERVAL 6 MONTH)
order by start_time
</select>
<select id="selectByPrimaryKey" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
@ -101,11 +119,15 @@
</if>
</delete>
<insert id="insert" parameterType="com.sztzjy.fund_investment.entity.TeaClassScore">
insert into tea_class_score (id, flow_id, score_id,
class_id, class_average_score, start_time
insert into tea_class_score (id, school_id, class_id,
class_name, excellent_count, good_count,
general_count, fail_count, class_max_score,
class_min_score, class_average_score, start_time
)
values (#{id,jdbcType=VARCHAR}, #{flowId,jdbcType=VARCHAR}, #{scoreId,jdbcType=VARCHAR},
#{classId,jdbcType=VARCHAR}, #{classAverageScore,jdbcType=DECIMAL}, #{startTime,jdbcType=TIMESTAMP}
values (#{id,jdbcType=VARCHAR}, #{schoolId,jdbcType=VARCHAR}, #{classId,jdbcType=VARCHAR},
#{className,jdbcType=VARCHAR}, #{excellentCount,jdbcType=INTEGER}, #{goodCount,jdbcType=INTEGER},
#{generalCount,jdbcType=INTEGER}, #{failCount,jdbcType=INTEGER}, #{classMaxScore,jdbcType=DECIMAL},
#{classMinScore,jdbcType=DECIMAL}, #{classAverageScore,jdbcType=DECIMAL}, #{startTime,jdbcType=TIMESTAMP}
)
</insert>
<insert id="insertSelective" parameterType="com.sztzjy.fund_investment.entity.TeaClassScore">
@ -114,15 +136,33 @@
<if test="id != null">
id,
</if>
<if test="flowId != null">
flow_id,
</if>
<if test="scoreId != null">
score_id,
<if test="schoolId != null">
school_id,
</if>
<if test="classId != null">
class_id,
</if>
<if test="className != null">
class_name,
</if>
<if test="excellentCount != null">
excellent_count,
</if>
<if test="goodCount != null">
good_count,
</if>
<if test="generalCount != null">
general_count,
</if>
<if test="failCount != null">
fail_count,
</if>
<if test="classMaxScore != null">
class_max_score,
</if>
<if test="classMinScore != null">
class_min_score,
</if>
<if test="classAverageScore != null">
class_average_score,
</if>
@ -134,15 +174,33 @@
<if test="id != null">
#{id,jdbcType=VARCHAR},
</if>
<if test="flowId != null">
#{flowId,jdbcType=VARCHAR},
</if>
<if test="scoreId != null">
#{scoreId,jdbcType=VARCHAR},
<if test="schoolId != null">
#{schoolId,jdbcType=VARCHAR},
</if>
<if test="classId != null">
#{classId,jdbcType=VARCHAR},
</if>
<if test="className != null">
#{className,jdbcType=VARCHAR},
</if>
<if test="excellentCount != null">
#{excellentCount,jdbcType=INTEGER},
</if>
<if test="goodCount != null">
#{goodCount,jdbcType=INTEGER},
</if>
<if test="generalCount != null">
#{generalCount,jdbcType=INTEGER},
</if>
<if test="failCount != null">
#{failCount,jdbcType=INTEGER},
</if>
<if test="classMaxScore != null">
#{classMaxScore,jdbcType=DECIMAL},
</if>
<if test="classMinScore != null">
#{classMinScore,jdbcType=DECIMAL},
</if>
<if test="classAverageScore != null">
#{classAverageScore,jdbcType=DECIMAL},
</if>
@ -163,15 +221,33 @@
<if test="record.id != null">
id = #{record.id,jdbcType=VARCHAR},
</if>
<if test="record.flowId != null">
flow_id = #{record.flowId,jdbcType=VARCHAR},
</if>
<if test="record.scoreId != null">
score_id = #{record.scoreId,jdbcType=VARCHAR},
<if test="record.schoolId != null">
school_id = #{record.schoolId,jdbcType=VARCHAR},
</if>
<if test="record.classId != null">
class_id = #{record.classId,jdbcType=VARCHAR},
</if>
<if test="record.className != null">
class_name = #{record.className,jdbcType=VARCHAR},
</if>
<if test="record.excellentCount != null">
excellent_count = #{record.excellentCount,jdbcType=INTEGER},
</if>
<if test="record.goodCount != null">
good_count = #{record.goodCount,jdbcType=INTEGER},
</if>
<if test="record.generalCount != null">
general_count = #{record.generalCount,jdbcType=INTEGER},
</if>
<if test="record.failCount != null">
fail_count = #{record.failCount,jdbcType=INTEGER},
</if>
<if test="record.classMaxScore != null">
class_max_score = #{record.classMaxScore,jdbcType=DECIMAL},
</if>
<if test="record.classMinScore != null">
class_min_score = #{record.classMinScore,jdbcType=DECIMAL},
</if>
<if test="record.classAverageScore != null">
class_average_score = #{record.classAverageScore,jdbcType=DECIMAL},
</if>
@ -186,9 +262,15 @@
<update id="updateByExample" parameterType="map">
update tea_class_score
set id = #{record.id,jdbcType=VARCHAR},
flow_id = #{record.flowId,jdbcType=VARCHAR},
score_id = #{record.scoreId,jdbcType=VARCHAR},
school_id = #{record.schoolId,jdbcType=VARCHAR},
class_id = #{record.classId,jdbcType=VARCHAR},
class_name = #{record.className,jdbcType=VARCHAR},
excellent_count = #{record.excellentCount,jdbcType=INTEGER},
good_count = #{record.goodCount,jdbcType=INTEGER},
general_count = #{record.generalCount,jdbcType=INTEGER},
fail_count = #{record.failCount,jdbcType=INTEGER},
class_max_score = #{record.classMaxScore,jdbcType=DECIMAL},
class_min_score = #{record.classMinScore,jdbcType=DECIMAL},
class_average_score = #{record.classAverageScore,jdbcType=DECIMAL},
start_time = #{record.startTime,jdbcType=TIMESTAMP}
<if test="_parameter != null">
@ -198,15 +280,33 @@
<update id="updateByPrimaryKeySelective" parameterType="com.sztzjy.fund_investment.entity.TeaClassScore">
update tea_class_score
<set>
<if test="flowId != null">
flow_id = #{flowId,jdbcType=VARCHAR},
</if>
<if test="scoreId != null">
score_id = #{scoreId,jdbcType=VARCHAR},
<if test="schoolId != null">
school_id = #{schoolId,jdbcType=VARCHAR},
</if>
<if test="classId != null">
class_id = #{classId,jdbcType=VARCHAR},
</if>
<if test="className != null">
class_name = #{className,jdbcType=VARCHAR},
</if>
<if test="excellentCount != null">
excellent_count = #{excellentCount,jdbcType=INTEGER},
</if>
<if test="goodCount != null">
good_count = #{goodCount,jdbcType=INTEGER},
</if>
<if test="generalCount != null">
general_count = #{generalCount,jdbcType=INTEGER},
</if>
<if test="failCount != null">
fail_count = #{failCount,jdbcType=INTEGER},
</if>
<if test="classMaxScore != null">
class_max_score = #{classMaxScore,jdbcType=DECIMAL},
</if>
<if test="classMinScore != null">
class_min_score = #{classMinScore,jdbcType=DECIMAL},
</if>
<if test="classAverageScore != null">
class_average_score = #{classAverageScore,jdbcType=DECIMAL},
</if>
@ -218,9 +318,15 @@
</update>
<update id="updateByPrimaryKey" parameterType="com.sztzjy.fund_investment.entity.TeaClassScore">
update tea_class_score
set flow_id = #{flowId,jdbcType=VARCHAR},
score_id = #{scoreId,jdbcType=VARCHAR},
set school_id = #{schoolId,jdbcType=VARCHAR},
class_id = #{classId,jdbcType=VARCHAR},
class_name = #{className,jdbcType=VARCHAR},
excellent_count = #{excellentCount,jdbcType=INTEGER},
good_count = #{goodCount,jdbcType=INTEGER},
general_count = #{generalCount,jdbcType=INTEGER},
fail_count = #{failCount,jdbcType=INTEGER},
class_max_score = #{classMaxScore,jdbcType=DECIMAL},
class_min_score = #{classMinScore,jdbcType=DECIMAL},
class_average_score = #{classAverageScore,jdbcType=DECIMAL},
start_time = #{startTime,jdbcType=TIMESTAMP}
where id = #{id,jdbcType=VARCHAR}

Loading…
Cancel
Save