Commit f4a7359454522a54843d62cf39f5317fea0b34dc
1 parent
739794be
1.增加班级统计报表和导出
Showing
23 changed files
with
1130 additions
and
46 deletions
WebRoot/WEB-INF/jsp/save_result2.jsp
... | ... | @@ -15,10 +15,32 @@ |
15 | 15 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
16 | 16 | |
17 | 17 | <script type="text/javascript" src="static/js/jquery-1.7.2.js"></script> |
18 | - | |
18 | +<style type="text/css"> | |
19 | + #zhongxin{ | |
20 | + text-align:center; | |
21 | + padding-top:50px; | |
22 | + } | |
23 | + .fail{ | |
24 | + text-align:center; | |
25 | + margin-bottom:-30px; | |
26 | + } | |
27 | + .fail p{ | |
28 | + font-size:16px; | |
29 | + color:#ff006a; | |
30 | + font-weight:bolder; | |
31 | + } | |
32 | +</style> | |
19 | 33 | </head> |
20 | 34 | <body> |
35 | + <c:if test="${state =='fail'}"> | |
36 | + <div class="fail"> | |
37 | + <img src="static/images/fail.png" width="100px" /> | |
38 | + | |
39 | + <p>导入失败</p> | |
40 | + </div> | |
41 | + </c:if> | |
21 | 42 | <div id="zhongxin">${msg}</div> |
43 | + | |
22 | 44 | <script type="text/javascript"> |
23 | 45 | var msg = "${msg}"; |
24 | 46 | if(msg=="success" || msg==""){ | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/admin/admin_main.jsp
... | ... | @@ -30,7 +30,11 @@ |
30 | 30 | <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script> |
31 | 31 | <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> |
32 | 32 | <![endif]--> |
33 | - | |
33 | +<style> | |
34 | + .menu_2 .active{ | |
35 | + background:#000; | |
36 | + } | |
37 | +</style> | |
34 | 38 | </head> |
35 | 39 | <body> |
36 | 40 | <div class="header"> |
... | ... | @@ -60,7 +64,7 @@ |
60 | 64 | <p> |
61 | 65 | 年级管理<span class="right jiao"></span> |
62 | 66 | </p> |
63 | - <ul class="menu_1"> | |
67 | + <ul class="menu_2"> | |
64 | 68 | <c:forEach items="${gradeInfos}" var="var" varStatus="vs"> |
65 | 69 | <li |
66 | 70 | onclick="event.stopPropagation();chooseListClass('${SCHOOL_ID}','${var.ID}')"> |
... | ... | @@ -185,7 +189,7 @@ |
185 | 189 | 系统设置<span class="right jiao"></span> |
186 | 190 | </p> |
187 | 191 | |
188 | - <ul class="menu_1"> | |
192 | + <ul class="menu_2"> | |
189 | 193 | <li> |
190 | 194 | <p onclick="event.stopPropagation();school('${SCHOOL_ID}')">学校设置</p> |
191 | 195 | |
... | ... | @@ -495,6 +499,11 @@ |
495 | 499 | if (defaultUrl != '' && defaultUrl != '') { |
496 | 500 | $("#mainFrame").attr('src', defaultUrl); |
497 | 501 | } |
502 | + | |
503 | + $(".menu_2 li").click(function(){ | |
504 | + $(".active").removeClass("active"); | |
505 | + $(this).addClass("active"); | |
506 | + }) | |
498 | 507 | </script> |
499 | 508 | </body> |
500 | 509 | </html> |
501 | 510 | \ No newline at end of file | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/paper/paper_list2.jsp
... | ... | @@ -56,8 +56,8 @@ |
56 | 56 | <col style="width: 20%" /> |
57 | 57 | <col style="width: 20%" /> |
58 | 58 | <col style="width: 20%" /> |
59 | - <col style="width: 20%" /> | |
60 | 59 | <col style="width: 10%" /> |
60 | + <col style="width: 20%" /> | |
61 | 61 | <thead> |
62 | 62 | <tr> |
63 | 63 | <th><input type="checkbox" name='ids' id="ids" />序号</th> |
... | ... | @@ -72,13 +72,14 @@ |
72 | 72 | </div> |
73 | 73 | </div> |
74 | 74 | <div class="table_box"> |
75 | + | |
75 | 76 | <table class="table table-striped"> |
76 | 77 | <col style="width: 10%" /> |
77 | 78 | <col style="width: 20%" /> |
78 | 79 | <col style="width: 20%" /> |
79 | 80 | <col style="width: 20%" /> |
80 | - <col style="width: 20%" /> | |
81 | 81 | <col style="width: 10%" /> |
82 | + <col style="width: 20%" /> | |
82 | 83 | <tbody> |
83 | 84 | <c:choose> |
84 | 85 | <c:when test="${not empty varList}"> |
... | ... | @@ -90,6 +91,7 @@ |
90 | 91 | <td >${var.EXAM_TIME}</td> |
91 | 92 | <td >${var.SCORE}</td> |
92 | 93 | <td> |
94 | + <a href="<%=basePath%>paper/paperRep.do?paper_id=${var.PAPER_ID}">查看成绩</a> | |
93 | 95 | <a href="#" onclick="del('${var.PAPER_ID}');"><img src="../static/images/remove.png" /></a> |
94 | 96 | </td> |
95 | 97 | </tr> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/paper/paper_list4.jsp
... | ... | @@ -86,6 +86,7 @@ |
86 | 86 | <th>创建时间</th> |
87 | 87 | <th>建议考试时长</th> |
88 | 88 | <th>总分</th> |
89 | + <th>操作</th> | |
89 | 90 | </tr> |
90 | 91 | </thead> |
91 | 92 | </table> |
... | ... | @@ -114,6 +115,7 @@ |
114 | 115 | <td >${var.CREATE_DATE}</td> |
115 | 116 | <td >${var.EXAM_TIME}</td> |
116 | 117 | <td >${var.SCORE}</td> |
118 | + <td ><a href="<%=basePath%>paper/paperRep.do?paper_id=${var.PAPER_ID}">查看成绩</a></td> | |
117 | 119 | </tr> |
118 | 120 | |
119 | 121 | </c:forEach> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/paper/paper_list5.jsp
... | ... | @@ -99,6 +99,7 @@ |
99 | 99 | <td >${var.EXAM_TIME}</td> |
100 | 100 | <td >${var.SCORE}</td> |
101 | 101 | <td> |
102 | + <a href="<%=basePath%>paper/paperRep.do?paper_id=${var.PAPER_ID}">查看成绩</a> | |
102 | 103 | <a href="#" onclick="del('${var.PAPER_ID}');"><img src="../static/images/remove.png" /></a> |
103 | 104 | </td> |
104 | 105 | </tr> | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/paper/test_list1.jsp
0 → 100644
1 | +<%@ page language="java" contentType="text/html; charset=UTF-8" | |
2 | + pageEncoding="UTF-8"%> | |
3 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> | |
4 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> | |
5 | +<%@ taglib prefix="myelfun" uri="/WEB-INF/tld/elfun.tld"%> | |
6 | +<% | |
7 | + String path = request.getContextPath(); | |
8 | + String basePath = request.getScheme() + "://" | |
9 | + + request.getServerName() + ":" + request.getServerPort() + path + "/"; | |
10 | +%> | |
11 | +<html lang="zh-CN"> | |
12 | +<head> | |
13 | +<meta charset="utf-8"> | |
14 | +<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
15 | +<meta name="viewport" content="width=device-width, initial-scale=1"> | |
16 | +<title>教育管理系统</title> | |
17 | + | |
18 | +<!-- Bootstrap --> | |
19 | +<!-- <link | |
20 | + href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" | |
21 | + rel="stylesheet"> --> | |
22 | + <link rel="stylesheet" href="../static/css/bootstrap.min.css" /> | |
23 | +<link href="../static/css/teach.css" rel="stylesheet"> | |
24 | +<link rel="stylesheet" href="../static/ace/css/datepicker.css" /> | |
25 | +<link type="text/css" href="../static/css/tablescroller.css" rel="stylesheet" /> | |
26 | +<script src="../static/js/loading.js"></script> | |
27 | +<script src="../static/js/remove.js?a=1"></script> | |
28 | + | |
29 | + | |
30 | +<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 --> | |
31 | +<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 --> | |
32 | +<!--[if lt IE 9]> | |
33 | + <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script> | |
34 | + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> | |
35 | + <![endif]--> | |
36 | +</head> | |
37 | +<body> | |
38 | + | |
39 | + <form action="../paper/list4.do" method="post" name="Form" id="Form"> | |
40 | + <div class="head_box"> | |
41 | + <div class="box_header"> | |
42 | + <div class="head_box_l"> | |
43 | + <p> | |
44 | + <span class="right_b"></span>试卷测验列表 | |
45 | + </p> | |
46 | + </div> | |
47 | + <div class="head_box_r"> | |
48 | + <button type="button" class="btn btn-primary" onclick="window.history.go(-1)" autocomplete="off">返回</button> | |
49 | + <button type="button" class="btn btn-primary" onclick="export1()" autocomplete="off">导出</button> | |
50 | + </div> | |
51 | + | |
52 | + <div class="clear"></div> | |
53 | + </div> | |
54 | + | |
55 | + </div> | |
56 | + <div class="table_box" style="padding:0 5%;background:#fff;"> | |
57 | + <div style="padding:15px 0;background:#fff;" class="paper_title"> | |
58 | + | |
59 | + 试卷名称:${myelfun:findPaperName(pd.PAPER_ID)} | |
60 | + </div> | |
61 | + | |
62 | + <table id="simple-table" | |
63 | + class="table table-striped table-bordered table-hover" | |
64 | + style="margin-top:0px;margin-bottom:0;"> | |
65 | + <thead> | |
66 | + <tr> | |
67 | + <th><div style="width:80px">序号</div></th> | |
68 | + <th><div style="width:80px">班级名称</div></th> | |
69 | + <th><div style="width:80px">考试时间</div></th> | |
70 | + <th><div style="width:80px">平均分</div></th> | |
71 | + <th><div style="width:80px">班级总人数</div></th> | |
72 | + <th><div style="width:80px">优秀人数</div></th> | |
73 | + <th><div style="width:80px">优秀率</div></th> | |
74 | + <th><div style="width:80px">良好人数</div></th> | |
75 | + <th><div style="width:80px">良好率</div></th> | |
76 | + <th><div style="width:80px">及格人数</div></th> | |
77 | + <th><div style="width:80px">及格率</div></th> | |
78 | + <th><div style="width:80px">低分人数</div></th> | |
79 | + <th><div style="width:80px">低分率</div></th> | |
80 | + <th><div style="width:80px">操作</div></th> | |
81 | + </tr> | |
82 | + </thead> | |
83 | + <tbody> | |
84 | + <c:choose> | |
85 | + <c:when test="${not empty varList}"> | |
86 | + <c:forEach items="${varList}" var="var" varStatus="vs"> | |
87 | + <tr> | |
88 | + | |
89 | + <td>${vs.index+1}</td> | |
90 | + <td>${myelfun:findClassName(var.class_id)}</td> | |
91 | + <td >${var.creat_time}</td> | |
92 | + <td >${var.avg_score}</td> | |
93 | + <td >${var.student_num}</td> | |
94 | + <td >${var.you}</td> | |
95 | + <td > | |
96 | + <fmt:formatNumber type="number" | |
97 | + value="${var.student_num == 0 ? 0: (var.you / var.student_num * 100)}" | |
98 | + maxFractionDigits="2" />% | |
99 | + </td> | |
100 | + <td >${var.liang}</td> | |
101 | + <td > | |
102 | + <fmt:formatNumber type="number" | |
103 | + value="${var.student_num == 0 ? 0: (var.liang / var.student_num * 100)}" | |
104 | + maxFractionDigits="2" />% | |
105 | + </td> | |
106 | + <td >${var.jige}</td> | |
107 | + <td > | |
108 | + <fmt:formatNumber type="number" | |
109 | + value="${var.student_num == 0 ? 0: (var.jige / var.student_num * 100)}" | |
110 | + maxFractionDigits="2" />% | |
111 | + </td> | |
112 | + <td >${var.difen}</td> | |
113 | + <td > | |
114 | + <fmt:formatNumber type="number" | |
115 | + value="${var.student_num == 0 ? 0: (var.difen / var.student_num * 100)}" | |
116 | + maxFractionDigits="2" />% | |
117 | + </td> | |
118 | + <td ><a href="<%=basePath%>paper/paperRep2.do?PAPER_ID=${pd.PAPER_ID}&TESTPAPER_ID=${var.testpaper_id}">查看成绩</a></td> | |
119 | + </tr> | |
120 | + | |
121 | + </c:forEach> | |
122 | + </c:when> | |
123 | + <c:otherwise> | |
124 | + <tr class="main_info"> | |
125 | + <td colspan="100" class="center" >没有相关数据</td> | |
126 | + </tr> | |
127 | + </c:otherwise> | |
128 | + </c:choose> | |
129 | + </tbody> | |
130 | + </table> | |
131 | + | |
132 | + <div id="scrollableTable"></div> | |
133 | + | |
134 | + <div class="footer"> | |
135 | + <!-- <div class="creat"> | |
136 | + <input type="button" onclick="parent.$('.title_time').modal('show');" value="新建试卷" /> | |
137 | + </div> | |
138 | + <div class="removeAll"> | |
139 | + <input type="button" onclick="deleteAll()" value="批量删除" /> | |
140 | + </div> --> | |
141 | + <div class="page_box"> | |
142 | + | |
143 | + <div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div> | |
144 | + </div> | |
145 | + </div> | |
146 | + </div> | |
147 | + </form> | |
148 | +</body> | |
149 | + | |
150 | +<%@ include file="../../system/index/foot2.jsp"%> | |
151 | +<script src="../static/ace/js/date-time/bootstrap-datepicker.js"></script> | |
152 | + | |
153 | + <script language="javascript" src="../static/js/tablescroller.js"></script> | |
154 | + <script language="javascript" src="../static/js/tablescroller.jquery.js"></script> | |
155 | +<script type="text/javascript"> | |
156 | + | |
157 | + $(document).ready(function(){ | |
158 | + window.top.loading.remove(); | |
159 | + $(".table_box").css("padding-top",$(".head_box").height()); | |
160 | + | |
161 | + var _heigh = $('#mainFrame', parent.document).height()-150; | |
162 | + | |
163 | + var options = { | |
164 | + width: '100%', | |
165 | + height: _heigh, | |
166 | + pinnedRows: 1, | |
167 | + pinnedCols: 5, | |
168 | + container: "#scrollableTable", | |
169 | + removeOriginal: true | |
170 | + }; | |
171 | + | |
172 | + //$("#simple-table").tablescroller(options); | |
173 | + }); | |
174 | + | |
175 | + | |
176 | + | |
177 | + function tosearch(){ | |
178 | + window.top.loading.remove(); | |
179 | + $("#Form").submit(); | |
180 | + } | |
181 | + | |
182 | + $('#ids').on('click', function(){ | |
183 | + var th_checked = $("#ids").prop('checked');//checkbox inside "TH" table header | |
184 | + | |
185 | + $(".table_box .table").find('tbody > tr').each(function(){ | |
186 | + var row = this; | |
187 | + if(th_checked) $(row).find('input[type=checkbox]').eq(0).prop('checked', true); | |
188 | + else $(row).find('input[type=checkbox]').eq(0).prop('checked', false); | |
189 | + }); | |
190 | + }); | |
191 | + | |
192 | + function del(Id){ | |
193 | + //var remove = new remove(); | |
194 | + window.top.remove.init({"title":"删除","func":function(success){ | |
195 | + if(success){ | |
196 | + var url = "<%=basePath%>paper/delete.do?PAPER_ID="+Id+"&qingsongkao=true&tm="+new Date().getTime(); | |
197 | + window.top.loading.show(); | |
198 | + $.get(url,function(data){ | |
199 | + tosearch(); | |
200 | + }); | |
201 | + } | |
202 | + else{ | |
203 | + console.log("false"); | |
204 | + } | |
205 | + }}); | |
206 | + remove.show(); | |
207 | + } | |
208 | + | |
209 | + $(function() { | |
210 | + | |
211 | + //日期框 | |
212 | + $('.date-picker').datepicker({ | |
213 | + autoclose: true, | |
214 | + todayHighlight: true | |
215 | + }); | |
216 | + | |
217 | + }); | |
218 | + | |
219 | + function deleteAll(){ | |
220 | + window.top.remove.init({"title":"删除","func":function(success){ | |
221 | + if(success){ | |
222 | + var str = ''; | |
223 | + for(var i=0;i < document.getElementsByName('ids').length;i++){ | |
224 | + if(document.getElementsByName('ids')[i].checked){ | |
225 | + if(str=='') str += document.getElementsByName('ids')[i].value; | |
226 | + else str += ',' + document.getElementsByName('ids')[i].value; | |
227 | + } | |
228 | + } | |
229 | + if(str==''){ | |
230 | + | |
231 | + }else{ | |
232 | + $.ajax({ | |
233 | + type: "POST", | |
234 | + url: '<%=basePath%>paper/deleteAll.do?tm='+new Date().getTime(), | |
235 | + data: {DATA_IDS:str}, | |
236 | + dataType:'json', | |
237 | + //beforeSend: validateData, | |
238 | + cache: false, | |
239 | + success: function(data){ | |
240 | + $.each(data.list, function(i, list){ | |
241 | + tosearch(); | |
242 | + }); | |
243 | + } | |
244 | + }); | |
245 | + } | |
246 | + } | |
247 | + else{ | |
248 | + console.log("false"); | |
249 | + } | |
250 | + }}); | |
251 | + window.top.remove.show(); | |
252 | + } | |
253 | + | |
254 | + function export1(){ | |
255 | + window.open('<%=basePath%>paper/export1?PAPER_ID=${pd.PAPER_ID}', '_blank'); | |
256 | + } | |
257 | + | |
258 | +</script> | |
259 | +</html> | |
0 | 260 | \ No newline at end of file | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/paper/test_list2.jsp
0 → 100644
1 | +<%@ page language="java" contentType="text/html; charset=UTF-8" | |
2 | + pageEncoding="UTF-8"%> | |
3 | +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> | |
4 | +<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> | |
5 | +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%> | |
6 | +<%@ taglib prefix="myelfun" uri="/WEB-INF/tld/elfun.tld"%> | |
7 | +<% | |
8 | + String path = request.getContextPath(); | |
9 | + String basePath = request.getScheme() + "://" | |
10 | + + request.getServerName() + ":" + request.getServerPort() + path + "/"; | |
11 | +%> | |
12 | +<html lang="zh-CN"> | |
13 | +<head> | |
14 | +<meta charset="utf-8"> | |
15 | +<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
16 | +<meta name="viewport" content="width=device-width, initial-scale=1"> | |
17 | +<title>教育管理系统</title> | |
18 | + | |
19 | +<!-- Bootstrap --> | |
20 | +<!-- <link | |
21 | + href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" | |
22 | + rel="stylesheet"> --> | |
23 | + <link rel="stylesheet" href="../static/css/bootstrap.min.css" /> | |
24 | +<link href="../static/css/teach.css" rel="stylesheet"> | |
25 | +<link rel="stylesheet" href="../static/ace/css/datepicker.css" /> | |
26 | +<link type="text/css" href="../static/css/tablescroller.css" rel="stylesheet" /> | |
27 | +<script src="../static/js/loading.js"></script> | |
28 | +<script src="../static/js/remove.js?a=1"></script> | |
29 | + | |
30 | + | |
31 | +<!-- HTML5 shim 和 Respond.js 是为了让 IE8 支持 HTML5 元素和媒体查询(media queries)功能 --> | |
32 | +<!-- 警告:通过 file:// 协议(就是直接将 html 页面拖拽到浏览器中)访问页面时 Respond.js 不起作用 --> | |
33 | +<!--[if lt IE 9]> | |
34 | + <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script> | |
35 | + <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> | |
36 | + <![endif]--> | |
37 | +</head> | |
38 | +<body> | |
39 | + | |
40 | + <form action="../paper/list4.do" method="post" name="Form" id="Form"> | |
41 | + <div class="head_box"> | |
42 | + <div class="box_header"> | |
43 | + <div class="head_box_l"> | |
44 | + <p> | |
45 | + <span class="right_b"></span>试卷测验列表 | |
46 | + </p> | |
47 | + </div> | |
48 | + | |
49 | + <div class="head_box_r"> | |
50 | + <button type="button" class="btn btn-primary" onclick="window.history.go(-1)" autocomplete="off">返回</button> | |
51 | + <button type="button" class="btn btn-primary" onclick="export2()" autocomplete="off">导出</button> | |
52 | + </div> | |
53 | + | |
54 | + <div class="clear"></div> | |
55 | + </div> | |
56 | + | |
57 | + </div> | |
58 | + <div class="table_box" style="padding:0 5%;background:#fff;"> | |
59 | + <div style="padding:15px 0;background:#fff;" class="paper_title"> | |
60 | + | |
61 | + 试卷名称:${myelfun:findPaperName(pd.PAPER_ID)} | |
62 | + </div> | |
63 | + | |
64 | + <table id="simple-table" | |
65 | + class="table table-striped table-bordered table-hover" | |
66 | + style="margin-top:0px;margin-bottom:0;"> | |
67 | + <thead> | |
68 | + <tr> | |
69 | + <th><div style="width:80px">题号</div></th> | |
70 | + <th><div style="width:80px">答案</div></th> | |
71 | + <th><div style="width:80px">答题人数</div></th> | |
72 | + <th><div style="width:80px">正确人数</div></th> | |
73 | + <th><div style="width:80px">正确率</div></th> | |
74 | + <th><div style="width:80px">满分值</div></th> | |
75 | + <th><div style="width:80px">平均分</div></th> | |
76 | + <c:forEach begin="0" end="${pd.MAX-1}" var="var" varStatus="vs"> | |
77 | + <th><div style="width:80px">选 ${myelfun:jstlInt2Char(var+1)}人数</div></th> | |
78 | + <th><div style="width:80px">选${myelfun:jstlInt2Char(var+1)}比例</div></th> | |
79 | + </c:forEach> | |
80 | + <th><div style="width:80px">漏选人数</div></th> | |
81 | + <th><div style="width:80px">漏选比例</div></th> | |
82 | + | |
83 | + </tr> | |
84 | + </thead> | |
85 | + <tbody> | |
86 | + <c:choose> | |
87 | + <c:when test="${not empty varList}"> | |
88 | + <c:forEach items="${varList}" var="var" varStatus="vs"> | |
89 | + <tr> | |
90 | + | |
91 | + <td>${var.QUESTION_RANK}</td> | |
92 | + <td>${var.ANSWER}</td> | |
93 | + <td >${var.ANSWERNUM}</td> | |
94 | + <td >${var.RIGHTNUM}</td> | |
95 | + <td > | |
96 | + <fmt:formatNumber type="number" | |
97 | + value="${var.ANSWERNUM == 0 ? 0: (var.RIGHTNUM / var.ANSWERNUM * 100)}" | |
98 | + maxFractionDigits="2" />% | |
99 | + </td> | |
100 | + <td >${var.QUESTION_SCORE}</td> | |
101 | + <td > | |
102 | + <fmt:formatNumber type="number" | |
103 | + value="${var.ANSWERNUM == 0 ? 0: (var.RIGHTNUM / var.ANSWERNUM)*var.QUESTION_SCORE}" | |
104 | + maxFractionDigits="2" /> | |
105 | + </td> | |
106 | + <c:forEach items="${var.optin_info}" begin="0" end="${pd.MAX}" var="var1" varStatus="vs"> | |
107 | + <td>${var1}</td> | |
108 | + <td> | |
109 | + <fmt:formatNumber type="number" | |
110 | + value="${var.ANSWERNUM == 0 ? 0: (var1 / var.ANSWERNUM * 100)}" | |
111 | + maxFractionDigits="2" />% | |
112 | + </td> | |
113 | + </c:forEach> | |
114 | + | |
115 | + </tr> | |
116 | + | |
117 | + </c:forEach> | |
118 | + </c:when> | |
119 | + <c:otherwise> | |
120 | + <tr class="main_info"> | |
121 | + <td colspan="100" class="center" >没有相关数据</td> | |
122 | + </tr> | |
123 | + </c:otherwise> | |
124 | + </c:choose> | |
125 | + </tbody> | |
126 | + </table> | |
127 | + | |
128 | + | |
129 | + | |
130 | + <div class="footer"> | |
131 | + <!-- <div class="creat"> | |
132 | + <input type="button" onclick="parent.$('.title_time').modal('show');" value="新建试卷" /> | |
133 | + </div> | |
134 | + <div class="removeAll"> | |
135 | + <input type="button" onclick="deleteAll()" value="批量删除" /> | |
136 | + </div> --> | |
137 | + <div class="page_box"> | |
138 | + | |
139 | + <div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div> | |
140 | + </div> | |
141 | + </div> | |
142 | + </div> | |
143 | + </form> | |
144 | +</body> | |
145 | + | |
146 | +<%@ include file="../../system/index/foot2.jsp"%> | |
147 | +<script src="../static/ace/js/date-time/bootstrap-datepicker.js"></script> | |
148 | + | |
149 | + <script language="javascript" src="../static/js/tablescroller.js"></script> | |
150 | + <script language="javascript" src="../static/js/tablescroller.jquery.js"></script> | |
151 | +<script type="text/javascript"> | |
152 | + | |
153 | + $(document).ready(function(){ | |
154 | + window.top.loading.remove(); | |
155 | + $(".table_box").css("padding-top",$(".head_box").height()); | |
156 | + | |
157 | + var _heigh = $('#mainFrame', parent.document).height()-150; | |
158 | + | |
159 | + var options = { | |
160 | + width: '100%', | |
161 | + height: _heigh, | |
162 | + pinnedRows: 1, | |
163 | + pinnedCols: 5, | |
164 | + container: "#scrollableTable", | |
165 | + removeOriginal: true | |
166 | + }; | |
167 | + | |
168 | + $("#simple-table").tablescroller(options); | |
169 | + }); | |
170 | + | |
171 | + | |
172 | + | |
173 | + function tosearch(){ | |
174 | + window.top.loading.remove(); | |
175 | + $("#Form").submit(); | |
176 | + } | |
177 | + | |
178 | + $('#ids').on('click', function(){ | |
179 | + var th_checked = $("#ids").prop('checked');//checkbox inside "TH" table header | |
180 | + | |
181 | + $(".table_box .table").find('tbody > tr').each(function(){ | |
182 | + var row = this; | |
183 | + if(th_checked) $(row).find('input[type=checkbox]').eq(0).prop('checked', true); | |
184 | + else $(row).find('input[type=checkbox]').eq(0).prop('checked', false); | |
185 | + }); | |
186 | + }); | |
187 | + | |
188 | + function del(Id){ | |
189 | + //var remove = new remove(); | |
190 | + window.top.remove.init({"title":"删除","func":function(success){ | |
191 | + if(success){ | |
192 | + var url = "<%=basePath%>paper/delete.do?PAPER_ID="+Id+"&qingsongkao=true&tm="+new Date().getTime(); | |
193 | + window.top.loading.show(); | |
194 | + $.get(url,function(data){ | |
195 | + tosearch(); | |
196 | + }); | |
197 | + } | |
198 | + else{ | |
199 | + console.log("false"); | |
200 | + } | |
201 | + }}); | |
202 | + remove.show(); | |
203 | + } | |
204 | + | |
205 | + $(function() { | |
206 | + | |
207 | + //日期框 | |
208 | + $('.date-picker').datepicker({ | |
209 | + autoclose: true, | |
210 | + todayHighlight: true | |
211 | + }); | |
212 | + | |
213 | + }); | |
214 | + | |
215 | + function deleteAll(){ | |
216 | + window.top.remove.init({"title":"删除","func":function(success){ | |
217 | + if(success){ | |
218 | + var str = ''; | |
219 | + for(var i=0;i < document.getElementsByName('ids').length;i++){ | |
220 | + if(document.getElementsByName('ids')[i].checked){ | |
221 | + if(str=='') str += document.getElementsByName('ids')[i].value; | |
222 | + else str += ',' + document.getElementsByName('ids')[i].value; | |
223 | + } | |
224 | + } | |
225 | + if(str==''){ | |
226 | + | |
227 | + }else{ | |
228 | + $.ajax({ | |
229 | + type: "POST", | |
230 | + url: '<%=basePath%>paper/deleteAll.do?tm='+new Date().getTime(), | |
231 | + data: {DATA_IDS:str}, | |
232 | + dataType:'json', | |
233 | + //beforeSend: validateData, | |
234 | + cache: false, | |
235 | + success: function(data){ | |
236 | + $.each(data.list, function(i, list){ | |
237 | + tosearch(); | |
238 | + }); | |
239 | + } | |
240 | + }); | |
241 | + } | |
242 | + } | |
243 | + else{ | |
244 | + console.log("false"); | |
245 | + } | |
246 | + }}); | |
247 | + window.top.remove.show(); | |
248 | + } | |
249 | + function export2(){ | |
250 | + window.open("<%=basePath%>paper/export2?PAPER_ID=${pd.PAPER_ID}&TESTPAPER_ID=${pd.TESTPAPER_ID}","_blank"); | |
251 | + } | |
252 | + | |
253 | +</script> | |
254 | +</html> | |
0 | 255 | \ No newline at end of file | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/subject/subject_list2.jsp
... | ... | @@ -16,7 +16,6 @@ |
16 | 16 | <link rel="stylesheet" href="static/ace/css/chosen.css" /> |
17 | 17 | <!-- jsp文件头和头部 --> |
18 | 18 | |
19 | -<link href="../static/css/teach.css" rel="stylesheet"> | |
20 | 19 | <!-- 日期框 --> |
21 | 20 | <link rel="stylesheet" href="static/ace/css/datepicker.css" /> |
22 | 21 | <!-- <link |
... | ... | @@ -24,6 +23,10 @@ |
24 | 23 | rel="stylesheet"> --> |
25 | 24 | <link rel="stylesheet" href="static/css/bootstrap.min.css" /> |
26 | 25 | <link href="static/css/teach.css" rel="stylesheet"> |
26 | +<style type="text/css"> | |
27 | + #remove{ | |
28 | + background:#ccc} | |
29 | +</style> | |
27 | 30 | </head> |
28 | 31 | <body class="no-skin"> |
29 | 32 | <form action="subject/listcs.do" method="post" name="Form" id="Form"> |
... | ... | @@ -68,7 +71,7 @@ |
68 | 71 | <c:when test="${not empty varList}"> |
69 | 72 | <c:forEach items="${varList}" var="var" varStatus="vs"> |
70 | 73 | <tr> |
71 | - <td><input type="checkbox" name='ids' id="ids" | |
74 | + <td><input type="checkbox" name='ids' class="ids" | |
72 | 75 | value="${var.ID}" />${vs.index+1}</td> |
73 | 76 | <td class='center'>${var.CNAME}</td> |
74 | 77 | <td class='center'>${var.ENAME}</td> |
... | ... | @@ -91,7 +94,7 @@ |
91 | 94 | <input type="button" onclick="add()" value="添加科目" /> |
92 | 95 | </div> |
93 | 96 | <div class="removeAll"> |
94 | - <input type="button" onclick="del()" value="移除科目" /> | |
97 | + <input type="button" onclick="del()" disabled id="remove" value="移除科目" /> | |
95 | 98 | </div> |
96 | 99 | <div class="page_box"> |
97 | 100 | |
... | ... | @@ -179,6 +182,32 @@ |
179 | 182 | }); |
180 | 183 | window.top.modal.show(); |
181 | 184 | } |
185 | + $('#ids').on('click', function(){ | |
186 | + var th_checked = $("#ids").prop('checked');//checkbox inside "TH" table header | |
187 | + | |
188 | + $(".table_box .table").find('tbody > tr').each(function(){ | |
189 | + var row = this; | |
190 | + if(th_checked) $(row).find('input[type=checkbox]').eq(0).prop('checked', true); | |
191 | + else $(row).find('input[type=checkbox]').eq(0).prop('checked', false); | |
192 | + }); | |
193 | + }); | |
194 | + | |
195 | + $("input[type=checkbox]").on('click',function(){ | |
196 | + var str = ''; | |
197 | + for(var i=0;i < document.getElementsByName('ids').length;i++){ | |
198 | + if(document.getElementsByName('ids')[i].checked){ | |
199 | + if(str=='') str += document.getElementsByName('ids')[i].value; | |
200 | + else str += ',' + document.getElementsByName('ids')[i].value; | |
201 | + } | |
202 | + } | |
203 | + if(str==''){ | |
204 | + $("#remove").attr("disabled","disabled"); | |
205 | + $("#remove").css("background","#ccc"); | |
206 | + }else{ | |
207 | + $("#remove").removeAttr("disabled"); | |
208 | + $("#remove").css("background","#f29c9f"); | |
209 | + } | |
210 | + }) | |
182 | 211 | </script> |
183 | 212 | |
184 | 213 | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp
... | ... | @@ -27,6 +27,11 @@ |
27 | 27 | <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script> |
28 | 28 | <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> |
29 | 29 | <![endif]--> |
30 | + <style> | |
31 | + .menu_2 .active{ | |
32 | + background:#000; | |
33 | + } | |
34 | +</style> | |
30 | 35 | </head> |
31 | 36 | <body> |
32 | 37 | <div class="header"> |
... | ... | @@ -284,6 +289,10 @@ |
284 | 289 | if (defaultUrl != '' && defaultUrl != '') { |
285 | 290 | $("#mainFrame").attr('src', defaultUrl); |
286 | 291 | } |
292 | + $(".menu_2 li").click(function(){ | |
293 | + $(".active").removeClass("active"); | |
294 | + $(this).addClass("active"); | |
295 | + }) | |
287 | 296 | </script> |
288 | 297 | </body> |
289 | 298 | </html> |
290 | 299 | \ No newline at end of file | ... | ... |
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_report_1.jsp
... | ... | @@ -82,7 +82,7 @@ |
82 | 82 | <th class="center"><div style="width:80px;">课程总分</div></th> |
83 | 83 | <c:forEach items="${testpaperList}" var="var" varStatus="vs"> |
84 | 84 | <th class="center kc"><a |
85 | - onclick="paper('${info.CLASS_ID}','${var.TESTPAPER_ID}');"><div style="width:180px; margin: 0 auto;cursor:hand" class="font">${var.NAME}</br><span>${var.CREATE_DATE}</span></div></a></th> | |
85 | + onclick="paper('${info.CLASS_ID}','${var.TESTPAPER_ID}');"><div style="width:180px; margin: 0 auto;cursor:hand" class="font"><div style="width:100%;overflow:hidden;text-overflow:ellipsis;white-space: nowrap;">${var.NAME}</div><span>${var.CREATE_DATE}</span></div></a></th> | |
86 | 86 | </c:forEach> |
87 | 87 | </tr> |
88 | 88 | </thead> |
... | ... | @@ -239,6 +239,16 @@ |
239 | 239 | var url = "<%=basePath%>report/report.do?classid=${info.CLASS_ID}" ; |
240 | 240 | var startDate = $("#lastStart").val(); |
241 | 241 | var endDate = $("#lastEnd").val(); |
242 | + var temp=""; | |
243 | + var sd = parseInt(startDate.replace(/-/g,"")); | |
244 | + var ed = parseInt(endDate.replace(/-/g,"")); | |
245 | + if(sd>ed){ | |
246 | + temp = startDate; | |
247 | + startDate = endDate; | |
248 | + endDate = temp; | |
249 | + } | |
250 | + $("#lastStart").val(startDate); | |
251 | + $("#lastEnd").val(endDate); | |
242 | 252 | var subject_id = $("#SUBJECT_ID").val(); |
243 | 253 | url = url + "&start_date=" + startDate ; |
244 | 254 | if(endDate != null){ | ... | ... |
WebRoot/WEB-INF/tld/elfun.tld
... | ... | @@ -146,7 +146,7 @@ |
146 | 146 | <description>数字转字符</description><!-- 对该标签的说明 --> |
147 | 147 | <name>jstlInt2Char</name><!-- 定义标签名,放在短标签之后 --> |
148 | 148 | <function-class>com.fh.controller.sunvote.Myelfun</function-class><!-- 标签处理域值的类路径 --> |
149 | - <function-signature>java.lang.String findSoftwareName(int)</function-signature><!-- 标签处理域值的具体的类方法 --> | |
149 | + <function-signature>java.lang.String jstlInt2Char(int)</function-signature><!-- 标签处理域值的具体的类方法 --> | |
150 | 150 | <example>${myelfun:jstlInt2Char(obj1)}</example><!-- 自定义标签的使用示范 ,域参数会自动传递到具体的方法里面--> |
151 | 151 | </function> |
152 | 152 | ... | ... |
WebRoot/static/files/Template.xls
No preview for this file type
WebRoot/static/files/Template1.xls
No preview for this file type
WebRoot/static/images/fail.png
0 → 100644
30.2 KB
resources/mybatis1/sunvote/StudentMapper.xml
... | ... | @@ -108,6 +108,16 @@ |
108 | 108 | NAME = #{NAME} |
109 | 109 | </select> |
110 | 110 | |
111 | + <!-- 通过ID获取数据 --> | |
112 | + <select id="countByClassId" parameterType="String" resultType="Integer"> | |
113 | + select | |
114 | + count(0) | |
115 | + from | |
116 | + <include refid="tableName"></include> | |
117 | + where | |
118 | + CLASS_ID = #{classid} | |
119 | + </select> | |
120 | + | |
111 | 121 | <!-- 列表 --> |
112 | 122 | <select id="datalistPage" parameterType="page" resultType="pd"> |
113 | 123 | select | ... | ... |
src/com/fh/controller/api/V1.java
... | ... | @@ -551,10 +551,13 @@ public class V1 extends BaseController { |
551 | 551 | PageData p = teacherService.findById2(pd.get("USER_ID").toString()); |
552 | 552 | if(p != null){ |
553 | 553 | pd.put("SCHOOL_ID", p.get("SCHOOL_ID")); |
554 | - pd.remove("USER_ID"); | |
554 | + //pd.remove("USER_ID"); | |
555 | 555 | }else{ |
556 | 556 | pd.put("SCHOOL_ID", ""); |
557 | 557 | } |
558 | + if(pd.getString("PAPER_TYPE").equals("2")){ | |
559 | + pd.remove("USER_ID"); | |
560 | + } | |
558 | 561 | List<PageData> pageList = paperService.listAllByType(pd); |
559 | 562 | res.setData(pageList); |
560 | 563 | } else { | ... | ... |
src/com/fh/controller/sunvote/Myelfun.java
src/com/fh/controller/sunvote/paper/PaperController.java
... | ... | @@ -2,8 +2,12 @@ package com.fh.controller.sunvote.paper; |
2 | 2 | |
3 | 3 | import java.io.PrintWriter; |
4 | 4 | import java.text.DateFormat; |
5 | +import java.text.DecimalFormat; | |
5 | 6 | import java.text.SimpleDateFormat; |
6 | 7 | import java.util.ArrayList; |
8 | +import java.util.Arrays; | |
9 | +import java.util.Collections; | |
10 | +import java.util.Comparator; | |
7 | 11 | import java.util.Date; |
8 | 12 | import java.util.HashMap; |
9 | 13 | import java.util.List; |
... | ... | @@ -20,9 +24,12 @@ import org.springframework.web.bind.annotation.RequestMapping; |
20 | 24 | import org.springframework.web.bind.annotation.ResponseBody; |
21 | 25 | import org.springframework.web.servlet.ModelAndView; |
22 | 26 | |
27 | +import com.alibaba.druid.support.json.JSONUtils; | |
23 | 28 | import com.fh.bean.Paper; |
24 | 29 | import com.fh.bean.Question; |
30 | +import com.fh.controller.api.ResponseGson; | |
25 | 31 | import com.fh.controller.base.BaseController; |
32 | +import com.fh.controller.sunvote.Myelfun; | |
26 | 33 | import com.fh.entity.Page; |
27 | 34 | import com.fh.entity.system.User; |
28 | 35 | import com.fh.service.api.V1Manager; |
... | ... | @@ -31,6 +38,12 @@ import com.fh.service.sunvote.paper.PaperManager; |
31 | 38 | import com.fh.service.sunvote.paperquestion.PaperQuestionManager; |
32 | 39 | import com.fh.service.sunvote.question.QuestionManager; |
33 | 40 | import com.fh.service.sunvote.schoolgradesubject.SchoolGradeSubjectManager; |
41 | +import com.fh.service.sunvote.sclass.SClassManager; | |
42 | +import com.fh.service.sunvote.sclass.impl.SClassService; | |
43 | +import com.fh.service.sunvote.student.StudentManager; | |
44 | +import com.fh.service.sunvote.studenttest.StudentTestManager; | |
45 | +import com.fh.service.sunvote.testpaper.TestPaperManager; | |
46 | +import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager; | |
34 | 47 | import com.fh.util.AppUtil; |
35 | 48 | import com.fh.util.Const; |
36 | 49 | import com.fh.util.Jurisdiction; |
... | ... | @@ -49,6 +62,15 @@ public class PaperController extends BaseController { |
49 | 62 | @Resource(name="paperService") |
50 | 63 | private PaperManager paperService; |
51 | 64 | |
65 | + @Resource(name="testpaperService") | |
66 | + private TestPaperManager testpaperService; | |
67 | + | |
68 | + @Resource(name="testpaperinfoService") | |
69 | + private TestPaperInfoManager testpaperinfoService; | |
70 | + | |
71 | + @Resource(name="studentService") | |
72 | + private StudentManager stundentService; | |
73 | + | |
52 | 74 | @Resource(name="paperquestionService") |
53 | 75 | private PaperQuestionManager paperquestionService; |
54 | 76 | |
... | ... | @@ -64,6 +86,12 @@ public class PaperController extends BaseController { |
64 | 86 | @Resource(name="pagetemplateService") |
65 | 87 | private PageTemplateManager pagetemplateService; |
66 | 88 | |
89 | + @Resource(name="studenttestService") | |
90 | + private StudentTestManager studenttestService; | |
91 | + | |
92 | + @Resource(name="sclassService") | |
93 | + private SClassManager sclassService; | |
94 | + | |
67 | 95 | /**保存 |
68 | 96 | * @param |
69 | 97 | * @throws Exception |
... | ... | @@ -164,6 +192,403 @@ public class PaperController extends BaseController { |
164 | 192 | return mv; |
165 | 193 | } |
166 | 194 | |
195 | + @RequestMapping(value="/paperRep") | |
196 | + public ModelAndView paperRep() throws Exception{ | |
197 | + ModelAndView mv = this.getModelAndView(); | |
198 | + PageData pd = new PageData(); | |
199 | + List<PageData> templist = new ArrayList<PageData>(); | |
200 | + PageData saveData = new PageData(); | |
201 | + | |
202 | + ResponseGson<PageData> res = new ResponseGson(); | |
203 | + pd = this.getPageData(); | |
204 | + if(pd.containsKey("PAPER_ID")){ | |
205 | + List<PageData> list = testpaperService.listAll(pd); | |
206 | + | |
207 | + pd.put("testpaperlist", list); | |
208 | + for(int i = 0 ;i<list.size();i++){ | |
209 | + PageData data = new PageData(); | |
210 | + | |
211 | + PageData pdtemp = new PageData(); | |
212 | + pdtemp.put("CLASS_ID", list.get(i).get("SCLASS_ID").toString()); | |
213 | + List<PageData> studentlist = stundentService.listAllClass(pdtemp); | |
214 | + data.put("testpaper_id", list.get(i).get("TESTPAPER_ID")); | |
215 | + data.put("student_num", studentlist.size()); | |
216 | + data.put("creat_time", list.get(i).get("CREATE_DATE")); | |
217 | + data.put("avg_score", list.get(i).get("AVG_SCORE")); | |
218 | + data.put("class_id", list.get(i).get("SCLASS_ID")); | |
219 | + pdtemp.put("TEST_ID", list.get(i).get("TESTPAPER_ID")); | |
220 | + List<PageData> l = studenttestService.listAll(pdtemp); | |
221 | + | |
222 | + Integer you = 0; | |
223 | + Integer liang = 0; | |
224 | + Integer jige = 0; | |
225 | + Integer difen = 0; | |
226 | + Float total = Float.valueOf(list.get(i).get("TOTAL_SCORE").toString()); | |
227 | + | |
228 | + for(int j = 0; j<l.size();j++){ | |
229 | + Float score = Float.valueOf(l.get(j).get("SCORE").toString()); | |
230 | + if(total != 0){ | |
231 | + if(score/total>=0.8){ | |
232 | + you++; | |
233 | + }else if(score/total>=0.7){ | |
234 | + liang++; | |
235 | + }else if(score/total>=0.6){ | |
236 | + jige++; | |
237 | + }else if(score/total<0.3){ | |
238 | + difen++; | |
239 | + } | |
240 | + } | |
241 | + | |
242 | + } | |
243 | + | |
244 | + data.put("you",you); | |
245 | + data.put("liang",liang); | |
246 | + data.put("jige",jige); | |
247 | + data.put("difen",difen); | |
248 | + | |
249 | + templist.add(data); | |
250 | + } | |
251 | + } | |
252 | + saveData.put("list", templist); | |
253 | + | |
254 | + mv.setViewName("sunvote/paper/test_list1"); | |
255 | + mv.addObject("varList", templist); | |
256 | + mv.addObject("pd",pd); | |
257 | + res.setData(saveData); | |
258 | + return mv; | |
259 | + } | |
260 | + | |
261 | + @RequestMapping(value="/export1") | |
262 | + public ModelAndView export1() throws Exception{ | |
263 | + ModelAndView mv = this.getModelAndView(); | |
264 | + PageData pd = new PageData(); | |
265 | + List<PageData> templist = new ArrayList<PageData>(); | |
266 | + PageData saveData = new PageData(); | |
267 | + | |
268 | + ResponseGson<PageData> res = new ResponseGson(); | |
269 | + pd = this.getPageData(); | |
270 | + if(pd.containsKey("PAPER_ID")){ | |
271 | + List<PageData> list = testpaperService.listAll(pd); | |
272 | + | |
273 | + pd.put("testpaperlist", list); | |
274 | + for(int i = 0 ;i<list.size();i++){ | |
275 | + PageData data = new PageData(); | |
276 | + | |
277 | + PageData pdtemp = new PageData(); | |
278 | + pdtemp.put("CLASS_ID", list.get(i).get("SCLASS_ID").toString()); | |
279 | + List<PageData> studentlist = stundentService.listAllClass(pdtemp); | |
280 | + data.put("testpaper_id", list.get(i).get("TESTPAPER_ID")); | |
281 | + data.put("student_num", studentlist.size()); | |
282 | + data.put("creat_time", list.get(i).get("CREATE_DATE")); | |
283 | + data.put("avg_score", list.get(i).get("AVG_SCORE")); | |
284 | + data.put("class_id", list.get(i).get("SCLASS_ID")); | |
285 | + pdtemp.put("TEST_ID", list.get(i).get("TESTPAPER_ID")); | |
286 | + List<PageData> l = studenttestService.listAll(pdtemp); | |
287 | + | |
288 | + Integer you = 0; | |
289 | + Integer liang = 0; | |
290 | + Integer jige = 0; | |
291 | + Integer difen = 0; | |
292 | + Float total = Float.valueOf(list.get(i).get("TOTAL_SCORE").toString()); | |
293 | + | |
294 | + for(int j = 0; j<l.size();j++){ | |
295 | + Float score = Float.valueOf(l.get(j).get("SCORE").toString()); | |
296 | + if(total != 0){ | |
297 | + if(score/total>=0.8){ | |
298 | + you++; | |
299 | + }else if(score/total>=0.7){ | |
300 | + liang++; | |
301 | + }else if(score/total>=0.6){ | |
302 | + jige++; | |
303 | + }else if(score/total<0.3){ | |
304 | + difen++; | |
305 | + } | |
306 | + } | |
307 | + | |
308 | + } | |
309 | + | |
310 | + data.put("you",you); | |
311 | + data.put("liang",liang); | |
312 | + data.put("jige",jige); | |
313 | + data.put("difen",difen); | |
314 | + | |
315 | + templist.add(data); | |
316 | + } | |
317 | + } | |
318 | + | |
319 | + Map<String,Object> dataMap = new HashMap<String,Object>(); | |
320 | + List<String> titles = new ArrayList<String>(); | |
321 | + titles.add("序号"); //1 | |
322 | + titles.add("班级名称"); //2 | |
323 | + titles.add("考试时间"); //3 | |
324 | + titles.add("平均分"); //4 | |
325 | + titles.add("班级总人数"); //5 | |
326 | + titles.add("优秀人数"); //6 | |
327 | + titles.add("优秀率"); //7 | |
328 | + titles.add("良好人数"); //8 | |
329 | + titles.add("良好率"); //9 | |
330 | + titles.add("及格人数"); //10 | |
331 | + titles.add("及格率"); //11 | |
332 | + titles.add("低分人数"); //12 | |
333 | + titles.add("低分率"); //13 | |
334 | + dataMap.put("titles", titles); | |
335 | + List<PageData> varOList = templist; | |
336 | + List<PageData> varList = new ArrayList<PageData>(); | |
337 | + DecimalFormat decimalFormat=new DecimalFormat("0.00"); | |
338 | + for(int i=0;i<varOList.size();i++){ | |
339 | + PageData vpd = new PageData(); | |
340 | + vpd.put("ID", varOList.get(i).getString("class_id")); | |
341 | + PageData c = sclassService.findById(vpd); | |
342 | + vpd.remove("ID"); | |
343 | + | |
344 | + Integer you = Integer.valueOf(varOList.get(i).getString("you")); | |
345 | + Integer liang = Integer.valueOf(varOList.get(i).getString("liang")); | |
346 | + Integer jige = Integer.valueOf(varOList.get(i).getString("jige")); | |
347 | + Integer difen = Integer.valueOf(varOList.get(i).getString("difen")); | |
348 | + Integer student_num = Integer.valueOf(varOList.get(i).getString("student_num")); | |
349 | + | |
350 | + | |
351 | + vpd.put("var1", i+1); //1 | |
352 | + vpd.put("var2", c.getString("CLASS_NAME")); //2 | |
353 | + vpd.put("var3", varOList.get(i).getString("creat_time")); //3 | |
354 | + vpd.put("var4", varOList.get(i).getString("avg_score")); //4 | |
355 | + vpd.put("var5", student_num); //5 | |
356 | + vpd.put("var6", you); //6 | |
357 | + vpd.put("var7", student_num==0?0:decimalFormat.format(you*100/student_num)+"%"); //7 | |
358 | + vpd.put("var8", liang); //8 | |
359 | + vpd.put("var9", student_num==0?0:decimalFormat.format(liang*100/student_num)+"%"); //9 | |
360 | + vpd.put("var10", jige); //10 | |
361 | + vpd.put("var11", student_num==0?0:decimalFormat.format(jige*100/student_num)+"%"); //11 | |
362 | + vpd.put("var12", difen); //12 | |
363 | + vpd.put("var13", student_num==0?0:decimalFormat.format(difen*100/student_num)+"%"); //13 | |
364 | + varList.add(vpd); | |
365 | + } | |
366 | + dataMap.put("varList", varList); | |
367 | + ObjectExcelView erv = new ObjectExcelView(); | |
368 | + mv = new ModelAndView(erv,dataMap); | |
369 | + return mv; | |
370 | + } | |
371 | + @RequestMapping(value="/paperRep2") | |
372 | + public ModelAndView paperRep2() throws Exception{ | |
373 | + ModelAndView mv = this.getModelAndView(); | |
374 | + PageData pd = new PageData(); | |
375 | + List<PageData> templist = new ArrayList<PageData>(); | |
376 | + PageData saveData = new PageData(); | |
377 | + | |
378 | + ResponseGson<PageData> res = new ResponseGson(); | |
379 | + pd = this.getPageData(); | |
380 | + if(pd.containsKey("PAPER_ID")){ | |
381 | + List<PageData> list = paperquestionService.listAll(pd); | |
382 | + List<PageData> test = new ArrayList<PageData>(); | |
383 | + int onum[] = new int[list.size()]; | |
384 | + | |
385 | + for(int i = 0;i<list.size();i++){ | |
386 | + PageData temp = new PageData(); | |
387 | + String questionid = list.get(i).get("QUESTION_ID").toString(); | |
388 | + | |
389 | + if(list.get(i).get("NO_NAME")==null||list.get(i).get("NO_NAME").toString().isEmpty()){ | |
390 | + continue; | |
391 | + } | |
392 | + Float que_score = Float.valueOf(list.get(i).get("SCORE").toString()); | |
393 | + temp.put("QUESTION_ID", questionid); | |
394 | + PageData question = questionService.findById(temp); | |
395 | + temp.put("ANSWER",question.get("ANSWER").toString()); | |
396 | + temp.put("QUESTION_RANK", list.get(i).get("RANK").toString()); | |
397 | + temp.put("QUESTION_SCORE", que_score); | |
398 | + | |
399 | + PageData que = questionService.findById(temp); | |
400 | + Integer option_num = 0; | |
401 | + if(!que.get("OPTION_NUM").toString().isEmpty()){ | |
402 | + option_num = Integer.valueOf(que.get("OPTION_NUM").toString()); | |
403 | + onum[i]=option_num; | |
404 | + } | |
405 | + | |
406 | + temp.put("TEST_ID", pd.get("TESTPAPER_ID")); | |
407 | + List<PageData> queInfo = testpaperinfoService.listTestPaperQuestionIDinfo(temp); | |
408 | + int answer[] = new int[option_num+1]; | |
409 | + int right = 0; | |
410 | + for(int j=0;j<queInfo.size();j++){ | |
411 | + if(queInfo.get(j).get("RIGHT")!=null&&!queInfo.get(j).get("RIGHT").toString().isEmpty()){ | |
412 | + if(queInfo.get(j).get("RIGHT").toString().equals("1")){ | |
413 | + right++; | |
414 | + } | |
415 | + } | |
416 | + if(queInfo.get(j).get("ANSWER")!=null&&!queInfo.get(j).get("ANSWER").toString().isEmpty()){ | |
417 | + for(int o=0;o<option_num;o++ ){ | |
418 | + String s = String.valueOf((char)(65+o)) ; | |
419 | + if(queInfo.get(j).get("ANSWER").toString().equals(s)){ | |
420 | + answer[o]++; | |
421 | + } | |
422 | + } | |
423 | + } | |
424 | + else{ | |
425 | + answer[option_num]++; | |
426 | + } | |
427 | + } | |
428 | + temp.put("RIGHTNUM", right); | |
429 | + temp.put("ANSWERNUM",queInfo.size()); | |
430 | + temp.put("optin_info", answer); | |
431 | + templist.add(temp); | |
432 | + } | |
433 | + Arrays.sort(onum); | |
434 | + int max = onum[onum.length-1]; | |
435 | + pd.put("MAX",max); | |
436 | + } | |
437 | + | |
438 | + Collections.sort(templist,new Comparator<PageData>(){ | |
439 | + | |
440 | + @Override | |
441 | + public int compare(PageData o1, PageData o2) { | |
442 | + Integer o1GetScore = Integer.valueOf(o1.getString("QUESTION_RANK")); | |
443 | + Integer o2GetScore = Integer.valueOf(o2.getString("QUESTION_RANK")); | |
444 | + return o1GetScore.compareTo(o2GetScore); | |
445 | + } | |
446 | + | |
447 | + }); | |
448 | + mv.setViewName("sunvote/paper/test_list2"); | |
449 | + mv.addObject("varList", templist); | |
450 | + mv.addObject("pd",pd); | |
451 | + res.setData(saveData); | |
452 | + return mv; | |
453 | + } | |
454 | + | |
455 | + @RequestMapping(value="/export2") | |
456 | + public ModelAndView export2() throws Exception{ | |
457 | + ModelAndView mv = this.getModelAndView(); | |
458 | + PageData pd = new PageData(); | |
459 | + List<PageData> templist = new ArrayList<PageData>(); | |
460 | + PageData saveData = new PageData(); | |
461 | + | |
462 | + ResponseGson<PageData> res = new ResponseGson(); | |
463 | + pd = this.getPageData(); | |
464 | + if(pd.containsKey("PAPER_ID")){ | |
465 | + List<PageData> list = paperquestionService.listAll(pd); | |
466 | + List<PageData> test = new ArrayList<PageData>(); | |
467 | + int onum[] = new int[list.size()]; | |
468 | + | |
469 | + for(int i = 0;i<list.size();i++){ | |
470 | + PageData temp = new PageData(); | |
471 | + String questionid = list.get(i).get("QUESTION_ID").toString(); | |
472 | + | |
473 | + if(list.get(i).get("NO_NAME")==null||list.get(i).get("NO_NAME").toString().isEmpty()){ | |
474 | + continue; | |
475 | + } | |
476 | + Float que_score = Float.valueOf(list.get(i).get("SCORE").toString()); | |
477 | + temp.put("QUESTION_ID", questionid); | |
478 | + PageData question = questionService.findById(temp); | |
479 | + temp.put("ANSWER",question.get("ANSWER").toString()); | |
480 | + temp.put("QUESTION_RANK", list.get(i).get("RANK").toString()); | |
481 | + temp.put("QUESTION_SCORE", que_score); | |
482 | + | |
483 | + PageData que = questionService.findById(temp); | |
484 | + Integer option_num = 0; | |
485 | + if(!que.get("OPTION_NUM").toString().isEmpty()){ | |
486 | + option_num = Integer.valueOf(que.get("OPTION_NUM").toString()); | |
487 | + onum[i]=option_num; | |
488 | + } | |
489 | + | |
490 | + temp.put("TEST_ID", pd.get("TESTPAPER_ID")); | |
491 | + List<PageData> queInfo = testpaperinfoService.listTestPaperQuestionIDinfo(temp); | |
492 | + int answer[] = new int[option_num+1]; | |
493 | + int right = 0; | |
494 | + for(int j=0;j<queInfo.size();j++){ | |
495 | + if(queInfo.get(j).get("RIGHT")!=null&&!queInfo.get(j).get("RIGHT").toString().isEmpty()){ | |
496 | + if(queInfo.get(j).get("RIGHT").toString().equals("1")){ | |
497 | + right++; | |
498 | + } | |
499 | + } | |
500 | + if(queInfo.get(j).get("ANSWER")!=null&&!queInfo.get(j).get("ANSWER").toString().isEmpty()){ | |
501 | + for(int o=0;o<option_num;o++ ){ | |
502 | + String s = String.valueOf((char)(65+o)) ; | |
503 | + if(queInfo.get(j).get("ANSWER").toString().equals(s)){ | |
504 | + answer[o]++; | |
505 | + } | |
506 | + } | |
507 | + } | |
508 | + else{ | |
509 | + answer[option_num]++; | |
510 | + } | |
511 | + } | |
512 | + temp.put("RIGHTNUM", right); | |
513 | + temp.put("ANSWERNUM",queInfo.size()); | |
514 | + temp.put("optin_info", JSONUtils.toJSONString(answer)); | |
515 | + templist.add(temp); | |
516 | + } | |
517 | + Arrays.sort(onum); | |
518 | + int max = onum[onum.length-1]; | |
519 | + pd.put("MAX",max); | |
520 | + } | |
521 | + | |
522 | + Collections.sort(templist,new Comparator<PageData>(){ | |
523 | + | |
524 | + @Override | |
525 | + public int compare(PageData o1, PageData o2) { | |
526 | + Integer o1GetScore = Integer.valueOf(o1.getString("QUESTION_RANK")); | |
527 | + Integer o2GetScore = Integer.valueOf(o2.getString("QUESTION_RANK")); | |
528 | + return o1GetScore.compareTo(o2GetScore); | |
529 | + } | |
530 | + | |
531 | + }); | |
532 | + | |
533 | + | |
534 | +// mv.addObject("varList", templist); | |
535 | +// mv.addObject("pd",pd); | |
536 | + | |
537 | + Map<String,Object> dataMap = new HashMap<String,Object>(); | |
538 | + List<String> titles = new ArrayList<String>(); | |
539 | + titles.add("题号"); //1 | |
540 | + titles.add("答案"); //2 | |
541 | + titles.add("答题人数"); //3 | |
542 | + titles.add("正确人数"); //4 | |
543 | + titles.add("正确率"); //5 | |
544 | + titles.add("满分值"); //6 | |
545 | + titles.add("平均分"); //7 | |
546 | + Integer max = Integer.valueOf(pd.getString("MAX")); | |
547 | + for(int x = 0 ;x<max;x++){ | |
548 | + titles.add("选"+Myelfun.jstlInt2Char(x+1)+"人数"); //8 | |
549 | + titles.add("选"+Myelfun.jstlInt2Char(x+1)+"比例"); //9 | |
550 | + } | |
551 | + titles.add("漏选人数"); //10 | |
552 | + titles.add("漏选比例"); //11 | |
553 | + dataMap.put("titles", titles); | |
554 | + List<PageData> varOList = templist; | |
555 | + List<PageData> varList = new ArrayList<PageData>(); | |
556 | + DecimalFormat decimalFormat=new DecimalFormat("0.00"); | |
557 | + for(int i=0;i<varOList.size();i++){ | |
558 | + PageData vpd = new PageData(); | |
559 | + | |
560 | + vpd.put("var1", varOList.get(i).getString("QUESTION_RANK")); //1 | |
561 | + vpd.put("var2", varOList.get(i).getString("ANSWER")); //2 | |
562 | + vpd.put("var3", varOList.get(i).getString("ANSWERNUM")); //3 | |
563 | + vpd.put("var4", varOList.get(i).getString("RIGHTNUM")); //4 | |
564 | + vpd.put("var5", decimalFormat.format(Integer.valueOf(varOList.get(i).getString("RIGHTNUM"))*100/Integer.valueOf(varOList.get(i).getString("ANSWERNUM")))+"%"); //5 | |
565 | + vpd.put("var6", varOList.get(i).getString("QUESTION_SCORE")); //6 | |
566 | + vpd.put("var7", decimalFormat.format(Integer.valueOf(varOList.get(i).getString("RIGHTNUM"))*Float.valueOf(varOList.get(i).getString("QUESTION_SCORE"))/Integer.valueOf(varOList.get(i).getString("ANSWERNUM")))); //7 | |
567 | + String s = varOList.get(i).get("optin_info").toString(); | |
568 | + s = s.replace("[", ""); | |
569 | + s = s.replace("]", ""); | |
570 | + List<String> optoin = Arrays.asList(s.split(",")); | |
571 | + for(int y = 0 ;y<max;y++){ | |
572 | + Integer nn = Integer.valueOf(optoin.get(y)); | |
573 | + nn = (nn==null?0:nn); | |
574 | + vpd.put("var"+(8+2*y), nn); //8 | |
575 | + vpd.put("var"+(9+2*y), decimalFormat.format(nn*100/Integer.valueOf(varOList.get(i).getString("ANSWERNUM")))+"%"); //9 | |
576 | + | |
577 | + } | |
578 | + | |
579 | + vpd.put("var"+(max*2+8), Integer.valueOf(optoin.get(max))); //8 | |
580 | + vpd.put("var"+(max*2+9), decimalFormat.format(Integer.valueOf(optoin.get(max))*100/Integer.valueOf(varOList.get(i).getString("ANSWERNUM")))+"%"); //9 | |
581 | + | |
582 | + varList.add(vpd); | |
583 | + } | |
584 | + dataMap.put("varList", varList); | |
585 | + ObjectExcelView erv = new ObjectExcelView(); | |
586 | + mv = new ModelAndView(erv,dataMap); | |
587 | + | |
588 | + | |
589 | + return mv; | |
590 | + } | |
591 | + | |
167 | 592 | @RequestMapping(value="/iteminfo") |
168 | 593 | public ModelAndView iteminfo() throws Exception{ |
169 | 594 | logBefore(logger, Jurisdiction.getUsername()+"Paper详细信息"); |
... | ... | @@ -336,17 +761,17 @@ public class PaperController extends BaseController { |
336 | 761 | try{ |
337 | 762 | int et = Integer.parseInt(examTime); |
338 | 763 | String min = (et / 60 ) + "" ; |
339 | - if(min.length() < 2){ | |
340 | - min = "0" + min ; | |
341 | - } | |
764 | +// if(min.length() < 2){ | |
765 | +// min = "0" + min ; | |
766 | +// } | |
342 | 767 | String sec = (et % 60 ) + "" ; |
343 | 768 | if(sec.length() < 2){ |
344 | 769 | sec = "0" + sec ; |
345 | 770 | } |
346 | - if(et > 60){ | |
347 | - examTime = min + ":" + sec; | |
771 | + if(et >= 60){ | |
772 | + examTime = min + "时" + sec+"分"; | |
348 | 773 | }else{ |
349 | - examTime = "00:" + sec; | |
774 | + examTime = "0时" + sec+"分"; | |
350 | 775 | } |
351 | 776 | }catch(Exception e){ |
352 | 777 | e.printStackTrace(); |
... | ... | @@ -397,24 +822,24 @@ public class PaperController extends BaseController { |
397 | 822 | try{ |
398 | 823 | int et = Integer.parseInt(examTime); |
399 | 824 | String min = (et / 60 ) + "" ; |
400 | - if(min.length() < 2){ | |
401 | - min = "0" + min ; | |
402 | - } | |
825 | +// if(min.length() < 2){ | |
826 | +// min = "0" + min ; | |
827 | +// } | |
403 | 828 | String sec = (et % 60 ) + "" ; |
404 | 829 | if(sec.length() < 2){ |
405 | 830 | sec = "0" + sec ; |
406 | 831 | } |
407 | - if(et > 60){ | |
408 | - examTime = min + ":" + sec; | |
832 | + if(et >= 60){ | |
833 | + examTime = min + "时" + sec +"分"; | |
409 | 834 | }else{ |
410 | - examTime = "00:" + sec; | |
835 | + examTime = "0时" + sec + "分"; | |
411 | 836 | } |
412 | 837 | }catch(Exception e){ |
413 | 838 | e.printStackTrace(); |
414 | 839 | } |
415 | 840 | } |
416 | 841 | if(examTime == null){ |
417 | - examTime = "00:00"; | |
842 | + examTime = "0"; | |
418 | 843 | } |
419 | 844 | p.put("EXAM_TIME", examTime); |
420 | 845 | } |
... | ... | @@ -465,24 +890,24 @@ public class PaperController extends BaseController { |
465 | 890 | try{ |
466 | 891 | int et = Integer.parseInt(examTime); |
467 | 892 | String min = (et / 60 ) + "" ; |
468 | - if(min.length() < 2){ | |
469 | - min = "0" + min ; | |
470 | - } | |
893 | +// if(min.length() < 2){ | |
894 | +// min = "0" + min ; | |
895 | +// } | |
471 | 896 | String sec = (et % 60 ) + "" ; |
472 | 897 | if(sec.length() < 2){ |
473 | 898 | sec = "0" + sec ; |
474 | 899 | } |
475 | - if(et > 60){ | |
476 | - examTime = min + ":" + sec; | |
900 | + if(et >= 60){ | |
901 | + examTime = min + "时" + sec+"分"; | |
477 | 902 | }else{ |
478 | - examTime = "00:" + sec; | |
903 | + examTime = "0时" + sec+"分"; | |
479 | 904 | } |
480 | 905 | }catch(Exception e){ |
481 | 906 | e.printStackTrace(); |
482 | 907 | } |
483 | 908 | } |
484 | 909 | if(examTime == null){ |
485 | - examTime = "00:00"; | |
910 | + examTime = "0"; | |
486 | 911 | } |
487 | 912 | p.put("EXAM_TIME", examTime); |
488 | 913 | } |
... | ... | @@ -521,24 +946,24 @@ public class PaperController extends BaseController { |
521 | 946 | try{ |
522 | 947 | int et = Integer.parseInt(examTime); |
523 | 948 | String min = (et / 60 ) + "" ; |
524 | - if(min.length() < 2){ | |
525 | - min = "0" + min ; | |
526 | - } | |
949 | +// if(min.length() < 2){ | |
950 | +// min = "0" + min ; | |
951 | +// } | |
527 | 952 | String sec = (et % 60 ) + "" ; |
528 | 953 | if(sec.length() < 2){ |
529 | 954 | sec = "0" + sec ; |
530 | 955 | } |
531 | 956 | if(et > 60){ |
532 | - examTime = min + ":" + sec; | |
957 | + examTime = min + "时" + sec+"分"; | |
533 | 958 | }else{ |
534 | - examTime = "00:" + sec; | |
959 | + examTime = "0时" + sec+"分"; | |
535 | 960 | } |
536 | 961 | }catch(Exception e){ |
537 | 962 | e.printStackTrace(); |
538 | 963 | } |
539 | 964 | } |
540 | 965 | if(examTime == null){ |
541 | - examTime = "00:00"; | |
966 | + examTime = "0"; | |
542 | 967 | } |
543 | 968 | p.put("EXAM_TIME", examTime); |
544 | 969 | } | ... | ... |
src/com/fh/controller/sunvote/student/StudentController.java
... | ... | @@ -147,12 +147,17 @@ public class StudentController extends BaseController { |
147 | 147 | for(int i = 1 ; i < listPd.size();i++){ |
148 | 148 | PageData savePd = new PageData(); |
149 | 149 | PageData temp = listPd.get(i); |
150 | - for(int j = 0 ; ;j++){ | |
151 | - if(temp.get("var" + j) == null){ | |
152 | - break ; | |
153 | - } | |
150 | + for(int j = 0 ;j<3 ;j++){ | |
151 | +// if(temp.get("var" + j) == null){ | |
152 | +// break ; | |
153 | +// } | |
154 | 154 | if(temp.get("var" + j) != null && !"".equals(temp.get("var" + j).toString())){ |
155 | 155 | savePd.put(pd.getString("var" + j).toUpperCase(), temp.get("var" + j)); |
156 | + }else{ | |
157 | + mv.addObject("msg","本次成功导入"+(i-1>=0?i-1:0)+"条数据,第"+i+"行有空数据"); | |
158 | + mv.addObject("state","fail"); | |
159 | + mv.setViewName("save_result2"); | |
160 | + return mv; | |
156 | 161 | } |
157 | 162 | } |
158 | 163 | if(!savePd.containsKey("ID")){ |
... | ... | @@ -179,6 +184,7 @@ public class StudentController extends BaseController { |
179 | 184 | |
180 | 185 | } |
181 | 186 | } |
187 | + mv.addObject("state","success"); | |
182 | 188 | mv.addObject("msg","success"); |
183 | 189 | mv.setViewName("save_result2"); |
184 | 190 | return mv; | ... | ... |
src/com/fh/controller/sunvote/teacher/TeacherController.java
... | ... | @@ -726,6 +726,7 @@ public class TeacherController extends BaseController { |
726 | 726 | if (null != DATA_IDS && !"".equals(DATA_IDS)) { |
727 | 727 | String ArrayDATA_IDS[] = DATA_IDS.split(","); |
728 | 728 | teacherService.deleteAll(ArrayDATA_IDS); |
729 | + userService.deleteAllU(ArrayDATA_IDS); | |
729 | 730 | pd.put("msg", "ok"); |
730 | 731 | } else { |
731 | 732 | pd.put("msg", "no"); |
... | ... | @@ -798,6 +799,34 @@ public class TeacherController extends BaseController { |
798 | 799 | savePd.put("ID", teacherId); |
799 | 800 | savePd.put("SCHOOL_ID", schoolID); |
800 | 801 | |
802 | + PageData p = new PageData(); | |
803 | + p.put("USERNAME", savePd.getString("ACCOUT")); | |
804 | + | |
805 | + if(null==userService.findByUsername(p)){ | |
806 | + p.put("USER_ID", savePd.get("ID")); | |
807 | + p.put("ROLE_ID", "57bb1e6f138247a0b05cc721a5da1b64"); | |
808 | + p.put("PASSWORD", | |
809 | + new SimpleHash("SHA-1", savePd.getString("ACCOUT"), savePd | |
810 | + .getString("PASSWORD")).toString()); // 密码加密 | |
811 | + p.put("LAST_LOGIN", ""); // 最后登录时间 | |
812 | + p.put("IP", ""); // IP | |
813 | + p.put("STATUS", "0"); // 状态 | |
814 | + p.put("SKIN", "default"); | |
815 | + p.put("RIGHTS", ""); | |
816 | + p.put("NAME",savePd.getString("NAME") ); | |
817 | + | |
818 | + userService.saveU(p); | |
819 | + FHLOG.save(Jurisdiction.getUsername(), | |
820 | + "新增系统用户:" + pd.getString("USERNAME")); | |
821 | + }else{ | |
822 | + mv.addObject("state","fail"); | |
823 | + mv.addObject("msg","本次成功导入"+(i-1>=0?i-1:0)+"条数据,第"+i+"行用户名系统已存在。"); | |
824 | + mv.setViewName("save_result2"); | |
825 | + return mv; | |
826 | + } | |
827 | + | |
828 | + | |
829 | + | |
801 | 830 | teacherService.save(savePd); |
802 | 831 | } |
803 | 832 | ... | ... |
src/com/fh/entity/Page.java
... | ... | @@ -97,13 +97,13 @@ public class Page { |
97 | 97 | sb.append(" <ul class=\"pagination pull-right no-margin\">\n"); |
98 | 98 | if(currentPage==1){ |
99 | 99 | sb.append(" <li><a>" + total +totalResult+articles + "</a></li>\n"); |
100 | - sb.append(" <li><span style='padding:0'><input type=\"number\" value=\"\" id=\"toGoPage\" style=\"width:80px;text-align:center;float:left\" placeholder=\"" + pageNumber + "\"/></span></li>\n"); | |
100 | + sb.append(" <li><span style='padding:0'><input type=\"number\" min=\"1\" value=\"\" id=\"toGoPage\" style=\"width:80px;text-align:center;float:left\" placeholder=\"" + pageNumber + "\"/></span></li>\n"); | |
101 | 101 | sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"toTZ();\" class=\"btn btn-mini btn-success\">" + jump + "</a></li>\n"); |
102 | 102 | sb.append(" <li><a>" + frist + "</a></li>\n"); |
103 | 103 | sb.append(" <li><a>" + previous + "</a></li>\n"); |
104 | 104 | }else{ |
105 | 105 | sb.append(" <li><a>"+ total +"<font color=red>"+totalResult+"</font>" + articles + "</a></li>\n"); |
106 | - sb.append(" <li><input type=\"number\" value=\"\" id=\"toGoPage\" style=\"width:80px;text-align:center;float:left\" placeholder=\"" + pageNumber + "\"/></li>\n"); | |
106 | + sb.append(" <li><input type=\"number\" min=\"1\" value=\"\" id=\"toGoPage\" style=\"width:80px;text-align:center;float:left\" placeholder=\"" + pageNumber + "\"/></li>\n"); | |
107 | 107 | sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"toTZ();\" class=\"btn btn-mini btn-success\">" + jump + "</a></li>\n"); |
108 | 108 | sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage(1)\">" + frist + "</a></li>\n"); |
109 | 109 | sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+(currentPage-1)+")\">" + previous + "</a></li>\n"); |
... | ... | @@ -127,7 +127,7 @@ public class Page { |
127 | 127 | sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+(currentPage+1)+")\">" + next + "</a></li>\n"); |
128 | 128 | sb.append(" <li style=\"cursor:pointer;\"><a onclick=\"nextPage("+totalPage+")\">" + tail + "</a></li>\n"); |
129 | 129 | } |
130 | - sb.append(" <li><a>" + total +totalResult+articles + "</a></li>\n"); | |
130 | +// sb.append(" <li><a>" + total +totalResult+articles + "</a></li>\n"); | |
131 | 131 | sb.append(" <li><span class=\"enter\"><select title='" + displayNumber + "' style=\"width:55px;float:left;height:32px;margin-top:1px;border:0\" onchange=\"changeCount(this.value)\">\n"); |
132 | 132 | sb.append(" <option value='"+showCount+"'>"+showCount+"</option>\n"); |
133 | 133 | sb.append(" <option value='10'>10</option>\n"); | ... | ... |
src/com/fh/service/sunvote/student/StudentManager.java
... | ... | @@ -41,6 +41,12 @@ public interface StudentManager{ |
41 | 41 | * @param page |
42 | 42 | * @throws Exception |
43 | 43 | */ |
44 | + public Integer countByClassId(String classid)throws Exception; | |
45 | + | |
46 | + /**列表 | |
47 | + * @param page | |
48 | + * @throws Exception | |
49 | + */ | |
44 | 50 | public List<PageData> datalistclassPage(Page page)throws Exception; |
45 | 51 | |
46 | 52 | /**列表(全部) | ... | ... |
src/com/fh/service/sunvote/student/impl/StudentService.java
... | ... | @@ -57,6 +57,14 @@ public class StudentService implements StudentManager{ |
57 | 57 | * @param page |
58 | 58 | * @throws Exception |
59 | 59 | */ |
60 | + public Integer countByClassId(String classid)throws Exception{ | |
61 | + return (Integer)dao.findForList("StudentMapper.countByClassId", classid); | |
62 | + } | |
63 | + | |
64 | + /**列表 | |
65 | + * @param page | |
66 | + * @throws Exception | |
67 | + */ | |
60 | 68 | @SuppressWarnings("unchecked") |
61 | 69 | public List<PageData> datalistclassPage(Page page)throws Exception{ |
62 | 70 | return (List<PageData>)dao.findForList("StudentMapper.dataclasslistPage", page); | ... | ... |