Commit e9f47f909e29b1ed90a04a0d34523f36011bdf53
1 parent
96009ee8
优化个人成绩报表
Showing
7 changed files
with
116 additions
and
112 deletions
WebRoot/WEB-INF/jsp/sunvote/teacher/stduent_report.jsp
@@ -117,7 +117,7 @@ li { | @@ -117,7 +117,7 @@ li { | ||
117 | <script type=""> | 117 | <script type=""> |
118 | var URL = '<%=basePath%>${URL}'; | 118 | var URL = '<%=basePath%>${URL}'; |
119 | </script> | 119 | </script> |
120 | - <script src="../static/js/control1.js?a=4"></script> | 120 | + <script src="../static/js/control1.js?a=1"></script> |
121 | <!-- 日期框 --> | 121 | <!-- 日期框 --> |
122 | <script> | 122 | <script> |
123 | //lay('#version').html('-v'+ laydate.v); | 123 | //lay('#version').html('-v'+ laydate.v); |
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_report_1.jsp
@@ -118,7 +118,7 @@ | @@ -118,7 +118,7 @@ | ||
118 | href="report/student_report?studentid=${var.ID}&class_id=${info.CLASS_ID}">${var.NAME}</a> | 118 | href="report/student_report?studentid=${var.ID}&class_id=${info.CLASS_ID}">${var.NAME}</a> |
119 | </td> --%> | 119 | </td> --%> |
120 | <td class="center"><div style="width:150px;cursor:hand"><a | 120 | <td class="center"><div style="width:150px;cursor:hand"><a |
121 | - onclick="student('${info.CLASS_ID}','${var.ID}')">${var.NAME}</a></div> | 121 | + onclick="student('${info.CLASS_ID}','${var.STUDENT_ID}')">${var.NAME}</a></div> |
122 | </td> | 122 | </td> |
123 | <td class="center"><div style="width:150px;"><fmt:formatNumber type="number" | 123 | <td class="center"><div style="width:150px;"><fmt:formatNumber type="number" |
124 | value="${var.TOTALSCORE == 0 ? 0: (var.GETSCORE / var.TOTALSCORE * 100)}" | 124 | value="${var.TOTALSCORE == 0 ? 0: (var.GETSCORE / var.TOTALSCORE * 100)}" |
WebRoot/static/js/control1.js
@@ -96,11 +96,11 @@ | @@ -96,11 +96,11 @@ | ||
96 | function dataMethod(index,data){ | 96 | function dataMethod(index,data){ |
97 | console.log(data); | 97 | console.log(data); |
98 | //data0=[];data1=[];data2=[];data3=[]; | 98 | //data0=[];data1=[];data2=[];data3=[]; |
99 | - var GETSCORE = parseInt(data.data.studentList[index].GETSCORE); | ||
100 | - var TOTALSCORE = parseInt(data.data.TOTAL_SCORE); | 99 | + var GETSCORE = parseFloat(data.data.studentList[index].GETSCORE); |
100 | + var TOTALSCORE = parseFloat(data.data.TOTAL_SCORE); | ||
101 | var ratio=(GETSCORE/TOTALSCORE*100).toFixed(2); | 101 | var ratio=(GETSCORE/TOTALSCORE*100).toFixed(2); |
102 | - var class_avg= (parseInt(data.data.AVG_SCORE)/ parseInt(data.data.TOTAL_SCORE)*100).toFixed(2); | ||
103 | - var class_max=(parseInt(data.data.MAX_SCORE)/ parseInt(data.data.TOTAL_SCORE)*100).toFixed(2); | 102 | + var class_avg= (parseFloat(data.data.AVG_SCORE)/ parseFloat(data.data.TOTAL_SCORE)*100).toFixed(2); |
103 | + var class_max=(parseFloat(data.data.MAX_SCORE)/ parseFloat(data.data.TOTAL_SCORE)*100).toFixed(2); | ||
104 | 104 | ||
105 | var test_num=data.data.studentList[index].testList.length; | 105 | var test_num=data.data.studentList[index].testList.length; |
106 | var part_num=test_num; | 106 | var part_num=test_num; |
resources/mybatis1/sunvote/StudentTestMapper.xml
@@ -164,6 +164,47 @@ | @@ -164,6 +164,47 @@ | ||
164 | 164 | ||
165 | </select> | 165 | </select> |
166 | 166 | ||
167 | + | ||
168 | + <select id="reportClassListData" parameterType="pd" resultType="pd"> | ||
169 | + SELECT | ||
170 | + sv_student.ID, | ||
171 | + sv_student.`NAME` AS NAME, | ||
172 | + sv_testpaper.`NAME` AS TNAME, | ||
173 | + sv_studenttest.SCORE AS SCORE, | ||
174 | + sv_testpaper.TOTAL_SCORE AS TOTAL_SCORE, | ||
175 | + sv_testpaper.CREATE_DATE, | ||
176 | + sv_testpaper.AVG_SCORE AS AVG_SCORE, | ||
177 | + sv_testpaper.HIGHT_SCORE AS MAX_SCORE | ||
178 | + FROM | ||
179 | + sv_student | ||
180 | + LEFT JOIN sv_studenttest ON sv_student.ID = sv_studenttest.STUDENT_ID | ||
181 | + LEFT JOIN sv_testpaper ON sv_testpaper.TESTPAPER_ID = sv_studenttest.TEST_ID | ||
182 | + WHERE 1 = 1 | ||
183 | + <if test="CLASS_ID != null and CLASS_ID != ''"> | ||
184 | + AND sv_student.CLASS_ID = #{CLASS_ID} | ||
185 | + AND sv_testpaper.SCLASS_ID = #{CLASS_ID} | ||
186 | + </if> | ||
187 | + AND sv_testpaper.`NAME` IS NOT NULL | ||
188 | + <if test="TEACHER_ID != null and TEACHER_ID != ''"> | ||
189 | + and sv_testpaper.TEACHER_ID = #{TEACHER_ID} | ||
190 | + </if> | ||
191 | + <if test="TEST_TYPE != null and TEST_TYPE != ''"> | ||
192 | + and sv_testpaper.TEST_TYPE = #{TEST_TYPE} | ||
193 | + </if> | ||
194 | + <if test="START_DATE != null and START_DATE != ''"><!-- 关键词检索 --> | ||
195 | + and (CREATE_DATE > #{START_DATE}) | ||
196 | + </if> | ||
197 | + <if test="END_DATE != null and END_DATE != ''"><!-- 关键词检索 --> | ||
198 | + and (CREATE_DATE < #{END_DATE}) | ||
199 | + </if> | ||
200 | + <if test="SUBJECT_ID != null and SUBJECT_ID != ''"><!-- 关键词检索 --> | ||
201 | + and (sv_testpaper.SUBJECT_ID = #{SUBJECT_ID}) | ||
202 | + </if> | ||
203 | + ORDER BY | ||
204 | + sv_student.NUMBER, | ||
205 | + sv_testpaper.CREATE_DATE | ||
206 | + </select> | ||
207 | + | ||
167 | <select id="reportListDataCalc" parameterType="pd" resultType="pd"> | 208 | <select id="reportListDataCalc" parameterType="pd" resultType="pd"> |
168 | 209 | ||
169 | SELECT | 210 | SELECT |
src/com/fh/controller/sunvote/report/ReportController.java
@@ -94,13 +94,8 @@ public class ReportController extends BaseController { | @@ -94,13 +94,8 @@ public class ReportController extends BaseController { | ||
94 | info.put("CLASS_CODE", classPageData.getString("CLASS_CODE")); | 94 | info.put("CLASS_CODE", classPageData.getString("CLASS_CODE")); |
95 | info.put("CLASS_ID", classPageData.getString("ID")); | 95 | info.put("CLASS_ID", classPageData.getString("ID")); |
96 | pd.put("CLASS_ID", pd.get("CLASSID")); | 96 | pd.put("CLASS_ID", pd.get("CLASSID")); |
97 | - | ||
98 | // 2查询班级考试 | 97 | // 2查询班级考试 |
99 | pd.put("TEST_TYPE", "1"); | 98 | pd.put("TEST_TYPE", "1"); |
100 | -// List<PageData> testpaperList = testpaperService.listAll(pd); | ||
101 | -// mv.addObject("testpaperList", testpaperList); | ||
102 | -// info.put("testsize", testpaperList != null ? testpaperList.size() : 0); | ||
103 | - | ||
104 | // modify 根據班級查詢班級報表 | 99 | // modify 根據班級查詢班級報表 |
105 | List<PageData> reportData = v1Service.classReport(pd); | 100 | List<PageData> reportData = v1Service.classReport(pd); |
106 | List<PageData> testpaperList = new ArrayList(); | 101 | List<PageData> testpaperList = new ArrayList(); |
@@ -199,48 +194,6 @@ public class ReportController extends BaseController { | @@ -199,48 +194,6 @@ public class ReportController extends BaseController { | ||
199 | mv.addObject("testpaperList", testpaperList); | 194 | mv.addObject("testpaperList", testpaperList); |
200 | info.put("testsize", testpaperList != null ? testpaperList.size() : 0); | 195 | info.put("testsize", testpaperList != null ? testpaperList.size() : 0); |
201 | 196 | ||
202 | - /* | ||
203 | - List<PageData> studentList = studentService.listAllClass(pd); | ||
204 | - // 查询学生名单及人数 | ||
205 | - if(studentList != null && studentList.size() > 0){ | ||
206 | - for(PageData studentPageData : studentList){ | ||
207 | - studentPageData.put("STUDENT_ID", studentPageData.getString("ID")); | ||
208 | - List<PageData> studentTestList = studenttestService.listAll(studentPageData); | ||
209 | - for(PageData studentTestPageData :studentTestList){ | ||
210 | - String score = studentTestPageData.getString("SCORE"); | ||
211 | - if(!"0".equals(score)){ | ||
212 | - studentPageData.put(studentTestPageData.getString("TEST_ID"), studentTestPageData.getString("SCORE")); | ||
213 | - }else{ | ||
214 | - studentPageData.put(studentTestPageData.getString("TEST_ID"), "--"); | ||
215 | - } | ||
216 | - } | ||
217 | - int totalScore = 0 ; | ||
218 | - int getScore = 0 ; | ||
219 | - for(PageData testPaperPageData:testpaperList){ | ||
220 | - String totalScoreStr = testPaperPageData.getString("TOTAL_SCORE"); | ||
221 | - if(totalScoreStr != null){ | ||
222 | - try{ | ||
223 | - totalScore += Integer.parseInt(totalScoreStr); | ||
224 | - }catch(Exception ex){ | ||
225 | - logger.info(ex); | ||
226 | - } | ||
227 | - } | ||
228 | - String getScoreStr = studentPageData.getString(testPaperPageData.getString("TESTPAPER_ID")); | ||
229 | - if(getScoreStr != null){ | ||
230 | - try{ | ||
231 | - getScore += Integer.parseInt(getScoreStr); | ||
232 | - }catch(Exception ex){ | ||
233 | - logger.info(ex); | ||
234 | - } | ||
235 | - } | ||
236 | - } | ||
237 | - studentPageData.put("TOTALSCORE", totalScore); | ||
238 | - studentPageData.put("GETSCORE", getScore); | ||
239 | - | ||
240 | - } | ||
241 | - }*/ | ||
242 | - // 课程平均得分率 | ||
243 | - // 课程总分 | ||
244 | mv.addObject("studentList", studentList); | 197 | mv.addObject("studentList", studentList); |
245 | info.put("STUDENT_NUM", studentList != null ? studentList.size() : 0); | 198 | info.put("STUDENT_NUM", studentList != null ? studentList.size() : 0); |
246 | mv.addObject("info", info); | 199 | mv.addObject("info", info); |
@@ -294,17 +247,72 @@ public class ReportController extends BaseController { | @@ -294,17 +247,72 @@ public class ReportController extends BaseController { | ||
294 | logBefore(logger, Jurisdiction.getUsername()+"学生报表数据"); | 247 | logBefore(logger, Jurisdiction.getUsername()+"学生报表数据"); |
295 | PageData pd = getPageData(); | 248 | PageData pd = getPageData(); |
296 | ResponseGson<PageData> ret = new ResponseGson(); | 249 | ResponseGson<PageData> ret = new ResponseGson(); |
297 | -// pd.put("CLASS_ID", pd.get("CLASSID")); | ||
298 | - List<PageData> studentList = studentService.listAllClass(pd); | ||
299 | if ("teacher".equals(getRole())) { | 250 | if ("teacher".equals(getRole())) { |
300 | pd.put("TEACHER_ID", getUserID()); | 251 | pd.put("TEACHER_ID", getUserID()); |
301 | } | 252 | } |
302 | - List<PageData> testpaperList = testpaperService.listAll(pd); | 253 | + pd.put("TEST_TYPE", "1"); |
254 | + List<PageData> dataList = studenttestService.reportClassListData(pd); | ||
255 | + List<PageData> studentList = new ArrayList(); | ||
256 | + List<PageData> studentTestList = new ArrayList(); | ||
257 | + PageData studentPd = null; | ||
258 | + float getScore = 0f ; | ||
259 | + float allGetScore = 0; | ||
260 | + float maxScore = 0 ; | ||
261 | + for(PageData tmp : dataList){ | ||
262 | + if(studentPd != null && tmp.get("ID").equals(studentPd.get("ID"))){ | ||
263 | + String getScoreStr = tmp.getString("SCORE"); | ||
264 | + float score = 0 ; | ||
265 | + if(getScoreStr != null){ | ||
266 | + try{ | ||
267 | + score = Float.parseFloat(getScoreStr); | ||
268 | + }catch(Exception ex){ | ||
269 | + logger.info(ex); | ||
270 | + } | ||
271 | + } | ||
272 | + getScore += score; | ||
273 | + allGetScore += score; | ||
274 | + tmp.put("NAME", tmp.get("TNAME")); | ||
275 | + studentTestList.add(tmp); | ||
276 | + }else{ | ||
277 | + if(studentPd != null){ | ||
278 | + if(getScore > maxScore){ | ||
279 | + maxScore = getScore ; | ||
280 | + } | ||
281 | + studentPd.put("GETSCORE", getScore); | ||
282 | + studentPd.put("testList", studentTestList); | ||
283 | + studentList.add(studentPd); | ||
284 | + } | ||
285 | + studentPd = new PageData(); | ||
286 | + studentTestList = new ArrayList(); | ||
287 | + getScore = 0 ; | ||
288 | + String getScoreStr = tmp.getString("SCORE"); | ||
289 | + float score = 0 ; | ||
290 | + if(getScoreStr != null){ | ||
291 | + try{ | ||
292 | + score = Float.parseFloat(getScoreStr); | ||
293 | + }catch(Exception ex){ | ||
294 | + logger.info(ex); | ||
295 | + } | ||
296 | + } | ||
297 | + getScore += score; | ||
298 | + allGetScore += score; | ||
299 | + studentPd.put("NAME", tmp.get("NAME")); | ||
300 | + studentPd.put("ID", tmp.get("ID")); | ||
301 | + tmp.put("NAME", tmp.get("TNAME")); | ||
302 | + studentTestList.add(tmp); | ||
303 | + | ||
304 | + } | ||
305 | + } | ||
306 | + if(studentPd != null){ | ||
307 | + studentPd.put("GETSCORE", getScore); | ||
308 | + studentPd.put("testList", studentTestList); | ||
309 | + studentList.add(studentPd); | ||
310 | + } | ||
303 | pd.put("ID", pd.get("CLASS_ID")); | 311 | pd.put("ID", pd.get("CLASS_ID")); |
304 | PageData classPageData = sclassService.findById(pd); | 312 | PageData classPageData = sclassService.findById(pd); |
305 | float totalScore = 0 ; | 313 | float totalScore = 0 ; |
306 | float avgScore = 0; | 314 | float avgScore = 0; |
307 | - for(PageData testPaperPageData:testpaperList){ | 315 | + for(PageData testPaperPageData:studentTestList){ |
308 | String totalScoreStr = testPaperPageData.getString("TOTAL_SCORE"); | 316 | String totalScoreStr = testPaperPageData.getString("TOTAL_SCORE"); |
309 | if(totalScoreStr != null){ | 317 | if(totalScoreStr != null){ |
310 | try{ | 318 | try{ |
@@ -323,61 +331,7 @@ public class ReportController extends BaseController { | @@ -323,61 +331,7 @@ public class ReportController extends BaseController { | ||
323 | } | 331 | } |
324 | 332 | ||
325 | } | 333 | } |
326 | - float allGetScore = 0; | ||
327 | - float maxScore = 0 ; | ||
328 | - // 查询学生名单及人数 | ||
329 | - if(studentList != null && studentList.size() > 0){ | ||
330 | - for(PageData studentPageData : studentList){ | ||
331 | - PageData search = new PageData(); | ||
332 | - search.put("STUDENT_ID", studentPageData.getString("ID")); | ||
333 | - if(pd.containsKey("START_DATE")){ | ||
334 | - search.put("START_DATE", pd.getString("START_DATE")); | ||
335 | - } | ||
336 | - if(pd.containsKey("END_DATE")){ | ||
337 | - search.put("END_DATE", pd.getString("END_DATE")); | ||
338 | - } | ||
339 | - if("teacher".equals(getRole())){ | ||
340 | - search.put("TEACHER_ID", getUserID()); | ||
341 | - } | ||
342 | - if(pd.containsKey("SUBJECT_ID")){ | ||
343 | - search.put("SUBJECT_ID", pd.getString("SUBJECT_ID")); | ||
344 | - } | ||
345 | - List<PageData> studentTestList = studenttestService.reportListData(search); | ||
346 | - studentPageData.put("testList", studentTestList); | ||
347 | - | ||
348 | - float getScore = 0 ; | ||
349 | - for(PageData studentTestPageData:studentTestList){ | ||
350 | - String getScoreStr = studentTestPageData.getString("SCORE"); | ||
351 | - if(getScoreStr != null){ | ||
352 | - try{ | ||
353 | - getScore += Float.parseFloat(getScoreStr); | ||
354 | - }catch(Exception ex){ | ||
355 | - logger.info(ex); | ||
356 | - } | ||
357 | - } | ||
358 | - | ||
359 | - studentTestPageData.getString("TEST_ID"); | ||
360 | - | ||
361 | - } | ||
362 | -// studentPageData.put("TOTALSCORE", totalScore); | ||
363 | - studentPageData.put("GETSCORE", getScore); | ||
364 | - studentPageData.remove("GROUPID"); | ||
365 | - studentPageData.remove("REMARK"); | ||
366 | - studentPageData.remove("PARENT_PHONE"); | ||
367 | - studentPageData.remove("PARENT_NAME"); | ||
368 | - studentPageData.remove("NUMBER"); | ||
369 | - studentPageData.remove("SIGN_NO"); | ||
370 | - studentPageData.remove("KEYPAD_ID"); | ||
371 | - studentPageData.remove("SNO"); | ||
372 | - studentPageData.remove("SEX"); | ||
373 | - | ||
374 | - allGetScore += getScore; | ||
375 | - if(getScore > maxScore){ | ||
376 | - maxScore = getScore ; | ||
377 | - } | ||
378 | - | ||
379 | - } | ||
380 | - } | 334 | + |
381 | classPageData.remove("SCHOOL_ID"); | 335 | classPageData.remove("SCHOOL_ID"); |
382 | classPageData.remove("GRADE_ID"); | 336 | classPageData.remove("GRADE_ID"); |
383 | classPageData.remove("BASESTATION_ID"); | 337 | classPageData.remove("BASESTATION_ID"); |
src/com/fh/service/sunvote/studenttest/StudentTestManager.java
1 | package com.fh.service.sunvote.studenttest; | 1 | package com.fh.service.sunvote.studenttest; |
2 | 2 | ||
3 | import java.util.List; | 3 | import java.util.List; |
4 | + | ||
4 | import com.fh.entity.Page; | 5 | import com.fh.entity.Page; |
5 | import com.fh.util.PageData; | 6 | import com.fh.util.PageData; |
6 | 7 | ||
@@ -59,5 +60,8 @@ public interface StudentTestManager{ | @@ -59,5 +60,8 @@ public interface StudentTestManager{ | ||
59 | */ | 60 | */ |
60 | public void deleteAll(String[] ArrayDATA_IDS)throws Exception; | 61 | public void deleteAll(String[] ArrayDATA_IDS)throws Exception; |
61 | 62 | ||
63 | + | ||
64 | + public List<PageData> reportClassListData(PageData pd) throws Exception; | ||
65 | + | ||
62 | } | 66 | } |
63 | 67 |
src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java
@@ -86,5 +86,10 @@ public class StudentTestService implements StudentTestManager{ | @@ -86,5 +86,10 @@ public class StudentTestService implements StudentTestManager{ | ||
86 | return (List<PageData>)dao.findForList("StudentTestMapper.reportListData", pd); | 86 | return (List<PageData>)dao.findForList("StudentTestMapper.reportListData", pd); |
87 | } | 87 | } |
88 | 88 | ||
89 | + @Override | ||
90 | + public List<PageData> reportClassListData(PageData pd) throws Exception { | ||
91 | + return (List<PageData>)dao.findForList("StudentTestMapper.reportClassListData", pd); | ||
92 | + } | ||
93 | + | ||
89 | } | 94 | } |
90 | 95 |