LearnStatController.java
5.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
package com.jevon.controller;
import com.jevon.model.Analyse;
import com.jevon.model.Student;
import com.jevon.service.*;
import com.jevon.vo.req.GetLearnReqVo;
import com.jevon.wordDTO.second.Form1;
import com.jevon.wordDTO.second.Form1RepVo;
import com.jevon.wordDTO.second.Form2;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author chen
* @version 1.0
* @date 2019/10/18 0018 15:54
*/
@RestController
@RequestMapping(value = "/getLearn")
@Api(value = "学情分析")
public class LearnStatController {
@Autowired
AnalyseService analyseService;
@Autowired
DimensionalService dimensionalService;
@Autowired
AnalyseDimensionalService analyseDimensionalService;
@Autowired
AnalyseDetailService analyseDetailService;
@Autowired
StudentDetailService studentDetailService;
@Autowired
StudentService studentService;
@ApiOperation("getForm2_1")
@RequestMapping(value = "getForm2_1", method = RequestMethod.POST)
public Form1RepVo getForm2_1(@RequestBody GetLearnReqVo getLearnReqVo){
Form1RepVo form1RepVo = new Form1RepVo();
//2.1表
Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
//分数段
float maxScore = analyse.getMaxScore();
Map<String,String> segmentMap = new HashMap<>();
segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分");
segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分");
segmentMap.put("C(及格)",maxScore*0.7 + "~" + (maxScore*0.7-1f)+"分");
segmentMap.put("D(不及格)",0 + "~" + (maxScore*0.6-1f)+"分");
form1RepVo.setMap(segmentMap);
List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName());
double sum = new Double(students.size());
int a = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),maxScore*0.85,maxScore+1f);
int b = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),maxScore*0.7,(maxScore*0.85));
int c = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),maxScore*0.6,(maxScore*0.7));
int d = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),maxScore*0,(maxScore*0.6));
List<Form1> form1List = new ArrayList<>();
Form1 formA = new Form1();
formA.setLevel("A");
formA.setNumber(a);
formA.setProp(a/sum);
Form1 formB = new Form1();
formB.setLevel("B");
formB.setNumber(b);
formB.setProp(b/sum);
Form1 formC = new Form1();
formC.setLevel("C");
formC.setNumber(c);
formC.setProp(c/sum);
Form1 formD = new Form1();
formD.setLevel("D");
formD.setNumber(d);
formD.setProp(d/sum);
form1List.add(formA);
form1List.add(formB);
form1List.add(formC);
form1List.add(formD);
form1RepVo.setList(form1List);
return form1RepVo;
}
@ApiOperation("getForm2_2")
@RequestMapping(value = "getForm2_2", method = RequestMethod.POST)
public List<Form2> getForm2_2(@RequestBody GetLearnReqVo getLearnReqVo){
Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null);
List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName());
//先算高分段的分数 再去人数
int highNumber = (int) Math.floor(allStudents.size()*0.27);
double highScore = allStudents.get(highNumber).getScore();
int lowNumber = allStudents.size()-highNumber;
double lowScore = allStudents.get(lowNumber).getScore();
int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f);
int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),0,lowScore);
List<Form2> list = new ArrayList<>();
Form2 form = new Form2();
form.setName("联盟校");
form.setStudentNumber(allStudents.size());
form.setHighNumber(highNumber);
form.setLowNumber(highNumber);
list.add(form);
Form2 form2 = new Form2();
form2.setName(getLearnReqVo.getSchoolName());
form2.setStudentNumber(students.size());
form2.setHighNumber(highCount);
form2.setLowNumber(lowCount);
form2.setHighProp(highCount/new Double(allStudents.size()));
form2.setLowProp(lowCount/new Double(allStudents.size()));
list.add(form2);
return list;
}
}