Blame view

src/com/fh/controller/sunvote/paper/PaperController.java 53.4 KB
bed6e1fc   孙向锦   添加其他功能
1
2
3
4
  package com.fh.controller.sunvote.paper;
  
  import java.io.PrintWriter;
  import java.text.DateFormat;
f4a73594   jack   1.增加班级统计报表和导出
5
  import java.text.DecimalFormat;
bed6e1fc   孙向锦   添加其他功能
6
7
  import java.text.SimpleDateFormat;
  import java.util.ArrayList;
f4a73594   jack   1.增加班级统计报表和导出
8
9
10
  import java.util.Arrays;
  import java.util.Collections;
  import java.util.Comparator;
bed6e1fc   孙向锦   添加其他功能
11
12
13
14
  import java.util.Date;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
338594c8   孙向锦   添加教师端页面
15
  
bed6e1fc   孙向锦   添加其他功能
16
  import javax.annotation.Resource;
338594c8   孙向锦   添加教师端页面
17
18
  
  import org.apache.shiro.session.Session;
bed6e1fc   孙向锦   添加其他功能
19
20
21
22
23
24
25
  import org.springframework.beans.propertyeditors.CustomDateEditor;
  import org.springframework.stereotype.Controller;
  import org.springframework.web.bind.WebDataBinder;
  import org.springframework.web.bind.annotation.InitBinder;
  import org.springframework.web.bind.annotation.RequestMapping;
  import org.springframework.web.bind.annotation.ResponseBody;
  import org.springframework.web.servlet.ModelAndView;
338594c8   孙向锦   添加教师端页面
26
  
f4a73594   jack   1.增加班级统计报表和导出
27
  import com.alibaba.druid.support.json.JSONUtils;
338594c8   孙向锦   添加教师端页面
28
29
  import com.fh.bean.Paper;
  import com.fh.bean.Question;
f4a73594   jack   1.增加班级统计报表和导出
30
  import com.fh.controller.api.ResponseGson;
bed6e1fc   孙向锦   添加其他功能
31
  import com.fh.controller.base.BaseController;
f4a73594   jack   1.增加班级统计报表和导出
32
  import com.fh.controller.sunvote.Myelfun;
bed6e1fc   孙向锦   添加其他功能
33
  import com.fh.entity.Page;
338594c8   孙向锦   添加教师端页面
34
  import com.fh.entity.system.User;
4f32cbf7   孙向锦   更新新东方服务界面维护文档
35
  import com.fh.service.api.V1Manager;
83b5ddeb   孙向锦   模板添加
36
  import com.fh.service.sunvote.pagetemplate.PageTemplateManager;
4f32cbf7   孙向锦   更新新东方服务界面维护文档
37
38
  import com.fh.service.sunvote.paper.PaperManager;
  import com.fh.service.sunvote.paperquestion.PaperQuestionManager;
107fa3a0   孙向锦   修改试卷单选多远混合出题
39
  import com.fh.service.sunvote.question.QuestionManager;
837ae11d   孙向锦   添加班長管理
40
  import com.fh.service.sunvote.schoolgradesubject.SchoolGradeSubjectManager;
f4a73594   jack   1.增加班级统计报表和导出
41
42
43
44
45
46
  import com.fh.service.sunvote.sclass.SClassManager;
  import com.fh.service.sunvote.sclass.impl.SClassService;
  import com.fh.service.sunvote.student.StudentManager;
  import com.fh.service.sunvote.studenttest.StudentTestManager;
  import com.fh.service.sunvote.testpaper.TestPaperManager;
  import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager;
bed6e1fc   孙向锦   添加其他功能
47
  import com.fh.util.AppUtil;
338594c8   孙向锦   添加教师端页面
48
  import com.fh.util.Const;
4f32cbf7   孙向锦   更新新东方服务界面维护文档
49
  import com.fh.util.Jurisdiction;
bed6e1fc   孙向锦   添加其他功能
50
  import com.fh.util.ObjectExcelView;
89ac0783   jack   1.添加年级卷分析功能
51
  import com.fh.util.ObjectExcelView2;
bed6e1fc   孙向锦   添加其他功能
52
  import com.fh.util.PageData;
7bbf5236   jack   2.限制出题数为64
53
  import com.hp.hpl.sparta.ParseException;
bed6e1fc   孙向锦   添加其他功能
54
  
782f81b0   jack   1.增加未知学生的判断
55
56
  /**
   * 说明:试卷 创建时间:2018-05-17
bed6e1fc   孙向锦   添加其他功能
57
58
   */
  @Controller
782f81b0   jack   1.增加未知学生的判断
59
  @RequestMapping(value = "/paper")
bed6e1fc   孙向锦   添加其他功能
60
  public class PaperController extends BaseController {
782f81b0   jack   1.增加未知学生的判断
61
62
63
  
  	String menuUrl = "paper/list.do"; // 菜单地址(权限用)
  	@Resource(name = "paperService")
bed6e1fc   孙向锦   添加其他功能
64
  	private PaperManager paperService;
782f81b0   jack   1.增加未知学生的判断
65
66
  
  	@Resource(name = "testpaperService")
f4a73594   jack   1.增加班级统计报表和导出
67
  	private TestPaperManager testpaperService;
782f81b0   jack   1.增加未知学生的判断
68
69
  
  	@Resource(name = "testpaperinfoService")
f4a73594   jack   1.增加班级统计报表和导出
70
  	private TestPaperInfoManager testpaperinfoService;
782f81b0   jack   1.增加未知学生的判断
71
72
  
  	@Resource(name = "studentService")
f4a73594   jack   1.增加班级统计报表和导出
73
  	private StudentManager stundentService;
782f81b0   jack   1.增加未知学生的判断
74
75
  
  	@Resource(name = "paperquestionService")
338594c8   孙向锦   添加教师端页面
76
  	private PaperQuestionManager paperquestionService;
782f81b0   jack   1.增加未知学生的判断
77
78
  
  	@Resource(name = "questionService")
107fa3a0   孙向锦   修改试卷单选多远混合出题
79
  	private QuestionManager questionService;
782f81b0   jack   1.增加未知学生的判断
80
  
338594c8   孙向锦   添加教师端页面
81
  	@Resource(name = "v1Service")
782f81b0   jack   1.增加未知学生的判断
82
83
84
  	private V1Manager v1Service;
  
  	@Resource(name = "schoolgradesubjectService")
837ae11d   孙向锦   添加班長管理
85
  	private SchoolGradeSubjectManager schoolgradesubjectService;
782f81b0   jack   1.增加未知学生的判断
86
87
  
  	@Resource(name = "pagetemplateService")
83b5ddeb   孙向锦   模板添加
88
  	private PageTemplateManager pagetemplateService;
782f81b0   jack   1.增加未知学生的判断
89
90
  
  	@Resource(name = "studenttestService")
f4a73594   jack   1.增加班级统计报表和导出
91
  	private StudentTestManager studenttestService;
782f81b0   jack   1.增加未知学生的判断
92
93
  
  	@Resource(name = "sclassService")
f4a73594   jack   1.增加班级统计报表和导出
94
  	private SClassManager sclassService;
782f81b0   jack   1.增加未知学生的判断
95
96
97
98
  
  	/**
  	 * 保存
  	 * 
bed6e1fc   孙向锦   添加其他功能
99
100
101
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
102
103
104
105
106
107
  	@RequestMapping(value = "/save")
  	public ModelAndView save() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "新增Paper");
  		if (!Jurisdiction.buttonJurisdiction(menuUrl, "add")) {
  			return null;
  		} // 校验权限
bed6e1fc   孙向锦   添加其他功能
108
109
110
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
111
  		pd.put("PAPER_ID", this.get32UUID()); // 主键
bed6e1fc   孙向锦   添加其他功能
112
  		paperService.save(pd);
782f81b0   jack   1.增加未知学生的判断
113
  		mv.addObject("msg", "success");
bed6e1fc   孙向锦   添加其他功能
114
115
116
  		mv.setViewName("save_result");
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
117
118
119
120
  
  	/**
  	 * 保存
  	 * 
338594c8   孙向锦   添加教师端页面
121
122
123
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
124
125
126
  	@RequestMapping(value = "/newpaper")
  	public ModelAndView newPaper() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "新增Paper");
338594c8   孙向锦   添加教师端页面
127
  		ModelAndView mv = this.getModelAndView();
782f81b0   jack   1.增加未知学生的判断
128
129
  
  		mv.addObject("msg", "success");
338594c8   孙向锦   添加教师端页面
130
131
132
  		mv.setViewName("save_result");
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
133
134
135
136
  
  	/**
  	 * 删除
  	 * 
bed6e1fc   孙向锦   添加其他功能
137
138
139
  	 * @param out
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
140
141
142
  	@RequestMapping(value = "/delete")
  	public void delete(PrintWriter out) throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "删除Paper");
bed6e1fc   孙向锦   添加其他功能
143
144
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
145
146
  		String[] ArrayDATA_IDS = new String[] { pd.getString("PAPER_ID") };
  		if (pd.getString("QINGSONGKAO") != null) {
107fa3a0   孙向锦   修改试卷单选多远混合出题
147
148
  			List<PageData> list = paperquestionService.listAll(pd);
  			String[] qids = new String[list.size()];
782f81b0   jack   1.增加未知学生的判断
149
150
  			int i = 0;
  			for (PageData ptd : list) {
107fa3a0   孙向锦   修改试卷单选多远混合出题
151
152
  				qids[i++] = ptd.getString("QUESTION_ID");
  			}
782f81b0   jack   1.增加未知学生的判断
153
  			if (qids.length > 0) {
107fa3a0   孙向锦   修改试卷单选多远混合出题
154
155
156
  				questionService.deleteAll(qids);
  			}
  		}
338594c8   孙向锦   添加教师端页面
157
  		paperquestionService.deleteAllPaper(ArrayDATA_IDS);
bed6e1fc   孙向锦   添加其他功能
158
159
160
161
  		paperService.delete(pd);
  		out.write("success");
  		out.close();
  	}
782f81b0   jack   1.增加未知学生的判断
162
163
164
165
  
  	/**
  	 * 修改
  	 * 
bed6e1fc   孙向锦   添加其他功能
166
167
168
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
169
170
171
172
173
174
  	@RequestMapping(value = "/edit")
  	public ModelAndView edit() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "修改Paper");
  		if (!Jurisdiction.buttonJurisdiction(menuUrl, "edit")) {
  			return null;
  		} // 校验权限
bed6e1fc   孙向锦   添加其他功能
175
176
177
178
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
  		paperService.edit(pd);
782f81b0   jack   1.增加未知学生的判断
179
  		mv.addObject("msg", "success");
bed6e1fc   孙向锦   添加其他功能
180
181
182
  		mv.setViewName("save_result");
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
183
184
185
186
  
  	/**
  	 * 列表
  	 * 
bed6e1fc   孙向锦   添加其他功能
187
188
189
  	 * @param page
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
190
191
192
193
194
  	@RequestMapping(value = "/list")
  	public ModelAndView list(Page page) throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "列表Paper");
  		// if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  		// //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
bed6e1fc   孙向锦   添加其他功能
195
196
197
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
198
199
  		String keywords = pd.getString("keywords"); // 关键词检索条件
  		if (null != keywords && !"".equals(keywords)) {
bed6e1fc   孙向锦   添加其他功能
200
201
202
  			pd.put("keywords", keywords.trim());
  		}
  		page.setPd(pd);
782f81b0   jack   1.增加未知学生的判断
203
  		List<PageData> varList = paperService.list(page); // 列出Paper列表
bed6e1fc   孙向锦   添加其他功能
204
205
206
  		mv.setViewName("sunvote/paper/paper_list");
  		mv.addObject("varList", varList);
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
207
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
bed6e1fc   孙向锦   添加其他功能
208
209
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
210
211
212
  
  	@RequestMapping(value = "/paperRep")
  	public ModelAndView paperRep() throws Exception {
f4a73594   jack   1.增加班级统计报表和导出
213
214
215
216
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		List<PageData> templist = new ArrayList<PageData>();
  		PageData saveData = new PageData();
782f81b0   jack   1.增加未知学生的判断
217
  		DecimalFormat decimalFormat = new DecimalFormat("0.00");
4926e3fd   jack   1.修复bug
218
  		String total_score = "";
f4a73594   jack   1.增加班级统计报表和导出
219
220
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
221
  		if (pd.containsKey("PAPER_ID")) {
f4a73594   jack   1.增加班级统计报表和导出
222
  			List<PageData> list = testpaperService.listAll(pd);
4926e3fd   jack   1.修复bug
223
  			total_score = list.get(0).getString("TOTAL_SCORE");
f4a73594   jack   1.增加班级统计报表和导出
224
  			pd.put("testpaperlist", list);
782f81b0   jack   1.增加未知学生的判断
225
226
227
228
229
230
  			Integer you_sum = 0; // 优秀总人数
  			Integer liang_sum = 0; // 良好总人数
  			Integer jige_sum = 0; // 及格总人数
  			Integer difen_sum = 0; // 低分总人数
  			Integer num_sum = 0; // 年级总人数
  			Float avg_sum = (float) 0; // 平均分的和
d6389252   jack   1.增加年级卷测验统计
231
  			String testpaperList = "";
782f81b0   jack   1.增加未知学生的判断
232
233
  
  			for (int i = 0; i < list.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
234
  				PageData data = new PageData();
782f81b0   jack   1.增加未知学生的判断
235
  
f4a73594   jack   1.增加班级统计报表和导出
236
  				PageData pdtemp = new PageData();
782f81b0   jack   1.增加未知学生的判断
237
238
239
240
241
242
243
244
245
246
247
248
  				if (!list.get(i).getString("SCLASS_ID").isEmpty()) {
  					pdtemp.put("CLASS_ID", list.get(i).get("SCLASS_ID")
  							.toString());
  				} else {
  					pdtemp.put("CLASS_ID", "");
  
  				}
  
  				List<PageData> studentlist = stundentService
  						.listAllClass(pdtemp);
  				testpaperList += list.get(i).get("TESTPAPER_ID").toString()
  						+ ",";
f4a73594   jack   1.增加班级统计报表和导出
249
250
251
252
253
254
255
  				data.put("testpaper_id", list.get(i).get("TESTPAPER_ID"));
  				data.put("student_num", studentlist.size());
  				data.put("creat_time", list.get(i).get("CREATE_DATE"));
  				data.put("avg_score", list.get(i).get("AVG_SCORE"));
  				data.put("class_id", list.get(i).get("SCLASS_ID"));
  				pdtemp.put("TEST_ID", list.get(i).get("TESTPAPER_ID"));
  				List<PageData> l = studenttestService.listAll(pdtemp);
782f81b0   jack   1.增加未知学生的判断
256
  
f4a73594   jack   1.增加班级统计报表和导出
257
258
259
260
  				Integer you = 0;
  				Integer liang = 0;
  				Integer jige = 0;
  				Integer difen = 0;
dec964f0   jack   1.修复bug
261
262
  				Float total = list.get(i).get("TOTAL_SCORE")
  						.toString().isEmpty()?0:Float.valueOf(list.get(i).get("TOTAL_SCORE")
782f81b0   jack   1.增加未知学生的判断
263
264
265
266
267
268
269
  						.toString());
  
  				for (int j = 0; j < l.size(); j++) {
  					Float score = Float.valueOf(l.get(j).get("SCORE")
  							.toString());
  					if (total != 0) {
  						if (score / total >= 0.8) {
f4a73594   jack   1.增加班级统计报表和导出
270
  							you++;
782f81b0   jack   1.增加未知学生的判断
271
  						} else if (score / total >= 0.7) {
f4a73594   jack   1.增加班级统计报表和导出
272
  							liang++;
782f81b0   jack   1.增加未知学生的判断
273
  						} else if (score / total >= 0.6) {
f4a73594   jack   1.增加班级统计报表和导出
274
  							jige++;
782f81b0   jack   1.增加未知学生的判断
275
  						} else if (score / total < 0.3) {
f4a73594   jack   1.增加班级统计报表和导出
276
277
278
  							difen++;
  						}
  					}
782f81b0   jack   1.增加未知学生的判断
279
  
f4a73594   jack   1.增加班级统计报表和导出
280
  				}
782f81b0   jack   1.增加未知学生的判断
281
  				you_sum += you;
d6389252   jack   1.增加年级卷测验统计
282
  				liang_sum += liang;
782f81b0   jack   1.增加未知学生的判断
283
284
285
  				jige_sum += jige;
  				difen_sum += difen;
  				num_sum += studentlist.size();
dec964f0   jack   1.修复bug
286
287
  				avg_sum += list.get(i).get("AVG_SCORE")
  						.toString().isEmpty()?0:Float.valueOf(list.get(i).get("AVG_SCORE")
782f81b0   jack   1.增加未知学生的判断
288
289
290
291
292
293
294
  						.toString());
  
  				data.put("you", you);
  				data.put("liang", liang);
  				data.put("jige", jige);
  				data.put("difen", difen);
  
f4a73594   jack   1.增加班级统计报表和导出
295
296
  				templist.add(data);
  			}
782f81b0   jack   1.增加未知学生的判断
297
298
299
300
301
302
303
304
305
306
307
308
309
310
  			if (list.size() > 0) {
  				PageData dataTemp = new PageData();
  				dataTemp.put("testpaper_id", "");
  				dataTemp.put("student_num", num_sum);
  				dataTemp.put("creat_time", "");
  				dataTemp.put("avg_score",
  						decimalFormat.format(avg_sum / list.size()));
  				dataTemp.put("class_id", "");
  				dataTemp.put("you", you_sum);
  				dataTemp.put("liang", liang_sum);
  				dataTemp.put("jige", jige_sum);
  				dataTemp.put("difen", difen_sum);
  				dataTemp.put("testpaperList", testpaperList);
  				templist.add(dataTemp);
d6389252   jack   1.增加年级卷测验统计
311
  			}
f4a73594   jack   1.增加班级统计报表和导出
312
  		}
782f81b0   jack   1.增加未知学生的判断
313
  
f4a73594   jack   1.增加班级统计报表和导出
314
  		saveData.put("list", templist);
4926e3fd   jack   1.修复bug
315
  		pd.put("TOTAL_SCORE", total_score);
f4a73594   jack   1.增加班级统计报表和导出
316
317
  		mv.setViewName("sunvote/paper/test_list1");
  		mv.addObject("varList", templist);
782f81b0   jack   1.增加未知学生的判断
318
  		mv.addObject("pd", pd);
f4a73594   jack   1.增加班级统计报表和导出
319
320
321
  		res.setData(saveData);
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
322
323
324
  
  	@RequestMapping(value = "/export1")
  	public ModelAndView export1() throws Exception {
f4a73594   jack   1.增加班级统计报表和导出
325
326
327
328
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		List<PageData> templist = new ArrayList<PageData>();
  		PageData saveData = new PageData();
1f0490aa   jack   1.考试情况报表样式
329
  		DecimalFormat decimalFormat = new DecimalFormat("0.00");
782f81b0   jack   1.增加未知学生的判断
330
  
f4a73594   jack   1.增加班级统计报表和导出
331
332
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
333
  		if (pd.containsKey("PAPER_ID")) {
f4a73594   jack   1.增加班级统计报表和导出
334
  			List<PageData> list = testpaperService.listAll(pd);
1f0490aa   jack   1.考试情况报表样式
335
336
337
338
339
340
341
  			Integer you_sum = 0; // 优秀总人数
  			Integer liang_sum = 0; // 良好总人数
  			Integer jige_sum = 0; // 及格总人数
  			Integer difen_sum = 0; // 低分总人数
  			Integer num_sum = 0; // 年级总人数
  			Float avg_sum = (float) 0; // 平均分的和
  			String testpaperList = "";
f4a73594   jack   1.增加班级统计报表和导出
342
  			pd.put("testpaperlist", list);
782f81b0   jack   1.增加未知学生的判断
343
  			for (int i = 0; i < list.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
344
  				PageData data = new PageData();
782f81b0   jack   1.增加未知学生的判断
345
  
f4a73594   jack   1.增加班级统计报表和导出
346
347
  				PageData pdtemp = new PageData();
  				pdtemp.put("CLASS_ID", list.get(i).get("SCLASS_ID").toString());
782f81b0   jack   1.增加未知学生的判断
348
349
  				List<PageData> studentlist = stundentService
  						.listAllClass(pdtemp);
1f0490aa   jack   1.考试情况报表样式
350
351
  				testpaperList += list.get(i).get("TESTPAPER_ID").toString()
  						+ ",";
f4a73594   jack   1.增加班级统计报表和导出
352
353
354
355
356
357
358
  				data.put("testpaper_id", list.get(i).get("TESTPAPER_ID"));
  				data.put("student_num", studentlist.size());
  				data.put("creat_time", list.get(i).get("CREATE_DATE"));
  				data.put("avg_score", list.get(i).get("AVG_SCORE"));
  				data.put("class_id", list.get(i).get("SCLASS_ID"));
  				pdtemp.put("TEST_ID", list.get(i).get("TESTPAPER_ID"));
  				List<PageData> l = studenttestService.listAll(pdtemp);
782f81b0   jack   1.增加未知学生的判断
359
  
f4a73594   jack   1.增加班级统计报表和导出
360
361
362
363
  				Integer you = 0;
  				Integer liang = 0;
  				Integer jige = 0;
  				Integer difen = 0;
782f81b0   jack   1.增加未知学生的判断
364
365
366
367
368
369
370
371
  				Float total = Float.valueOf(list.get(i).get("TOTAL_SCORE")
  						.toString());
  
  				for (int j = 0; j < l.size(); j++) {
  					Float score = Float.valueOf(l.get(j).get("SCORE")
  							.toString());
  					if (total != 0) {
  						if (score / total >= 0.8) {
f4a73594   jack   1.增加班级统计报表和导出
372
  							you++;
782f81b0   jack   1.增加未知学生的判断
373
  						} else if (score / total >= 0.7) {
f4a73594   jack   1.增加班级统计报表和导出
374
  							liang++;
782f81b0   jack   1.增加未知学生的判断
375
  						} else if (score / total >= 0.6) {
f4a73594   jack   1.增加班级统计报表和导出
376
  							jige++;
782f81b0   jack   1.增加未知学生的判断
377
  						} else if (score / total < 0.3) {
f4a73594   jack   1.增加班级统计报表和导出
378
379
380
  							difen++;
  						}
  					}
782f81b0   jack   1.增加未知学生的判断
381
  
f4a73594   jack   1.增加班级统计报表和导出
382
  				}
1f0490aa   jack   1.考试情况报表样式
383
384
385
386
387
388
389
390
  				you_sum += you;
  				liang_sum += liang;
  				jige_sum += jige;
  				difen_sum += difen;
  				num_sum += studentlist.size();
  				avg_sum += list.get(i).get("AVG_SCORE")
  						.toString().isEmpty()?0:Float.valueOf(list.get(i).get("AVG_SCORE")
  						.toString());
782f81b0   jack   1.增加未知学生的判断
391
392
393
394
395
  				data.put("you", you);
  				data.put("liang", liang);
  				data.put("jige", jige);
  				data.put("difen", difen);
  
f4a73594   jack   1.增加班级统计报表和导出
396
397
  				templist.add(data);
  			}
1f0490aa   jack   1.考试情况报表样式
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
  			
  			if (list.size() > 0) {
  				PageData dataTemp = new PageData();
  				dataTemp.put("testpaper_id", "");
  				dataTemp.put("student_num", num_sum);
  				dataTemp.put("creat_time", "");
  				dataTemp.put("avg_score",
  						decimalFormat.format(avg_sum / list.size()));
  				dataTemp.put("class_id", "");
  				dataTemp.put("you", you_sum);
  				dataTemp.put("liang", liang_sum);
  				dataTemp.put("jige", jige_sum);
  				dataTemp.put("difen", difen_sum);
  				dataTemp.put("testpaperList", testpaperList);
  				templist.add(dataTemp);
  			}
f4a73594   jack   1.增加班级统计报表和导出
414
415
  		}
  
782f81b0   jack   1.增加未知学生的判断
416
  		Map<String, Object> dataMap = new HashMap<String, Object>();
f4a73594   jack   1.增加班级统计报表和导出
417
  		List<String> titles = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
418
419
420
421
422
423
424
425
426
427
428
429
430
  		titles.add("序号"); // 1
  		titles.add("班级名称"); // 2
  		titles.add("考试时间"); // 3
  		titles.add("平均分"); // 4
  		titles.add("班级总人数"); // 5
  		titles.add("优秀人数"); // 6
  		titles.add("优秀率"); // 7
  		titles.add("良好人数"); // 8
  		titles.add("良好率"); // 9
  		titles.add("及格人数"); // 10
  		titles.add("及格率"); // 11
  		titles.add("低分人数"); // 12
  		titles.add("低分率"); // 13
f4a73594   jack   1.增加班级统计报表和导出
431
432
433
  		dataMap.put("titles", titles);
  		List<PageData> varOList = templist;
  		List<PageData> varList = new ArrayList<PageData>();
1f0490aa   jack   1.考试情况报表样式
434
  //		DecimalFormat decimalFormat = new DecimalFormat("0.00");
782f81b0   jack   1.增加未知学生的判断
435
  		for (int i = 0; i < varOList.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
436
  			PageData vpd = new PageData();
1f0490aa   jack   1.考试情况报表样式
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
  			if(!varOList.get(i).getString("class_id").isEmpty()){
  				vpd.put("ID", varOList.get(i).getString("class_id"));
  				PageData c = sclassService.findById(vpd);
  				vpd.remove("ID");
  	
  				Integer you = Integer.valueOf(varOList.get(i).getString("you"));
  				Integer liang = Integer.valueOf(varOList.get(i).getString("liang"));
  				Integer jige = Integer.valueOf(varOList.get(i).getString("jige"));
  				Integer difen = Integer.valueOf(varOList.get(i).getString("difen"));
  				Integer student_num = Integer.valueOf(varOList.get(i).getString(
  						"student_num"));
  	
  				vpd.put("var1", i + 1); // 1
  				vpd.put("var2", c.getString("CLASS_NAME")); // 2
  				vpd.put("var3", varOList.get(i).getString("creat_time")); // 3
  				vpd.put("var4", varOList.get(i).getString("avg_score")); // 4
  				vpd.put("var5", student_num); // 5
  				vpd.put("var6", you); // 6
  				vpd.put("var7",
  						student_num == 0 ? 0 : decimalFormat.format(you * 100.0
  								/ student_num)
  								+ "%"); // 7
  				vpd.put("var8", liang); // 8
  				vpd.put("var9",
  						student_num == 0 ? 0 : decimalFormat.format(liang * 100.0
  								/ student_num)
  								+ "%"); // 9
  				vpd.put("var10", jige); // 10
  				vpd.put("var11",
  						student_num == 0 ? 0 : decimalFormat.format(jige * 100.0
  								/ student_num)
  								+ "%"); // 11
  				vpd.put("var12", difen); // 12
  				vpd.put("var13",
  						student_num == 0 ? 0 : decimalFormat.format(difen * 100.0
  								/ student_num)
  								+ "%"); // 13
  				varList.add(vpd);
  			}else{
  				Integer you = Integer.valueOf(varOList.get(i).getString("you"));
  				Integer liang = Integer.valueOf(varOList.get(i).getString("liang"));
  				Integer jige = Integer.valueOf(varOList.get(i).getString("jige"));
  				Integer difen = Integer.valueOf(varOList.get(i).getString("difen"));
  				Integer student_num = Integer.valueOf(varOList.get(i).getString(
  						"student_num"));
  				
  				vpd.put("var1", "/"); // 1
  				vpd.put("var2", "班级平均"); // 2
  				vpd.put("var3", "/"); // 3
  				vpd.put("var4", varOList.get(i).getString("avg_score")); // 4
  				vpd.put("var5", "/"); // 5
  				vpd.put("var6", "/"); // 6
  				vpd.put("var7",
  						student_num == 0 ? 0 : decimalFormat.format(you * 100.0
  								/ student_num)
  								+ "%"); // 7
  				vpd.put("var8", "/"); // 8
  				vpd.put("var9",
  						student_num == 0 ? 0 : decimalFormat.format(liang * 100.0
  								/ student_num)
  								+ "%"); // 9
  				vpd.put("var10", "/"); // 10
  				vpd.put("var11",
  						student_num == 0 ? 0 : decimalFormat.format(jige * 100.0
  								/ student_num)
  								+ "%"); // 11
  				vpd.put("var12", "/"); // 12
  				vpd.put("var13",
  						student_num == 0 ? 0 : decimalFormat.format(difen * 100.0
  								/ student_num)
  								+ "%"); // 13
  				varList.add(vpd);
  			}
f4a73594   jack   1.增加班级统计报表和导出
510
511
512
  		}
  		dataMap.put("varList", varList);
  		ObjectExcelView erv = new ObjectExcelView();
782f81b0   jack   1.增加未知学生的判断
513
  		mv = new ModelAndView(erv, dataMap);
f4a73594   jack   1.增加班级统计报表和导出
514
515
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
516
517
518
  
  	@RequestMapping(value = "/paperRep2")
  	public ModelAndView paperRep2() throws Exception {
f4a73594   jack   1.增加班级统计报表和导出
519
520
521
522
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		List<PageData> templist = new ArrayList<PageData>();
  		PageData saveData = new PageData();
782f81b0   jack   1.增加未知学生的判断
523
  
f4a73594   jack   1.增加班级统计报表和导出
524
525
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
526
  		if (pd.containsKey("PAPER_ID")) {
f4a73594   jack   1.增加班级统计报表和导出
527
528
529
  			List<PageData> list = paperquestionService.listAll(pd);
  			List<PageData> test = new ArrayList<PageData>();
  			int onum[] = new int[list.size()];
782f81b0   jack   1.增加未知学生的判断
530
531
  
  			for (int i = 0; i < list.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
532
533
  				PageData temp = new PageData();
  				String questionid = list.get(i).get("QUESTION_ID").toString();
782f81b0   jack   1.增加未知学生的判断
534
535
536
  
  				if (list.get(i).get("NO_NAME") == null
  						|| list.get(i).get("NO_NAME").toString().isEmpty()) {
f4a73594   jack   1.增加班级统计报表和导出
537
538
  					continue;
  				}
32d27bdc   jack   1.增加判断题和数字题,调试更改上传数据
539
  				Float que_score = list.get(i).getString("SCORE").isEmpty()?0:Float.valueOf(list.get(i).get("SCORE")
782f81b0   jack   1.增加未知学生的判断
540
  						.toString());
f4a73594   jack   1.增加班级统计报表和导出
541
542
  				temp.put("QUESTION_ID", questionid);
  				PageData question = questionService.findById(temp);
782f81b0   jack   1.增加未知学生的判断
543
  				temp.put("ANSWER", question.get("ANSWER").toString());
f4a73594   jack   1.增加班级统计报表和导出
544
545
  				temp.put("QUESTION_RANK", list.get(i).get("RANK").toString());
  				temp.put("QUESTION_SCORE", que_score);
782f81b0   jack   1.增加未知学生的判断
546
  
f4a73594   jack   1.增加班级统计报表和导出
547
548
  				PageData que = questionService.findById(temp);
  				Integer option_num = 0;
782f81b0   jack   1.增加未知学生的判断
549
550
551
552
  				if (!que.get("OPTION_NUM").toString().isEmpty()) {
  					option_num = Integer.valueOf(que.get("OPTION_NUM")
  							.toString());
  					onum[i] = option_num;
f4a73594   jack   1.增加班级统计报表和导出
553
  				}
d6389252   jack   1.增加年级卷测验统计
554
555
  				String tpList = pd.get("TESTPAPER_ID").toString();
  				String tpListArray[] = tpList.split(",");
782f81b0   jack   1.增加未知学生的判断
556
  
d6389252   jack   1.增加年级卷测验统计
557
  				temp.put("TEST_ID", tpListArray);
782f81b0   jack   1.增加未知学生的判断
558
559
560
561
  
  				List<PageData> queInfo = testpaperinfoService
  						.listTestPaperQuestionIDinfo(temp);
  				int answer[] = new int[option_num + 1];
f4a73594   jack   1.增加班级统计报表和导出
562
  				int right = 0;
0a0c0f6a   jack   1.bug修复
563
  				int lost = 0;
782f81b0   jack   1.增加未知学生的判断
564
565
  				for (int j = 0; j < queInfo.size(); j++) {
  					if (queInfo.get(j).get("ANSWER").toString().isEmpty()) {
0a0c0f6a   jack   1.bug修复
566
567
  						lost++;
  					}
782f81b0   jack   1.增加未知学生的判断
568
569
570
571
  					if (queInfo.get(j).get("RIGHT") != null
  							&& !queInfo.get(j).get("RIGHT").toString()
  									.isEmpty()) {
  						if (queInfo.get(j).get("RIGHT").toString().equals("1")) {
f4a73594   jack   1.增加班级统计报表和导出
572
573
574
  							right++;
  						}
  					}
782f81b0   jack   1.增加未知学生的判断
575
576
577
578
579
580
581
  					if (queInfo.get(j).get("ANSWER") != null
  							&& !queInfo.get(j).get("ANSWER").toString()
  									.isEmpty()) {
  						for (int o = 0; o < option_num; o++) {
  							String s = String.valueOf((char) (65 + o));
  							if (queInfo.get(j).get("ANSWER").toString()
  									.indexOf(s) > -1) {
f4a73594   jack   1.增加班级统计报表和导出
582
583
  								answer[o]++;
  							}
782f81b0   jack   1.增加未知学生的判断
584
585
  						}
  					} else {
f4a73594   jack   1.增加班级统计报表和导出
586
587
588
589
  						answer[option_num]++;
  					}
  				}
  				temp.put("RIGHTNUM", right);
782f81b0   jack   1.增加未知学生的判断
590
591
  				temp.put("ANSWERNUM", (queInfo.size() - lost));
  				temp.put("ANSWERNUM2", queInfo.size());
f4a73594   jack   1.增加班级统计报表和导出
592
593
594
595
  				temp.put("optin_info", answer);
  				templist.add(temp);
  			}
  			Arrays.sort(onum);
782f81b0   jack   1.增加未知学生的判断
596
597
598
599
600
  			int max = onum[onum.length - 1];
  			pd.put("MAX", max);
  		}
  
  		Collections.sort(templist, new Comparator<PageData>() {
f4a73594   jack   1.增加班级统计报表和导出
601
602
603
  
  			@Override
  			public int compare(PageData o1, PageData o2) {
782f81b0   jack   1.增加未知学生的判断
604
605
606
607
  				Integer o1GetScore = Integer.valueOf(o1
  						.getString("QUESTION_RANK"));
  				Integer o2GetScore = Integer.valueOf(o2
  						.getString("QUESTION_RANK"));
f4a73594   jack   1.增加班级统计报表和导出
608
609
  				return o1GetScore.compareTo(o2GetScore);
  			}
782f81b0   jack   1.增加未知学生的判断
610
  
f4a73594   jack   1.增加班级统计报表和导出
611
612
613
  		});
  		mv.setViewName("sunvote/paper/test_list2");
  		mv.addObject("varList", templist);
782f81b0   jack   1.增加未知学生的判断
614
  		mv.addObject("pd", pd);
f4a73594   jack   1.增加班级统计报表和导出
615
616
617
  		res.setData(saveData);
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
618
619
620
  
  	@RequestMapping(value = "/export2")
  	public ModelAndView export2() throws Exception {
f4a73594   jack   1.增加班级统计报表和导出
621
622
623
624
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		List<PageData> templist = new ArrayList<PageData>();
  		PageData saveData = new PageData();
782f81b0   jack   1.增加未知学生的判断
625
  
f4a73594   jack   1.增加班级统计报表和导出
626
627
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
628
  		if (pd.containsKey("PAPER_ID")) {
f4a73594   jack   1.增加班级统计报表和导出
629
630
631
  			List<PageData> list = paperquestionService.listAll(pd);
  			List<PageData> test = new ArrayList<PageData>();
  			int onum[] = new int[list.size()];
782f81b0   jack   1.增加未知学生的判断
632
633
  
  			for (int i = 0; i < list.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
634
635
  				PageData temp = new PageData();
  				String questionid = list.get(i).get("QUESTION_ID").toString();
782f81b0   jack   1.增加未知学生的判断
636
637
638
  
  				if (list.get(i).get("NO_NAME") == null
  						|| list.get(i).get("NO_NAME").toString().isEmpty()) {
f4a73594   jack   1.增加班级统计报表和导出
639
640
  					continue;
  				}
782f81b0   jack   1.增加未知学生的判断
641
642
  				Float que_score = Float.valueOf(list.get(i).get("SCORE")
  						.toString());
f4a73594   jack   1.增加班级统计报表和导出
643
644
  				temp.put("QUESTION_ID", questionid);
  				PageData question = questionService.findById(temp);
782f81b0   jack   1.增加未知学生的判断
645
  				temp.put("ANSWER", question.get("ANSWER").toString());
f4a73594   jack   1.增加班级统计报表和导出
646
647
  				temp.put("QUESTION_RANK", list.get(i).get("RANK").toString());
  				temp.put("QUESTION_SCORE", que_score);
782f81b0   jack   1.增加未知学生的判断
648
  
f4a73594   jack   1.增加班级统计报表和导出
649
650
  				PageData que = questionService.findById(temp);
  				Integer option_num = 0;
782f81b0   jack   1.增加未知学生的判断
651
652
653
654
  				if (!que.get("OPTION_NUM").toString().isEmpty()) {
  					option_num = Integer.valueOf(que.get("OPTION_NUM")
  							.toString());
  					onum[i] = option_num;
f4a73594   jack   1.增加班级统计报表和导出
655
  				}
782f81b0   jack   1.增加未知学生的判断
656
  
d6389252   jack   1.增加年级卷测验统计
657
658
  				String tpList = pd.get("TESTPAPER_ID").toString();
  				String tpListArray[] = tpList.split(",");
782f81b0   jack   1.增加未知学生的判断
659
  
d6389252   jack   1.增加年级卷测验统计
660
  				temp.put("TEST_ID", tpListArray);
782f81b0   jack   1.增加未知学生的判断
661
662
663
  				List<PageData> queInfo = testpaperinfoService
  						.listTestPaperQuestionIDinfo(temp);
  				int answer[] = new int[option_num + 1];
f4a73594   jack   1.增加班级统计报表和导出
664
  				int right = 0;
0a0c0f6a   jack   1.bug修复
665
  				int lost = 0;
782f81b0   jack   1.增加未知学生的判断
666
667
  				for (int j = 0; j < queInfo.size(); j++) {
  					if (queInfo.get(j).get("ANSWER").toString().isEmpty()) {
0a0c0f6a   jack   1.bug修复
668
669
  						lost++;
  					}
782f81b0   jack   1.增加未知学生的判断
670
671
672
673
  					if (queInfo.get(j).get("RIGHT") != null
  							&& !queInfo.get(j).get("RIGHT").toString()
  									.isEmpty()) {
  						if (queInfo.get(j).get("RIGHT").toString().equals("1")) {
f4a73594   jack   1.增加班级统计报表和导出
674
675
676
  							right++;
  						}
  					}
782f81b0   jack   1.增加未知学生的判断
677
678
679
680
681
682
683
  					if (queInfo.get(j).get("ANSWER") != null
  							&& !queInfo.get(j).get("ANSWER").toString()
  									.isEmpty()) {
  						for (int o = 0; o < option_num; o++) {
  							String s = String.valueOf((char) (65 + o));
  							if (queInfo.get(j).get("ANSWER").toString()
  									.equals(s)) {
f4a73594   jack   1.增加班级统计报表和导出
684
685
  								answer[o]++;
  							}
782f81b0   jack   1.增加未知学生的判断
686
687
  						}
  					} else {
f4a73594   jack   1.增加班级统计报表和导出
688
689
690
691
  						answer[option_num]++;
  					}
  				}
  				temp.put("RIGHTNUM", right);
782f81b0   jack   1.增加未知学生的判断
692
693
  				temp.put("ANSWERNUM", (queInfo.size() - lost));
  				temp.put("ANSWERNUM2", queInfo.size());
f4a73594   jack   1.增加班级统计报表和导出
694
695
696
697
  				temp.put("optin_info", JSONUtils.toJSONString(answer));
  				templist.add(temp);
  			}
  			Arrays.sort(onum);
782f81b0   jack   1.增加未知学生的判断
698
699
700
701
702
  			int max = onum[onum.length - 1];
  			pd.put("MAX", max);
  		}
  
  		Collections.sort(templist, new Comparator<PageData>() {
f4a73594   jack   1.增加班级统计报表和导出
703
704
705
  
  			@Override
  			public int compare(PageData o1, PageData o2) {
782f81b0   jack   1.增加未知学生的判断
706
707
708
709
  				Integer o1GetScore = Integer.valueOf(o1
  						.getString("QUESTION_RANK"));
  				Integer o2GetScore = Integer.valueOf(o2
  						.getString("QUESTION_RANK"));
f4a73594   jack   1.增加班级统计报表和导出
710
711
  				return o1GetScore.compareTo(o2GetScore);
  			}
782f81b0   jack   1.增加未知学生的判断
712
  
f4a73594   jack   1.增加班级统计报表和导出
713
  		});
f4a73594   jack   1.增加班级统计报表和导出
714
  
782f81b0   jack   1.增加未知学生的判断
715
716
717
718
  		// mv.addObject("varList", templist);
  		// mv.addObject("pd",pd);
  
  		Map<String, Object> dataMap = new HashMap<String, Object>();
f4a73594   jack   1.增加班级统计报表和导出
719
  		List<String> titles = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
720
721
722
723
724
725
726
  		titles.add("题号"); // 1
  		titles.add("答案"); // 2
  		titles.add("答题人数"); // 3
  		titles.add("正确人数"); // 4
  		titles.add("正确率"); // 5
  		titles.add("满分值"); // 6
  		titles.add("平均分"); // 7
f4a73594   jack   1.增加班级统计报表和导出
727
  		Integer max = Integer.valueOf(pd.getString("MAX"));
782f81b0   jack   1.增加未知学生的判断
728
729
730
  		for (int x = 0; x < max; x++) {
  			titles.add("选" + Myelfun.jstlInt2Char(x + 1) + "人数"); // 8
  			titles.add("选" + Myelfun.jstlInt2Char(x + 1) + "比例"); // 9
f4a73594   jack   1.增加班级统计报表和导出
731
  		}
782f81b0   jack   1.增加未知学生的判断
732
733
  		titles.add("漏选人数"); // 10
  		titles.add("漏选比例"); // 11
f4a73594   jack   1.增加班级统计报表和导出
734
735
736
  		dataMap.put("titles", titles);
  		List<PageData> varOList = templist;
  		List<PageData> varList = new ArrayList<PageData>();
782f81b0   jack   1.增加未知学生的判断
737
738
  		DecimalFormat decimalFormat = new DecimalFormat("0.00");
  		for (int i = 0; i < varOList.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
739
  			PageData vpd = new PageData();
782f81b0   jack   1.增加未知学生的判断
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
  
  			vpd.put("var1", varOList.get(i).getString("QUESTION_RANK")); // 1
  			vpd.put("var2", varOList.get(i).getString("ANSWER")); // 2
  			vpd.put("var3", varOList.get(i).getString("ANSWERNUM")); // 3
  			vpd.put("var4", varOList.get(i).getString("RIGHTNUM")); // 4
  			vpd.put("var5",
  					decimalFormat.format(Double.valueOf(varOList.get(i)
  							.getString("RIGHTNUM"))
  							* 100
  							/ Double.valueOf(varOList.get(i).getString(
  									"ANSWERNUM")))
  							+ "%"); // 5
  			vpd.put("var6", varOList.get(i).getString("QUESTION_SCORE")); // 6
  			vpd.put("var7", decimalFormat.format(Double.valueOf(varOList.get(i)
  					.getString("RIGHTNUM"))
  					* Double.valueOf(varOList.get(i)
  							.getString("QUESTION_SCORE"))
  					/ Double.valueOf(varOList.get(i).getString("ANSWERNUM")))); // 7
f4a73594   jack   1.增加班级统计报表和导出
758
759
760
  			String s = varOList.get(i).get("optin_info").toString();
  			s = s.replace("[", "");
  			s = s.replace("]", "");
782f81b0   jack   1.增加未知学生的判断
761
762
  			List<String> optoin = Arrays.asList(s.split(","));
  			for (int y = 0; y < max; y++) {
f447a06e   jack   1.修复bug
763
  				Integer nn = 0;
782f81b0   jack   1.增加未知学生的判断
764
  				if ((optoin.size() - 1) > y) {
f447a06e   jack   1.修复bug
765
  					nn = Integer.valueOf(optoin.get(y));
782f81b0   jack   1.增加未知学生的判断
766
  				} else {
f447a06e   jack   1.修复bug
767
768
  					break;
  				}
782f81b0   jack   1.增加未知学生的判断
769
770
771
772
773
774
775
776
  				vpd.put("var" + (8 + 2 * y), nn); // 8
  				vpd.put("var" + (9 + 2 * y),
  						decimalFormat.format(nn
  								* 100
  								/ Double.valueOf(varOList.get(i).getString(
  										"ANSWERNUM")))
  								+ "%"); // 9
  
f4a73594   jack   1.增加班级统计报表和导出
777
  			}
782f81b0   jack   1.增加未知学生的判断
778
779
780
781
782
783
784
785
786
787
788
  
  			vpd.put("var" + (max * 2 + 8),
  					Integer.valueOf(optoin.get(optoin.size() - 1))); // 8
  			vpd.put("var" + (max * 2 + 9),
  					decimalFormat.format(Double.valueOf(optoin.get(optoin
  							.size() - 1))
  							* 100
  							/ Double.valueOf(varOList.get(i).getString(
  									"ANSWERNUM2")))
  							+ "%"); // 9
  
f4a73594   jack   1.增加班级统计报表和导出
789
790
791
792
  			varList.add(vpd);
  		}
  		dataMap.put("varList", varList);
  		ObjectExcelView erv = new ObjectExcelView();
782f81b0   jack   1.增加未知学生的判断
793
  		mv = new ModelAndView(erv, dataMap);
f4a73594   jack   1.增加班级统计报表和导出
794
795
796
  
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
797
  
58e024ae   jack   1.修改logo
798
799
  	/**
  	 * 按学生分析
782f81b0   jack   1.增加未知学生的判断
800
  	 * 
58e024ae   jack   1.修改logo
801
802
803
  	 * @return
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
804
805
  	@RequestMapping(value = "/paperRep3")
  	public ModelAndView paperRep3() throws Exception {
58e024ae   jack   1.修改logo
806
807
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
78353cf9   jack   1.增加老师端可以看到年级卷
808
  		pd=this.getPageData();
89ac0783   jack   1.添加年级卷分析功能
809
  		List<PageData> temp = new ArrayList<PageData>();
78353cf9   jack   1.增加老师端可以看到年级卷
810
  		List<PageData> sclass_list = new ArrayList<PageData>();
58e024ae   jack   1.修改logo
811
  		PageData saveData = new PageData();
782f81b0   jack   1.增加未知学生的判断
812
  
58e024ae   jack   1.修改logo
813
814
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
815
816
  		if (pd.containsKey("PAPER_ID")) {
  
58e024ae   jack   1.修改logo
817
  			List<PageData> list = studenttestService.findTestInfoByPid(pd);
89ac0783   jack   1.添加年级卷分析功能
818
  			PageData paper = paperService.findById(pd);
782f81b0   jack   1.增加未知学生的判断
819
  			if (paper != null) {
89ac0783   jack   1.添加年级卷分析功能
820
821
822
  				pd.put("SCORE", paper.get("SCORE"));
  				pd.put("PAPER_NAME", paper.get("TITLE"));
  			}
58e024ae   jack   1.修改logo
823
  			List<String> sid = new ArrayList<String>();
89ac0783   jack   1.添加年级卷分析功能
824
825
  			Integer test_num = 0;
  			Integer lost_num = 0;
78353cf9   jack   1.增加老师端可以看到年级卷
826
827
  			List<String> classId = new ArrayList();
  			PageData sclass = new PageData();
782f81b0   jack   1.增加未知学生的判断
828
829
830
  			for (PageData item : list) {
  
  				PageData p = new PageData();
78353cf9   jack   1.增加老师端可以看到年级卷
831
832
  				
  				
782f81b0   jack   1.增加未知学生的判断
833
834
835
836
837
838
839
  				p.put("ID", item.getString("STUDENT_ID"));
  				PageData student = stundentService.findById(p);
  				if (student != null) {
  					Integer index = this.indexOfStrInList(sid,
  							item.getString("STUDENT_ID"));
  					if (index != -1) {
  
89ac0783   jack   1.添加年级卷分析功能
840
  						test_num++;
782f81b0   jack   1.增加未知学生的判断
841
842
  						List<PageData> test_list = (List<PageData>) temp.get(
  								index).get("TEST_LIST");
89ac0783   jack   1.添加年级卷分析功能
843
844
  						PageData test = new PageData();
  						test.put("CREATE_DATE", item.get("CREATE_DATE"));
782f81b0   jack   1.增加未知学生的判断
845
  						if (item.getString("LOST_TEST").isEmpty()) {
89ac0783   jack   1.添加年级卷分析功能
846
  							test.put("SCORE", item.get("SCORE"));
782f81b0   jack   1.增加未知学生的判断
847
  						} else {
89ac0783   jack   1.添加年级卷分析功能
848
  							test.put("SCORE", "--");
782f81b0   jack   1.增加未知学生的判断
849
850
851
852
  							temp.get(index).put(
  									"LOST_NUM",
  									Integer.valueOf(temp.get(index).getString(
  											"LOST_NUM")) + 1);
89ac0783   jack   1.添加年级卷分析功能
853
854
855
  						}
  						test.put("AVG_SCORE", item.get("AVG_SCORE"));
  						test_list.add(test);
782f81b0   jack   1.增加未知学生的判断
856
857
858
859
  						Float total = Float.valueOf(temp.get(index).getString(
  								"STUDENT_TOTAL"));
  						temp.get(index).put("STUDENT_TOTAL",
  								total + Float.valueOf(item.getString("SCORE")));
89ac0783   jack   1.添加年级卷分析功能
860
  						temp.get(index).put("TEST_LIST", test_list);
782f81b0   jack   1.增加未知学生的判断
861
862
863
864
865
866
867
868
869
870
871
872
  						temp.get(index).put(
  								"TEST_NUM",
  								test_list.size()
  										- Integer.valueOf(temp.get(index)
  												.getString("LOST_NUM")));
  
  					} else {
  						test_num = 1;
  						lost_num = 0;
  						PageData stu = new PageData();
  						stu.put("STUDENT_NAME", item.get("STUDENT_NAME"));
  						stu.put("CLASS_NAME", item.get("CLASS_NAME"));
78353cf9   jack   1.增加老师端可以看到年级卷
873
874
875
876
877
878
879
  						if(!classId.contains(item.getString("CLASS_ID"))){
  							classId.add(item.getString("CLASS_ID"));
  							sclass.put("CLASS_ID", item.get("CLASS_ID"));
  							sclass.put("CLASS_NAME", item.get("CLASS_NAME"));
  							sclass_list.add(sclass);
  						}
  						
782f81b0   jack   1.增加未知学生的判断
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
  						List<PageData> testList = new ArrayList<PageData>();
  						PageData test = new PageData();
  						test.put("CREATE_DATE", item.get("CREATE_DATE"));
  						if (item.getString("LOST_TEST").isEmpty()) {
  							test.put("SCORE", item.get("SCORE"));
  						} else {
  							test.put("SCORE", "--");
  							lost_num++;
  						}
  						test.put("AVG_SCORE", item.get("AVG_SCORE"));
  						testList.add(test);
  						stu.put("STUDENT_TOTAL", item.get("SCORE"));
  						stu.put("TEST_LIST", testList);
  						stu.put("TEST_NUM", testList.size() - lost_num);
  						stu.put("LOST_NUM", lost_num);
  						sid.add(item.getString("STUDENT_ID"));
  						temp.add(stu);
78353cf9   jack   1.增加老师端可以看到年级卷
897
  						
89ac0783   jack   1.添加年级卷分析功能
898
  					}
58e024ae   jack   1.修改logo
899
  				}
58e024ae   jack   1.修改logo
900
901
  			}
  		}
782f81b0   jack   1.增加未知学生的判断
902
  		Collections.sort(temp, new Comparator<PageData>() {
89ac0783   jack   1.添加年级卷分析功能
903
904
905
  
  			@Override
  			public int compare(PageData o1, PageData o2) {
782f81b0   jack   1.增加未知学生的判断
906
907
908
909
910
911
912
  
  				Float o1GetScore = Float.valueOf(o1.getString("TEST_NUM")) == 0 ? 0
  						: Float.valueOf(o1.getString("STUDENT_TOTAL"))
  								/ Float.valueOf(o1.getString("TEST_NUM"));
  				Float o2GetScore = Float.valueOf(o2.getString("TEST_NUM")) == 0 ? 0
  						: Float.valueOf(o2.getString("STUDENT_TOTAL"))
  								/ Float.valueOf(o2.getString("TEST_NUM"));
89ac0783   jack   1.添加年级卷分析功能
913
914
  				return o2GetScore.compareTo(o1GetScore);
  			}
782f81b0   jack   1.增加未知学生的判断
915
  
89ac0783   jack   1.添加年级卷分析功能
916
  		});
78353cf9   jack   1.增加老师端可以看到年级卷
917
  		
58e024ae   jack   1.修改logo
918
  		mv.setViewName("sunvote/paper/test_list3");
78353cf9   jack   1.增加老师端可以看到年级卷
919
  		mv.addObject("sclass", sclass_list);
89ac0783   jack   1.添加年级卷分析功能
920
  		mv.addObject("varList", temp);
782f81b0   jack   1.增加未知学生的判断
921
  		mv.addObject("pd", pd);
58e024ae   jack   1.修改logo
922
923
924
  		res.setData(saveData);
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
925
926
927
  
  	@RequestMapping(value = "/export3")
  	public ModelAndView export3() throws Exception {
89ac0783   jack   1.添加年级卷分析功能
928
929
930
931
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		List<PageData> temp = new ArrayList<PageData>();
  		PageData saveData = new PageData();
782f81b0   jack   1.增加未知学生的判断
932
  
89ac0783   jack   1.添加年级卷分析功能
933
934
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
935
936
  		if (pd.containsKey("PAPER_ID")) {
  
89ac0783   jack   1.添加年级卷分析功能
937
938
  			List<PageData> list = studenttestService.findTestInfoByPid(pd);
  			PageData paper = paperService.findById(pd);
782f81b0   jack   1.增加未知学生的判断
939
  			if (paper != null) {
89ac0783   jack   1.添加年级卷分析功能
940
941
942
943
944
945
  				pd.put("SCORE", paper.get("SCORE"));
  				pd.put("PAPER_NAME", paper.get("TITLE"));
  			}
  			List<String> sid = new ArrayList<String>();
  			Integer test_num = 0;
  			Integer lost_num = 0;
782f81b0   jack   1.增加未知学生的判断
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
  			for (PageData item : list) {
  				PageData p = new PageData();
  				p.put("ID", item.getString("STUDENT_ID"));
  				PageData student = stundentService.findById(p);
  				if (student != null) {
  				Integer index = this.indexOfStrInList(sid,
  						item.getString("STUDENT_ID"));
  				if (index != -1) {
  
  					test_num++;
  					List<PageData> test_list = (List<PageData>) temp.get(index)
  							.get("TEST_LIST");
  					PageData test = new PageData();
  					test.put("CREATE_DATE", item.get("CREATE_DATE"));
  					if (item.getString("LOST_TEST").isEmpty()) {
  						test.put("SCORE", item.get("SCORE"));
  					} else {
  						test.put("SCORE", "--");
  						temp.get(index).put(
  								"LOST_NUM",
  								Integer.valueOf(temp.get(index).getString(
  										"LOST_NUM")) + 1);
  					}
  					test.put("AVG_SCORE", item.get("AVG_SCORE"));
  					test_list.add(test);
  					Float total = Float.valueOf(temp.get(index).getString(
  							"STUDENT_TOTAL"));
  					temp.get(index).put("STUDENT_TOTAL",
  							total + Float.valueOf(item.getString("SCORE")));
  					temp.get(index).put("TEST_LIST", test_list);
  					temp.get(index).put(
  							"TEST_NUM",
  							test_list.size()
  									- Integer.valueOf(temp.get(index)
  											.getString("LOST_NUM")));
  
  				} else {
  					test_num = 1;
  					lost_num = 0;
89ac0783   jack   1.添加年级卷分析功能
985
986
987
988
989
990
  					PageData stu = new PageData();
  					stu.put("STUDENT_NAME", item.get("STUDENT_NAME"));
  					stu.put("CLASS_NAME", item.get("CLASS_NAME"));
  					List<PageData> testList = new ArrayList<PageData>();
  					PageData test = new PageData();
  					test.put("CREATE_DATE", item.get("CREATE_DATE"));
782f81b0   jack   1.增加未知学生的判断
991
  					if (item.getString("LOST_TEST").isEmpty()) {
89ac0783   jack   1.添加年级卷分析功能
992
  						test.put("SCORE", item.get("SCORE"));
782f81b0   jack   1.增加未知学生的判断
993
  					} else {
89ac0783   jack   1.添加年级卷分析功能
994
995
996
997
998
  						test.put("SCORE", "--");
  						lost_num++;
  					}
  					test.put("AVG_SCORE", item.get("AVG_SCORE"));
  					testList.add(test);
782f81b0   jack   1.增加未知学生的判断
999
  					stu.put("STUDENT_TOTAL", item.get("SCORE"));
89ac0783   jack   1.添加年级卷分析功能
1000
  					stu.put("TEST_LIST", testList);
782f81b0   jack   1.增加未知学生的判断
1001
  					stu.put("TEST_NUM", testList.size() - lost_num);
89ac0783   jack   1.添加年级卷分析功能
1002
1003
1004
1005
  					stu.put("LOST_NUM", lost_num);
  					sid.add(item.getString("STUDENT_ID"));
  					temp.add(stu);
  				}
782f81b0   jack   1.增加未知学生的判断
1006
  				}
89ac0783   jack   1.添加年级卷分析功能
1007
1008
  			}
  		}
782f81b0   jack   1.增加未知学生的判断
1009
  		Collections.sort(temp, new Comparator<PageData>() {
89ac0783   jack   1.添加年级卷分析功能
1010
1011
1012
  
  			@Override
  			public int compare(PageData o1, PageData o2) {
782f81b0   jack   1.增加未知学生的判断
1013
1014
1015
1016
1017
1018
1019
  
  				Float o1GetScore = Float.valueOf(o1.getString("TEST_NUM")) == 0 ? 0
  						: Float.valueOf(o1.getString("STUDENT_TOTAL"))
  								/ Float.valueOf(o1.getString("TEST_NUM"));
  				Float o2GetScore = Float.valueOf(o2.getString("TEST_NUM")) == 0 ? 0
  						: Float.valueOf(o2.getString("STUDENT_TOTAL"))
  								/ Float.valueOf(o2.getString("TEST_NUM"));
89ac0783   jack   1.添加年级卷分析功能
1020
1021
  				return o2GetScore.compareTo(o1GetScore);
  			}
782f81b0   jack   1.增加未知学生的判断
1022
  
89ac0783   jack   1.添加年级卷分析功能
1023
1024
1025
  		});
  
  		mv.addObject("varList", temp);
782f81b0   jack   1.增加未知学生的判断
1026
1027
1028
  		mv.addObject("pd", pd);
  
  		Map<String, Object> dataMap = new HashMap<String, Object>();
89ac0783   jack   1.添加年级卷分析功能
1029
  		List<String> titles = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
1030
1031
1032
1033
1034
1035
1036
1037
1038
  		titles.add("学生姓名"); // 1
  		titles.add("班级"); // 2
  		titles.add("综合排名"); // 3
  		titles.add("个人平均得分"); // 4
  		titles.add("个人平均得分率"); // 5
  		titles.add("个人得分"); // 6
  		titles.add("测验平均分"); // 7
  		titles.add("测验时间"); // 8
  
89ac0783   jack   1.添加年级卷分析功能
1039
1040
1041
  		dataMap.put("titles", titles);
  		List<PageData> varOList = temp;
  		List<PageData> varList = new ArrayList<PageData>();
782f81b0   jack   1.增加未知学生的判断
1042
1043
1044
  		DecimalFormat decimalFormat = new DecimalFormat("0.00");
  		
  		for (int i = 0; i < varOList.size(); i++) {
89ac0783   jack   1.添加年级卷分析功能
1045
  			PageData vpd = new PageData();
782f81b0   jack   1.增加未知学生的判断
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
  
  			vpd.put("var1", varOList.get(i).getString("STUDENT_NAME")); // 1
  			vpd.put("var2", varOList.get(i).getString("CLASS_NAME")); // 2
  			vpd.put("var3", i + 1); // 3
  			vpd.put("var4",
  					varOList.get(i).getString("TEST_NUM").equals("0") ? 0
  							: decimalFormat.format(Double.valueOf(varOList.get(
  									i).getString("STUDENT_TOTAL"))
  									/ Double.valueOf(varOList.get(i).getString(
  											"TEST_NUM")))); // 4
  			vpd.put("var5",
8791e5b3   jack   1.excel导出添加%
1057
  					varOList.get(i).getString("TEST_NUM").equals("0") ? 0+"%"
782f81b0   jack   1.增加未知学生的判断
1058
1059
1060
1061
  							: decimalFormat.format((Double.valueOf(varOList
  									.get(i).getString("STUDENT_TOTAL")) * 100 / Double
  									.valueOf(varOList.get(i).getString(
  											"TEST_NUM")))
8791e5b3   jack   1.excel导出添加%
1062
  									/ Double.valueOf(pd.getString("SCORE")))+"%"); // 5
782f81b0   jack   1.增加未知学生的判断
1063
1064
1065
  			List<PageData> test_list = (List<PageData>) varOList.get(i).get(
  					"TEST_LIST");
  
89ac0783   jack   1.添加年级卷分析功能
1066
1067
1068
  			List<String> score = new ArrayList<String>();
  			List<String> AVG_SCORE = new ArrayList<String>();
  			List<String> CREATE_DATE = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
1069
  			for (int x = 0; x < test_list.size(); x++) {
89ac0783   jack   1.添加年级卷分析功能
1070
1071
1072
  				score.add(test_list.get(x).getString("SCORE"));
  				AVG_SCORE.add(test_list.get(x).getString("AVG_SCORE"));
  				CREATE_DATE.add(test_list.get(x).getString("CREATE_DATE"));
782f81b0   jack   1.增加未知学生的判断
1073
  
89ac0783   jack   1.添加年级卷分析功能
1074
1075
1076
1077
1078
  			}
  			vpd.put("var6", score);
  			vpd.put("var7", AVG_SCORE);
  			vpd.put("var8", CREATE_DATE);
  			varList.add(vpd);
782f81b0   jack   1.增加未知学生的判断
1079
  			
89ac0783   jack   1.添加年级卷分析功能
1080
1081
1082
  		}
  		dataMap.put("varList", varList);
  		ObjectExcelView2 erv = new ObjectExcelView2();
782f81b0   jack   1.增加未知学生的判断
1083
  		mv = new ModelAndView(erv, dataMap);
89ac0783   jack   1.添加年级卷分析功能
1084
1085
1086
  
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1087
1088
1089
1090
1091
1092
  
  	@RequestMapping(value = "/iteminfo")
  	public ModelAndView iteminfo() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "Paper详细信息");
  		// if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  		// //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
338594c8   孙向锦   添加教师端页面
1093
1094
1095
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1096
1097
1098
  
  		if (pd.containsKey("PAPER_ID")) {
  			try {
338594c8   孙向锦   添加教师端页面
1099
1100
  				Paper paper = new Paper();
  				PageData ppd = paperService.findById(pd);
782f81b0   jack   1.增加未知学生的判断
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
  				if (ppd != null) {
  					paper.setTitle(ppd.getString("TITLE"));
  					paper.setExam_time(ppd.getString("EXAM_TIME"));
  					paper.setUser_id(ppd.getString("USER_ID"));
  					paper.setPaper_type(ppd.getString("PAPER_TYPE"));
  					paper.setSubject_id(ppd.getString("SUBJECT_ID"));
  					paper.setGrade_id(ppd.getString("GRADE_ID"));
  					paper.setScore(ppd.getString("SCORE"));
  					paper.setQuestions(new ArrayList<Question>());
  
  					List<PageData> questList = v1Service.getTestPaperInfo(pd);
  					for (PageData qpd : questList) {
  						Question question = new Question();
  						question.setAnswer(qpd.getString("ANSWER"));
  						question.setQuestion_id(qpd.getString("QUESTION_ID"));
  						question.setSubject_id(qpd.getString("SUBJECT_ID"));
  						question.setChapter_id(qpd.getString("CHAPTER_ID"));
  						question.setProblem_type_id(qpd
  								.getString("PROBLEM_TYPE_ID"));
  						question.setKnowledge_id(qpd.getString("KNOWLEDGE_ID"));
  						question.setContent(qpd.getString("CONTENT")
  								.replaceAll("<fill></fill>", "______"));
  						question.setOption_num(qpd.getString("OPTION_NUM"));
  						question.setOption_content(qpd
  								.getString("OPTION_CONTENT"));
  						question.setDifficulty(qpd.getString("DIFFICULTY"));
  						question.setAnalysis(qpd.getString("ANALYSIS"));
  						question.setQuestion_from(qpd
  								.getString("QUESTION_FROM"));
  						question.setSug_score(qpd.getString("SCORE"));
  						question.setSug_part_score(qpd.getString("PART_SCORE"));
  						question.setRank(qpd.getString("RANK"));
  						question.setNo_name(qpd.getString("NO_NAME"));
  						if ("-1".equals("" + qpd.getString("P_ID"))) {
  							PageData pidPd = new PageData();
  							pidPd.put("PID", question.getQuestion_id());
  							question.setQuestions(new ArrayList<Question>());
  							List<PageData> qs = v1Service
  									.getQuestionsByPID(pidPd);
  							for (PageData q : qs) {
  								Question qq = new Question();
  								qq.setAnswer(q.getString("ANSWER"));
  								qq.setQuestion_id(q.getString("QUESTION_ID"));
  								qq.setSubject_id(q.getString("SUBJECT_ID"));
  								qq.setChapter_id(q.getString("CHAPTER_ID"));
  								qq.setProblem_type_id(q
  										.getString("PROBLEM_TYPE_ID"));
  								qq.setKnowledge_id(q.getString("KNOWLEDGE_ID"));
  								qq.setContent(q.getString("CONTENT")
  										.replaceAll("<fill></fill>", "______"));
  								qq.setOption_num(q.getString("OPTION_NUM"));
  								qq.setOption_content(q
  										.getString("OPTION_CONTENT"));
  								qq.setDifficulty(q.getString("DIFFICULTY"));
  								qq.setAnalysis(q.getString("ANALYSIS"));
  								qq.setQuestion_from(q
  										.getString("QUESTION_FROM"));
  								qq.setSug_score(q.getString("SCORE"));
  								qq.setSug_part_score(q.getString("PART_SCORE"));
  								qq.setRank(q.getString("RANK"));
  								qq.setNo_name(q.getString("NO_NAME"));
  								question.getQuestions().add(qq);
  							}
  						}
  						if ("-1".equals(qpd.getString("P_ID"))
  								|| "0".equals(qpd.getString("P_ID"))) {
  							paper.getQuestions().add(question);
338594c8   孙向锦   添加教师端页面
1168
1169
  						}
  					}
782f81b0   jack   1.增加未知学生的判断
1170
1171
1172
  					pd.put("JSON", paper.toJson());
  					logger.info(paper.toJson());
  
338594c8   孙向锦   添加教师端页面
1173
  				}
782f81b0   jack   1.增加未知学生的判断
1174
  			} catch (Exception ex) {
338594c8   孙向锦   添加教师端页面
1175
1176
1177
  				ex.printStackTrace();
  			}
  		}
782f81b0   jack   1.增加未知学生的判断
1178
  		if (isChineseLanguageClient()) {
fd0087a8   孙向锦   添加英语语言
1179
  			mv.setViewName("sunvote/teacher/creat_question");
782f81b0   jack   1.增加未知学生的判断
1180
  		} else {
fd0087a8   孙向锦   添加英语语言
1181
1182
  			mv.setViewName("sunvote/teacher/en_creat_question");
  		}
338594c8   孙向锦   添加教师端页面
1183
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1184
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
338594c8   孙向锦   添加教师端页面
1185
1186
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1187
1188
1189
1190
  
  	@RequestMapping(value = "/npaper")
  	public ModelAndView newpaper() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "Paper详细信息");
338594c8   孙向锦   添加教师端页面
1191
1192
1193
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1194
  		String paperType = pd.getString("PAPER_TYPE");
338594c8   孙向锦   添加教师端页面
1195
1196
1197
1198
  		Paper paper = new Paper();
  		paper.setTitle(pd.getString("NAME"));
  		paper.setExam_time(pd.getString("TIME"));
  		Session session = Jurisdiction.getSession();
782f81b0   jack   1.增加未知学生的判断
1199
  		User user = (User) session.getAttribute(Const.SESSION_USER);
338594c8   孙向锦   添加教师端页面
1200
  		paper.setUser_id(user.getUSER_ID());
782f81b0   jack   1.增加未知学生的判断
1201
1202
  		paper.setPaper_type(paperType == null || "".equals(paperType.trim()) ? "1"
  				: paperType);
eca4feb5   孙向锦   管理员功能完善
1203
  		String subjectId = pd.getString("SUBJECT_ID");
782f81b0   jack   1.增加未知学生的判断
1204
1205
  		paper.setSubject_id(subjectId == null || "".equals(subjectId.trim()) ? getSubjectId()
  				: subjectId);
eca4feb5   孙向锦   管理员功能完善
1206
  		String gradeId = pd.getString("GRADE_ID");
782f81b0   jack   1.增加未知学生的判断
1207
1208
1209
1210
1211
  		paper.setGrade_id(gradeId == null || "".equals(gradeId.trim()) ? getGradeID()
  				: gradeId);
  		String schoolId = pd.getString("SCHOOL_ID");
  		paper.setSchool_id(schoolId == null || "".equals(schoolId.trim()) ? getSchoolID()
  				: schoolId);
338594c8   孙向锦   添加教师端页面
1212
  		paper.setQuestions(new ArrayList<Question>());
782f81b0   jack   1.增加未知学生的判断
1213
  
338594c8   孙向锦   添加教师端页面
1214
1215
  		pd.put("JSON", paper.toJson());
  		logger.info(paper.toJson());
782f81b0   jack   1.增加未知学生的判断
1216
  
83b5ddeb   孙向锦   模板添加
1217
  		String TEMPLATE_ID = pd.getString("TEMPLATE_ID");
782f81b0   jack   1.增加未知学生的判断
1218
  		if (TEMPLATE_ID != null && !"".equals(TEMPLATE_ID)) {
83b5ddeb   孙向锦   模板添加
1219
1220
1221
1222
  			pd.put("PAGETEMPLATE_ID", TEMPLATE_ID);
  			PageData template = pagetemplateService.findById(pd);
  			mv.addObject("TEMPLEATE", template);
  		}
782f81b0   jack   1.增加未知学生的判断
1223
1224
  
  		if (isChineseLanguageClient()) {
fd0087a8   孙向锦   添加英语语言
1225
  			mv.setViewName("sunvote/teacher/creat_question");
782f81b0   jack   1.增加未知学生的判断
1226
  		} else {
fd0087a8   孙向锦   添加英语语言
1227
1228
  			mv.setViewName("sunvote/teacher/en_creat_question");
  		}
338594c8   孙向锦   添加教师端页面
1229
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1230
  		if (paperType != null && "2".equals(paperType)) {
4b6a5239   孙向锦   管理员界面
1231
  			mv.addObject("JUMP_URL", "/main/admin");
782f81b0   jack   1.增加未知学生的判断
1232
  		} else {
4b6a5239   孙向锦   管理员界面
1233
1234
  			mv.addObject("JUMP_URL", "/main/teacher");
  		}
782f81b0   jack   1.增加未知学生的判断
1235
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
338594c8   孙向锦   添加教师端页面
1236
1237
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1238
1239
1240
1241
  
  	/**
  	 * 列表
  	 * 
338594c8   孙向锦   添加教师端页面
1242
1243
1244
  	 * @param page
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1245
1246
1247
1248
1249
  	@RequestMapping(value = "/list2")
  	public ModelAndView list2(Page page) throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "列表Paper");
  		// if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  		// //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
338594c8   孙向锦   添加教师端页面
1250
1251
1252
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1253
1254
  		String keywords = pd.getString("keywords"); // 关键词检索条件
  		if (null != keywords && !"".equals(keywords)) {
338594c8   孙向锦   添加教师端页面
1255
1256
  			pd.put("keywords", keywords.trim());
  		}
a51b67cf   孙向锦   交互第一个版本
1257
1258
  		String userID = getUserID();
  		pd.put("USER_ID", userID);
782f81b0   jack   1.增加未知学生的判断
1259
  		pd.put("PAPER_TYPE", "1");
7bbf5236   jack   2.限制出题数为64
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
  		String last_start = pd.getString("LASTSTART");
  		String last_end = pd.getString("LASTEND");
  		if(!last_start.isEmpty()&&!last_end.isEmpty()){
  			DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); 
  			Date begin = fmt.parse(last_start); //开始时间
  			Date end = fmt.parse(last_end);   //结束时间
  			if(begin.compareTo(end)==1){
  				pd.put("LASTSTART", last_end);
  				pd.put("LASTEND", last_start);
  			}
  		}
c617106f   孙向锦   添加即时测功能
1271
  		page.setPd(pd);
78353cf9   jack   1.增加老师端可以看到年级卷
1272
  		List<PageData> varList = paperService.listAllBySidAndTid(pd); // 列出Paper列表
fd0087a8   孙向锦   添加英语语言
1273
  		page.setLangIsChina(isChineseLanguageClient());
782f81b0   jack   1.增加未知学生的判断
1274
  		if (isChineseLanguageClient()) {
fd0087a8   孙向锦   添加英语语言
1275
  			mv.setViewName("sunvote/paper/paper_list2");
782f81b0   jack   1.增加未知学生的判断
1276
  		} else {
fd0087a8   孙向锦   添加英语语言
1277
1278
  			mv.setViewName("sunvote/paper/en_paper_list2");
  		}
782f81b0   jack   1.增加未知学生的判断
1279
1280
  
  		for (PageData p : varList) {
c617106f   孙向锦   添加即时测功能
1281
  			String examTime = p.getString("EXAM_TIME");
579f3266   jack   1.studenttest增加增加...
1282
1283
1284
  			PageData temp = new PageData();
  			temp.put("PAPER_ID", p.getString("PAPER_ID"));
  			List<PageData> li = testpaperService.listAll(temp);
782f81b0   jack   1.增加未知学生的判断
1285
1286
  			if (examTime != null) {
  				try {
c617106f   孙向锦   添加即时测功能
1287
  					int et = Integer.parseInt(examTime);
782f81b0   jack   1.增加未知学生的判断
1288
1289
1290
1291
1292
1293
1294
  					String min = (et / 60) + "";
  					// if(min.length() < 2){
  					// min = "0" + min ;
  					// }
  					String sec = (et % 60) + "";
  					if (sec.length() < 2) {
  						sec = "0" + sec;
c617106f   孙向锦   添加即时测功能
1295
  					}
782f81b0   jack   1.增加未知学生的判断
1296
1297
1298
1299
  					if (et >= 60) {
  						examTime = min + "时" + sec + "分";
  					} else {
  						examTime = "0时" + sec + "分";
c617106f   孙向锦   添加即时测功能
1300
  					}
782f81b0   jack   1.增加未知学生的判断
1301
  				} catch (Exception e) {
c617106f   孙向锦   添加即时测功能
1302
1303
1304
  					e.printStackTrace();
  				}
  			}
782f81b0   jack   1.增加未知学生的判断
1305
  			if (examTime == null) {
c617106f   孙向锦   添加即时测功能
1306
1307
1308
  				examTime = "00:00";
  			}
  			p.put("EXAM_TIME", examTime);
579f3266   jack   1.studenttest增加增加...
1309
  			p.put("TEST_NUM", li.size());
c617106f   孙向锦   添加即时测功能
1310
  		}
782f81b0   jack   1.增加未知学生的判断
1311
  
c617106f   孙向锦   添加即时测功能
1312
1313
  		mv.addObject("varList", varList);
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1314
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
c617106f   孙向锦   添加即时测功能
1315
1316
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1317
1318
1319
1320
  
  	/**
  	 * 列表
  	 * 
4b6a5239   孙向锦   管理员界面
1321
1322
1323
  	 * @param page
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1324
1325
  	@RequestMapping(value = "/list4")
  	public ModelAndView list4(Page page) throws Exception {
4b6a5239   孙向锦   管理员界面
1326
1327
1328
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1329
1330
  		String keywords = pd.getString("keywords"); // 关键词检索条件
  		if (null != keywords && !"".equals(keywords)) {
4b6a5239   孙向锦   管理员界面
1331
1332
  			pd.put("keywords", keywords.trim());
  		}
782f81b0   jack   1.增加未知学生的判断
1333
  		pd.put("PAPER_TYPE", "1");
7bbf5236   jack   2.限制出题数为64
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
  		String last_start = pd.getString("LASTSTART");
  		String last_end = pd.getString("LASTEND");
  		if(!last_start.isEmpty()&&!last_end.isEmpty()){
  			DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); 
  			Date begin = fmt.parse(last_start); //开始时间
  			Date end = fmt.parse(last_end);   //结束时间
  			if(begin.compareTo(end)==1){
  				pd.put("LASTSTART", last_end);
  				pd.put("LASTEND", last_start);
  			}
  		}
4b6a5239   孙向锦   管理员界面
1345
  		page.setPd(pd);
8f88069a   jack   1.英文翻译(4)
1346
  		page.setLangIsChina(isChineseLanguageClient());
782f81b0   jack   1.增加未知学生的判断
1347
1348
1349
1350
1351
  		List<PageData> varList = paperService.list(page); // 列出Paper列表
  		// pd.put("PAPER_TYPE","2");
  		// List<PageData> varList2 = paperService.list(page); //列出Paper列表
  		// varList.addAll(varList2);
  		if (isChineseLanguageClient()) {
54a5b6ad   jack   1.英文翻译
1352
  			mv.setViewName("sunvote/paper/paper_list4");
782f81b0   jack   1.增加未知学生的判断
1353
  		} else {
54a5b6ad   jack   1.英文翻译
1354
1355
  			mv.setViewName("sunvote/paper/en_paper_list4");
  		}
782f81b0   jack   1.增加未知学生的判断
1356
1357
  
  		for (PageData p : varList) {
4b6a5239   孙向锦   管理员界面
1358
  			String examTime = p.getString("EXAM_TIME");
4926e3fd   jack   1.修复bug
1359
1360
1361
  			PageData temp = new PageData();
  			temp.put("PAPER_ID", p.getString("PAPER_ID"));
  			List<PageData> li = testpaperService.listAll(temp);
782f81b0   jack   1.增加未知学生的判断
1362
1363
  			if (examTime != null) {
  				try {
4b6a5239   孙向锦   管理员界面
1364
  					int et = Integer.parseInt(examTime);
782f81b0   jack   1.增加未知学生的判断
1365
1366
1367
1368
1369
1370
1371
  					String min = (et / 60) + "";
  					// if(min.length() < 2){
  					// min = "0" + min ;
  					// }
  					String sec = (et % 60) + "";
  					if (sec.length() < 2) {
  						sec = "0" + sec;
4b6a5239   孙向锦   管理员界面
1372
  					}
782f81b0   jack   1.增加未知学生的判断
1373
1374
1375
1376
  					if (et >= 60) {
  						examTime = min + "时" + sec + "分";
  					} else {
  						examTime = "0时" + sec + "分";
4b6a5239   孙向锦   管理员界面
1377
  					}
782f81b0   jack   1.增加未知学生的判断
1378
  				} catch (Exception e) {
4b6a5239   孙向锦   管理员界面
1379
1380
1381
  					e.printStackTrace();
  				}
  			}
782f81b0   jack   1.增加未知学生的判断
1382
  			if (examTime == null) {
f4a73594   jack   1.增加班级统计报表和导出
1383
  				examTime = "0";
4b6a5239   孙向锦   管理员界面
1384
1385
  			}
  			p.put("EXAM_TIME", examTime);
4926e3fd   jack   1.修复bug
1386
  			p.put("TEST_NUM", li.size());
4b6a5239   孙向锦   管理员界面
1387
  		}
782f81b0   jack   1.增加未知学生的判断
1388
  
8cac9719   孙向锦   试卷题目过滤
1389
1390
  		PageData tpd = new PageData();
  		tpd.put("ID", getUserID());
837ae11d   孙向锦   添加班長管理
1391
  		PageData adminInfos = v1Service.getAdminInfo(tpd);
782f81b0   jack   1.增加未知学生的判断
1392
1393
1394
1395
1396
  		List<PageData> gradeInfos = schoolgradesubjectService
  				.listAllGrade(adminInfos);
  		List<PageData> subjectInfos = schoolgradesubjectService
  				.listAllSubject(adminInfos);
  
8cac9719   孙向锦   试卷题目过滤
1397
1398
  		mv.addObject("gradeInfos", gradeInfos);
  		mv.addObject("subjectInfos", subjectInfos);
782f81b0   jack   1.增加未知学生的判断
1399
  
4b6a5239   孙向锦   管理员界面
1400
1401
  		mv.addObject("varList", varList);
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1402
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
4b6a5239   孙向锦   管理员界面
1403
1404
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1405
1406
1407
1408
  
  	/**
  	 * 列表
  	 * 
4b6a5239   孙向锦   管理员界面
1409
1410
1411
  	 * @param page
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1412
1413
  	@RequestMapping(value = "/list5")
  	public ModelAndView list5(Page page) throws Exception {
4b6a5239   孙向锦   管理员界面
1414
1415
1416
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1417
1418
  		String keywords = pd.getString("keywords"); // 关键词检索条件
  		if (null != keywords && !"".equals(keywords)) {
4b6a5239   孙向锦   管理员界面
1419
1420
  			pd.put("keywords", keywords.trim());
  		}
782f81b0   jack   1.增加未知学生的判断
1421
  		pd.put("PAPER_TYPE", "2");
4b6a5239   孙向锦   管理员界面
1422
  		pd.put("USER_ID", this.getUserID());
7bbf5236   jack   2.限制出题数为64
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
  		String last_start = pd.getString("LASTSTART");
  		String last_end = pd.getString("LASTEND");
  		if(!last_start.isEmpty()&&!last_end.isEmpty()){
  			DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); 
  			Date begin = fmt.parse(last_start); //开始时间
  			Date end = fmt.parse(last_end);   //结束时间
  			if(begin.compareTo(end)==1){
  				pd.put("LASTSTART", last_end);
  				pd.put("LASTEND", last_start);
  			}
  		}
4b6a5239   孙向锦   管理员界面
1434
  		page.setPd(pd);
54a5b6ad   jack   1.英文翻译
1435
  		page.setLangIsChina(isChineseLanguageClient());
782f81b0   jack   1.增加未知学生的判断
1436
1437
  		List<PageData> varList = paperService.list(page); // 列出Paper列表
  		if (isChineseLanguageClient()) {
54a5b6ad   jack   1.英文翻译
1438
  			mv.setViewName("sunvote/paper/paper_list5");
782f81b0   jack   1.增加未知学生的判断
1439
  		} else {
54a5b6ad   jack   1.英文翻译
1440
1441
  			mv.setViewName("sunvote/paper/en_paper_list5");
  		}
782f81b0   jack   1.增加未知学生的判断
1442
1443
  
  		for (PageData p : varList) {
4b6a5239   孙向锦   管理员界面
1444
  			String examTime = p.getString("EXAM_TIME");
4926e3fd   jack   1.修复bug
1445
1446
1447
  			PageData temp = new PageData();
  			temp.put("PAPER_ID", p.getString("PAPER_ID"));
  			List<PageData> li = testpaperService.listAll(temp);
782f81b0   jack   1.增加未知学生的判断
1448
1449
1450
  
  			if (examTime != null) {
  				try {
4b6a5239   孙向锦   管理员界面
1451
  					int et = Integer.parseInt(examTime);
782f81b0   jack   1.增加未知学生的判断
1452
1453
1454
1455
1456
1457
1458
  					String min = (et / 60) + "";
  					// if(min.length() < 2){
  					// min = "0" + min ;
  					// }
  					String sec = (et % 60) + "";
  					if (sec.length() < 2) {
  						sec = "0" + sec;
4b6a5239   孙向锦   管理员界面
1459
  					}
782f81b0   jack   1.增加未知学生的判断
1460
1461
1462
1463
  					if (et >= 60) {
  						examTime = min + "时" + sec + "分";
  					} else {
  						examTime = "0时" + sec + "分";
4b6a5239   孙向锦   管理员界面
1464
  					}
782f81b0   jack   1.增加未知学生的判断
1465
  				} catch (Exception e) {
4b6a5239   孙向锦   管理员界面
1466
1467
1468
  					e.printStackTrace();
  				}
  			}
782f81b0   jack   1.增加未知学生的判断
1469
  			if (examTime == null) {
f4a73594   jack   1.增加班级统计报表和导出
1470
  				examTime = "0";
4b6a5239   孙向锦   管理员界面
1471
1472
  			}
  			p.put("EXAM_TIME", examTime);
4926e3fd   jack   1.修复bug
1473
  			p.put("TEST_NUM", li.size());
4b6a5239   孙向锦   管理员界面
1474
  		}
782f81b0   jack   1.增加未知学生的判断
1475
  
4b6a5239   孙向锦   管理员界面
1476
1477
  		mv.addObject("varList", varList);
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1478
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
4b6a5239   孙向锦   管理员界面
1479
1480
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1481
1482
1483
1484
  
  	/**
  	 * 列表
  	 * 
c617106f   孙向锦   添加即时测功能
1485
1486
1487
  	 * @param page
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1488
1489
1490
1491
1492
  	@RequestMapping(value = "/list3")
  	public ModelAndView list3(Page page) throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "列表Paper");
  		// if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  		// //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
c617106f   孙向锦   添加即时测功能
1493
1494
1495
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1496
1497
  		String keywords = pd.getString("keywords"); // 关键词检索条件
  		if (null != keywords && !"".equals(keywords)) {
c617106f   孙向锦   添加即时测功能
1498
1499
1500
1501
  			pd.put("keywords", keywords.trim());
  		}
  		String userID = getUserID();
  		pd.put("USER_ID", userID);
782f81b0   jack   1.增加未知学生的判断
1502
  		pd.put("PAPER_TYPE", "101");
338594c8   孙向锦   添加教师端页面
1503
  		page.setPd(pd);
782f81b0   jack   1.增加未知学生的判断
1504
  		List<PageData> varList = paperService.list(page); // 列出Paper列表
338594c8   孙向锦   添加教师端页面
1505
  		mv.setViewName("sunvote/paper/paper_list2");
782f81b0   jack   1.增加未知学生的判断
1506
1507
  
  		for (PageData p : varList) {
338594c8   孙向锦   添加教师端页面
1508
  			String examTime = p.getString("EXAM_TIME");
782f81b0   jack   1.增加未知学生的判断
1509
1510
  			if (examTime != null) {
  				try {
338594c8   孙向锦   添加教师端页面
1511
  					int et = Integer.parseInt(examTime);
782f81b0   jack   1.增加未知学生的判断
1512
1513
1514
1515
1516
1517
1518
  					String min = (et / 60) + "";
  					// if(min.length() < 2){
  					// min = "0" + min ;
  					// }
  					String sec = (et % 60) + "";
  					if (sec.length() < 2) {
  						sec = "0" + sec;
338594c8   孙向锦   添加教师端页面
1519
  					}
782f81b0   jack   1.增加未知学生的判断
1520
1521
1522
1523
  					if (et > 60) {
  						examTime = min + "时" + sec + "分";
  					} else {
  						examTime = "0时" + sec + "分";
338594c8   孙向锦   添加教师端页面
1524
  					}
782f81b0   jack   1.增加未知学生的判断
1525
  				} catch (Exception e) {
338594c8   孙向锦   添加教师端页面
1526
1527
1528
  					e.printStackTrace();
  				}
  			}
782f81b0   jack   1.增加未知学生的判断
1529
  			if (examTime == null) {
f4a73594   jack   1.增加班级统计报表和导出
1530
  				examTime = "0";
338594c8   孙向锦   添加教师端页面
1531
1532
1533
  			}
  			p.put("EXAM_TIME", examTime);
  		}
782f81b0   jack   1.增加未知学生的判断
1534
  
338594c8   孙向锦   添加教师端页面
1535
1536
  		mv.addObject("varList", varList);
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1537
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
338594c8   孙向锦   添加教师端页面
1538
1539
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1540
1541
1542
1543
  
  	/**
  	 * 去新增页面
  	 * 
bed6e1fc   孙向锦   添加其他功能
1544
1545
1546
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1547
1548
  	@RequestMapping(value = "/goAdd")
  	public ModelAndView goAdd() throws Exception {
bed6e1fc   孙向锦   添加其他功能
1549
1550
1551
1552
1553
1554
1555
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
  		mv.setViewName("sunvote/paper/paper_edit");
  		mv.addObject("msg", "save");
  		mv.addObject("pd", pd);
  		return mv;
782f81b0   jack   1.增加未知学生的判断
1556
1557
1558
1559
1560
  	}
  
  	/**
  	 * 去新增页面
  	 * 
338594c8   孙向锦   添加教师端页面
1561
1562
1563
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1564
1565
  	@RequestMapping(value = "/goAddTest")
  	public ModelAndView goAddTest() throws Exception {
338594c8   孙向锦   添加教师端页面
1566
1567
1568
1569
1570
1571
1572
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
  		mv.setViewName("sunvote/paper/paper_edit2");
  		mv.addObject("msg", "newpaper");
  		mv.addObject("pd", pd);
  		return mv;
782f81b0   jack   1.增加未知学生的判断
1573
1574
1575
1576
1577
  	}
  
  	/**
  	 * 去修改页面
  	 * 
bed6e1fc   孙向锦   添加其他功能
1578
1579
1580
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1581
1582
  	@RequestMapping(value = "/goEdit")
  	public ModelAndView goEdit() throws Exception {
bed6e1fc   孙向锦   添加其他功能
1583
1584
1585
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1586
  		pd = paperService.findById(pd); // 根据ID读取
bed6e1fc   孙向锦   添加其他功能
1587
1588
1589
1590
  		mv.setViewName("sunvote/paper/paper_edit");
  		mv.addObject("msg", "edit");
  		mv.addObject("pd", pd);
  		return mv;
782f81b0   jack   1.增加未知学生的判断
1591
1592
1593
1594
1595
  	}
  
  	/**
  	 * 批量删除
  	 * 
bed6e1fc   孙向锦   添加其他功能
1596
1597
1598
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1599
  	@RequestMapping(value = "/deleteAll")
bed6e1fc   孙向锦   添加其他功能
1600
  	@ResponseBody
782f81b0   jack   1.增加未知学生的判断
1601
1602
1603
1604
1605
1606
  	public Object deleteAll() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "批量删除Paper");
  		// if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;}
  		// //校验权限
  		PageData pd = new PageData();
  		Map<String, Object> map = new HashMap<String, Object>();
bed6e1fc   孙向锦   添加其他功能
1607
1608
1609
  		pd = this.getPageData();
  		List<PageData> pdList = new ArrayList<PageData>();
  		String DATA_IDS = pd.getString("DATA_IDS");
782f81b0   jack   1.增加未知学生的判断
1610
  		if (null != DATA_IDS && !"".equals(DATA_IDS)) {
bed6e1fc   孙向锦   添加其他功能
1611
1612
  			String ArrayDATA_IDS[] = DATA_IDS.split(",");
  			paperService.deleteAll(ArrayDATA_IDS);
338594c8   孙向锦   添加教师端页面
1613
  			paperquestionService.deleteAllPaper(ArrayDATA_IDS);
bed6e1fc   孙向锦   添加其他功能
1614
  			pd.put("msg", "ok");
782f81b0   jack   1.增加未知学生的判断
1615
  		} else {
bed6e1fc   孙向锦   添加其他功能
1616
1617
1618
1619
1620
1621
  			pd.put("msg", "no");
  		}
  		pdList.add(pd);
  		map.put("list", pdList);
  		return AppUtil.returnObject(pd, map);
  	}
782f81b0   jack   1.增加未知学生的判断
1622
1623
1624
1625
  
  	/**
  	 * 导出到excel
  	 * 
bed6e1fc   孙向锦   添加其他功能
1626
1627
1628
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1629
1630
1631
1632
1633
1634
  	@RequestMapping(value = "/excel")
  	public ModelAndView exportExcel() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "导出Paper到excel");
  		if (!Jurisdiction.buttonJurisdiction(menuUrl, "cha")) {
  			return null;
  		}
bed6e1fc   孙向锦   添加其他功能
1635
1636
1637
  		ModelAndView mv = new ModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1638
  		Map<String, Object> dataMap = new HashMap<String, Object>();
bed6e1fc   孙向锦   添加其他功能
1639
  		List<String> titles = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
  		titles.add("试卷标题"); // 1
  		titles.add("出卷老师"); // 2
  		titles.add("试卷类型"); // 3
  		titles.add("科目"); // 4
  		titles.add("年级"); // 5
  		titles.add("学校"); // 6
  		titles.add("创建时间"); // 7
  		titles.add("修改时间"); // 8
  		titles.add("建议考试时长"); // 9
  		titles.add("试卷状态"); // 10
  		titles.add("备注"); // 11
bed6e1fc   孙向锦   添加其他功能
1651
1652
1653
  		dataMap.put("titles", titles);
  		List<PageData> varOList = paperService.listAll(pd);
  		List<PageData> varList = new ArrayList<PageData>();
782f81b0   jack   1.增加未知学生的判断
1654
  		for (int i = 0; i < varOList.size(); i++) {
bed6e1fc   孙向锦   添加其他功能
1655
  			PageData vpd = new PageData();
782f81b0   jack   1.增加未知学生的判断
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
  			vpd.put("var1", varOList.get(i).getString("TITLE")); // 1
  			vpd.put("var2", varOList.get(i).getString("USER_ID")); // 2
  			vpd.put("var3", varOList.get(i).getString("PAPER_TYPE")); // 3
  			vpd.put("var4", varOList.get(i).getString("SUBJECT_ID")); // 4
  			vpd.put("var5", varOList.get(i).getString("GRADE_ID")); // 5
  			vpd.put("var6", varOList.get(i).getString("SCHOOL_ID")); // 6
  			vpd.put("var7", varOList.get(i).getString("CREATE_DATE")); // 7
  			vpd.put("var8", varOList.get(i).getString("MODIFY_DATE")); // 8
  			vpd.put("var9", varOList.get(i).getString("EXAM_TIME")); // 9
  			vpd.put("var10", varOList.get(i).getString("PAPER_STATE")); // 10
  			vpd.put("var11", varOList.get(i).getString("REMARK")); // 11
bed6e1fc   孙向锦   添加其他功能
1667
1668
1669
1670
  			varList.add(vpd);
  		}
  		dataMap.put("varList", varList);
  		ObjectExcelView erv = new ObjectExcelView();
782f81b0   jack   1.增加未知学生的判断
1671
  		mv = new ModelAndView(erv, dataMap);
bed6e1fc   孙向锦   添加其他功能
1672
1673
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1674
  
bed6e1fc   孙向锦   添加其他功能
1675
  	@InitBinder
782f81b0   jack   1.增加未知学生的判断
1676
  	public void initBinder(WebDataBinder binder) {
bed6e1fc   孙向锦   添加其他功能
1677
  		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
782f81b0   jack   1.增加未知学生的判断
1678
1679
  		binder.registerCustomEditor(Date.class, new CustomDateEditor(format,
  				true));
bed6e1fc   孙向锦   添加其他功能
1680
1681
  	}
  }