Commit e6e6895df48d7fe8027027d418c3f6557d01f2b5
1 parent
ef5c16a0
Exists in
master
学科考试概况
Showing
21 changed files
with
767 additions
and
36 deletions
Show diff stats
src/main/java/com/jevon/controller/LearnController.java
@@ -140,7 +140,7 @@ public class LearnController { | @@ -140,7 +140,7 @@ public class LearnController { | ||
140 | analyseDetail.setAnalyseId(analyse.getId()); | 140 | analyseDetail.setAnalyseId(analyse.getId()); |
141 | analyseDetail.setQuestionType(examExcelVo.getQuestionType()); | 141 | analyseDetail.setQuestionType(examExcelVo.getQuestionType()); |
142 | analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult())); | 142 | analyseDetail.setDifficult(DifficultEnums.getDifficultType(examExcelVo.getDifficult())); |
143 | - analyseDetail.setScore(new Float(examExcelVo.getScore())); | 143 | + analyseDetail.setScore(new Double(examExcelVo.getScore())); |
144 | analyseDetail.setCreateTime(date); | 144 | analyseDetail.setCreateTime(date); |
145 | analyseDetails.add(analyseDetail); | 145 | analyseDetails.add(analyseDetail); |
146 | initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals); | 146 | initAnalyseDimensional(analyse,questionNumber,examExcelVo.getScore(),examExcelVo.getKnowledge(),DimensionalEnums.knowledge.getDimensionalType(),analyseDimensionals); |
@@ -151,7 +151,7 @@ public class LearnController { | @@ -151,7 +151,7 @@ public class LearnController { | ||
151 | } | 151 | } |
152 | analyseDetailService.insertBatch(analyseDetails); | 152 | analyseDetailService.insertBatch(analyseDetails); |
153 | analyseDimensionalService.insertBatch(analyseDimensionals); | 153 | analyseDimensionalService.insertBatch(analyseDimensionals); |
154 | - analyse.setMaxScore(maxScore); | 154 | + analyse.setMaxScore(new Double(maxScore)); |
155 | analyseService.update(analyse); | 155 | analyseService.update(analyse); |
156 | }catch (Exception e){ | 156 | }catch (Exception e){ |
157 | System.out.println(e); | 157 | System.out.println(e); |
src/main/java/com/jevon/controller/LearnStatController.java
1 | package com.jevon.controller; | 1 | package com.jevon.controller; |
2 | 2 | ||
3 | import com.jevon.model.Analyse; | 3 | import com.jevon.model.Analyse; |
4 | +import com.jevon.model.AnalyseDetail; | ||
4 | import com.jevon.model.Student; | 5 | import com.jevon.model.Student; |
5 | import com.jevon.service.*; | 6 | import com.jevon.service.*; |
7 | +import com.jevon.vo.BaseVo; | ||
6 | import com.jevon.vo.req.GetLearnReqVo; | 8 | import com.jevon.vo.req.GetLearnReqVo; |
7 | -import com.jevon.wordDTO.second.Form1; | ||
8 | -import com.jevon.wordDTO.second.Form1RepVo; | ||
9 | -import com.jevon.wordDTO.second.Form2; | 9 | +import com.jevon.wordDTO.second.*; |
10 | import io.swagger.annotations.Api; | 10 | import io.swagger.annotations.Api; |
11 | import io.swagger.annotations.ApiOperation; | 11 | import io.swagger.annotations.ApiOperation; |
12 | import org.springframework.beans.factory.annotation.Autowired; | 12 | import org.springframework.beans.factory.annotation.Autowired; |
@@ -47,14 +47,14 @@ public class LearnStatController { | @@ -47,14 +47,14 @@ public class LearnStatController { | ||
47 | @Autowired | 47 | @Autowired |
48 | StudentService studentService; | 48 | StudentService studentService; |
49 | 49 | ||
50 | - @ApiOperation("getForm2_1") | ||
51 | - @RequestMapping(value = "getForm2_1", method = RequestMethod.POST) | ||
52 | - public Form1RepVo getForm2_1(@RequestBody GetLearnReqVo getLearnReqVo){ | 50 | + @ApiOperation("getForm2_1_1") |
51 | + @RequestMapping(value = "getForm2_1_1", method = RequestMethod.POST) | ||
52 | + public Form1RepVo getForm2_1_1(@RequestBody GetLearnReqVo getLearnReqVo){ | ||
53 | Form1RepVo form1RepVo = new Form1RepVo(); | 53 | Form1RepVo form1RepVo = new Form1RepVo(); |
54 | //2.1表 | 54 | //2.1表 |
55 | Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | 55 | Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); |
56 | //分数段 | 56 | //分数段 |
57 | - float maxScore = analyse.getMaxScore(); | 57 | + Double maxScore = analyse.getMaxScore(); |
58 | Map<String,String> segmentMap = new HashMap<>(); | 58 | Map<String,String> segmentMap = new HashMap<>(); |
59 | segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分"); | 59 | segmentMap.put("A(优秀)",maxScore*0.85 + "~" + maxScore+"分"); |
60 | segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分"); | 60 | segmentMap.put("B(良好)",maxScore*0.7 + "~" + (maxScore*0.85-1f)+"分"); |
@@ -71,19 +71,19 @@ public class LearnStatController { | @@ -71,19 +71,19 @@ public class LearnStatController { | ||
71 | Form1 formA = new Form1(); | 71 | Form1 formA = new Form1(); |
72 | formA.setLevel("A"); | 72 | formA.setLevel("A"); |
73 | formA.setNumber(a); | 73 | formA.setNumber(a); |
74 | - formA.setProp(a/sum); | 74 | + formA.setProp(a/sum*100); |
75 | Form1 formB = new Form1(); | 75 | Form1 formB = new Form1(); |
76 | formB.setLevel("B"); | 76 | formB.setLevel("B"); |
77 | formB.setNumber(b); | 77 | formB.setNumber(b); |
78 | - formB.setProp(b/sum); | 78 | + formB.setProp(b/sum*100); |
79 | Form1 formC = new Form1(); | 79 | Form1 formC = new Form1(); |
80 | formC.setLevel("C"); | 80 | formC.setLevel("C"); |
81 | formC.setNumber(c); | 81 | formC.setNumber(c); |
82 | - formC.setProp(c/sum); | 82 | + formC.setProp(c/sum*100); |
83 | Form1 formD = new Form1(); | 83 | Form1 formD = new Form1(); |
84 | formD.setLevel("D"); | 84 | formD.setLevel("D"); |
85 | formD.setNumber(d); | 85 | formD.setNumber(d); |
86 | - formD.setProp(d/sum); | 86 | + formD.setProp(d/sum*100); |
87 | form1List.add(formA); | 87 | form1List.add(formA); |
88 | form1List.add(formB); | 88 | form1List.add(formB); |
89 | form1List.add(formC); | 89 | form1List.add(formC); |
@@ -92,9 +92,9 @@ public class LearnStatController { | @@ -92,9 +92,9 @@ public class LearnStatController { | ||
92 | return form1RepVo; | 92 | return form1RepVo; |
93 | } | 93 | } |
94 | 94 | ||
95 | - @ApiOperation("getForm2_2") | ||
96 | - @RequestMapping(value = "getForm2_2", method = RequestMethod.POST) | ||
97 | - public List<Form2> getForm2_2(@RequestBody GetLearnReqVo getLearnReqVo){ | 95 | + @ApiOperation("getForm2_1_2") |
96 | + @RequestMapping(value = "getForm2_1_2", method = RequestMethod.POST) | ||
97 | + public List<Form2> getForm2_1_2(@RequestBody GetLearnReqVo getLearnReqVo){ | ||
98 | Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | 98 | Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); |
99 | List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null); | 99 | List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),null); |
100 | List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); | 100 | List<Student> students = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); |
@@ -103,23 +103,205 @@ public class LearnStatController { | @@ -103,23 +103,205 @@ public class LearnStatController { | ||
103 | double highScore = allStudents.get(highNumber).getScore(); | 103 | double highScore = allStudents.get(highNumber).getScore(); |
104 | int lowNumber = allStudents.size()-highNumber; | 104 | int lowNumber = allStudents.size()-highNumber; |
105 | double lowScore = allStudents.get(lowNumber).getScore(); | 105 | double lowScore = allStudents.get(lowNumber).getScore(); |
106 | + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,highScore,analyse.getMaxScore()+1f); | ||
107 | + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),null,0,lowScore); | ||
106 | int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); | 108 | int highCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); |
107 | int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),0,lowScore); | 109 | int lowCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),0,lowScore); |
108 | List<Form2> list = new ArrayList<>(); | 110 | List<Form2> list = new ArrayList<>(); |
109 | Form2 form = new Form2(); | 111 | Form2 form = new Form2(); |
110 | form.setName("联盟校"); | 112 | form.setName("联盟校"); |
111 | form.setStudentNumber(allStudents.size()); | 113 | form.setStudentNumber(allStudents.size()); |
112 | - form.setHighNumber(highNumber); | ||
113 | - form.setLowNumber(highNumber); | 114 | + form.setHighNumber(highAllCount); |
115 | + form.setLowNumber(lowAllCount); | ||
114 | list.add(form); | 116 | list.add(form); |
115 | Form2 form2 = new Form2(); | 117 | Form2 form2 = new Form2(); |
116 | form2.setName(getLearnReqVo.getSchoolName()); | 118 | form2.setName(getLearnReqVo.getSchoolName()); |
117 | form2.setStudentNumber(students.size()); | 119 | form2.setStudentNumber(students.size()); |
118 | form2.setHighNumber(highCount); | 120 | form2.setHighNumber(highCount); |
119 | form2.setLowNumber(lowCount); | 121 | form2.setLowNumber(lowCount); |
120 | - form2.setHighProp(highCount/new Double(allStudents.size())); | ||
121 | - form2.setLowProp(lowCount/new Double(allStudents.size())); | 122 | + form2.setHighProp(highCount/new Double(highAllCount)); |
123 | + form2.setLowProp(lowCount/new Double(lowAllCount)); | ||
122 | list.add(form2); | 124 | list.add(form2); |
123 | return list; | 125 | return list; |
124 | } | 126 | } |
127 | + | ||
128 | + @ApiOperation("getForm2_1_3_2") | ||
129 | + @RequestMapping(value = "getForm2_1_3_2", method = RequestMethod.POST) | ||
130 | + public List<Form2> getForm2_1_3_2(@RequestBody GetLearnReqVo getLearnReqVo){ | ||
131 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | ||
132 | + List<Student> allStudents = studentService.selectBySchoolName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); | ||
133 | + //先算高分段的分数 再去人数 | ||
134 | + int highNumber = (int) Math.floor(allStudents.size()*0.27); | ||
135 | + double highScore = allStudents.get(highNumber).getScore(); | ||
136 | + int lowNumber = allStudents.size()-highNumber; | ||
137 | + double lowScore = allStudents.get(lowNumber).getScore(); | ||
138 | + int highAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),highScore,analyse.getMaxScore()+1f); | ||
139 | + int lowAllCount = studentService.selectCountByScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),0,lowScore); | ||
140 | + List<Form2> resultList = new ArrayList<>(); | ||
141 | + Form2 form = new Form2(); | ||
142 | + form.setName("联盟校"); | ||
143 | + form.setStudentNumber(allStudents.size()); | ||
144 | + form.setHighNumber(highAllCount); | ||
145 | + form.setLowNumber(lowAllCount); | ||
146 | + resultList.add(form); | ||
147 | + List<String> classNamList = studentService.selectClassNameBySchool(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName()); | ||
148 | + for(String className : classNamList){ | ||
149 | + List<Student> list = studentService.selectByClassName(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className); | ||
150 | + int highCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,highScore,analyse.getMaxScore()+1f); | ||
151 | + int lowCount = studentService.selectCountBySchoolScore(getLearnReqVo.getAnalyseId(),getLearnReqVo.getSchoolName(),className,0,lowScore); | ||
152 | + Form2 form2 = new Form2(); | ||
153 | + form2.setName(className); | ||
154 | + form2.setStudentNumber(list.size()); | ||
155 | + form2.setHighNumber(highCount); | ||
156 | + form2.setLowNumber(lowCount); | ||
157 | + form2.setHighProp(highCount/new Double(highAllCount)); | ||
158 | + form2.setLowProp(lowCount/new Double(lowAllCount)); | ||
159 | + resultList.add(form2); | ||
160 | + } | ||
161 | + return resultList; | ||
162 | + } | ||
163 | + | ||
164 | + @ApiOperation("getForm2_1_3") | ||
165 | + @RequestMapping(value = "getForm2_1_3", method = RequestMethod.POST) | ||
166 | + public List<Table1> getForm2_1_3(@RequestBody GetLearnReqVo getLearnReqVo){ | ||
167 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | ||
168 | + List<Double> list = new ArrayList<>(); | ||
169 | + list.add(Math.ceil(analyse.getMaxScore())); | ||
170 | + list.add(Math.ceil(analyse.getMaxScore()*0.95)); | ||
171 | + list.add(Math.ceil(analyse.getMaxScore()*0.9)); | ||
172 | + list.add(Math.ceil(analyse.getMaxScore()*0.85)); | ||
173 | + list.add(Math.ceil(analyse.getMaxScore()*0.8)); | ||
174 | + list.add(Math.ceil(analyse.getMaxScore()*0.75)); | ||
175 | + list.add(Math.ceil(analyse.getMaxScore()*0.7)); | ||
176 | + list.add(Math.ceil(analyse.getMaxScore()*0.65)); | ||
177 | + list.add(Math.ceil(analyse.getMaxScore()*0.6)); | ||
178 | + list.add(Math.ceil(analyse.getMaxScore()*0.55)); | ||
179 | + list.add(Math.ceil(analyse.getMaxScore()*0.5)); | ||
180 | + list.add(Math.ceil(analyse.getMaxScore()*0.45)); | ||
181 | + list.add(Math.ceil(analyse.getMaxScore()*0.4)); | ||
182 | + list.add(Math.ceil(analyse.getMaxScore()*0.35)); | ||
183 | + list.add(Math.ceil(analyse.getMaxScore()*0.3)); | ||
184 | + list.add(Math.ceil(analyse.getMaxScore()*0)); | ||
185 | + List<Table1> list1 = new ArrayList<>(); | ||
186 | + for(int i =0 ; i <list.size() ; i++){ | ||
187 | + Table1 table1 = new Table1(); | ||
188 | + if(i == 0){ | ||
189 | + table1.setScore(list.get(i)+""); | ||
190 | + table1.setNumber(studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),new Double(list.get(i)),new Double(list.get(i)+1))); | ||
191 | + }else { | ||
192 | + table1.setScore(list.get(i)+"-"+(list.get(i-1)-0.5)); | ||
193 | + table1.setNumber(studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),new Double(list.get(i)),new Double(list.get(i-1)))); | ||
194 | + } | ||
195 | + list1.add(table1); | ||
196 | + } | ||
197 | + return list1; | ||
198 | + } | ||
199 | + | ||
200 | + @ApiOperation("getForm2_2_1") | ||
201 | + @RequestMapping(value = "getForm2_2_1", method = RequestMethod.POST) | ||
202 | + public List<Form3> getForm2_2_1(@RequestBody GetLearnReqVo getLearnReqVo){ | ||
203 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | ||
204 | + List<Form3> list = new ArrayList<>(); | ||
205 | + Form3 form3 = new Form3(); | ||
206 | + form3.setName("联盟校"); | ||
207 | + List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null); | ||
208 | + form3.setMaxScore(studentService.selectMaxScore(analyse.getId(),null)); | ||
209 | + form3.setAverage(studentService.selectAvgScore(analyse.getId(),null)); | ||
210 | + form3.setMinScore(studentService.selectMinScore(analyse.getId(),null)); | ||
211 | + int a = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); | ||
212 | + form3.setApercent(a / new Double(allStudents.size()) * 100); | ||
213 | + int b = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); | ||
214 | + form3.setBpercent(b / new Double(allStudents.size()) * 100); | ||
215 | + int c = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); | ||
216 | + form3.setCpercent(c / new Double(allStudents.size()) * 100); | ||
217 | + int d = studentService.selectCountByScore(analyse.getId(),null,analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); | ||
218 | + form3.setDpercent(d / new Double(allStudents.size()) * 100); | ||
219 | + list.add(form3); | ||
220 | + | ||
221 | + Form3 form = new Form3(); | ||
222 | + form.setName("联盟校"); | ||
223 | + List<Student> students = studentService.selectBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | ||
224 | + form.setMaxScore(studentService.selectMaxScore(analyse.getId(),getLearnReqVo.getSchoolName())); | ||
225 | + form.setAverage(studentService.selectAvgScore(analyse.getId(),getLearnReqVo.getSchoolName())); | ||
226 | + form.setMinScore(studentService.selectMinScore(analyse.getId(),getLearnReqVo.getSchoolName())); | ||
227 | + int a1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.85,analyse.getMaxScore()+1); | ||
228 | + form.setApercent(a1 / new Double(students.size()) * 100); | ||
229 | + int b1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.7,analyse.getMaxScore()*0.85); | ||
230 | + form.setBpercent(b1 / new Double(students.size()) * 100); | ||
231 | + int c1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0.6,analyse.getMaxScore()*0.7); | ||
232 | + form.setCpercent(c1 / new Double(students.size()) * 100); | ||
233 | + int d1 = studentService.selectCountByScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyse.getMaxScore()*0,analyse.getMaxScore()*0.6); | ||
234 | + form.setDpercent(d1 / new Double(students.size()) * 100); | ||
235 | + list.add(form); | ||
236 | + return list ; | ||
237 | + } | ||
238 | + | ||
239 | + @ApiOperation("getForm2_2_2") | ||
240 | + @RequestMapping(value = "getForm2_2_2", method = RequestMethod.POST) | ||
241 | + public List<Form4> getForm2_2_2(@RequestBody GetLearnReqVo getLearnReqVo){ | ||
242 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | ||
243 | + List<Form4> list = new ArrayList<>(); | ||
244 | + Form4 form4 = new Form4(); | ||
245 | + form4.setName("联盟校"); | ||
246 | + form4.setModeNumber(studentService.selectModeNumber(analyse.getId(),null)); | ||
247 | + form4.setMedianNumber(studentService.selectMedian(analyse.getId(),null)); | ||
248 | + form4.setStdev(studentService.selectStdev(analyse.getId(),null)); | ||
249 | + form4.setAvgNumber(studentService.selectAvgScore(analyse.getId(),null)); | ||
250 | + list.add(form4); | ||
251 | + Form4 form = new Form4(); | ||
252 | + form.setName(getLearnReqVo.getSchoolName()); | ||
253 | + form.setModeNumber(studentService.selectModeNumber(analyse.getId(),getLearnReqVo.getSchoolName())); | ||
254 | + form.setMedianNumber(studentService.selectMedian(analyse.getId(),getLearnReqVo.getSchoolName())); | ||
255 | + form.setStdev(studentService.selectStdev(analyse.getId(),getLearnReqVo.getSchoolName())); | ||
256 | + form.setAvgNumber(studentService.selectAvgScore(analyse.getId(),getLearnReqVo.getSchoolName())); | ||
257 | + list.add(form); | ||
258 | + return list; | ||
259 | + } | ||
260 | + | ||
261 | + @ApiOperation("getForm2_2_3") | ||
262 | + @RequestMapping(value = "getForm2_2_3", method = RequestMethod.POST) | ||
263 | + public List<From5> getForm2_2_3(@RequestBody GetLearnReqVo getLearnReqVo){ | ||
264 | + List<From5> list = new ArrayList<>(); | ||
265 | + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId()); | ||
266 | + List<Student> allStudents = studentService.selectBySchoolName(analyse.getId(),null); | ||
267 | + int allNumber = (int) Math.floor(allStudents.size()*0.27) ; | ||
268 | + List<String> allHighStudent = new ArrayList<>(); | ||
269 | + List<String> allLowStudent = new ArrayList<>(); | ||
270 | + for (int i = 0; i < allNumber ; i++) { | ||
271 | + allHighStudent.add(allStudents.get(i).getStudentNumber()); | ||
272 | + } | ||
273 | + for(int i =allStudents.size()-allNumber ; i < allStudents.size() ; i++){ | ||
274 | + allLowStudent.add(allStudents.get(i).getStudentNumber()); | ||
275 | + } | ||
276 | + List<Student> students = studentService.selectBySchoolName(analyse.getId(),getLearnReqVo.getSchoolName()); | ||
277 | + int number = (int) Math.floor(students.size()*0.27) ; | ||
278 | + List<String> highStudent = new ArrayList<>(); | ||
279 | + List<String> lowStudent = new ArrayList<>(); | ||
280 | + for (int i = 0; i < number ; i++) { | ||
281 | + highStudent.add(students.get(i).getStudentNumber()); | ||
282 | + } | ||
283 | + for(int i =students.size()-number ; i < students.size() ; i++){ | ||
284 | + lowStudent.add(students.get(i).getStudentNumber()); | ||
285 | + } | ||
286 | + List<AnalyseDetail> analyseDetails = analyseDetailService.selectByAnalyseId(analyse.getId()); | ||
287 | + for(AnalyseDetail analyseDetail : analyseDetails){ | ||
288 | + From5 from5 = new From5(); | ||
289 | + Double allSumScore = studentDetailService.selectSumScore(analyse.getId(),null,analyseDetail.getQuestionNumber()); | ||
290 | + Double schoolSumScore = studentDetailService.selectSumScore(analyse.getId(),getLearnReqVo.getSchoolName(),analyseDetail.getQuestionNumber()); | ||
291 | + from5.setExamNumber(analyseDetail.getQuestionNumber()); | ||
292 | + from5.setScore(analyseDetail.getScore()); | ||
293 | + from5.setAllRate(allSumScore/new Double(allStudents.size()) / analyseDetail.getScore()); | ||
294 | + from5.setSchoolRate(schoolSumScore/new Double(students.size()) / analyseDetail.getScore()); | ||
295 | + from5.setAllAvg(allSumScore / new Double(allStudents.size())); | ||
296 | + from5.setSchoolAvg(schoolSumScore / new Double(students.size())); | ||
297 | + int allHigh = studentDetailService.selectTrueByExamNumber(analyse.getId(),null ,analyseDetail.getQuestionNumber(),allHighStudent,analyseDetail.getScore()); | ||
298 | + int allLow = studentDetailService.selectTrueByExamNumber(analyse.getId(),null ,analyseDetail.getQuestionNumber(),allLowStudent,analyseDetail.getScore()); | ||
299 | + int high = studentDetailService.selectTrueByExamNumber(analyse.getId(),getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),highStudent,analyseDetail.getScore()); | ||
300 | + int low = studentDetailService.selectTrueByExamNumber(analyse.getId(),getLearnReqVo.getSchoolName() ,analyseDetail.getQuestionNumber(),lowStudent,analyseDetail.getScore()); | ||
301 | + from5.setAllDist(new Double(allHigh-allLow)/new Double(allNumber)); | ||
302 | + from5.setSchoolDist(new Double(high-low)/new Double(number)); | ||
303 | + list.add(from5); | ||
304 | + } | ||
305 | + return list; | ||
306 | + } | ||
125 | } | 307 | } |
src/main/java/com/jevon/mapper/AnalyseDetailMapper.java
@@ -12,4 +12,6 @@ import java.util.List; | @@ -12,4 +12,6 @@ import java.util.List; | ||
12 | public interface AnalyseDetailMapper { | 12 | public interface AnalyseDetailMapper { |
13 | 13 | ||
14 | int insertBatch(List<AnalyseDetail> list); | 14 | int insertBatch(List<AnalyseDetail> list); |
15 | + | ||
16 | + List<AnalyseDetail> selectByAnalyseId(int analyseId); | ||
15 | } | 17 | } |
src/main/java/com/jevon/mapper/StudentDetailMapper.java
@@ -12,4 +12,8 @@ import java.util.List; | @@ -12,4 +12,8 @@ import java.util.List; | ||
12 | public interface StudentDetailMapper { | 12 | public interface StudentDetailMapper { |
13 | 13 | ||
14 | int insertBatch(List<StudentDetail> list); | 14 | int insertBatch(List<StudentDetail> list); |
15 | + | ||
16 | + Double selectSumScore(StudentDetail studentDetail); | ||
17 | + | ||
18 | + int selectTrueByExamNumber(StudentDetail studentDetail); | ||
15 | } | 19 | } |
src/main/java/com/jevon/mapper/StudentMapper.java
@@ -13,7 +13,23 @@ public interface StudentMapper { | @@ -13,7 +13,23 @@ public interface StudentMapper { | ||
13 | 13 | ||
14 | int insertBatch(List<Student> list); | 14 | int insertBatch(List<Student> list); |
15 | 15 | ||
16 | - List<Student> selectBySchoolName(Student student); | 16 | + List<Student> selectByStudent(Student student); |
17 | 17 | ||
18 | int selectCountByScore(Student student); | 18 | int selectCountByScore(Student student); |
19 | + | ||
20 | + List<String> selectClassNameBySchool(Student student); | ||
21 | + | ||
22 | + //最高分 | ||
23 | + Double selectMaxScore(Student student); | ||
24 | + //最低分 | ||
25 | + Double selectMinScore(Student student); | ||
26 | + //平均分 | ||
27 | + Double selectAvgScore(Student student); | ||
28 | + //众数 | ||
29 | + Double selectModeNumber(Student student); | ||
30 | + //中位数 | ||
31 | + Double selectMedian(Student student); | ||
32 | + //标准差 | ||
33 | + Double selectStdev(Student student); | ||
34 | + | ||
19 | } | 35 | } |
src/main/java/com/jevon/model/Analyse.java
@@ -14,7 +14,7 @@ public class Analyse { | @@ -14,7 +14,7 @@ public class Analyse { | ||
14 | private String examTime ; | 14 | private String examTime ; |
15 | private String courseName ; | 15 | private String courseName ; |
16 | private Date createTime ; | 16 | private Date createTime ; |
17 | - private Float maxScore ; | 17 | + private Double maxScore ; |
18 | 18 | ||
19 | public int getId() { | 19 | public int getId() { |
20 | return id; | 20 | return id; |
@@ -56,11 +56,11 @@ public class Analyse { | @@ -56,11 +56,11 @@ public class Analyse { | ||
56 | this.createTime = createTime; | 56 | this.createTime = createTime; |
57 | } | 57 | } |
58 | 58 | ||
59 | - public Float getMaxScore() { | 59 | + public Double getMaxScore() { |
60 | return maxScore; | 60 | return maxScore; |
61 | } | 61 | } |
62 | 62 | ||
63 | - public void setMaxScore(Float maxScore) { | 63 | + public void setMaxScore(Double maxScore) { |
64 | this.maxScore = maxScore; | 64 | this.maxScore = maxScore; |
65 | } | 65 | } |
66 | } | 66 | } |
src/main/java/com/jevon/model/AnalyseDetail.java
@@ -14,7 +14,7 @@ public class AnalyseDetail { | @@ -14,7 +14,7 @@ public class AnalyseDetail { | ||
14 | private String questionNumber ; | 14 | private String questionNumber ; |
15 | private String questionType ; | 15 | private String questionType ; |
16 | private int difficult ; | 16 | private int difficult ; |
17 | - private float score ; | 17 | + private Double score ; |
18 | private Date createTime ; | 18 | private Date createTime ; |
19 | 19 | ||
20 | public int getId() { | 20 | public int getId() { |
@@ -49,11 +49,11 @@ public class AnalyseDetail { | @@ -49,11 +49,11 @@ public class AnalyseDetail { | ||
49 | this.difficult = difficult; | 49 | this.difficult = difficult; |
50 | } | 50 | } |
51 | 51 | ||
52 | - public float getScore() { | 52 | + public Double getScore() { |
53 | return score; | 53 | return score; |
54 | } | 54 | } |
55 | 55 | ||
56 | - public void setScore(float score) { | 56 | + public void setScore(Double score) { |
57 | this.score = score; | 57 | this.score = score; |
58 | } | 58 | } |
59 | 59 |
src/main/java/com/jevon/model/StudentDetail.java
@@ -3,6 +3,7 @@ package com.jevon.model; | @@ -3,6 +3,7 @@ package com.jevon.model; | ||
3 | import com.jevon.vo.excel.ScoreExcelVo; | 3 | import com.jevon.vo.excel.ScoreExcelVo; |
4 | 4 | ||
5 | import java.util.Date; | 5 | import java.util.Date; |
6 | +import java.util.List; | ||
6 | 7 | ||
7 | /** | 8 | /** |
8 | * @author chen | 9 | * @author chen |
@@ -22,6 +23,9 @@ public class StudentDetail { | @@ -22,6 +23,9 @@ public class StudentDetail { | ||
22 | private float score ; | 23 | private float score ; |
23 | private Date createTime ; | 24 | private Date createTime ; |
24 | 25 | ||
26 | + //查询用 高分段 低分段学生考号 | ||
27 | + private List<String> studentNumbers ; | ||
28 | + | ||
25 | public StudentDetail(ScoreExcelVo scoreExcelVo) { | 29 | public StudentDetail(ScoreExcelVo scoreExcelVo) { |
26 | this.schoolName = scoreExcelVo.getSchoolName(); | 30 | this.schoolName = scoreExcelVo.getSchoolName(); |
27 | this.className = scoreExcelVo.getClassName(); | 31 | this.className = scoreExcelVo.getClassName(); |
@@ -29,6 +33,9 @@ public class StudentDetail { | @@ -29,6 +33,9 @@ public class StudentDetail { | ||
29 | this.studentNumber = scoreExcelVo.getStudentNumber(); | 33 | this.studentNumber = scoreExcelVo.getStudentNumber(); |
30 | } | 34 | } |
31 | 35 | ||
36 | + public StudentDetail() { | ||
37 | + } | ||
38 | + | ||
32 | public int getId() { | 39 | public int getId() { |
33 | return id; | 40 | return id; |
34 | } | 41 | } |
@@ -108,4 +115,12 @@ public class StudentDetail { | @@ -108,4 +115,12 @@ public class StudentDetail { | ||
108 | public void setCreateTime(Date createTime) { | 115 | public void setCreateTime(Date createTime) { |
109 | this.createTime = createTime; | 116 | this.createTime = createTime; |
110 | } | 117 | } |
118 | + | ||
119 | + public List<String> getStudentNumbers() { | ||
120 | + return studentNumbers; | ||
121 | + } | ||
122 | + | ||
123 | + public void setStudentNumbers(List<String> studentNumbers) { | ||
124 | + this.studentNumbers = studentNumbers; | ||
125 | + } | ||
111 | } | 126 | } |
src/main/java/com/jevon/service/AnalyseDetailService.java
src/main/java/com/jevon/service/StudentDetailService.java
@@ -13,4 +13,8 @@ public interface StudentDetailService { | @@ -13,4 +13,8 @@ public interface StudentDetailService { | ||
13 | 13 | ||
14 | int insertBatch(List<StudentDetail> list); | 14 | int insertBatch(List<StudentDetail> list); |
15 | 15 | ||
16 | + Double selectSumScore(int analyseId , String schoolName , String examNumber); | ||
17 | + | ||
18 | + int selectTrueByExamNumber(int analyseId , String schoolName , String examNumber , List<String> studentNumbers ,Double score); | ||
19 | + | ||
16 | } | 20 | } |
src/main/java/com/jevon/service/StudentService.java
@@ -15,6 +15,23 @@ public interface StudentService { | @@ -15,6 +15,23 @@ public interface StudentService { | ||
15 | 15 | ||
16 | List<Student> selectBySchoolName(int analyseId , String schoolName); | 16 | List<Student> selectBySchoolName(int analyseId , String schoolName); |
17 | 17 | ||
18 | + List<Student> selectByClassName(int analyseId , String schoolName ,String className); | ||
19 | + | ||
18 | int selectCountByScore(int analyseId , String schoolName , double begin , double end); | 20 | int selectCountByScore(int analyseId , String schoolName , double begin , double end); |
19 | 21 | ||
22 | + int selectCountBySchoolScore(int analyseId , String schoolName ,String className , double begin , double end); | ||
23 | + | ||
24 | + List<String> selectClassNameBySchool(int analyseId , String schoolName); | ||
25 | + | ||
26 | + Double selectMaxScore(int analyseId , String schoolName); | ||
27 | + | ||
28 | + Double selectMinScore(int analyseId , String schoolName); | ||
29 | + | ||
30 | + Double selectAvgScore(int analyseId , String schoolName); | ||
31 | + //众数 | ||
32 | + Double selectModeNumber(int analyseId , String schoolName); | ||
33 | + //中位数 | ||
34 | + Double selectMedian(int analyseId , String schoolName); | ||
35 | + //标准差 | ||
36 | + Double selectStdev(int analyseId , String schoolName); | ||
20 | } | 37 | } |
src/main/java/com/jevon/service/impl/AnalyseDetailServiceImpl.java
@@ -35,4 +35,9 @@ public class AnalyseDetailServiceImpl implements AnalyseDetailService { | @@ -35,4 +35,9 @@ public class AnalyseDetailServiceImpl implements AnalyseDetailService { | ||
35 | analyseDetailMapper.insertBatch(result); | 35 | analyseDetailMapper.insertBatch(result); |
36 | return 1 ; | 36 | return 1 ; |
37 | } | 37 | } |
38 | + | ||
39 | + @Override | ||
40 | + public List<AnalyseDetail> selectByAnalyseId(int analyseId) { | ||
41 | + return analyseDetailMapper.selectByAnalyseId(analyseId); | ||
42 | + } | ||
38 | } | 43 | } |
src/main/java/com/jevon/service/impl/StudentDetailServiceImpl.java
@@ -35,4 +35,24 @@ public class StudentDetailServiceImpl implements StudentDetailService { | @@ -35,4 +35,24 @@ public class StudentDetailServiceImpl implements StudentDetailService { | ||
35 | studentDetailMapper.insertBatch(result); | 35 | studentDetailMapper.insertBatch(result); |
36 | return 1 ; | 36 | return 1 ; |
37 | } | 37 | } |
38 | + | ||
39 | + @Override | ||
40 | + public Double selectSumScore(int analyseId, String schoolName, String examNumber) { | ||
41 | + StudentDetail studentDetail = new StudentDetail(); | ||
42 | + studentDetail.setAnalyseId(analyseId); | ||
43 | + studentDetail.setSchoolName(schoolName); | ||
44 | + studentDetail.setExamNumber(examNumber); | ||
45 | + return studentDetailMapper.selectSumScore(studentDetail); | ||
46 | + } | ||
47 | + | ||
48 | + @Override | ||
49 | + public int selectTrueByExamNumber(int analyseId, String schoolName, String examNumber, List<String> studentNumbers , Double score) { | ||
50 | + StudentDetail studentDetail = new StudentDetail(); | ||
51 | + studentDetail.setAnalyseId(analyseId); | ||
52 | + studentDetail.setSchoolName(schoolName); | ||
53 | + studentDetail.setExamNumber(examNumber); | ||
54 | + studentDetail.setScore(new Float(score)); | ||
55 | + studentDetail.setStudentNumbers(studentNumbers); | ||
56 | + return studentDetailMapper.selectTrueByExamNumber(studentDetail); | ||
57 | + } | ||
38 | } | 58 | } |
src/main/java/com/jevon/service/impl/StudentServiceImpl.java
@@ -41,7 +41,16 @@ public class StudentServiceImpl implements StudentService { | @@ -41,7 +41,16 @@ public class StudentServiceImpl implements StudentService { | ||
41 | Student student = new Student(); | 41 | Student student = new Student(); |
42 | student.setAnalyseId(analyseId); | 42 | student.setAnalyseId(analyseId); |
43 | student.setSchoolName(schoolName); | 43 | student.setSchoolName(schoolName); |
44 | - return studentMapper.selectBySchoolName(student); | 44 | + return studentMapper.selectByStudent(student); |
45 | + } | ||
46 | + | ||
47 | + @Override | ||
48 | + public List<Student> selectByClassName(int analyseId, String schoolName, String className) { | ||
49 | + Student student = new Student(); | ||
50 | + student.setAnalyseId(analyseId); | ||
51 | + student.setSchoolName(schoolName); | ||
52 | + student.setClassName(className); | ||
53 | + return studentMapper.selectByStudent(student); | ||
45 | } | 54 | } |
46 | 55 | ||
47 | @Override | 56 | @Override |
@@ -53,4 +62,70 @@ public class StudentServiceImpl implements StudentService { | @@ -53,4 +62,70 @@ public class StudentServiceImpl implements StudentService { | ||
53 | student.setEnd(end); | 62 | student.setEnd(end); |
54 | return studentMapper.selectCountByScore(student); | 63 | return studentMapper.selectCountByScore(student); |
55 | } | 64 | } |
65 | + | ||
66 | + @Override | ||
67 | + public int selectCountBySchoolScore(int analyseId, String schoolName, String className, double begin, double end) { | ||
68 | + Student student = new Student(); | ||
69 | + student.setAnalyseId(analyseId); | ||
70 | + student.setSchoolName(schoolName); | ||
71 | + student.setClassName(className); | ||
72 | + student.setBegin(begin); | ||
73 | + student.setEnd(end); | ||
74 | + return studentMapper.selectCountByScore(student); } | ||
75 | + | ||
76 | + @Override | ||
77 | + public List<String> selectClassNameBySchool(int analyseId, String schoolName) { | ||
78 | + Student student = new Student(); | ||
79 | + student.setAnalyseId(analyseId); | ||
80 | + student.setSchoolName(schoolName); | ||
81 | + return studentMapper.selectClassNameBySchool(student); | ||
82 | + } | ||
83 | + | ||
84 | + @Override | ||
85 | + public Double selectMaxScore(int analyseId, String schoolName) { | ||
86 | + Student student = new Student(); | ||
87 | + student.setAnalyseId(analyseId); | ||
88 | + student.setSchoolName(schoolName); | ||
89 | + return studentMapper.selectMaxScore(student); | ||
90 | + } | ||
91 | + | ||
92 | + @Override | ||
93 | + public Double selectMinScore(int analyseId, String schoolName) { | ||
94 | + Student student = new Student(); | ||
95 | + student.setAnalyseId(analyseId); | ||
96 | + student.setSchoolName(schoolName); | ||
97 | + return studentMapper.selectMinScore(student); | ||
98 | + } | ||
99 | + | ||
100 | + @Override | ||
101 | + public Double selectAvgScore(int analyseId, String schoolName) { | ||
102 | + Student student = new Student(); | ||
103 | + student.setAnalyseId(analyseId); | ||
104 | + student.setSchoolName(schoolName); | ||
105 | + return studentMapper.selectAvgScore(student); | ||
106 | + } | ||
107 | + | ||
108 | + @Override | ||
109 | + public Double selectModeNumber(int analyseId, String schoolName) { | ||
110 | + Student student = new Student(); | ||
111 | + student.setAnalyseId(analyseId); | ||
112 | + student.setSchoolName(schoolName); | ||
113 | + return studentMapper.selectModeNumber(student); | ||
114 | + } | ||
115 | + | ||
116 | + @Override | ||
117 | + public Double selectMedian(int analyseId, String schoolName) { | ||
118 | + Student student = new Student(); | ||
119 | + student.setAnalyseId(analyseId); | ||
120 | + student.setSchoolName(schoolName); | ||
121 | + return studentMapper.selectMedian(student); | ||
122 | + } | ||
123 | + | ||
124 | + @Override | ||
125 | + public Double selectStdev(int analyseId, String schoolName) { | ||
126 | + Student student = new Student(); | ||
127 | + student.setAnalyseId(analyseId); | ||
128 | + student.setSchoolName(schoolName); | ||
129 | + return studentMapper.selectStdev(student); | ||
130 | + } | ||
56 | } | 131 | } |
@@ -0,0 +1,82 @@ | @@ -0,0 +1,82 @@ | ||
1 | +package com.jevon.wordDTO.second; | ||
2 | + | ||
3 | +/** | ||
4 | + * @author chen | ||
5 | + * @version 1.0 | ||
6 | + * @date 2019/10/21 0021 9:03 | ||
7 | + */ | ||
8 | +public class Form3 { | ||
9 | + | ||
10 | + private String name ; | ||
11 | + private Double maxScore ; | ||
12 | + private Double average ; | ||
13 | + private Double minScore ; | ||
14 | + private Double apercent ; | ||
15 | + private Double bpercent ; | ||
16 | + private Double cpercent ; | ||
17 | + private Double dpercent ; | ||
18 | + | ||
19 | + public String getName() { | ||
20 | + return name; | ||
21 | + } | ||
22 | + | ||
23 | + public void setName(String name) { | ||
24 | + this.name = name; | ||
25 | + } | ||
26 | + | ||
27 | + public Double getMaxScore() { | ||
28 | + return maxScore; | ||
29 | + } | ||
30 | + | ||
31 | + public void setMaxScore(Double maxScore) { | ||
32 | + this.maxScore = maxScore; | ||
33 | + } | ||
34 | + | ||
35 | + public Double getAverage() { | ||
36 | + return average; | ||
37 | + } | ||
38 | + | ||
39 | + public void setAverage(Double average) { | ||
40 | + this.average = average; | ||
41 | + } | ||
42 | + | ||
43 | + public Double getMinScore() { | ||
44 | + return minScore; | ||
45 | + } | ||
46 | + | ||
47 | + public void setMinScore(Double minScore) { | ||
48 | + this.minScore = minScore; | ||
49 | + } | ||
50 | + | ||
51 | + public Double getApercent() { | ||
52 | + return apercent; | ||
53 | + } | ||
54 | + | ||
55 | + public void setApercent(Double apercent) { | ||
56 | + this.apercent = apercent; | ||
57 | + } | ||
58 | + | ||
59 | + public Double getBpercent() { | ||
60 | + return bpercent; | ||
61 | + } | ||
62 | + | ||
63 | + public void setBpercent(Double bpercent) { | ||
64 | + this.bpercent = bpercent; | ||
65 | + } | ||
66 | + | ||
67 | + public Double getCpercent() { | ||
68 | + return cpercent; | ||
69 | + } | ||
70 | + | ||
71 | + public void setCpercent(Double cpercent) { | ||
72 | + this.cpercent = cpercent; | ||
73 | + } | ||
74 | + | ||
75 | + public Double getDpercent() { | ||
76 | + return dpercent; | ||
77 | + } | ||
78 | + | ||
79 | + public void setDpercent(Double dpercent) { | ||
80 | + this.dpercent = dpercent; | ||
81 | + } | ||
82 | +} |
@@ -0,0 +1,55 @@ | @@ -0,0 +1,55 @@ | ||
1 | +package com.jevon.wordDTO.second; | ||
2 | + | ||
3 | +/** | ||
4 | + * @author chen | ||
5 | + * @version 1.0 | ||
6 | + * @date 2019/10/21 0021 9:51 | ||
7 | + */ | ||
8 | +public class Form4 { | ||
9 | + | ||
10 | + private String name ; | ||
11 | + private Double modeNumber ; | ||
12 | + private Double medianNumber ; | ||
13 | + private Double stdev ; | ||
14 | + private Double avgNumber ; | ||
15 | + | ||
16 | + public String getName() { | ||
17 | + return name; | ||
18 | + } | ||
19 | + | ||
20 | + public void setName(String name) { | ||
21 | + this.name = name; | ||
22 | + } | ||
23 | + | ||
24 | + public Double getModeNumber() { | ||
25 | + return modeNumber; | ||
26 | + } | ||
27 | + | ||
28 | + public void setModeNumber(Double modeNumber) { | ||
29 | + this.modeNumber = modeNumber; | ||
30 | + } | ||
31 | + | ||
32 | + public Double getMedianNumber() { | ||
33 | + return medianNumber; | ||
34 | + } | ||
35 | + | ||
36 | + public void setMedianNumber(Double medianNumber) { | ||
37 | + this.medianNumber = medianNumber; | ||
38 | + } | ||
39 | + | ||
40 | + public Double getStdev() { | ||
41 | + return stdev; | ||
42 | + } | ||
43 | + | ||
44 | + public void setStdev(Double stdev) { | ||
45 | + this.stdev = stdev; | ||
46 | + } | ||
47 | + | ||
48 | + public Double getAvgNumber() { | ||
49 | + return avgNumber; | ||
50 | + } | ||
51 | + | ||
52 | + public void setAvgNumber(Double avgNumber) { | ||
53 | + this.avgNumber = avgNumber; | ||
54 | + } | ||
55 | +} |
@@ -0,0 +1,82 @@ | @@ -0,0 +1,82 @@ | ||
1 | +package com.jevon.wordDTO.second; | ||
2 | + | ||
3 | +/** | ||
4 | + * @author chen | ||
5 | + * @version 1.0 | ||
6 | + * @date 2019/10/21 0021 9:59 | ||
7 | + */ | ||
8 | +public class From5 { | ||
9 | + | ||
10 | + private String examNumber ; | ||
11 | + private Double score ; | ||
12 | + private Double allRate ; | ||
13 | + private Double schoolRate ; | ||
14 | + private Double allAvg ; | ||
15 | + private Double schoolAvg ; | ||
16 | + private Double allDist ; | ||
17 | + private Double schoolDist ; | ||
18 | + | ||
19 | + public String getExamNumber() { | ||
20 | + return examNumber; | ||
21 | + } | ||
22 | + | ||
23 | + public void setExamNumber(String examNumber) { | ||
24 | + this.examNumber = examNumber; | ||
25 | + } | ||
26 | + | ||
27 | + public Double getScore() { | ||
28 | + return score; | ||
29 | + } | ||
30 | + | ||
31 | + public void setScore(Double score) { | ||
32 | + this.score = score; | ||
33 | + } | ||
34 | + | ||
35 | + public Double getAllRate() { | ||
36 | + return allRate; | ||
37 | + } | ||
38 | + | ||
39 | + public void setAllRate(Double allRate) { | ||
40 | + this.allRate = allRate; | ||
41 | + } | ||
42 | + | ||
43 | + public Double getSchoolRate() { | ||
44 | + return schoolRate; | ||
45 | + } | ||
46 | + | ||
47 | + public void setSchoolRate(Double schoolRate) { | ||
48 | + this.schoolRate = schoolRate; | ||
49 | + } | ||
50 | + | ||
51 | + public Double getAllAvg() { | ||
52 | + return allAvg; | ||
53 | + } | ||
54 | + | ||
55 | + public void setAllAvg(Double allAvg) { | ||
56 | + this.allAvg = allAvg; | ||
57 | + } | ||
58 | + | ||
59 | + public Double getSchoolAvg() { | ||
60 | + return schoolAvg; | ||
61 | + } | ||
62 | + | ||
63 | + public void setSchoolAvg(Double schoolAvg) { | ||
64 | + this.schoolAvg = schoolAvg; | ||
65 | + } | ||
66 | + | ||
67 | + public Double getAllDist() { | ||
68 | + return allDist; | ||
69 | + } | ||
70 | + | ||
71 | + public void setAllDist(Double allDist) { | ||
72 | + this.allDist = allDist; | ||
73 | + } | ||
74 | + | ||
75 | + public Double getSchoolDist() { | ||
76 | + return schoolDist; | ||
77 | + } | ||
78 | + | ||
79 | + public void setSchoolDist(Double schoolDist) { | ||
80 | + this.schoolDist = schoolDist; | ||
81 | + } | ||
82 | +} |
@@ -0,0 +1,28 @@ | @@ -0,0 +1,28 @@ | ||
1 | +package com.jevon.wordDTO.second; | ||
2 | + | ||
3 | +/** | ||
4 | + * @author chen | ||
5 | + * @version 1.0 | ||
6 | + * @date 2019/10/21 0021 8:34 | ||
7 | + */ | ||
8 | +public class Table1 { | ||
9 | + | ||
10 | + private String score ; | ||
11 | + private int number ; | ||
12 | + | ||
13 | + public String getScore() { | ||
14 | + return score; | ||
15 | + } | ||
16 | + | ||
17 | + public void setScore(String score) { | ||
18 | + this.score = score; | ||
19 | + } | ||
20 | + | ||
21 | + public int getNumber() { | ||
22 | + return number; | ||
23 | + } | ||
24 | + | ||
25 | + public void setNumber(int number) { | ||
26 | + this.number = number; | ||
27 | + } | ||
28 | +} |
src/main/resources/mapping/AnalyseDetailMapper.xml
@@ -18,4 +18,8 @@ | @@ -18,4 +18,8 @@ | ||
18 | (#{emp.analyseId},#{emp.questionNumber},#{emp.questionType},#{emp.difficult},#{emp.score},#{emp.createTime}) | 18 | (#{emp.analyseId},#{emp.questionNumber},#{emp.questionType},#{emp.difficult},#{emp.score},#{emp.createTime}) |
19 | </foreach> | 19 | </foreach> |
20 | </insert> | 20 | </insert> |
21 | + | ||
22 | + <select id="selectByAnalyseId" parameterType="java.lang.Integer" resultMap="BaseResultMap"> | ||
23 | + select * from sz_learn_analyse_detail where analyse_id = #{analyseId} order by id | ||
24 | + </select> | ||
21 | </mapper> | 25 | </mapper> |
22 | \ No newline at end of file | 26 | \ No newline at end of file |
src/main/resources/mapping/StudentDetailMapper.xml
@@ -23,4 +23,34 @@ | @@ -23,4 +23,34 @@ | ||
23 | #{emp.studentNumber},#{emp.analyseId},#{emp.examNumber},#{emp.score},#{emp.createTime}) | 23 | #{emp.studentNumber},#{emp.analyseId},#{emp.examNumber},#{emp.score},#{emp.createTime}) |
24 | </foreach> | 24 | </foreach> |
25 | </insert> | 25 | </insert> |
26 | + | ||
27 | + <select id="selectSumScore" parameterType="com.jevon.model.StudentDetail" resultType="java.lang.Double"> | ||
28 | + SELECT sum(score) FROM sz_learn_student_detail where 1=1 | ||
29 | + <if test="analyseId != 0"> | ||
30 | + and analyse_id = #{analyseId} | ||
31 | + </if> | ||
32 | + <if test="schoolName != null"> | ||
33 | + and school_name = #{schoolName} | ||
34 | + </if> | ||
35 | + <if test="examNumber != null"> | ||
36 | + and exam_number = #{examNumber} | ||
37 | + </if> | ||
38 | + </select> | ||
39 | + | ||
40 | + <select id="selectTrueByExamNumber" parameterType="com.jevon.model.StudentDetail" resultType="java.lang.Integer"> | ||
41 | + select count(*) from sz_learn_student_detail where 1=1 | ||
42 | + <if test="analyseId != 0"> | ||
43 | + and analyse_id = #{analyseId} | ||
44 | + </if> | ||
45 | + <if test="schoolName != null"> | ||
46 | + and school_name = #{schoolName} | ||
47 | + </if> | ||
48 | + <if test="examNumber != null"> | ||
49 | + and exam_number = #{examNumber} | ||
50 | + </if> | ||
51 | + and score = #{score} and student_number in | ||
52 | + <foreach item="item" collection="studentNumbers" open="(" separator="," close=")"> | ||
53 | + #{item} | ||
54 | + </foreach> | ||
55 | + </select> | ||
26 | </mapper> | 56 | </mapper> |
27 | \ No newline at end of file | 57 | \ No newline at end of file |
src/main/resources/mapping/StudentMapper.xml
@@ -13,7 +13,7 @@ | @@ -13,7 +13,7 @@ | ||
13 | <result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> | 13 | <result column="create_time" property="createTime" jdbcType="TIMESTAMP" /> |
14 | </resultMap> | 14 | </resultMap> |
15 | 15 | ||
16 | - <insert id="insertBatch" parameterType="java.util.List"> | 16 | + <insert id="insertBatch" parameterType="java.util.List"> |
17 | insert into sz_learn_student (school_name, class_name,student_name, | 17 | insert into sz_learn_student (school_name, class_name,student_name, |
18 | student_number,analyse_id,score,create_time) | 18 | student_number,analyse_id,score,create_time) |
19 | values | 19 | values |
@@ -21,9 +21,9 @@ | @@ -21,9 +21,9 @@ | ||
21 | (#{emp.schoolName},#{emp.className},#{emp.studentName}, | 21 | (#{emp.schoolName},#{emp.className},#{emp.studentName}, |
22 | #{emp.studentNumber},#{emp.analyseId},#{emp.score},#{emp.createTime}) | 22 | #{emp.studentNumber},#{emp.analyseId},#{emp.score},#{emp.createTime}) |
23 | </foreach> | 23 | </foreach> |
24 | - </insert> | 24 | + </insert> |
25 | 25 | ||
26 | - <select id="selectBySchoolName" parameterType="com.jevon.model.Student" resultMap="BaseResultMap"> | 26 | + <select id="selectByStudent" parameterType="com.jevon.model.Student" resultMap="BaseResultMap"> |
27 | select * from sz_learn_student where 1=1 | 27 | select * from sz_learn_student where 1=1 |
28 | <if test="analyseId != 0"> | 28 | <if test="analyseId != 0"> |
29 | and analyse_id = #{analyseId} | 29 | and analyse_id = #{analyseId} |
@@ -31,11 +31,118 @@ | @@ -31,11 +31,118 @@ | ||
31 | <if test="schoolName != null"> | 31 | <if test="schoolName != null"> |
32 | and school_name = #{schoolName} | 32 | and school_name = #{schoolName} |
33 | </if> | 33 | </if> |
34 | + <if test="className != null"> | ||
35 | + and class_name = #{className} | ||
36 | + </if> | ||
34 | order by score desc | 37 | order by score desc |
35 | - </select> | 38 | + </select> |
39 | + | ||
40 | + <select id="selectCountByScore" parameterType="com.jevon.model.Student" resultType="java.lang.Integer"> | ||
41 | + select count(1) from sz_learn_student where 1=1 | ||
42 | + <if test="analyseId != 0"> | ||
43 | + and analyse_id = #{analyseId} | ||
44 | + </if> | ||
45 | + <if test="schoolName != null"> | ||
46 | + and school_name = #{schoolName} | ||
47 | + </if> | ||
48 | + <if test="className != null"> | ||
49 | + and class_name = #{className} | ||
50 | + </if> | ||
51 | + and score <![CDATA[ >= ]]> #{begin} and score <![CDATA[ < ]]> #{end} | ||
52 | + </select> | ||
53 | + | ||
54 | + <select id="selectClassNameBySchool" parameterType="com.jevon.model.Student" resultType="java.lang.String"> | ||
55 | + select DISTINCT(class_name) from sz_learn_student where 1=1 | ||
56 | + and analyse_id = #{analyseId} | ||
57 | + and school_name = #{schoolName} | ||
58 | + </select> | ||
59 | + | ||
60 | + <select id="selectMaxScore" parameterType="com.jevon.model.Student" resultType="java.lang.Double"> | ||
61 | + select max(score) from sz_learn_student where 1=1 | ||
62 | + <if test="analyseId != 0"> | ||
63 | + and analyse_id = #{analyseId} | ||
64 | + </if> | ||
65 | + <if test="schoolName != null"> | ||
66 | + and school_name = #{schoolName} | ||
67 | + </if> | ||
68 | + </select> | ||
69 | + | ||
70 | + <select id="selectMinScore" parameterType="com.jevon.model.Student" resultType="java.lang.Double"> | ||
71 | + select min(score) from sz_learn_student where 1=1 | ||
72 | + <if test="analyseId != 0"> | ||
73 | + and analyse_id = #{analyseId} | ||
74 | + </if> | ||
75 | + <if test="schoolName != null"> | ||
76 | + and school_name = #{schoolName} | ||
77 | + </if> | ||
78 | + </select> | ||
79 | + | ||
80 | + <select id="selectAvgScore" parameterType="com.jevon.model.Student" resultType="java.lang.Double"> | ||
81 | + select avg(score) from sz_learn_student where 1=1 | ||
82 | + <if test="analyseId != 0"> | ||
83 | + and analyse_id = #{analyseId} | ||
84 | + </if> | ||
85 | + <if test="schoolName != null"> | ||
86 | + and school_name = #{schoolName} | ||
87 | + </if> | ||
88 | + </select> | ||
89 | + | ||
90 | + <select id="selectModeNumber" parameterType="com.jevon.model.Student" resultType="java.lang.Double"> | ||
91 | + SELECT score FROM sz_learn_student | ||
92 | + WHERE 1=1 | ||
93 | + <if test="analyseId != 0"> | ||
94 | + and analyse_id = #{analyseId} | ||
95 | + </if> | ||
96 | + <if test="schoolName != null"> | ||
97 | + and school_name = #{schoolName} | ||
98 | + </if> | ||
99 | + GROUP BY score | ||
100 | + HAVING COUNT ( * ) >= ( | ||
101 | + SELECT MAX( cnt ) FROM | ||
102 | + ( | ||
103 | + SELECT COUNT ( * ) cnt FROM sz_learn_student WHERE 1=1 | ||
104 | + <if test="analyseId != 0"> | ||
105 | + and analyse_id = #{analyseId} | ||
106 | + </if> | ||
107 | + <if test="schoolName != null"> | ||
108 | + and school_name = #{schoolName} | ||
109 | + </if> | ||
110 | + GROUP BY score ) tmp | ||
111 | + ) | ||
112 | + </select> | ||
36 | 113 | ||
37 | - <select id="selectCountByScore" parameterType="com.jevon.model.Student" resultType="java.lang.Integer"> | ||
38 | - select count(1) from sz_learn_student where analyse_id = #{analyseId} and school_name = #{schoolName} | ||
39 | - and score <![CDATA[ >= ]]> #{begin} and score <![CDATA[ < ]]> #{end} | ||
40 | - </select> | 114 | + <select id="selectMedian" parameterType="com.jevon.model.Student" resultType="java.lang.Double"> |
115 | + SELECT | ||
116 | + avg(DISTINCT score) | ||
117 | + FROM ( | ||
118 | + select T1.score from sz_learn_student T1 , sz_learn_student T2 | ||
119 | + WHERE 1=1 | ||
120 | + <if test="analyseId != 0"> | ||
121 | + and T1.analyse_id = #{analyseId} | ||
122 | + </if> | ||
123 | + <if test="schoolName != null"> | ||
124 | + and T1.school_name = #{schoolName} | ||
125 | + </if> | ||
126 | + <if test="analyseId != 0"> | ||
127 | + and T2.analyse_id = #{analyseId} | ||
128 | + </if> | ||
129 | + <if test="schoolName != null"> | ||
130 | + and T2.school_name = #{schoolName} | ||
131 | + </if> | ||
132 | + GROUP BY | ||
133 | + T1.score | ||
134 | + HAVING | ||
135 | + sum(case when T2.score <![CDATA[ >= ]]> T1.score then 1 else 0 end) >= count(*)/2 | ||
136 | + and sum(case when T2.score <![CDATA[ <= ]]> T1.score then 1 else 0 end)>= count(*)/2) tmp | ||
137 | + </select> | ||
138 | + | ||
139 | + <select id="selectStdev" parameterType="com.jevon.model.Student" resultType="java.lang.Double"> | ||
140 | + select STDEV(score) from sz_learn_student where 1=1 | ||
141 | + <if test="analyseId != 0"> | ||
142 | + and analyse_id = #{analyseId} | ||
143 | + </if> | ||
144 | + <if test="schoolName != null"> | ||
145 | + and school_name = #{schoolName} | ||
146 | + </if> | ||
147 | + </select> | ||
41 | </mapper> | 148 | </mapper> |
42 | \ No newline at end of file | 149 | \ No newline at end of file |