Commit 3a163205f9c9d41e6ab8dd9b0cca5562b89081fc
1 parent
705eb8ca
报表优化
Showing
12 changed files
with
288 additions
and
14 deletions
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_report_1.jsp
@@ -238,7 +238,7 @@ | @@ -238,7 +238,7 @@ | ||
238 | var subject_id = $("#SUBJECT_ID").val(); | 238 | var subject_id = $("#SUBJECT_ID").val(); |
239 | url = url + "&start_date=" + startDate ; | 239 | url = url + "&start_date=" + startDate ; |
240 | if(endDate != null){ | 240 | if(endDate != null){ |
241 | - url = url + + "&end_date=" + endDate; | 241 | + url = url + "&end_date=" + endDate; |
242 | } | 242 | } |
243 | if(subject_id != null){ | 243 | if(subject_id != null){ |
244 | url = url + "&SUBJECT_ID=" + subject_id; | 244 | url = url + "&SUBJECT_ID=" + subject_id; |
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_report_test.jsp
@@ -28,7 +28,7 @@ | @@ -28,7 +28,7 @@ | ||
28 | </style> | 28 | </style> |
29 | </head> | 29 | </head> |
30 | 30 | ||
31 | -<body style="background:#fff;overflow-y:hidden;"> | 31 | +<body style="background:#fff;/* overflow-y:hidden; */"> |
32 | <div style="padding:20px 20px;"> | 32 | <div style="padding:20px 20px;"> |
33 | 33 | ||
34 | <form action="report/report_test.do" method="post" name="Form" id="Form"> | 34 | <form action="report/report_test.do" method="post" name="Form" id="Form"> |
@@ -36,10 +36,12 @@ | @@ -36,10 +36,12 @@ | ||
36 | <table style="margin-top:5px;"> | 36 | <table style="margin-top:5px;"> |
37 | <tr style="height: 30px"> | 37 | <tr style="height: 30px"> |
38 | <td>测验名称: ${testpaperInfo.NAME}</td> | 38 | <td>测验名称: ${testpaperInfo.NAME}</td> |
39 | + <c:if test="${display}"> | ||
39 | <td> </td> | 40 | <td> </td> |
40 | <td>教师: ${teacherPd.NAME}</td> | 41 | <td>教师: ${teacherPd.NAME}</td> |
41 | <td> </td> | 42 | <td> </td> |
42 | <td>科目名称: ${subjectPd.CNAME}</td> | 43 | <td>科目名称: ${subjectPd.CNAME}</td> |
44 | + </c:if> | ||
43 | </tr> | 45 | </tr> |
44 | <tr style="height: 30px"> | 46 | <tr style="height: 30px"> |
45 | <td>收卷时间: ${testpaperInfo.END_DATE}</td> | 47 | <td>收卷时间: ${testpaperInfo.END_DATE}</td> |
@@ -78,8 +80,8 @@ | @@ -78,8 +80,8 @@ | ||
78 | <!-- <td class="center"></td> --> | 80 | <!-- <td class="center"></td> --> |
79 | <td class="center"><div style="width:80px;">--</div></td> | 81 | <td class="center"><div style="width:80px;">--</div></td> |
80 | <c:forEach items="${questionInfo}" var="var" varStatus="vs"> | 82 | <c:forEach items="${questionInfo}" var="var" varStatus="vs"> |
81 | - <td class="center"><div style="width:80px;margin:0 auto;"><fmt:formatNumber type="number" | ||
82 | - value="${var == 0 ? 0: (var / classInfo.studentNum * 100)}" | 83 | + <td class="center"><div style="width:80px;margin:0 auto;"><c:set var="key"><c:out value="${vs.index+1}" /></c:set><fmt:formatNumber type="number" |
84 | + value="${(questionInfo[key] / classInfo.studentNum * 100)}" | ||
83 | maxFractionDigits="1" />%</div></td> | 85 | maxFractionDigits="1" />%</div></td> |
84 | </c:forEach> | 86 | </c:forEach> |
85 | <!-- <td class="center"></td> --> | 87 | <!-- <td class="center"></td> --> |
@@ -142,7 +144,7 @@ | @@ -142,7 +144,7 @@ | ||
142 | removeOriginal: true | 144 | removeOriginal: true |
143 | }; | 145 | }; |
144 | 146 | ||
145 | - $("#simple-table").tablescroller(options); | 147 | +// $("#simple-table").tablescroller(options); |
146 | }); | 148 | }); |
147 | $(function() { | 149 | $(function() { |
148 | 150 |
resources/mybatis1/api/V1Mapper.xml
@@ -260,6 +260,47 @@ | @@ -260,6 +260,47 @@ | ||
260 | </select> | 260 | </select> |
261 | 261 | ||
262 | 262 | ||
263 | + <select id="classReport" parameterType="pd" resultType="pd"> | ||
264 | + SELECT | ||
265 | + sv_student.`NAME`, | ||
266 | + sv_studenttest.STUDENT_ID, | ||
267 | + sv_studenttest.TEST_ID, | ||
268 | + sv_studenttest.SCORE, | ||
269 | + sv_testpaper.`NAME` AS PAPER_NAME, | ||
270 | + sv_testpaper.CREATE_DATE, | ||
271 | + sv_testpaper.AVG_SCORE, | ||
272 | + sv_testpaper.TOTAL_SCORE | ||
273 | + FROM | ||
274 | + sv_testpaper | ||
275 | + LEFT JOIN sv_studenttest ON sv_testpaper.TESTPAPER_ID = sv_studenttest.TEST_ID | ||
276 | + LEFT JOIN sv_student ON sv_student.ID = sv_studenttest.STUDENT_ID | ||
277 | + WHERE | ||
278 | + sv_student.`NAME` IS NOT NULL | ||
279 | + <if test="CLASS_ID != null and CLASS_ID != ''"> | ||
280 | + AND sv_testpaper.SCLASS_ID = #{CLASS_ID} | ||
281 | + AND sv_student.CLASS_ID = #{CLASS_ID} | ||
282 | + </if> | ||
283 | + <if test="TEACHER_ID != null and TEACHER_ID != ''"> | ||
284 | + AND sv_testpaper.TEACHER_ID = #{TEACHER_ID} | ||
285 | + </if> | ||
286 | + <if test="SUBJECT_ID != null and SUBJECT_ID != ''"> | ||
287 | + AND sv_testpaper.SUBJECT_ID = #{SUBJECT_ID} | ||
288 | + </if> | ||
289 | + <if test="TEST_TYPE != null and TEST_TYPE != ''"> | ||
290 | + AND sv_testpaper.TEST_TYPE = #{TEST_TYPE} | ||
291 | + </if> | ||
292 | + <if test="START_DATE != null and START_DATE != ''"> | ||
293 | + AND sv_testpaper.CREATE_DATE > #{START_DATE} | ||
294 | + </if> | ||
295 | + <if test="END_DATE != null and END_DATE != ''"> | ||
296 | + AND sv_testpaper.CREATE_DATE < CONCAT(#{END_DATE},'A') | ||
297 | + </if> | ||
298 | + ORDER BY | ||
299 | + (sv_student.NUMBER * 1), | ||
300 | + sv_studenttest.STUDENT_ID, | ||
301 | + sv_testpaper.CREATE_DATE | ||
302 | + </select> | ||
303 | + | ||
263 | 304 | ||
264 | 305 | ||
265 | </mapper> | 306 | </mapper> |
266 | \ No newline at end of file | 307 | \ No newline at end of file |
resources/mybatis1/sunvote/TestPaperInfoMapper.xml
@@ -263,6 +263,29 @@ | @@ -263,6 +263,29 @@ | ||
263 | (sv_paperquestion.RANK * 1) | 263 | (sv_paperquestion.RANK * 1) |
264 | </select> | 264 | </select> |
265 | 265 | ||
266 | + <select id="reportTestPaperDetail" parameterType="pd" resultType="pd"> | ||
267 | + SELECT | ||
268 | + sv_student.`NAME`, | ||
269 | + sv_student.ID, | ||
270 | + sv_student.KEYPAD_ID, | ||
271 | + sv_student.NUMBER, | ||
272 | + sv_testpaperinfo.STUDENT_ID, | ||
273 | + sv_testpaperinfo.QUESTION_ID, | ||
274 | + sv_testpaperinfo.SCORE, | ||
275 | + sv_testpaperinfo.ANSWER, | ||
276 | + sv_testpaperinfo.`RIGHT`, | ||
277 | + sv_paperquestion.RANK | ||
278 | + FROM | ||
279 | + sv_testpaperinfo | ||
280 | + LEFT JOIN sv_student ON sv_testpaperinfo.STUDENT_ID = sv_student.ID | ||
281 | + LEFT JOIN sv_paperquestion ON sv_testpaperinfo.QUESTION_ID = sv_paperquestion.QUESTION_ID | ||
282 | + WHERE | ||
283 | + sv_testpaperinfo.TEST_ID = #{TEST_ID} | ||
284 | + ORDER BY | ||
285 | + sv_testpaperinfo.STUDENT_ID, | ||
286 | + (sv_paperquestion.RANK * 1) | ||
287 | + </select> | ||
288 | + | ||
266 | 289 | ||
267 | <!-- 批量删除 --> | 290 | <!-- 批量删除 --> |
268 | <delete id="deleteAll" parameterType="String"> | 291 | <delete id="deleteAll" parameterType="String"> |
src/com/fh/bean/TestPaper.java
@@ -49,6 +49,8 @@ public class TestPaper { | @@ -49,6 +49,8 @@ public class TestPaper { | ||
49 | 49 | ||
50 | private String test_type ; | 50 | private String test_type ; |
51 | 51 | ||
52 | + private String subject_id ; | ||
53 | + | ||
52 | private List<StudentAnswer> students = new ArrayList<StudentAnswer>(); | 54 | private List<StudentAnswer> students = new ArrayList<StudentAnswer>(); |
53 | 55 | ||
54 | public String getTestpaperId() { | 56 | public String getTestpaperId() { |
@@ -187,6 +189,16 @@ public class TestPaper { | @@ -187,6 +189,16 @@ public class TestPaper { | ||
187 | return gson.fromJson(json, TestPaper.class); | 189 | return gson.fromJson(json, TestPaper.class); |
188 | } | 190 | } |
189 | 191 | ||
192 | + | ||
193 | + | ||
194 | + public String getSubject_id() { | ||
195 | + return subject_id; | ||
196 | + } | ||
197 | + | ||
198 | + public void setSubject_id(String subject_id) { | ||
199 | + this.subject_id = subject_id; | ||
200 | + } | ||
201 | + | ||
190 | public String toJson(){ | 202 | public String toJson(){ |
191 | Gson gson = new Gson(); | 203 | Gson gson = new Gson(); |
192 | return gson.toJson(this); | 204 | return gson.toJson(this); |
src/com/fh/controller/api/V1.java
@@ -1607,6 +1607,7 @@ public class V1 extends BaseController { | @@ -1607,6 +1607,7 @@ public class V1 extends BaseController { | ||
1607 | testPd.put("LOW_SCORE", testPaper.getLowScore()); | 1607 | testPd.put("LOW_SCORE", testPaper.getLowScore()); |
1608 | testPd.put("AVG_SCORE", testPaper.getAvgScore()); | 1608 | testPd.put("AVG_SCORE", testPaper.getAvgScore()); |
1609 | testPd.put("TOTAL_SCORE", testPaper.getTotalScore()); | 1609 | testPd.put("TOTAL_SCORE", testPaper.getTotalScore()); |
1610 | + testPd.put("SUBJECT_ID", testPaper.getSubject_id()); | ||
1610 | testPd.put("REMARK", testPaper.getRemark()); | 1611 | testPd.put("REMARK", testPaper.getRemark()); |
1611 | testpaperService.save(testPd); | 1612 | testpaperService.save(testPd); |
1612 | if (testPaper.getStudents() != null) { | 1613 | if (testPaper.getStudents() != null) { |
@@ -1728,6 +1729,7 @@ public class V1 extends BaseController { | @@ -1728,6 +1729,7 @@ public class V1 extends BaseController { | ||
1728 | testPd.put("LOW_SCORE", testPaper.getLowScore()); | 1729 | testPd.put("LOW_SCORE", testPaper.getLowScore()); |
1729 | testPd.put("AVG_SCORE", testPaper.getAvgScore()); | 1730 | testPd.put("AVG_SCORE", testPaper.getAvgScore()); |
1730 | testPd.put("TOTAL_SCORE", testPaper.getTotalScore()); | 1731 | testPd.put("TOTAL_SCORE", testPaper.getTotalScore()); |
1732 | + testPd.put("SUBJECT_ID", testPaper.getSubject_id()); | ||
1731 | testPd.put("REMARK", testPaper.getRemark()); | 1733 | testPd.put("REMARK", testPaper.getRemark()); |
1732 | testpaperService.save(testPd); | 1734 | testpaperService.save(testPd); |
1733 | if (testPaper.getStudents() != null) { | 1735 | if (testPaper.getStudents() != null) { |
src/com/fh/controller/sunvote/report/ReportController.java
@@ -20,7 +20,6 @@ import com.fh.service.sunvote.student.StudentManager; | @@ -20,7 +20,6 @@ import com.fh.service.sunvote.student.StudentManager; | ||
20 | import com.fh.service.sunvote.studenttest.StudentTestManager; | 20 | import com.fh.service.sunvote.studenttest.StudentTestManager; |
21 | import com.fh.service.sunvote.subject.SubjectManager; | 21 | import com.fh.service.sunvote.subject.SubjectManager; |
22 | import com.fh.service.sunvote.teacher.TeacherManager; | 22 | import com.fh.service.sunvote.teacher.TeacherManager; |
23 | -import com.fh.service.sunvote.teacher.impl.TeacherService; | ||
24 | import com.fh.service.sunvote.testpaper.TestPaperManager; | 23 | import com.fh.service.sunvote.testpaper.TestPaperManager; |
25 | import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager; | 24 | import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager; |
26 | import com.fh.util.Jurisdiction; | 25 | import com.fh.util.Jurisdiction; |
@@ -95,15 +94,113 @@ public class ReportController extends BaseController { | @@ -95,15 +94,113 @@ public class ReportController extends BaseController { | ||
95 | info.put("CLASS_CODE", classPageData.getString("CLASS_CODE")); | 94 | info.put("CLASS_CODE", classPageData.getString("CLASS_CODE")); |
96 | info.put("CLASS_ID", classPageData.getString("ID")); | 95 | info.put("CLASS_ID", classPageData.getString("ID")); |
97 | pd.put("CLASS_ID", pd.get("CLASSID")); | 96 | pd.put("CLASS_ID", pd.get("CLASSID")); |
98 | - List<PageData> studentList = studentService.listAllClass(pd); | ||
99 | - | ||
100 | - | ||
101 | 97 | ||
102 | // 2查询班级考试 | 98 | // 2查询班级考试 |
103 | pd.put("TEST_TYPE", "1"); | 99 | pd.put("TEST_TYPE", "1"); |
104 | - List<PageData> testpaperList = testpaperService.listAll(pd); | 100 | +// List<PageData> testpaperList = testpaperService.listAll(pd); |
101 | +// mv.addObject("testpaperList", testpaperList); | ||
102 | +// info.put("testsize", testpaperList != null ? testpaperList.size() : 0); | ||
103 | + | ||
104 | + // modify 根據班級查詢班級報表 | ||
105 | + List<PageData> reportData = v1Service.classReport(pd); | ||
106 | + List<PageData> testpaperList = new ArrayList(); | ||
107 | + List<PageData> studentList = new ArrayList(); | ||
108 | + PageData studentPd = null; | ||
109 | + float totalScore = 0 ; | ||
110 | + float getScore = 0 ; | ||
111 | + for(PageData item : reportData){ | ||
112 | + | ||
113 | + // 学生列表 | ||
114 | + if(studentPd != null && item.get("STUDENT_ID").equals(studentPd.get("STUDENT_ID"))){ | ||
115 | + // | ||
116 | + String score = item.getString("SCORE"); | ||
117 | + if(!"0".equals(score)){ | ||
118 | + studentPd.put(item.get("TEST_ID"), item.get("SCORE")); | ||
119 | + }else{ | ||
120 | + studentPd.put(item.get("TEST_ID"), "--"); | ||
121 | + } | ||
122 | + String totalScoreStr = item.getString("TOTAL_SCORE"); | ||
123 | + if(totalScoreStr != null){ | ||
124 | + try{ | ||
125 | + totalScore +=Float.parseFloat(totalScoreStr); | ||
126 | + }catch(Exception ex){ | ||
127 | + logger.info(ex); | ||
128 | + } | ||
129 | + } | ||
130 | + if(score != null){ | ||
131 | + try{ | ||
132 | + getScore += Float.parseFloat(score); | ||
133 | + }catch(Exception ex){ | ||
134 | + logger.info(ex); | ||
135 | + } | ||
136 | + } | ||
137 | + }else{ | ||
138 | + if(studentPd != null){ | ||
139 | + studentPd.put("TOTALSCORE", totalScore); | ||
140 | + studentPd.put("GETSCORE", getScore); | ||
141 | + studentList.add(studentPd); | ||
142 | + totalScore = 0 ; | ||
143 | + getScore = 0 ; | ||
144 | + } | ||
145 | + studentPd = new PageData(); | ||
146 | + studentPd.put("STUDENT_ID", item.get("STUDENT_ID")); | ||
147 | + studentPd.put("NAME", item.get("NAME")); | ||
148 | + String score = item.getString("SCORE"); | ||
149 | + if(!"0".equals(score)){ | ||
150 | + studentPd.put(item.get("TEST_ID"), item.get("SCORE")); | ||
151 | + }else{ | ||
152 | + studentPd.put(item.get("TEST_ID"), "--"); | ||
153 | + } | ||
154 | + String totalScoreStr = item.getString("TOTAL_SCORE"); | ||
155 | + if(totalScoreStr != null){ | ||
156 | + try{ | ||
157 | + totalScore += Float.parseFloat(totalScoreStr); | ||
158 | + }catch(Exception ex){ | ||
159 | + logger.info(ex); | ||
160 | + } | ||
161 | + } | ||
162 | + if(score != null){ | ||
163 | + try{ | ||
164 | + getScore += Float.parseFloat(score); | ||
165 | + }catch(Exception ex){ | ||
166 | + logger.info(ex); | ||
167 | + } | ||
168 | + } | ||
169 | + | ||
170 | + } | ||
171 | + PageData clone = new PageData(item); | ||
172 | + // 试卷列表 | ||
173 | + if(!contain(testpaperList, clone, "TEST_ID")){ | ||
174 | + clone.put("TESTPAPER_ID", clone.get("TEST_ID")); | ||
175 | + clone.put("NAME", clone.get("PAPER_NAME")); | ||
176 | + testpaperList.add(clone); | ||
177 | + } | ||
178 | + | ||
179 | + } | ||
180 | + if(studentPd != null){ | ||
181 | + studentPd.put("TOTALSCORE", totalScore); | ||
182 | + studentPd.put("GETSCORE", getScore); | ||
183 | + studentList.add(studentPd); | ||
184 | + totalScore = 0 ; | ||
185 | + getScore = 0 ; | ||
186 | + } | ||
187 | + | ||
188 | + Collections.sort(testpaperList,new Comparator<PageData>(){ | ||
189 | + | ||
190 | + @Override | ||
191 | + public int compare(PageData o1, PageData o2) { | ||
192 | + String o1GetScore = o1.getString("CREATE_DATE"); | ||
193 | + String o2GetScore = o2.getString("CREATE_DATE"); | ||
194 | + return - o1GetScore.compareToIgnoreCase(o2GetScore); | ||
195 | + } | ||
196 | + | ||
197 | + }); | ||
198 | + | ||
105 | mv.addObject("testpaperList", testpaperList); | 199 | mv.addObject("testpaperList", testpaperList); |
106 | info.put("testsize", testpaperList != null ? testpaperList.size() : 0); | 200 | info.put("testsize", testpaperList != null ? testpaperList.size() : 0); |
201 | + | ||
202 | + /* | ||
203 | + List<PageData> studentList = studentService.listAllClass(pd); | ||
107 | // 查询学生名单及人数 | 204 | // 查询学生名单及人数 |
108 | if(studentList != null && studentList.size() > 0){ | 205 | if(studentList != null && studentList.size() > 0){ |
109 | for(PageData studentPageData : studentList){ | 206 | for(PageData studentPageData : studentList){ |
@@ -141,7 +238,7 @@ public class ReportController extends BaseController { | @@ -141,7 +238,7 @@ public class ReportController extends BaseController { | ||
141 | studentPageData.put("GETSCORE", getScore); | 238 | studentPageData.put("GETSCORE", getScore); |
142 | 239 | ||
143 | } | 240 | } |
144 | - } | 241 | + }*/ |
145 | // 课程平均得分率 | 242 | // 课程平均得分率 |
146 | // 课程总分 | 243 | // 课程总分 |
147 | mv.addObject("studentList", studentList); | 244 | mv.addObject("studentList", studentList); |
@@ -154,6 +251,15 @@ public class ReportController extends BaseController { | @@ -154,6 +251,15 @@ public class ReportController extends BaseController { | ||
154 | return mv; | 251 | return mv; |
155 | } | 252 | } |
156 | 253 | ||
254 | + private boolean contain(List<PageData> source, PageData aim,String key){ | ||
255 | + for(PageData tp : source){ | ||
256 | + if(tp.get(key) != null && tp.get(key).equals(aim.get(key))){ | ||
257 | + return true; | ||
258 | + } | ||
259 | + } | ||
260 | + return false; | ||
261 | + } | ||
262 | + | ||
157 | @RequestMapping(value="/teacher_report") | 263 | @RequestMapping(value="/teacher_report") |
158 | public ModelAndView teacher_report() throws Exception{ | 264 | public ModelAndView teacher_report() throws Exception{ |
159 | logBefore(logger, Jurisdiction.getUsername()+"教师报表"); | 265 | logBefore(logger, Jurisdiction.getUsername()+"教师报表"); |
@@ -305,9 +411,70 @@ public class ReportController extends BaseController { | @@ -305,9 +411,70 @@ public class ReportController extends BaseController { | ||
305 | subjectPd.put("ID", testpaperPd.get("SUBJECT_ID")); | 411 | subjectPd.put("ID", testpaperPd.get("SUBJECT_ID")); |
306 | subjectPd = subjectService.findById(subjectPd); | 412 | subjectPd = subjectService.findById(subjectPd); |
307 | 413 | ||
414 | + pd.put("TEST_ID", pd.get("TESTID")); | ||
415 | + List<PageData> detail = testpaperinfoService.reportTestPaperDetail(pd); | ||
308 | 416 | ||
417 | + List<PageData> studentList = new ArrayList(); | ||
418 | +// List<Integer> questionList = new ArrayList<Integer>(); | ||
419 | + PageData questionList = new PageData(); | ||
420 | + List<PageData> tqList = new ArrayList<PageData>(); | ||
421 | + PageData tmp = null; | ||
422 | + float getScore = 0 ; | ||
423 | + for(PageData tpd : detail){ | ||
424 | + if(tmp != null && tpd.get("ID").equals(tmp.get("ID"))){ | ||
425 | + try{ | ||
426 | + getScore += Float.parseFloat(tpd.getString("SCORE")); | ||
427 | + }catch(Exception ex){}; | ||
428 | + tqList.add(tpd); | ||
429 | + if(questionList.get(tpd.get("RANK")) != null){ | ||
430 | + if("1".equals(tpd.get("RIGHT"))){ | ||
431 | + Integer num = (Integer)questionList.get(tpd.get("RANK")); | ||
432 | + questionList.put(tpd.get("RANK"), num+1); | ||
433 | + } | ||
434 | + }else{ | ||
435 | + if("1".equals(tpd.get("RIGHT"))){ | ||
436 | + questionList.put(tpd.get("RANK"), 1); | ||
437 | + }else{ | ||
438 | + questionList.put(tpd.get("RANK"), 0); | ||
439 | + } | ||
440 | + } | ||
441 | + }else{ | ||
442 | + if(tmp != null){ | ||
443 | + tmp.put("GETSCORE", getScore); | ||
444 | + studentList.add(tmp); | ||
445 | + } | ||
446 | + getScore = 0 ; | ||
447 | + tmp = new PageData(); | ||
448 | + tqList = new ArrayList<PageData>(); | ||
449 | + tmp.put("NAME", tpd.get("NAME")); | ||
450 | + tmp.put("KEYPAD_ID", tpd.get("KEYPAD_ID")); | ||
451 | + tmp.put("NUMBER", tpd.get("NUMBER")); | ||
452 | + tmp.put("ID", tpd.get("ID")); | ||
453 | + tqList.add(tpd); | ||
454 | + tmp.put("detail", tqList); | ||
455 | + try{ | ||
456 | + getScore += Float.parseFloat(tpd.getString("SCORE")); | ||
457 | + }catch(Exception ex){}; | ||
458 | + if(questionList.get(tpd.get("RANK")) != null){ | ||
459 | + if("1".equals(tpd.get("RIGHT"))){ | ||
460 | + Integer num = (Integer)questionList.get(tpd.get("RANK")); | ||
461 | + questionList.put(tpd.get("RANK"), num+1); | ||
462 | + } | ||
463 | + }else{ | ||
464 | + if("1".equals(tpd.get("RIGHT"))){ | ||
465 | + questionList.put(tpd.get("RANK"), 1); | ||
466 | + }else{ | ||
467 | + questionList.put(tpd.get("RANK"), 0); | ||
468 | + } | ||
469 | + } | ||
470 | + } | ||
471 | + } | ||
472 | + if(tmp != null){ | ||
473 | + tmp.put("GETSCORE", getScore); | ||
474 | + studentList.add(tmp); | ||
475 | + } | ||
309 | 476 | ||
310 | - // 查询班级学生 | 477 | + /*// 查询班级学生 |
311 | List<PageData> studentList = studentService.listAllClass(pd); | 478 | List<PageData> studentList = studentService.listAllClass(pd); |
312 | List<Integer> questionList = new ArrayList<Integer>(); | 479 | List<Integer> questionList = new ArrayList<Integer>(); |
313 | for(PageData studentPd : studentList){ | 480 | for(PageData studentPd : studentList){ |
@@ -338,7 +505,7 @@ public class ReportController extends BaseController { | @@ -338,7 +505,7 @@ public class ReportController extends BaseController { | ||
338 | 505 | ||
339 | } | 506 | } |
340 | studentPd.put("GETSCORE", score); | 507 | studentPd.put("GETSCORE", score); |
341 | - } | 508 | + }*/ |
342 | 509 | ||
343 | 510 | ||
344 | Collections.sort(studentList,new Comparator<PageData>(){ | 511 | Collections.sort(studentList,new Comparator<PageData>(){ |
@@ -363,7 +530,7 @@ public class ReportController extends BaseController { | @@ -363,7 +530,7 @@ public class ReportController extends BaseController { | ||
363 | String n1 = o1.getString("NUMBER"); | 530 | String n1 = o1.getString("NUMBER"); |
364 | String n2 = o2.getString("NUMBER"); | 531 | String n2 = o2.getString("NUMBER"); |
365 | if(n1 != null && n2 != null){ | 532 | if(n1 != null && n2 != null){ |
366 | - return n1.compareToIgnoreCase(n2); | 533 | + return Integer.parseInt(n1) - Integer.parseInt(n2); |
367 | } | 534 | } |
368 | } | 535 | } |
369 | return o2score - o1score > 0 ? 1 : -1; | 536 | return o2score - o1score > 0 ? 1 : -1; |
@@ -399,6 +566,13 @@ public class ReportController extends BaseController { | @@ -399,6 +566,13 @@ public class ReportController extends BaseController { | ||
399 | } | 566 | } |
400 | 567 | ||
401 | classPageData.put("studentNum", studentList.size()); | 568 | classPageData.put("studentNum", studentList.size()); |
569 | + | ||
570 | + if("teacher".equals(getRole())){ | ||
571 | + mv.addObject("display", false); | ||
572 | + }else{ | ||
573 | + mv.addObject("display", true); | ||
574 | + } | ||
575 | + | ||
402 | mv.addObject("classInfo", classPageData); | 576 | mv.addObject("classInfo", classPageData); |
403 | mv.addObject("testpaperInfo", testpaperPd); | 577 | mv.addObject("testpaperInfo", testpaperPd); |
404 | mv.addObject("questionInfo", questionList); | 578 | mv.addObject("questionInfo", questionList); |
src/com/fh/service/api/V1Manager.java
@@ -25,4 +25,6 @@ public interface V1Manager { | @@ -25,4 +25,6 @@ public interface V1Manager { | ||
25 | public List<PageData> getAdminInfo(PageData pd) throws Exception; | 25 | public List<PageData> getAdminInfo(PageData pd) throws Exception; |
26 | 26 | ||
27 | public List<PageData> getClassBySchoolAndGradle(PageData pd) throws Exception; | 27 | public List<PageData> getClassBySchoolAndGradle(PageData pd) throws Exception; |
28 | + | ||
29 | + public List<PageData> classReport(PageData pd) throws Exception; | ||
28 | } | 30 | } |
src/com/fh/service/api/impl/V1Service.java
@@ -66,5 +66,11 @@ public class V1Service implements V1Manager { | @@ -66,5 +66,11 @@ public class V1Service implements V1Manager { | ||
66 | throws Exception { | 66 | throws Exception { |
67 | return (List<PageData>)dao.findForList("V1Mapper.getClassBySchoolAndGradle", pd); | 67 | return (List<PageData>)dao.findForList("V1Mapper.getClassBySchoolAndGradle", pd); |
68 | } | 68 | } |
69 | + | ||
70 | + @Override | ||
71 | + public List<PageData> classReport(PageData pd) | ||
72 | + throws Exception { | ||
73 | + return (List<PageData>)dao.findForList("V1Mapper.classReport", pd); | ||
74 | + } | ||
69 | 75 | ||
70 | } | 76 | } |
src/com/fh/service/sunvote/testpaperinfo/TestPaperInfoManager.java
@@ -54,6 +54,9 @@ public interface TestPaperInfoManager{ | @@ -54,6 +54,9 @@ public interface TestPaperInfoManager{ | ||
54 | */ | 54 | */ |
55 | public List<PageData> reportPaperDetail(PageData pd)throws Exception; | 55 | public List<PageData> reportPaperDetail(PageData pd)throws Exception; |
56 | 56 | ||
57 | + | ||
58 | + public List<PageData> reportTestPaperDetail(PageData pd)throws Exception; | ||
59 | + | ||
57 | /**通过id获取数据 | 60 | /**通过id获取数据 |
58 | * @param pd | 61 | * @param pd |
59 | * @throws Exception | 62 | * @throws Exception |
src/com/fh/service/sunvote/testpaperinfo/impl/TestPaperInfoService.java
@@ -93,6 +93,11 @@ public class TestPaperInfoService implements TestPaperInfoManager{ | @@ -93,6 +93,11 @@ public class TestPaperInfoService implements TestPaperInfoManager{ | ||
93 | return (List<PageData>)dao.findForList("TestPaperInfoMapper.reportPaperDetail", pd); | 93 | return (List<PageData>)dao.findForList("TestPaperInfoMapper.reportPaperDetail", pd); |
94 | } | 94 | } |
95 | 95 | ||
96 | + @SuppressWarnings("unchecked") | ||
97 | + public List<PageData> reportTestPaperDetail(PageData pd)throws Exception{ | ||
98 | + return (List<PageData>)dao.findForList("TestPaperInfoMapper.reportTestPaperDetail", pd); | ||
99 | + } | ||
100 | + | ||
96 | /**通过id获取数据 | 101 | /**通过id获取数据 |
97 | * @param pd | 102 | * @param pd |
98 | * @throws Exception | 103 | * @throws Exception |
src/com/fh/util/PageData.java
@@ -167,4 +167,8 @@ public class PageData extends HashMap implements Map{ | @@ -167,4 +167,8 @@ public class PageData extends HashMap implements Map{ | ||
167 | return map.values(); | 167 | return map.values(); |
168 | } | 168 | } |
169 | 169 | ||
170 | + | ||
171 | + public PageData(PageData tp){ | ||
172 | + this.map = new HashMap(tp.map); | ||
173 | + } | ||
170 | } | 174 | } |