Blame view

src/com/fh/controller/sunvote/paper/PaperController.java 51.3 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();
782f81b0   jack   1.增加未知学生的判断
329
  
f4a73594   jack   1.增加班级统计报表和导出
330
331
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
332
  		if (pd.containsKey("PAPER_ID")) {
f4a73594   jack   1.增加班级统计报表和导出
333
  			List<PageData> list = testpaperService.listAll(pd);
782f81b0   jack   1.增加未知学生的判断
334
  
f4a73594   jack   1.增加班级统计报表和导出
335
  			pd.put("testpaperlist", list);
782f81b0   jack   1.增加未知学生的判断
336
  			for (int i = 0; i < list.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
337
  				PageData data = new PageData();
782f81b0   jack   1.增加未知学生的判断
338
  
f4a73594   jack   1.增加班级统计报表和导出
339
340
  				PageData pdtemp = new PageData();
  				pdtemp.put("CLASS_ID", list.get(i).get("SCLASS_ID").toString());
782f81b0   jack   1.增加未知学生的判断
341
342
  				List<PageData> studentlist = stundentService
  						.listAllClass(pdtemp);
f4a73594   jack   1.增加班级统计报表和导出
343
344
345
346
347
348
349
  				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.增加未知学生的判断
350
  
f4a73594   jack   1.增加班级统计报表和导出
351
352
353
354
  				Integer you = 0;
  				Integer liang = 0;
  				Integer jige = 0;
  				Integer difen = 0;
782f81b0   jack   1.增加未知学生的判断
355
356
357
358
359
360
361
362
  				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.增加班级统计报表和导出
363
  							you++;
782f81b0   jack   1.增加未知学生的判断
364
  						} else if (score / total >= 0.7) {
f4a73594   jack   1.增加班级统计报表和导出
365
  							liang++;
782f81b0   jack   1.增加未知学生的判断
366
  						} else if (score / total >= 0.6) {
f4a73594   jack   1.增加班级统计报表和导出
367
  							jige++;
782f81b0   jack   1.增加未知学生的判断
368
  						} else if (score / total < 0.3) {
f4a73594   jack   1.增加班级统计报表和导出
369
370
371
  							difen++;
  						}
  					}
782f81b0   jack   1.增加未知学生的判断
372
  
f4a73594   jack   1.增加班级统计报表和导出
373
  				}
782f81b0   jack   1.增加未知学生的判断
374
375
376
377
378
379
  
  				data.put("you", you);
  				data.put("liang", liang);
  				data.put("jige", jige);
  				data.put("difen", difen);
  
f4a73594   jack   1.增加班级统计报表和导出
380
381
382
383
  				templist.add(data);
  			}
  		}
  
782f81b0   jack   1.增加未知学生的判断
384
  		Map<String, Object> dataMap = new HashMap<String, Object>();
f4a73594   jack   1.增加班级统计报表和导出
385
  		List<String> titles = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
386
387
388
389
390
391
392
393
394
395
396
397
398
  		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.增加班级统计报表和导出
399
400
401
  		dataMap.put("titles", titles);
  		List<PageData> varOList = templist;
  		List<PageData> varList = new ArrayList<PageData>();
782f81b0   jack   1.增加未知学生的判断
402
403
  		DecimalFormat decimalFormat = new DecimalFormat("0.00");
  		for (int i = 0; i < varOList.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
404
405
406
407
  			PageData vpd = new PageData();
  			vpd.put("ID", varOList.get(i).getString("class_id"));
  			PageData c = sclassService.findById(vpd);
  			vpd.remove("ID");
782f81b0   jack   1.增加未知学生的判断
408
  
f4a73594   jack   1.增加班级统计报表和导出
409
410
411
412
  			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"));
782f81b0   jack   1.增加未知学生的判断
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
  			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
f4a73594   jack   1.增加班级统计报表和导出
441
442
443
444
  			varList.add(vpd);
  		}
  		dataMap.put("varList", varList);
  		ObjectExcelView erv = new ObjectExcelView();
782f81b0   jack   1.增加未知学生的判断
445
  		mv = new ModelAndView(erv, dataMap);
f4a73594   jack   1.增加班级统计报表和导出
446
447
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
448
449
450
  
  	@RequestMapping(value = "/paperRep2")
  	public ModelAndView paperRep2() throws Exception {
f4a73594   jack   1.增加班级统计报表和导出
451
452
453
454
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		List<PageData> templist = new ArrayList<PageData>();
  		PageData saveData = new PageData();
782f81b0   jack   1.增加未知学生的判断
455
  
f4a73594   jack   1.增加班级统计报表和导出
456
457
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
458
  		if (pd.containsKey("PAPER_ID")) {
f4a73594   jack   1.增加班级统计报表和导出
459
460
461
  			List<PageData> list = paperquestionService.listAll(pd);
  			List<PageData> test = new ArrayList<PageData>();
  			int onum[] = new int[list.size()];
782f81b0   jack   1.增加未知学生的判断
462
463
  
  			for (int i = 0; i < list.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
464
465
  				PageData temp = new PageData();
  				String questionid = list.get(i).get("QUESTION_ID").toString();
782f81b0   jack   1.增加未知学生的判断
466
467
468
  
  				if (list.get(i).get("NO_NAME") == null
  						|| list.get(i).get("NO_NAME").toString().isEmpty()) {
f4a73594   jack   1.增加班级统计报表和导出
469
470
  					continue;
  				}
32d27bdc   jack   1.增加判断题和数字题,调试更改上传数据
471
  				Float que_score = list.get(i).getString("SCORE").isEmpty()?0:Float.valueOf(list.get(i).get("SCORE")
782f81b0   jack   1.增加未知学生的判断
472
  						.toString());
f4a73594   jack   1.增加班级统计报表和导出
473
474
  				temp.put("QUESTION_ID", questionid);
  				PageData question = questionService.findById(temp);
782f81b0   jack   1.增加未知学生的判断
475
  				temp.put("ANSWER", question.get("ANSWER").toString());
f4a73594   jack   1.增加班级统计报表和导出
476
477
  				temp.put("QUESTION_RANK", list.get(i).get("RANK").toString());
  				temp.put("QUESTION_SCORE", que_score);
782f81b0   jack   1.增加未知学生的判断
478
  
f4a73594   jack   1.增加班级统计报表和导出
479
480
  				PageData que = questionService.findById(temp);
  				Integer option_num = 0;
782f81b0   jack   1.增加未知学生的判断
481
482
483
484
  				if (!que.get("OPTION_NUM").toString().isEmpty()) {
  					option_num = Integer.valueOf(que.get("OPTION_NUM")
  							.toString());
  					onum[i] = option_num;
f4a73594   jack   1.增加班级统计报表和导出
485
  				}
d6389252   jack   1.增加年级卷测验统计
486
487
  				String tpList = pd.get("TESTPAPER_ID").toString();
  				String tpListArray[] = tpList.split(",");
782f81b0   jack   1.增加未知学生的判断
488
  
d6389252   jack   1.增加年级卷测验统计
489
  				temp.put("TEST_ID", tpListArray);
782f81b0   jack   1.增加未知学生的判断
490
491
492
493
  
  				List<PageData> queInfo = testpaperinfoService
  						.listTestPaperQuestionIDinfo(temp);
  				int answer[] = new int[option_num + 1];
f4a73594   jack   1.增加班级统计报表和导出
494
  				int right = 0;
0a0c0f6a   jack   1.bug修复
495
  				int lost = 0;
782f81b0   jack   1.增加未知学生的判断
496
497
  				for (int j = 0; j < queInfo.size(); j++) {
  					if (queInfo.get(j).get("ANSWER").toString().isEmpty()) {
0a0c0f6a   jack   1.bug修复
498
499
  						lost++;
  					}
782f81b0   jack   1.增加未知学生的判断
500
501
502
503
  					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.增加班级统计报表和导出
504
505
506
  							right++;
  						}
  					}
782f81b0   jack   1.增加未知学生的判断
507
508
509
510
511
512
513
  					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.增加班级统计报表和导出
514
515
  								answer[o]++;
  							}
782f81b0   jack   1.增加未知学生的判断
516
517
  						}
  					} else {
f4a73594   jack   1.增加班级统计报表和导出
518
519
520
521
  						answer[option_num]++;
  					}
  				}
  				temp.put("RIGHTNUM", right);
782f81b0   jack   1.增加未知学生的判断
522
523
  				temp.put("ANSWERNUM", (queInfo.size() - lost));
  				temp.put("ANSWERNUM2", queInfo.size());
f4a73594   jack   1.增加班级统计报表和导出
524
525
526
527
  				temp.put("optin_info", answer);
  				templist.add(temp);
  			}
  			Arrays.sort(onum);
782f81b0   jack   1.增加未知学生的判断
528
529
530
531
532
  			int max = onum[onum.length - 1];
  			pd.put("MAX", max);
  		}
  
  		Collections.sort(templist, new Comparator<PageData>() {
f4a73594   jack   1.增加班级统计报表和导出
533
534
535
  
  			@Override
  			public int compare(PageData o1, PageData o2) {
782f81b0   jack   1.增加未知学生的判断
536
537
538
539
  				Integer o1GetScore = Integer.valueOf(o1
  						.getString("QUESTION_RANK"));
  				Integer o2GetScore = Integer.valueOf(o2
  						.getString("QUESTION_RANK"));
f4a73594   jack   1.增加班级统计报表和导出
540
541
  				return o1GetScore.compareTo(o2GetScore);
  			}
782f81b0   jack   1.增加未知学生的判断
542
  
f4a73594   jack   1.增加班级统计报表和导出
543
544
545
  		});
  		mv.setViewName("sunvote/paper/test_list2");
  		mv.addObject("varList", templist);
782f81b0   jack   1.增加未知学生的判断
546
  		mv.addObject("pd", pd);
f4a73594   jack   1.增加班级统计报表和导出
547
548
549
  		res.setData(saveData);
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
550
551
552
  
  	@RequestMapping(value = "/export2")
  	public ModelAndView export2() throws Exception {
f4a73594   jack   1.增加班级统计报表和导出
553
554
555
556
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		List<PageData> templist = new ArrayList<PageData>();
  		PageData saveData = new PageData();
782f81b0   jack   1.增加未知学生的判断
557
  
f4a73594   jack   1.增加班级统计报表和导出
558
559
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
560
  		if (pd.containsKey("PAPER_ID")) {
f4a73594   jack   1.增加班级统计报表和导出
561
562
563
  			List<PageData> list = paperquestionService.listAll(pd);
  			List<PageData> test = new ArrayList<PageData>();
  			int onum[] = new int[list.size()];
782f81b0   jack   1.增加未知学生的判断
564
565
  
  			for (int i = 0; i < list.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
566
567
  				PageData temp = new PageData();
  				String questionid = list.get(i).get("QUESTION_ID").toString();
782f81b0   jack   1.增加未知学生的判断
568
569
570
  
  				if (list.get(i).get("NO_NAME") == null
  						|| list.get(i).get("NO_NAME").toString().isEmpty()) {
f4a73594   jack   1.增加班级统计报表和导出
571
572
  					continue;
  				}
782f81b0   jack   1.增加未知学生的判断
573
574
  				Float que_score = Float.valueOf(list.get(i).get("SCORE")
  						.toString());
f4a73594   jack   1.增加班级统计报表和导出
575
576
  				temp.put("QUESTION_ID", questionid);
  				PageData question = questionService.findById(temp);
782f81b0   jack   1.增加未知学生的判断
577
  				temp.put("ANSWER", question.get("ANSWER").toString());
f4a73594   jack   1.增加班级统计报表和导出
578
579
  				temp.put("QUESTION_RANK", list.get(i).get("RANK").toString());
  				temp.put("QUESTION_SCORE", que_score);
782f81b0   jack   1.增加未知学生的判断
580
  
f4a73594   jack   1.增加班级统计报表和导出
581
582
  				PageData que = questionService.findById(temp);
  				Integer option_num = 0;
782f81b0   jack   1.增加未知学生的判断
583
584
585
586
  				if (!que.get("OPTION_NUM").toString().isEmpty()) {
  					option_num = Integer.valueOf(que.get("OPTION_NUM")
  							.toString());
  					onum[i] = option_num;
f4a73594   jack   1.增加班级统计报表和导出
587
  				}
782f81b0   jack   1.增加未知学生的判断
588
  
d6389252   jack   1.增加年级卷测验统计
589
590
  				String tpList = pd.get("TESTPAPER_ID").toString();
  				String tpListArray[] = tpList.split(",");
782f81b0   jack   1.增加未知学生的判断
591
  
d6389252   jack   1.增加年级卷测验统计
592
  				temp.put("TEST_ID", tpListArray);
782f81b0   jack   1.增加未知学生的判断
593
594
595
  				List<PageData> queInfo = testpaperinfoService
  						.listTestPaperQuestionIDinfo(temp);
  				int answer[] = new int[option_num + 1];
f4a73594   jack   1.增加班级统计报表和导出
596
  				int right = 0;
0a0c0f6a   jack   1.bug修复
597
  				int lost = 0;
782f81b0   jack   1.增加未知学生的判断
598
599
  				for (int j = 0; j < queInfo.size(); j++) {
  					if (queInfo.get(j).get("ANSWER").toString().isEmpty()) {
0a0c0f6a   jack   1.bug修复
600
601
  						lost++;
  					}
782f81b0   jack   1.增加未知学生的判断
602
603
604
605
  					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.增加班级统计报表和导出
606
607
608
  							right++;
  						}
  					}
782f81b0   jack   1.增加未知学生的判断
609
610
611
612
613
614
615
  					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.增加班级统计报表和导出
616
617
  								answer[o]++;
  							}
782f81b0   jack   1.增加未知学生的判断
618
619
  						}
  					} else {
f4a73594   jack   1.增加班级统计报表和导出
620
621
622
623
  						answer[option_num]++;
  					}
  				}
  				temp.put("RIGHTNUM", right);
782f81b0   jack   1.增加未知学生的判断
624
625
  				temp.put("ANSWERNUM", (queInfo.size() - lost));
  				temp.put("ANSWERNUM2", queInfo.size());
f4a73594   jack   1.增加班级统计报表和导出
626
627
628
629
  				temp.put("optin_info", JSONUtils.toJSONString(answer));
  				templist.add(temp);
  			}
  			Arrays.sort(onum);
782f81b0   jack   1.增加未知学生的判断
630
631
632
633
634
  			int max = onum[onum.length - 1];
  			pd.put("MAX", max);
  		}
  
  		Collections.sort(templist, new Comparator<PageData>() {
f4a73594   jack   1.增加班级统计报表和导出
635
636
637
  
  			@Override
  			public int compare(PageData o1, PageData o2) {
782f81b0   jack   1.增加未知学生的判断
638
639
640
641
  				Integer o1GetScore = Integer.valueOf(o1
  						.getString("QUESTION_RANK"));
  				Integer o2GetScore = Integer.valueOf(o2
  						.getString("QUESTION_RANK"));
f4a73594   jack   1.增加班级统计报表和导出
642
643
  				return o1GetScore.compareTo(o2GetScore);
  			}
782f81b0   jack   1.增加未知学生的判断
644
  
f4a73594   jack   1.增加班级统计报表和导出
645
  		});
f4a73594   jack   1.增加班级统计报表和导出
646
  
782f81b0   jack   1.增加未知学生的判断
647
648
649
650
  		// mv.addObject("varList", templist);
  		// mv.addObject("pd",pd);
  
  		Map<String, Object> dataMap = new HashMap<String, Object>();
f4a73594   jack   1.增加班级统计报表和导出
651
  		List<String> titles = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
652
653
654
655
656
657
658
  		titles.add("题号"); // 1
  		titles.add("答案"); // 2
  		titles.add("答题人数"); // 3
  		titles.add("正确人数"); // 4
  		titles.add("正确率"); // 5
  		titles.add("满分值"); // 6
  		titles.add("平均分"); // 7
f4a73594   jack   1.增加班级统计报表和导出
659
  		Integer max = Integer.valueOf(pd.getString("MAX"));
782f81b0   jack   1.增加未知学生的判断
660
661
662
  		for (int x = 0; x < max; x++) {
  			titles.add("选" + Myelfun.jstlInt2Char(x + 1) + "人数"); // 8
  			titles.add("选" + Myelfun.jstlInt2Char(x + 1) + "比例"); // 9
f4a73594   jack   1.增加班级统计报表和导出
663
  		}
782f81b0   jack   1.增加未知学生的判断
664
665
  		titles.add("漏选人数"); // 10
  		titles.add("漏选比例"); // 11
f4a73594   jack   1.增加班级统计报表和导出
666
667
668
  		dataMap.put("titles", titles);
  		List<PageData> varOList = templist;
  		List<PageData> varList = new ArrayList<PageData>();
782f81b0   jack   1.增加未知学生的判断
669
670
  		DecimalFormat decimalFormat = new DecimalFormat("0.00");
  		for (int i = 0; i < varOList.size(); i++) {
f4a73594   jack   1.增加班级统计报表和导出
671
  			PageData vpd = new PageData();
782f81b0   jack   1.增加未知学生的判断
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
  
  			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.增加班级统计报表和导出
690
691
692
  			String s = varOList.get(i).get("optin_info").toString();
  			s = s.replace("[", "");
  			s = s.replace("]", "");
782f81b0   jack   1.增加未知学生的判断
693
694
  			List<String> optoin = Arrays.asList(s.split(","));
  			for (int y = 0; y < max; y++) {
f447a06e   jack   1.修复bug
695
  				Integer nn = 0;
782f81b0   jack   1.增加未知学生的判断
696
  				if ((optoin.size() - 1) > y) {
f447a06e   jack   1.修复bug
697
  					nn = Integer.valueOf(optoin.get(y));
782f81b0   jack   1.增加未知学生的判断
698
  				} else {
f447a06e   jack   1.修复bug
699
700
  					break;
  				}
782f81b0   jack   1.增加未知学生的判断
701
702
703
704
705
706
707
708
  				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.增加班级统计报表和导出
709
  			}
782f81b0   jack   1.增加未知学生的判断
710
711
712
713
714
715
716
717
718
719
720
  
  			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.增加班级统计报表和导出
721
722
723
724
  			varList.add(vpd);
  		}
  		dataMap.put("varList", varList);
  		ObjectExcelView erv = new ObjectExcelView();
782f81b0   jack   1.增加未知学生的判断
725
  		mv = new ModelAndView(erv, dataMap);
f4a73594   jack   1.增加班级统计报表和导出
726
727
728
  
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
729
  
58e024ae   jack   1.修改logo
730
731
  	/**
  	 * 按学生分析
782f81b0   jack   1.增加未知学生的判断
732
  	 * 
58e024ae   jack   1.修改logo
733
734
735
  	 * @return
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
736
737
  	@RequestMapping(value = "/paperRep3")
  	public ModelAndView paperRep3() throws Exception {
58e024ae   jack   1.修改logo
738
739
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
78353cf9   jack   1.增加老师端可以看到年级卷
740
  		pd=this.getPageData();
89ac0783   jack   1.添加年级卷分析功能
741
  		List<PageData> temp = new ArrayList<PageData>();
78353cf9   jack   1.增加老师端可以看到年级卷
742
  		List<PageData> sclass_list = new ArrayList<PageData>();
58e024ae   jack   1.修改logo
743
  		PageData saveData = new PageData();
782f81b0   jack   1.增加未知学生的判断
744
  
58e024ae   jack   1.修改logo
745
746
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
747
748
  		if (pd.containsKey("PAPER_ID")) {
  
58e024ae   jack   1.修改logo
749
  			List<PageData> list = studenttestService.findTestInfoByPid(pd);
89ac0783   jack   1.添加年级卷分析功能
750
  			PageData paper = paperService.findById(pd);
782f81b0   jack   1.增加未知学生的判断
751
  			if (paper != null) {
89ac0783   jack   1.添加年级卷分析功能
752
753
754
  				pd.put("SCORE", paper.get("SCORE"));
  				pd.put("PAPER_NAME", paper.get("TITLE"));
  			}
58e024ae   jack   1.修改logo
755
  			List<String> sid = new ArrayList<String>();
89ac0783   jack   1.添加年级卷分析功能
756
757
  			Integer test_num = 0;
  			Integer lost_num = 0;
78353cf9   jack   1.增加老师端可以看到年级卷
758
  			List<String> classId = new ArrayList();
44243c35   jack   1.修改班级下拉bug
759
  			
782f81b0   jack   1.增加未知学生的判断
760
761
762
  			for (PageData item : list) {
  
  				PageData p = new PageData();
78353cf9   jack   1.增加老师端可以看到年级卷
763
764
  				
  				
782f81b0   jack   1.增加未知学生的判断
765
766
767
768
769
770
771
  				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.添加年级卷分析功能
772
  						test_num++;
782f81b0   jack   1.增加未知学生的判断
773
774
  						List<PageData> test_list = (List<PageData>) temp.get(
  								index).get("TEST_LIST");
89ac0783   jack   1.添加年级卷分析功能
775
776
  						PageData test = new PageData();
  						test.put("CREATE_DATE", item.get("CREATE_DATE"));
782f81b0   jack   1.增加未知学生的判断
777
  						if (item.getString("LOST_TEST").isEmpty()) {
89ac0783   jack   1.添加年级卷分析功能
778
  							test.put("SCORE", item.get("SCORE"));
782f81b0   jack   1.增加未知学生的判断
779
  						} else {
89ac0783   jack   1.添加年级卷分析功能
780
  							test.put("SCORE", "--");
782f81b0   jack   1.增加未知学生的判断
781
782
783
784
  							temp.get(index).put(
  									"LOST_NUM",
  									Integer.valueOf(temp.get(index).getString(
  											"LOST_NUM")) + 1);
89ac0783   jack   1.添加年级卷分析功能
785
786
787
  						}
  						test.put("AVG_SCORE", item.get("AVG_SCORE"));
  						test_list.add(test);
782f81b0   jack   1.增加未知学生的判断
788
789
790
791
  						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.添加年级卷分析功能
792
  						temp.get(index).put("TEST_LIST", test_list);
782f81b0   jack   1.增加未知学生的判断
793
794
795
796
797
798
799
800
801
802
803
804
  						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.增加老师端可以看到年级卷
805
806
  						if(!classId.contains(item.getString("CLASS_ID"))){
  							classId.add(item.getString("CLASS_ID"));
44243c35   jack   1.修改班级下拉bug
807
  							PageData sclass = new PageData();
78353cf9   jack   1.增加老师端可以看到年级卷
808
809
810
811
812
  							sclass.put("CLASS_ID", item.get("CLASS_ID"));
  							sclass.put("CLASS_NAME", item.get("CLASS_NAME"));
  							sclass_list.add(sclass);
  						}
  						
782f81b0   jack   1.增加未知学生的判断
813
814
815
816
817
818
819
820
821
822
823
824
  						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"));
001b21e2   jack   1.修改年级分析报表内容
825
826
  						stu.put("STUDENT_NUMBER", item.get("STUDENT_NUMBER"));
  						stu.put("STUDENT_PADID", item.get("STUDENT_PADID"));
782f81b0   jack   1.增加未知学生的判断
827
828
829
830
831
  						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.增加老师端可以看到年级卷
832
  						
89ac0783   jack   1.添加年级卷分析功能
833
  					}
58e024ae   jack   1.修改logo
834
  				}
58e024ae   jack   1.修改logo
835
836
  			}
  		}
782f81b0   jack   1.增加未知学生的判断
837
  		Collections.sort(temp, new Comparator<PageData>() {
89ac0783   jack   1.添加年级卷分析功能
838
839
840
  
  			@Override
  			public int compare(PageData o1, PageData o2) {
782f81b0   jack   1.增加未知学生的判断
841
842
843
844
845
846
847
  
  				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"));
931af053   孙向锦   添加二级排序
848
849
850
851
852
853
854
855
856
  				int result =  o2GetScore.compareTo(o1GetScore);
  				if(result == 0){
  					if(Float.valueOf(o1.getString("TEST_NUM")) -Float.valueOf(o2.getString("TEST_NUM")) == 0 ){
  						return o1.get("STUDENT_NUMBER").toString().compareTo(o2.get("STUDENT_NUMBER").toString());
  					}
  					return Float.valueOf(o1.getString("TEST_NUM")) -Float.valueOf(o2.getString("TEST_NUM")) > 0 ? -1 : 1;
  					
  				}
  				return result;
89ac0783   jack   1.添加年级卷分析功能
857
  			}
782f81b0   jack   1.增加未知学生的判断
858
  
89ac0783   jack   1.添加年级卷分析功能
859
  		});
78353cf9   jack   1.增加老师端可以看到年级卷
860
  		
58e024ae   jack   1.修改logo
861
  		mv.setViewName("sunvote/paper/test_list3");
78353cf9   jack   1.增加老师端可以看到年级卷
862
  		mv.addObject("sclass", sclass_list);
89ac0783   jack   1.添加年级卷分析功能
863
  		mv.addObject("varList", temp);
782f81b0   jack   1.增加未知学生的判断
864
  		mv.addObject("pd", pd);
58e024ae   jack   1.修改logo
865
866
867
  		res.setData(saveData);
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
868
869
870
  
  	@RequestMapping(value = "/export3")
  	public ModelAndView export3() throws Exception {
89ac0783   jack   1.添加年级卷分析功能
871
872
873
874
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		List<PageData> temp = new ArrayList<PageData>();
  		PageData saveData = new PageData();
782f81b0   jack   1.增加未知学生的判断
875
  
89ac0783   jack   1.添加年级卷分析功能
876
877
  		ResponseGson<PageData> res = new ResponseGson();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
878
879
  		if (pd.containsKey("PAPER_ID")) {
  
89ac0783   jack   1.添加年级卷分析功能
880
881
  			List<PageData> list = studenttestService.findTestInfoByPid(pd);
  			PageData paper = paperService.findById(pd);
782f81b0   jack   1.增加未知学生的判断
882
  			if (paper != null) {
89ac0783   jack   1.添加年级卷分析功能
883
884
885
886
887
888
  				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.增加未知学生的判断
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
  			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.添加年级卷分析功能
928
929
930
931
932
933
  					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.增加未知学生的判断
934
  					if (item.getString("LOST_TEST").isEmpty()) {
89ac0783   jack   1.添加年级卷分析功能
935
  						test.put("SCORE", item.get("SCORE"));
782f81b0   jack   1.增加未知学生的判断
936
  					} else {
89ac0783   jack   1.添加年级卷分析功能
937
938
939
940
941
  						test.put("SCORE", "--");
  						lost_num++;
  					}
  					test.put("AVG_SCORE", item.get("AVG_SCORE"));
  					testList.add(test);
782f81b0   jack   1.增加未知学生的判断
942
  					stu.put("STUDENT_TOTAL", item.get("SCORE"));
89ac0783   jack   1.添加年级卷分析功能
943
  					stu.put("TEST_LIST", testList);
41772c65   jack   1.修改bug
944
945
  					stu.put("STUDENT_NUMBER", item.get("STUDENT_NUMBER"));
  					stu.put("STUDENT_PADID", item.get("STUDENT_PADID"));
782f81b0   jack   1.增加未知学生的判断
946
  					stu.put("TEST_NUM", testList.size() - lost_num);
89ac0783   jack   1.添加年级卷分析功能
947
948
949
950
  					stu.put("LOST_NUM", lost_num);
  					sid.add(item.getString("STUDENT_ID"));
  					temp.add(stu);
  				}
782f81b0   jack   1.增加未知学生的判断
951
  				}
89ac0783   jack   1.添加年级卷分析功能
952
953
  			}
  		}
782f81b0   jack   1.增加未知学生的判断
954
  		Collections.sort(temp, new Comparator<PageData>() {
89ac0783   jack   1.添加年级卷分析功能
955
956
957
  
  			@Override
  			public int compare(PageData o1, PageData o2) {
782f81b0   jack   1.增加未知学生的判断
958
959
960
961
962
963
964
  
  				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"));
d9b2b420   孙向锦   提交数据 使用多线程
965
966
967
968
969
970
971
972
973
974
975
  				
  				int result = o2GetScore.compareTo(o1GetScore);
  				if(result == 0){
  					if(Float.valueOf(o1.getString("TEST_NUM")) -Float.valueOf(o2.getString("TEST_NUM")) == 0 ){
  						return o1.get("STUDENT_NUMBER").toString().compareTo(o2.get("STUDENT_NUMBER").toString());
  					}
  					return Float.valueOf(o1.getString("TEST_NUM")) -Float.valueOf(o2.getString("TEST_NUM")) > 0 ? -1 : 1;
  					
  				}
  				
  				return result;
89ac0783   jack   1.添加年级卷分析功能
976
  			}
782f81b0   jack   1.增加未知学生的判断
977
  
89ac0783   jack   1.添加年级卷分析功能
978
979
980
  		});
  
  		mv.addObject("varList", temp);
782f81b0   jack   1.增加未知学生的判断
981
982
983
  		mv.addObject("pd", pd);
  
  		Map<String, Object> dataMap = new HashMap<String, Object>();
89ac0783   jack   1.添加年级卷分析功能
984
  		List<String> titles = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
985
  		titles.add("学生姓名"); // 1
41772c65   jack   1.修改bug
986
987
988
989
990
991
  		titles.add("学号"); // 2
  		titles.add("键盘号"); // 3
  		titles.add("班级"); // 4
  		titles.add("综合排名"); // 5
  		//titles.add("个人平均得分"); // 4
  		//titles.add("个人平均得分率"); // 5
782f81b0   jack   1.增加未知学生的判断
992
  		titles.add("个人得分"); // 6
41772c65   jack   1.修改bug
993
994
  		//titles.add("测验平均分"); // 7
  		titles.add("测验时间"); // 7
782f81b0   jack   1.增加未知学生的判断
995
  
89ac0783   jack   1.添加年级卷分析功能
996
997
998
  		dataMap.put("titles", titles);
  		List<PageData> varOList = temp;
  		List<PageData> varList = new ArrayList<PageData>();
782f81b0   jack   1.增加未知学生的判断
999
1000
1001
  		DecimalFormat decimalFormat = new DecimalFormat("0.00");
  		
  		for (int i = 0; i < varOList.size(); i++) {
89ac0783   jack   1.添加年级卷分析功能
1002
  			PageData vpd = new PageData();
782f81b0   jack   1.增加未知学生的判断
1003
1004
  
  			vpd.put("var1", varOList.get(i).getString("STUDENT_NAME")); // 1
41772c65   jack   1.修改bug
1005
1006
1007
1008
  			vpd.put("var2", varOList.get(i).getString("STUDENT_NUMBER")); // 2
  			vpd.put("var3", varOList.get(i).getString("STUDENT_PADID")); // 3
  			vpd.put("var4", varOList.get(i).getString("CLASS_NAME")); // 4
  			vpd.put("var5", i + 1); // 5
782f81b0   jack   1.增加未知学生的判断
1009
1010
1011
  			List<PageData> test_list = (List<PageData>) varOList.get(i).get(
  					"TEST_LIST");
  
89ac0783   jack   1.添加年级卷分析功能
1012
  			List<String> score = new ArrayList<String>();
41772c65   jack   1.修改bug
1013
  			
89ac0783   jack   1.添加年级卷分析功能
1014
  			List<String> CREATE_DATE = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
1015
  			for (int x = 0; x < test_list.size(); x++) {
89ac0783   jack   1.添加年级卷分析功能
1016
  				score.add(test_list.get(x).getString("SCORE"));
89ac0783   jack   1.添加年级卷分析功能
1017
  				CREATE_DATE.add(test_list.get(x).getString("CREATE_DATE"));
782f81b0   jack   1.增加未知学生的判断
1018
  
89ac0783   jack   1.添加年级卷分析功能
1019
1020
  			}
  			vpd.put("var6", score);
41772c65   jack   1.修改bug
1021
  			vpd.put("var7", CREATE_DATE);
89ac0783   jack   1.添加年级卷分析功能
1022
  			varList.add(vpd);
782f81b0   jack   1.增加未知学生的判断
1023
  			
89ac0783   jack   1.添加年级卷分析功能
1024
1025
1026
  		}
  		dataMap.put("varList", varList);
  		ObjectExcelView2 erv = new ObjectExcelView2();
782f81b0   jack   1.增加未知学生的判断
1027
  		mv = new ModelAndView(erv, dataMap);
89ac0783   jack   1.添加年级卷分析功能
1028
1029
1030
  
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1031
1032
1033
1034
1035
1036
  
  	@RequestMapping(value = "/iteminfo")
  	public ModelAndView iteminfo() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "Paper详细信息");
  		// if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  		// //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
338594c8   孙向锦   添加教师端页面
1037
1038
1039
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1040
1041
1042
  
  		if (pd.containsKey("PAPER_ID")) {
  			try {
338594c8   孙向锦   添加教师端页面
1043
1044
  				Paper paper = new Paper();
  				PageData ppd = paperService.findById(pd);
782f81b0   jack   1.增加未知学生的判断
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
  				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   孙向锦   添加教师端页面
1112
1113
  						}
  					}
782f81b0   jack   1.增加未知学生的判断
1114
1115
1116
  					pd.put("JSON", paper.toJson());
  					logger.info(paper.toJson());
  
338594c8   孙向锦   添加教师端页面
1117
  				}
782f81b0   jack   1.增加未知学生的判断
1118
  			} catch (Exception ex) {
338594c8   孙向锦   添加教师端页面
1119
1120
1121
  				ex.printStackTrace();
  			}
  		}
782f81b0   jack   1.增加未知学生的判断
1122
  		if (isChineseLanguageClient()) {
fd0087a8   孙向锦   添加英语语言
1123
  			mv.setViewName("sunvote/teacher/creat_question");
782f81b0   jack   1.增加未知学生的判断
1124
  		} else {
fd0087a8   孙向锦   添加英语语言
1125
1126
  			mv.setViewName("sunvote/teacher/en_creat_question");
  		}
338594c8   孙向锦   添加教师端页面
1127
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1128
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
338594c8   孙向锦   添加教师端页面
1129
1130
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1131
1132
1133
1134
  
  	@RequestMapping(value = "/npaper")
  	public ModelAndView newpaper() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "Paper详细信息");
338594c8   孙向锦   添加教师端页面
1135
1136
1137
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1138
  		String paperType = pd.getString("PAPER_TYPE");
338594c8   孙向锦   添加教师端页面
1139
1140
1141
1142
  		Paper paper = new Paper();
  		paper.setTitle(pd.getString("NAME"));
  		paper.setExam_time(pd.getString("TIME"));
  		Session session = Jurisdiction.getSession();
782f81b0   jack   1.增加未知学生的判断
1143
  		User user = (User) session.getAttribute(Const.SESSION_USER);
338594c8   孙向锦   添加教师端页面
1144
  		paper.setUser_id(user.getUSER_ID());
782f81b0   jack   1.增加未知学生的判断
1145
1146
  		paper.setPaper_type(paperType == null || "".equals(paperType.trim()) ? "1"
  				: paperType);
eca4feb5   孙向锦   管理员功能完善
1147
  		String subjectId = pd.getString("SUBJECT_ID");
782f81b0   jack   1.增加未知学生的判断
1148
1149
  		paper.setSubject_id(subjectId == null || "".equals(subjectId.trim()) ? getSubjectId()
  				: subjectId);
eca4feb5   孙向锦   管理员功能完善
1150
  		String gradeId = pd.getString("GRADE_ID");
782f81b0   jack   1.增加未知学生的判断
1151
1152
1153
1154
1155
  		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   孙向锦   添加教师端页面
1156
  		paper.setQuestions(new ArrayList<Question>());
782f81b0   jack   1.增加未知学生的判断
1157
  
338594c8   孙向锦   添加教师端页面
1158
1159
  		pd.put("JSON", paper.toJson());
  		logger.info(paper.toJson());
782f81b0   jack   1.增加未知学生的判断
1160
  
83b5ddeb   孙向锦   模板添加
1161
  		String TEMPLATE_ID = pd.getString("TEMPLATE_ID");
782f81b0   jack   1.增加未知学生的判断
1162
  		if (TEMPLATE_ID != null && !"".equals(TEMPLATE_ID)) {
83b5ddeb   孙向锦   模板添加
1163
1164
1165
1166
  			pd.put("PAGETEMPLATE_ID", TEMPLATE_ID);
  			PageData template = pagetemplateService.findById(pd);
  			mv.addObject("TEMPLEATE", template);
  		}
782f81b0   jack   1.增加未知学生的判断
1167
1168
  
  		if (isChineseLanguageClient()) {
fd0087a8   孙向锦   添加英语语言
1169
  			mv.setViewName("sunvote/teacher/creat_question");
782f81b0   jack   1.增加未知学生的判断
1170
  		} else {
fd0087a8   孙向锦   添加英语语言
1171
1172
  			mv.setViewName("sunvote/teacher/en_creat_question");
  		}
338594c8   孙向锦   添加教师端页面
1173
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1174
  		if (paperType != null && "2".equals(paperType)) {
4b6a5239   孙向锦   管理员界面
1175
  			mv.addObject("JUMP_URL", "/main/admin");
782f81b0   jack   1.增加未知学生的判断
1176
  		} else {
4b6a5239   孙向锦   管理员界面
1177
1178
  			mv.addObject("JUMP_URL", "/main/teacher");
  		}
782f81b0   jack   1.增加未知学生的判断
1179
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
338594c8   孙向锦   添加教师端页面
1180
1181
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1182
1183
1184
1185
  
  	/**
  	 * 列表
  	 * 
338594c8   孙向锦   添加教师端页面
1186
1187
1188
  	 * @param page
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1189
1190
1191
1192
1193
  	@RequestMapping(value = "/list2")
  	public ModelAndView list2(Page page) throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "列表Paper");
  		// if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  		// //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
338594c8   孙向锦   添加教师端页面
1194
1195
1196
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1197
1198
  		String keywords = pd.getString("keywords"); // 关键词检索条件
  		if (null != keywords && !"".equals(keywords)) {
338594c8   孙向锦   添加教师端页面
1199
1200
  			pd.put("keywords", keywords.trim());
  		}
a51b67cf   孙向锦   交互第一个版本
1201
1202
  		String userID = getUserID();
  		pd.put("USER_ID", userID);
782f81b0   jack   1.增加未知学生的判断
1203
  		pd.put("PAPER_TYPE", "1");
7bbf5236   jack   2.限制出题数为64
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
  		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   孙向锦   添加即时测功能
1215
  		page.setPd(pd);
78353cf9   jack   1.增加老师端可以看到年级卷
1216
  		List<PageData> varList = paperService.listAllBySidAndTid(pd); // 列出Paper列表
fd0087a8   孙向锦   添加英语语言
1217
  		page.setLangIsChina(isChineseLanguageClient());
782f81b0   jack   1.增加未知学生的判断
1218
  		if (isChineseLanguageClient()) {
fd0087a8   孙向锦   添加英语语言
1219
  			mv.setViewName("sunvote/paper/paper_list2");
782f81b0   jack   1.增加未知学生的判断
1220
  		} else {
fd0087a8   孙向锦   添加英语语言
1221
1222
  			mv.setViewName("sunvote/paper/en_paper_list2");
  		}
782f81b0   jack   1.增加未知学生的判断
1223
1224
  
  		for (PageData p : varList) {
c617106f   孙向锦   添加即时测功能
1225
  			String examTime = p.getString("EXAM_TIME");
579f3266   jack   1.studenttest增加增加...
1226
1227
1228
  			PageData temp = new PageData();
  			temp.put("PAPER_ID", p.getString("PAPER_ID"));
  			List<PageData> li = testpaperService.listAll(temp);
782f81b0   jack   1.增加未知学生的判断
1229
1230
  			if (examTime != null) {
  				try {
c617106f   孙向锦   添加即时测功能
1231
  					int et = Integer.parseInt(examTime);
782f81b0   jack   1.增加未知学生的判断
1232
1233
1234
1235
1236
1237
1238
  					String min = (et / 60) + "";
  					// if(min.length() < 2){
  					// min = "0" + min ;
  					// }
  					String sec = (et % 60) + "";
  					if (sec.length() < 2) {
  						sec = "0" + sec;
c617106f   孙向锦   添加即时测功能
1239
  					}
782f81b0   jack   1.增加未知学生的判断
1240
1241
1242
1243
  					if (et >= 60) {
  						examTime = min + "时" + sec + "分";
  					} else {
  						examTime = "0时" + sec + "分";
c617106f   孙向锦   添加即时测功能
1244
  					}
782f81b0   jack   1.增加未知学生的判断
1245
  				} catch (Exception e) {
c617106f   孙向锦   添加即时测功能
1246
1247
1248
  					e.printStackTrace();
  				}
  			}
782f81b0   jack   1.增加未知学生的判断
1249
  			if (examTime == null) {
c617106f   孙向锦   添加即时测功能
1250
1251
1252
  				examTime = "00:00";
  			}
  			p.put("EXAM_TIME", examTime);
579f3266   jack   1.studenttest增加增加...
1253
  			p.put("TEST_NUM", li.size());
c617106f   孙向锦   添加即时测功能
1254
  		}
782f81b0   jack   1.增加未知学生的判断
1255
  
c617106f   孙向锦   添加即时测功能
1256
1257
  		mv.addObject("varList", varList);
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1258
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
c617106f   孙向锦   添加即时测功能
1259
1260
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1261
1262
1263
1264
  
  	/**
  	 * 列表
  	 * 
4b6a5239   孙向锦   管理员界面
1265
1266
1267
  	 * @param page
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1268
1269
  	@RequestMapping(value = "/list4")
  	public ModelAndView list4(Page page) throws Exception {
4b6a5239   孙向锦   管理员界面
1270
1271
1272
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1273
1274
  		String keywords = pd.getString("keywords"); // 关键词检索条件
  		if (null != keywords && !"".equals(keywords)) {
4b6a5239   孙向锦   管理员界面
1275
1276
  			pd.put("keywords", keywords.trim());
  		}
782f81b0   jack   1.增加未知学生的判断
1277
  		pd.put("PAPER_TYPE", "1");
7bbf5236   jack   2.限制出题数为64
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
  		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   孙向锦   管理员界面
1289
  		page.setPd(pd);
8f88069a   jack   1.英文翻译(4)
1290
  		page.setLangIsChina(isChineseLanguageClient());
782f81b0   jack   1.增加未知学生的判断
1291
1292
1293
1294
1295
  		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.英文翻译
1296
  			mv.setViewName("sunvote/paper/paper_list4");
782f81b0   jack   1.增加未知学生的判断
1297
  		} else {
54a5b6ad   jack   1.英文翻译
1298
1299
  			mv.setViewName("sunvote/paper/en_paper_list4");
  		}
782f81b0   jack   1.增加未知学生的判断
1300
1301
  
  		for (PageData p : varList) {
4b6a5239   孙向锦   管理员界面
1302
  			String examTime = p.getString("EXAM_TIME");
4926e3fd   jack   1.修复bug
1303
1304
1305
  			PageData temp = new PageData();
  			temp.put("PAPER_ID", p.getString("PAPER_ID"));
  			List<PageData> li = testpaperService.listAll(temp);
782f81b0   jack   1.增加未知学生的判断
1306
1307
  			if (examTime != null) {
  				try {
4b6a5239   孙向锦   管理员界面
1308
  					int et = Integer.parseInt(examTime);
782f81b0   jack   1.增加未知学生的判断
1309
1310
1311
1312
1313
1314
1315
  					String min = (et / 60) + "";
  					// if(min.length() < 2){
  					// min = "0" + min ;
  					// }
  					String sec = (et % 60) + "";
  					if (sec.length() < 2) {
  						sec = "0" + sec;
4b6a5239   孙向锦   管理员界面
1316
  					}
782f81b0   jack   1.增加未知学生的判断
1317
1318
1319
1320
  					if (et >= 60) {
  						examTime = min + "时" + sec + "分";
  					} else {
  						examTime = "0时" + sec + "分";
4b6a5239   孙向锦   管理员界面
1321
  					}
782f81b0   jack   1.增加未知学生的判断
1322
  				} catch (Exception e) {
4b6a5239   孙向锦   管理员界面
1323
1324
1325
  					e.printStackTrace();
  				}
  			}
782f81b0   jack   1.增加未知学生的判断
1326
  			if (examTime == null) {
f4a73594   jack   1.增加班级统计报表和导出
1327
  				examTime = "0";
4b6a5239   孙向锦   管理员界面
1328
1329
  			}
  			p.put("EXAM_TIME", examTime);
4926e3fd   jack   1.修复bug
1330
  			p.put("TEST_NUM", li.size());
4b6a5239   孙向锦   管理员界面
1331
  		}
782f81b0   jack   1.增加未知学生的判断
1332
  
8cac9719   孙向锦   试卷题目过滤
1333
1334
  		PageData tpd = new PageData();
  		tpd.put("ID", getUserID());
837ae11d   孙向锦   添加班長管理
1335
  		PageData adminInfos = v1Service.getAdminInfo(tpd);
782f81b0   jack   1.增加未知学生的判断
1336
1337
1338
1339
1340
  		List<PageData> gradeInfos = schoolgradesubjectService
  				.listAllGrade(adminInfos);
  		List<PageData> subjectInfos = schoolgradesubjectService
  				.listAllSubject(adminInfos);
  
8cac9719   孙向锦   试卷题目过滤
1341
1342
  		mv.addObject("gradeInfos", gradeInfos);
  		mv.addObject("subjectInfos", subjectInfos);
782f81b0   jack   1.增加未知学生的判断
1343
  
4b6a5239   孙向锦   管理员界面
1344
1345
  		mv.addObject("varList", varList);
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1346
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
4b6a5239   孙向锦   管理员界面
1347
1348
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1349
1350
1351
1352
  
  	/**
  	 * 列表
  	 * 
4b6a5239   孙向锦   管理员界面
1353
1354
1355
  	 * @param page
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1356
1357
  	@RequestMapping(value = "/list5")
  	public ModelAndView list5(Page page) throws Exception {
4b6a5239   孙向锦   管理员界面
1358
1359
1360
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1361
1362
  		String keywords = pd.getString("keywords"); // 关键词检索条件
  		if (null != keywords && !"".equals(keywords)) {
4b6a5239   孙向锦   管理员界面
1363
1364
  			pd.put("keywords", keywords.trim());
  		}
782f81b0   jack   1.增加未知学生的判断
1365
  		pd.put("PAPER_TYPE", "2");
4b6a5239   孙向锦   管理员界面
1366
  		pd.put("USER_ID", this.getUserID());
7bbf5236   jack   2.限制出题数为64
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
  		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   孙向锦   管理员界面
1378
  		page.setPd(pd);
54a5b6ad   jack   1.英文翻译
1379
  		page.setLangIsChina(isChineseLanguageClient());
782f81b0   jack   1.增加未知学生的判断
1380
1381
  		List<PageData> varList = paperService.list(page); // 列出Paper列表
  		if (isChineseLanguageClient()) {
54a5b6ad   jack   1.英文翻译
1382
  			mv.setViewName("sunvote/paper/paper_list5");
782f81b0   jack   1.增加未知学生的判断
1383
  		} else {
54a5b6ad   jack   1.英文翻译
1384
1385
  			mv.setViewName("sunvote/paper/en_paper_list5");
  		}
782f81b0   jack   1.增加未知学生的判断
1386
1387
  
  		for (PageData p : varList) {
4b6a5239   孙向锦   管理员界面
1388
  			String examTime = p.getString("EXAM_TIME");
4926e3fd   jack   1.修复bug
1389
1390
1391
  			PageData temp = new PageData();
  			temp.put("PAPER_ID", p.getString("PAPER_ID"));
  			List<PageData> li = testpaperService.listAll(temp);
782f81b0   jack   1.增加未知学生的判断
1392
1393
1394
  
  			if (examTime != null) {
  				try {
4b6a5239   孙向锦   管理员界面
1395
  					int et = Integer.parseInt(examTime);
782f81b0   jack   1.增加未知学生的判断
1396
1397
1398
1399
1400
1401
1402
  					String min = (et / 60) + "";
  					// if(min.length() < 2){
  					// min = "0" + min ;
  					// }
  					String sec = (et % 60) + "";
  					if (sec.length() < 2) {
  						sec = "0" + sec;
4b6a5239   孙向锦   管理员界面
1403
  					}
782f81b0   jack   1.增加未知学生的判断
1404
1405
1406
1407
  					if (et >= 60) {
  						examTime = min + "时" + sec + "分";
  					} else {
  						examTime = "0时" + sec + "分";
4b6a5239   孙向锦   管理员界面
1408
  					}
782f81b0   jack   1.增加未知学生的判断
1409
  				} catch (Exception e) {
4b6a5239   孙向锦   管理员界面
1410
1411
1412
  					e.printStackTrace();
  				}
  			}
782f81b0   jack   1.增加未知学生的判断
1413
  			if (examTime == null) {
f4a73594   jack   1.增加班级统计报表和导出
1414
  				examTime = "0";
4b6a5239   孙向锦   管理员界面
1415
1416
  			}
  			p.put("EXAM_TIME", examTime);
4926e3fd   jack   1.修复bug
1417
  			p.put("TEST_NUM", li.size());
4b6a5239   孙向锦   管理员界面
1418
  		}
782f81b0   jack   1.增加未知学生的判断
1419
  
4b6a5239   孙向锦   管理员界面
1420
1421
  		mv.addObject("varList", varList);
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1422
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
4b6a5239   孙向锦   管理员界面
1423
1424
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1425
1426
1427
1428
  
  	/**
  	 * 列表
  	 * 
c617106f   孙向锦   添加即时测功能
1429
1430
1431
  	 * @param page
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1432
1433
1434
1435
1436
  	@RequestMapping(value = "/list3")
  	public ModelAndView list3(Page page) throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "列表Paper");
  		// if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;}
  		// //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码)
c617106f   孙向锦   添加即时测功能
1437
1438
1439
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1440
1441
  		String keywords = pd.getString("keywords"); // 关键词检索条件
  		if (null != keywords && !"".equals(keywords)) {
c617106f   孙向锦   添加即时测功能
1442
1443
1444
1445
  			pd.put("keywords", keywords.trim());
  		}
  		String userID = getUserID();
  		pd.put("USER_ID", userID);
782f81b0   jack   1.增加未知学生的判断
1446
  		pd.put("PAPER_TYPE", "101");
338594c8   孙向锦   添加教师端页面
1447
  		page.setPd(pd);
782f81b0   jack   1.增加未知学生的判断
1448
  		List<PageData> varList = paperService.list(page); // 列出Paper列表
338594c8   孙向锦   添加教师端页面
1449
  		mv.setViewName("sunvote/paper/paper_list2");
782f81b0   jack   1.增加未知学生的判断
1450
1451
  
  		for (PageData p : varList) {
338594c8   孙向锦   添加教师端页面
1452
  			String examTime = p.getString("EXAM_TIME");
782f81b0   jack   1.增加未知学生的判断
1453
1454
  			if (examTime != null) {
  				try {
338594c8   孙向锦   添加教师端页面
1455
  					int et = Integer.parseInt(examTime);
782f81b0   jack   1.增加未知学生的判断
1456
1457
1458
1459
1460
1461
1462
  					String min = (et / 60) + "";
  					// if(min.length() < 2){
  					// min = "0" + min ;
  					// }
  					String sec = (et % 60) + "";
  					if (sec.length() < 2) {
  						sec = "0" + sec;
338594c8   孙向锦   添加教师端页面
1463
  					}
782f81b0   jack   1.增加未知学生的判断
1464
1465
1466
1467
  					if (et > 60) {
  						examTime = min + "时" + sec + "分";
  					} else {
  						examTime = "0时" + sec + "分";
338594c8   孙向锦   添加教师端页面
1468
  					}
782f81b0   jack   1.增加未知学生的判断
1469
  				} catch (Exception e) {
338594c8   孙向锦   添加教师端页面
1470
1471
1472
  					e.printStackTrace();
  				}
  			}
782f81b0   jack   1.增加未知学生的判断
1473
  			if (examTime == null) {
f4a73594   jack   1.增加班级统计报表和导出
1474
  				examTime = "0";
338594c8   孙向锦   添加教师端页面
1475
1476
1477
  			}
  			p.put("EXAM_TIME", examTime);
  		}
782f81b0   jack   1.增加未知学生的判断
1478
  
338594c8   孙向锦   添加教师端页面
1479
1480
  		mv.addObject("varList", varList);
  		mv.addObject("pd", pd);
782f81b0   jack   1.增加未知学生的判断
1481
  		mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限
338594c8   孙向锦   添加教师端页面
1482
1483
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1484
1485
1486
1487
  
  	/**
  	 * 去新增页面
  	 * 
bed6e1fc   孙向锦   添加其他功能
1488
1489
1490
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1491
1492
  	@RequestMapping(value = "/goAdd")
  	public ModelAndView goAdd() throws Exception {
bed6e1fc   孙向锦   添加其他功能
1493
1494
1495
1496
1497
1498
1499
  		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.增加未知学生的判断
1500
1501
1502
1503
1504
  	}
  
  	/**
  	 * 去新增页面
  	 * 
338594c8   孙向锦   添加教师端页面
1505
1506
1507
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1508
1509
  	@RequestMapping(value = "/goAddTest")
  	public ModelAndView goAddTest() throws Exception {
338594c8   孙向锦   添加教师端页面
1510
1511
1512
1513
1514
1515
1516
  		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.增加未知学生的判断
1517
1518
1519
1520
1521
  	}
  
  	/**
  	 * 去修改页面
  	 * 
bed6e1fc   孙向锦   添加其他功能
1522
1523
1524
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1525
1526
  	@RequestMapping(value = "/goEdit")
  	public ModelAndView goEdit() throws Exception {
bed6e1fc   孙向锦   添加其他功能
1527
1528
1529
  		ModelAndView mv = this.getModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1530
  		pd = paperService.findById(pd); // 根据ID读取
bed6e1fc   孙向锦   添加其他功能
1531
1532
1533
1534
  		mv.setViewName("sunvote/paper/paper_edit");
  		mv.addObject("msg", "edit");
  		mv.addObject("pd", pd);
  		return mv;
782f81b0   jack   1.增加未知学生的判断
1535
1536
1537
1538
1539
  	}
  
  	/**
  	 * 批量删除
  	 * 
bed6e1fc   孙向锦   添加其他功能
1540
1541
1542
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1543
  	@RequestMapping(value = "/deleteAll")
bed6e1fc   孙向锦   添加其他功能
1544
  	@ResponseBody
782f81b0   jack   1.增加未知学生的判断
1545
1546
1547
1548
1549
1550
  	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   孙向锦   添加其他功能
1551
1552
1553
  		pd = this.getPageData();
  		List<PageData> pdList = new ArrayList<PageData>();
  		String DATA_IDS = pd.getString("DATA_IDS");
782f81b0   jack   1.增加未知学生的判断
1554
  		if (null != DATA_IDS && !"".equals(DATA_IDS)) {
bed6e1fc   孙向锦   添加其他功能
1555
1556
  			String ArrayDATA_IDS[] = DATA_IDS.split(",");
  			paperService.deleteAll(ArrayDATA_IDS);
338594c8   孙向锦   添加教师端页面
1557
  			paperquestionService.deleteAllPaper(ArrayDATA_IDS);
bed6e1fc   孙向锦   添加其他功能
1558
  			pd.put("msg", "ok");
782f81b0   jack   1.增加未知学生的判断
1559
  		} else {
bed6e1fc   孙向锦   添加其他功能
1560
1561
1562
1563
1564
1565
  			pd.put("msg", "no");
  		}
  		pdList.add(pd);
  		map.put("list", pdList);
  		return AppUtil.returnObject(pd, map);
  	}
782f81b0   jack   1.增加未知学生的判断
1566
1567
1568
1569
  
  	/**
  	 * 导出到excel
  	 * 
bed6e1fc   孙向锦   添加其他功能
1570
1571
1572
  	 * @param
  	 * @throws Exception
  	 */
782f81b0   jack   1.增加未知学生的判断
1573
1574
1575
1576
1577
1578
  	@RequestMapping(value = "/excel")
  	public ModelAndView exportExcel() throws Exception {
  		logBefore(logger, Jurisdiction.getUsername() + "导出Paper到excel");
  		if (!Jurisdiction.buttonJurisdiction(menuUrl, "cha")) {
  			return null;
  		}
bed6e1fc   孙向锦   添加其他功能
1579
1580
1581
  		ModelAndView mv = new ModelAndView();
  		PageData pd = new PageData();
  		pd = this.getPageData();
782f81b0   jack   1.增加未知学生的判断
1582
  		Map<String, Object> dataMap = new HashMap<String, Object>();
bed6e1fc   孙向锦   添加其他功能
1583
  		List<String> titles = new ArrayList<String>();
782f81b0   jack   1.增加未知学生的判断
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
  		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   孙向锦   添加其他功能
1595
1596
1597
  		dataMap.put("titles", titles);
  		List<PageData> varOList = paperService.listAll(pd);
  		List<PageData> varList = new ArrayList<PageData>();
782f81b0   jack   1.增加未知学生的判断
1598
  		for (int i = 0; i < varOList.size(); i++) {
bed6e1fc   孙向锦   添加其他功能
1599
  			PageData vpd = new PageData();
782f81b0   jack   1.增加未知学生的判断
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
  			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   孙向锦   添加其他功能
1611
1612
1613
1614
  			varList.add(vpd);
  		}
  		dataMap.put("varList", varList);
  		ObjectExcelView erv = new ObjectExcelView();
782f81b0   jack   1.增加未知学生的判断
1615
  		mv = new ModelAndView(erv, dataMap);
bed6e1fc   孙向锦   添加其他功能
1616
1617
  		return mv;
  	}
782f81b0   jack   1.增加未知学生的判断
1618
  
bed6e1fc   孙向锦   添加其他功能
1619
  	@InitBinder
782f81b0   jack   1.增加未知学生的判断
1620
  	public void initBinder(WebDataBinder binder) {
bed6e1fc   孙向锦   添加其他功能
1621
  		DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
782f81b0   jack   1.增加未知学生的判断
1622
1623
  		binder.registerCustomEditor(Date.class, new CustomDateEditor(format,
  				true));
bed6e1fc   孙向锦   添加其他功能
1624
1625
  	}
  }