From 2d7aff5221c5c2e0bc559e6d66eaed9326d95af9 Mon Sep 17 00:00:00 2001 From: xiaoCJ <406612557@qq.com> Date: Fri, 24 Nov 2023 17:20:44 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=98=E5=BA=93=E8=A1=A8=E5=92=8C=E7=AD=94?= =?UTF-8?q?=E9=A2=98=E8=AE=B0=E5=BD=95=E8=A1=A8=E6=96=B0=E5=A2=9E=E9=80=89?= =?UTF-8?q?=E9=A1=B9=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/tea/ClassScoreController.java | 49 ++ .../entity/TeaClassScoreExample.java | 528 +++++++++++++++--- .../entity/dto/TeaClassScoreDto.java | 220 ++++++++ .../mapper/TeaClassScoreMapper.java | 2 + .../tea/ClassScoreServiceImpl.java | 94 ++++ .../service/tea/ClassScoreService.java | 17 + .../com/sztzjy/fund_investment/task/Task.java | 57 +- .../resources/mappers/TeaClassScoreMapper.xml | 168 +++++- 8 files changed, 1011 insertions(+), 124 deletions(-) create mode 100644 src/main/java/com/sztzjy/fund_investment/controller/tea/ClassScoreController.java create mode 100644 src/main/java/com/sztzjy/fund_investment/entity/dto/TeaClassScoreDto.java create mode 100644 src/main/java/com/sztzjy/fund_investment/service/serviceImpl/tea/ClassScoreServiceImpl.java create mode 100644 src/main/java/com/sztzjy/fund_investment/service/tea/ClassScoreService.java diff --git a/src/main/java/com/sztzjy/fund_investment/controller/tea/ClassScoreController.java b/src/main/java/com/sztzjy/fund_investment/controller/tea/ClassScoreController.java new file mode 100644 index 0000000..3bd5f35 --- /dev/null +++ b/src/main/java/com/sztzjy/fund_investment/controller/tea/ClassScoreController.java @@ -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> getClassAVGScore(@RequestParam String schoolId) { + return new ResultEntity<>(classScoreService.getClassAVGScore(schoolId)); + } + + @ApiOperation("班级成绩统计分析饼状图") + @AnonymousAccess + @GetMapping("/getClassScoreCount") + public ResultEntity 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)); + } +} diff --git a/src/main/java/com/sztzjy/fund_investment/entity/TeaClassScoreExample.java b/src/main/java/com/sztzjy/fund_investment/entity/TeaClassScoreExample.java index ed94dc1..a179dfc 100644 --- a/src/main/java/com/sztzjy/fund_investment/entity/TeaClassScoreExample.java +++ b/src/main/java/com/sztzjy/fund_investment/entity/TeaClassScoreExample.java @@ -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 values) { - addCriterion("flow_id in", values, "flowId"); + public Criteria andSchoolIdIn(List values) { + addCriterion("school_id in", values, "schoolId"); return (Criteria) this; } - public Criteria andFlowIdNotIn(List values) { - addCriterion("flow_id not in", values, "flowId"); + public Criteria andSchoolIdNotIn(List 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 values) { - addCriterion("score_id in", values, "scoreId"); + public Criteria andClassIdIn(List values) { + addCriterion("class_id in", values, "classId"); return (Criteria) this; } - public Criteria andScoreIdNotIn(List values) { - addCriterion("score_id not in", values, "scoreId"); + public Criteria andClassIdNotIn(List 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 values) { - addCriterion("class_id in", values, "classId"); + public Criteria andClassNameIn(List values) { + addCriterion("class_name in", values, "className"); return (Criteria) this; } - public Criteria andClassIdNotIn(List values) { - addCriterion("class_id not in", values, "classId"); + public Criteria andClassNameNotIn(List 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 values) { + addCriterion("excellent_count in", values, "excellentCount"); + return (Criteria) this; + } + + public Criteria andExcellentCountNotIn(List 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 values) { + addCriterion("good_count in", values, "goodCount"); + return (Criteria) this; + } + + public Criteria andGoodCountNotIn(List 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 values) { + addCriterion("general_count in", values, "generalCount"); + return (Criteria) this; + } + + public Criteria andGeneralCountNotIn(List 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 values) { + addCriterion("fail_count in", values, "failCount"); + return (Criteria) this; + } + + public Criteria andFailCountNotIn(List 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 values) { + addCriterion("class_max_score in", values, "classMaxScore"); + return (Criteria) this; + } + + public Criteria andClassMaxScoreNotIn(List 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 values) { + addCriterion("class_min_score in", values, "classMinScore"); + return (Criteria) this; + } + + public Criteria andClassMinScoreNotIn(List 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; } diff --git a/src/main/java/com/sztzjy/fund_investment/entity/dto/TeaClassScoreDto.java b/src/main/java/com/sztzjy/fund_investment/entity/dto/TeaClassScoreDto.java new file mode 100644 index 0000000..8660685 --- /dev/null +++ b/src/main/java/com/sztzjy/fund_investment/entity/dto/TeaClassScoreDto.java @@ -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; + } +} \ No newline at end of file diff --git a/src/main/java/com/sztzjy/fund_investment/mapper/TeaClassScoreMapper.java b/src/main/java/com/sztzjy/fund_investment/mapper/TeaClassScoreMapper.java index 4ba95bc..708588e 100644 --- a/src/main/java/com/sztzjy/fund_investment/mapper/TeaClassScoreMapper.java +++ b/src/main/java/com/sztzjy/fund_investment/mapper/TeaClassScoreMapper.java @@ -29,4 +29,6 @@ public interface TeaClassScoreMapper { int updateByPrimaryKeySelective(TeaClassScore record); int updateByPrimaryKey(TeaClassScore record); + + List selectAndOrderByTime(@Param("schoolId")String schoolId); } \ No newline at end of file diff --git a/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/tea/ClassScoreServiceImpl.java b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/tea/ClassScoreServiceImpl.java new file mode 100644 index 0000000..89c2cf6 --- /dev/null +++ b/src/main/java/com/sztzjy/fund_investment/service/serviceImpl/tea/ClassScoreServiceImpl.java @@ -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 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 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 teaClassScores = teaClassScoreMapper.selectByExample(teaClassScoreExample); + TeaClassScore teaClassScore = teaClassScores.get(0); + TeaClassScoreDto teaClassScoreDto = new TeaClassScoreDto(); + BeanUtils.copyProperties(teaClassScore,teaClassScoreDto); + return teaClassScoreDto; + } + } + + + +} diff --git a/src/main/java/com/sztzjy/fund_investment/service/tea/ClassScoreService.java b/src/main/java/com/sztzjy/fund_investment/service/tea/ClassScoreService.java new file mode 100644 index 0000000..5f1686c --- /dev/null +++ b/src/main/java/com/sztzjy/fund_investment/service/tea/ClassScoreService.java @@ -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 getClassAVGScore(String schoolId); + + TeaClassScoreDto getClassScoreCount(String schoolId, String classId, Date time); +} diff --git a/src/main/java/com/sztzjy/fund_investment/task/Task.java b/src/main/java/com/sztzjy/fund_investment/task/Task.java index fca3d86..0a05069 100644 --- a/src/main/java/com/sztzjy/fund_investment/task/Task.java +++ b/src/main/java/com/sztzjy/fund_investment/task/Task.java @@ -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 performanceScores2 = performanceScoreMapper.selectByExample(performanceScoreExample2); + // 创建存储等级人数的Map + Map 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 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); diff --git a/src/main/resources/mappers/TeaClassScoreMapper.xml b/src/main/resources/mappers/TeaClassScoreMapper.xml index ffde4d1..d6448e0 100644 --- a/src/main/resources/mappers/TeaClassScoreMapper.xml +++ b/src/main/resources/mappers/TeaClassScoreMapper.xml @@ -3,9 +3,15 @@ - - + + + + + + + + @@ -68,7 +74,8 @@ - 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 + + + +