package com.fh.controller.sunvote.paper; import java.io.PrintWriter; import java.text.DateFormat; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.Resource; import org.apache.shiro.session.Session; 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; import com.alibaba.druid.support.json.JSONUtils; import com.fh.bean.Paper; import com.fh.bean.Question; import com.fh.controller.api.ResponseGson; import com.fh.controller.base.BaseController; import com.fh.controller.sunvote.Myelfun; import com.fh.entity.Page; import com.fh.entity.system.User; import com.fh.service.api.V1Manager; import com.fh.service.sunvote.pagetemplate.PageTemplateManager; import com.fh.service.sunvote.paper.PaperManager; import com.fh.service.sunvote.paperquestion.PaperQuestionManager; import com.fh.service.sunvote.question.QuestionManager; import com.fh.service.sunvote.schoolgradesubject.SchoolGradeSubjectManager; 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; import com.fh.util.AppUtil; import com.fh.util.Const; import com.fh.util.Jurisdiction; import com.fh.util.ObjectExcelView; import com.fh.util.ObjectExcelView2; import com.fh.util.PageData; /** * 说明:试卷 创建时间:2018-05-17 */ @Controller @RequestMapping(value = "/paper") public class PaperController extends BaseController { String menuUrl = "paper/list.do"; // 菜单地址(权限用) @Resource(name = "paperService") private PaperManager paperService; @Resource(name = "testpaperService") private TestPaperManager testpaperService; @Resource(name = "testpaperinfoService") private TestPaperInfoManager testpaperinfoService; @Resource(name = "studentService") private StudentManager stundentService; @Resource(name = "paperquestionService") private PaperQuestionManager paperquestionService; @Resource(name = "questionService") private QuestionManager questionService; @Resource(name = "v1Service") private V1Manager v1Service; @Resource(name = "schoolgradesubjectService") private SchoolGradeSubjectManager schoolgradesubjectService; @Resource(name = "pagetemplateService") private PageTemplateManager pagetemplateService; @Resource(name = "studenttestService") private StudentTestManager studenttestService; @Resource(name = "sclassService") private SClassManager sclassService; /** * 保存 * * @param * @throws Exception */ @RequestMapping(value = "/save") public ModelAndView save() throws Exception { logBefore(logger, Jurisdiction.getUsername() + "新增Paper"); if (!Jurisdiction.buttonJurisdiction(menuUrl, "add")) { return null; } // 校验权限 ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); pd.put("PAPER_ID", this.get32UUID()); // 主键 paperService.save(pd); mv.addObject("msg", "success"); mv.setViewName("save_result"); return mv; } /** * 保存 * * @param * @throws Exception */ @RequestMapping(value = "/newpaper") public ModelAndView newPaper() throws Exception { logBefore(logger, Jurisdiction.getUsername() + "新增Paper"); ModelAndView mv = this.getModelAndView(); mv.addObject("msg", "success"); mv.setViewName("save_result"); return mv; } /** * 删除 * * @param out * @throws Exception */ @RequestMapping(value = "/delete") public void delete(PrintWriter out) throws Exception { logBefore(logger, Jurisdiction.getUsername() + "删除Paper"); PageData pd = new PageData(); pd = this.getPageData(); String[] ArrayDATA_IDS = new String[] { pd.getString("PAPER_ID") }; if (pd.getString("QINGSONGKAO") != null) { List list = paperquestionService.listAll(pd); String[] qids = new String[list.size()]; int i = 0; for (PageData ptd : list) { qids[i++] = ptd.getString("QUESTION_ID"); } if (qids.length > 0) { questionService.deleteAll(qids); } } paperquestionService.deleteAllPaper(ArrayDATA_IDS); paperService.delete(pd); out.write("success"); out.close(); } /** * 修改 * * @param * @throws Exception */ @RequestMapping(value = "/edit") public ModelAndView edit() throws Exception { logBefore(logger, Jurisdiction.getUsername() + "修改Paper"); if (!Jurisdiction.buttonJurisdiction(menuUrl, "edit")) { return null; } // 校验权限 ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); paperService.edit(pd); mv.addObject("msg", "success"); mv.setViewName("save_result"); return mv; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/list") public ModelAndView list(Page page) throws Exception { logBefore(logger, Jurisdiction.getUsername() + "列表Paper"); // if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} // //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码) ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); String keywords = pd.getString("keywords"); // 关键词检索条件 if (null != keywords && !"".equals(keywords)) { pd.put("keywords", keywords.trim()); } page.setPd(pd); List varList = paperService.list(page); // 列出Paper列表 mv.setViewName("sunvote/paper/paper_list"); mv.addObject("varList", varList); mv.addObject("pd", pd); mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限 return mv; } @RequestMapping(value = "/paperRep") public ModelAndView paperRep() throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); List templist = new ArrayList(); PageData saveData = new PageData(); DecimalFormat decimalFormat = new DecimalFormat("0.00"); String total_score = ""; ResponseGson res = new ResponseGson(); pd = this.getPageData(); if (pd.containsKey("PAPER_ID")) { List list = testpaperService.listAll(pd); total_score = list.get(0).getString("TOTAL_SCORE"); pd.put("testpaperlist", list); 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 = ""; for (int i = 0; i < list.size(); i++) { PageData data = new PageData(); PageData pdtemp = new PageData(); 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 studentlist = stundentService .listAllClass(pdtemp); testpaperList += list.get(i).get("TESTPAPER_ID").toString() + ","; 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 l = studenttestService.listAll(pdtemp); Integer you = 0; Integer liang = 0; Integer jige = 0; Integer difen = 0; Float total = list.get(i).get("TOTAL_SCORE") .toString().isEmpty()?0: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) { you++; } else if (score / total >= 0.7) { liang++; } else if (score / total >= 0.6) { jige++; } else if (score / total < 0.3) { difen++; } } } 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()); data.put("you", you); data.put("liang", liang); data.put("jige", jige); data.put("difen", difen); templist.add(data); } 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); } } saveData.put("list", templist); pd.put("TOTAL_SCORE", total_score); mv.setViewName("sunvote/paper/test_list1"); mv.addObject("varList", templist); mv.addObject("pd", pd); res.setData(saveData); return mv; } @RequestMapping(value = "/export1") public ModelAndView export1() throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); List templist = new ArrayList(); PageData saveData = new PageData(); ResponseGson res = new ResponseGson(); pd = this.getPageData(); if (pd.containsKey("PAPER_ID")) { List list = testpaperService.listAll(pd); pd.put("testpaperlist", list); for (int i = 0; i < list.size(); i++) { PageData data = new PageData(); PageData pdtemp = new PageData(); pdtemp.put("CLASS_ID", list.get(i).get("SCLASS_ID").toString()); List studentlist = stundentService .listAllClass(pdtemp); 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 l = studenttestService.listAll(pdtemp); Integer you = 0; Integer liang = 0; Integer jige = 0; Integer difen = 0; 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) { you++; } else if (score / total >= 0.7) { liang++; } else if (score / total >= 0.6) { jige++; } else if (score / total < 0.3) { difen++; } } } data.put("you", you); data.put("liang", liang); data.put("jige", jige); data.put("difen", difen); templist.add(data); } } Map dataMap = new HashMap(); List titles = new ArrayList(); 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 dataMap.put("titles", titles); List varOList = templist; List varList = new ArrayList(); DecimalFormat decimalFormat = new DecimalFormat("0.00"); for (int i = 0; i < varOList.size(); i++) { PageData vpd = new PageData(); 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); } dataMap.put("varList", varList); ObjectExcelView erv = new ObjectExcelView(); mv = new ModelAndView(erv, dataMap); return mv; } @RequestMapping(value = "/paperRep2") public ModelAndView paperRep2() throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); List templist = new ArrayList(); PageData saveData = new PageData(); ResponseGson res = new ResponseGson(); pd = this.getPageData(); if (pd.containsKey("PAPER_ID")) { List list = paperquestionService.listAll(pd); List test = new ArrayList(); int onum[] = new int[list.size()]; for (int i = 0; i < list.size(); i++) { PageData temp = new PageData(); String questionid = list.get(i).get("QUESTION_ID").toString(); if (list.get(i).get("NO_NAME") == null || list.get(i).get("NO_NAME").toString().isEmpty()) { continue; } Float que_score = Float.valueOf(list.get(i).get("SCORE") .toString()); temp.put("QUESTION_ID", questionid); PageData question = questionService.findById(temp); temp.put("ANSWER", question.get("ANSWER").toString()); temp.put("QUESTION_RANK", list.get(i).get("RANK").toString()); temp.put("QUESTION_SCORE", que_score); PageData que = questionService.findById(temp); Integer option_num = 0; if (!que.get("OPTION_NUM").toString().isEmpty()) { option_num = Integer.valueOf(que.get("OPTION_NUM") .toString()); onum[i] = option_num; } String tpList = pd.get("TESTPAPER_ID").toString(); String tpListArray[] = tpList.split(","); temp.put("TEST_ID", tpListArray); List queInfo = testpaperinfoService .listTestPaperQuestionIDinfo(temp); int answer[] = new int[option_num + 1]; int right = 0; int lost = 0; for (int j = 0; j < queInfo.size(); j++) { if (queInfo.get(j).get("ANSWER").toString().isEmpty()) { lost++; } if (queInfo.get(j).get("RIGHT") != null && !queInfo.get(j).get("RIGHT").toString() .isEmpty()) { if (queInfo.get(j).get("RIGHT").toString().equals("1")) { right++; } } 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) { answer[o]++; } } } else { answer[option_num]++; } } temp.put("RIGHTNUM", right); temp.put("ANSWERNUM", (queInfo.size() - lost)); temp.put("ANSWERNUM2", queInfo.size()); temp.put("optin_info", answer); templist.add(temp); } Arrays.sort(onum); int max = onum[onum.length - 1]; pd.put("MAX", max); } Collections.sort(templist, new Comparator() { @Override public int compare(PageData o1, PageData o2) { Integer o1GetScore = Integer.valueOf(o1 .getString("QUESTION_RANK")); Integer o2GetScore = Integer.valueOf(o2 .getString("QUESTION_RANK")); return o1GetScore.compareTo(o2GetScore); } }); mv.setViewName("sunvote/paper/test_list2"); mv.addObject("varList", templist); mv.addObject("pd", pd); res.setData(saveData); return mv; } @RequestMapping(value = "/export2") public ModelAndView export2() throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); List templist = new ArrayList(); PageData saveData = new PageData(); ResponseGson res = new ResponseGson(); pd = this.getPageData(); if (pd.containsKey("PAPER_ID")) { List list = paperquestionService.listAll(pd); List test = new ArrayList(); int onum[] = new int[list.size()]; for (int i = 0; i < list.size(); i++) { PageData temp = new PageData(); String questionid = list.get(i).get("QUESTION_ID").toString(); if (list.get(i).get("NO_NAME") == null || list.get(i).get("NO_NAME").toString().isEmpty()) { continue; } Float que_score = Float.valueOf(list.get(i).get("SCORE") .toString()); temp.put("QUESTION_ID", questionid); PageData question = questionService.findById(temp); temp.put("ANSWER", question.get("ANSWER").toString()); temp.put("QUESTION_RANK", list.get(i).get("RANK").toString()); temp.put("QUESTION_SCORE", que_score); PageData que = questionService.findById(temp); Integer option_num = 0; if (!que.get("OPTION_NUM").toString().isEmpty()) { option_num = Integer.valueOf(que.get("OPTION_NUM") .toString()); onum[i] = option_num; } String tpList = pd.get("TESTPAPER_ID").toString(); String tpListArray[] = tpList.split(","); temp.put("TEST_ID", tpListArray); List queInfo = testpaperinfoService .listTestPaperQuestionIDinfo(temp); int answer[] = new int[option_num + 1]; int right = 0; int lost = 0; for (int j = 0; j < queInfo.size(); j++) { if (queInfo.get(j).get("ANSWER").toString().isEmpty()) { lost++; } if (queInfo.get(j).get("RIGHT") != null && !queInfo.get(j).get("RIGHT").toString() .isEmpty()) { if (queInfo.get(j).get("RIGHT").toString().equals("1")) { right++; } } 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)) { answer[o]++; } } } else { answer[option_num]++; } } temp.put("RIGHTNUM", right); temp.put("ANSWERNUM", (queInfo.size() - lost)); temp.put("ANSWERNUM2", queInfo.size()); temp.put("optin_info", JSONUtils.toJSONString(answer)); templist.add(temp); } Arrays.sort(onum); int max = onum[onum.length - 1]; pd.put("MAX", max); } Collections.sort(templist, new Comparator() { @Override public int compare(PageData o1, PageData o2) { Integer o1GetScore = Integer.valueOf(o1 .getString("QUESTION_RANK")); Integer o2GetScore = Integer.valueOf(o2 .getString("QUESTION_RANK")); return o1GetScore.compareTo(o2GetScore); } }); // mv.addObject("varList", templist); // mv.addObject("pd",pd); Map dataMap = new HashMap(); List titles = new ArrayList(); titles.add("题号"); // 1 titles.add("答案"); // 2 titles.add("答题人数"); // 3 titles.add("正确人数"); // 4 titles.add("正确率"); // 5 titles.add("满分值"); // 6 titles.add("平均分"); // 7 Integer max = Integer.valueOf(pd.getString("MAX")); for (int x = 0; x < max; x++) { titles.add("选" + Myelfun.jstlInt2Char(x + 1) + "人数"); // 8 titles.add("选" + Myelfun.jstlInt2Char(x + 1) + "比例"); // 9 } titles.add("漏选人数"); // 10 titles.add("漏选比例"); // 11 dataMap.put("titles", titles); List varOList = templist; List varList = new ArrayList(); DecimalFormat decimalFormat = new DecimalFormat("0.00"); for (int i = 0; i < varOList.size(); i++) { PageData vpd = new PageData(); 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 String s = varOList.get(i).get("optin_info").toString(); s = s.replace("[", ""); s = s.replace("]", ""); List optoin = Arrays.asList(s.split(",")); for (int y = 0; y < max; y++) { Integer nn = 0; if ((optoin.size() - 1) > y) { nn = Integer.valueOf(optoin.get(y)); } else { break; } 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 } 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 varList.add(vpd); } dataMap.put("varList", varList); ObjectExcelView erv = new ObjectExcelView(); mv = new ModelAndView(erv, dataMap); return mv; } /** * 按学生分析 * * @return * @throws Exception */ @RequestMapping(value = "/paperRep3") public ModelAndView paperRep3() throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd=this.getPageData(); List temp = new ArrayList(); List sclass_list = new ArrayList(); PageData saveData = new PageData(); ResponseGson res = new ResponseGson(); pd = this.getPageData(); if (pd.containsKey("PAPER_ID")) { List list = studenttestService.findTestInfoByPid(pd); PageData paper = paperService.findById(pd); if (paper != null) { pd.put("SCORE", paper.get("SCORE")); pd.put("PAPER_NAME", paper.get("TITLE")); } List sid = new ArrayList(); Integer test_num = 0; Integer lost_num = 0; List classId = new ArrayList(); 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 test_list = (List) 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; PageData stu = new PageData(); stu.put("STUDENT_NAME", item.get("STUDENT_NAME")); stu.put("CLASS_NAME", item.get("CLASS_NAME")); if(!classId.contains(item.getString("CLASS_ID"))){ classId.add(item.getString("CLASS_ID")); PageData sclass = new PageData(); sclass.put("CLASS_ID", item.get("CLASS_ID")); sclass.put("CLASS_NAME", item.get("CLASS_NAME")); sclass_list.add(sclass); } List testList = new ArrayList(); 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("STUDENT_NUMBER", item.get("STUDENT_NUMBER")); stu.put("STUDENT_PADID", item.get("STUDENT_PADID")); 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); } } } } Collections.sort(temp, new Comparator() { @Override public int compare(PageData o1, PageData o2) { 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")); 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; } }); mv.setViewName("sunvote/paper/test_list3"); mv.addObject("sclass", sclass_list); mv.addObject("varList", temp); mv.addObject("pd", pd); res.setData(saveData); return mv; } @RequestMapping(value = "/export3") public ModelAndView export3() throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); List temp = new ArrayList(); PageData saveData = new PageData(); ResponseGson res = new ResponseGson(); pd = this.getPageData(); if (pd.containsKey("PAPER_ID")) { List list = studenttestService.findTestInfoByPid(pd); PageData paper = paperService.findById(pd); if (paper != null) { pd.put("SCORE", paper.get("SCORE")); pd.put("PAPER_NAME", paper.get("TITLE")); } List sid = new ArrayList(); Integer test_num = 0; Integer lost_num = 0; 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 test_list = (List) 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; PageData stu = new PageData(); stu.put("STUDENT_NAME", item.get("STUDENT_NAME")); stu.put("CLASS_NAME", item.get("CLASS_NAME")); List testList = new ArrayList(); 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("STUDENT_NUMBER", item.get("STUDENT_NUMBER")); stu.put("STUDENT_PADID", item.get("STUDENT_PADID")); stu.put("TEST_NUM", testList.size() - lost_num); stu.put("LOST_NUM", lost_num); sid.add(item.getString("STUDENT_ID")); temp.add(stu); } } } } Collections.sort(temp, new Comparator() { @Override public int compare(PageData o1, PageData o2) { 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")); 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; } }); mv.addObject("varList", temp); mv.addObject("pd", pd); Map dataMap = new HashMap(); List titles = new ArrayList(); titles.add("学生姓名"); // 1 titles.add("学号"); // 2 titles.add("键盘号"); // 3 titles.add("班级"); // 4 titles.add("综合排名"); // 5 //titles.add("个人平均得分"); // 4 //titles.add("个人平均得分率"); // 5 titles.add("个人得分"); // 6 //titles.add("测验平均分"); // 7 titles.add("测验时间"); // 7 dataMap.put("titles", titles); List varOList = temp; List varList = new ArrayList(); DecimalFormat decimalFormat = new DecimalFormat("0.00"); for (int i = 0; i < varOList.size(); i++) { PageData vpd = new PageData(); vpd.put("var1", varOList.get(i).getString("STUDENT_NAME")); // 1 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 List test_list = (List) varOList.get(i).get( "TEST_LIST"); List score = new ArrayList(); List CREATE_DATE = new ArrayList(); for (int x = 0; x < test_list.size(); x++) { score.add(test_list.get(x).getString("SCORE")); CREATE_DATE.add(test_list.get(x).getString("CREATE_DATE")); } vpd.put("var6", score); vpd.put("var7", CREATE_DATE); varList.add(vpd); } dataMap.put("varList", varList); ObjectExcelView2 erv = new ObjectExcelView2(); mv = new ModelAndView(erv, dataMap); return mv; } @RequestMapping(value = "/iteminfo") public ModelAndView iteminfo() throws Exception { logBefore(logger, Jurisdiction.getUsername() + "Paper详细信息"); // if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} // //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码) ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); if (pd.containsKey("PAPER_ID")) { try { Paper paper = new Paper(); PageData ppd = paperService.findById(pd); 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()); List 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("", "______")); 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()); List 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("", "______")); 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); } } pd.put("JSON", paper.toJson()); logger.info(paper.toJson()); } } catch (Exception ex) { ex.printStackTrace(); } } if (isChineseLanguageClient()) { mv.setViewName("sunvote/teacher/creat_question"); } else { mv.setViewName("sunvote/teacher/en_creat_question"); } mv.addObject("pd", pd); mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限 return mv; } @RequestMapping(value = "/npaper") public ModelAndView newpaper() throws Exception { logBefore(logger, Jurisdiction.getUsername() + "Paper详细信息"); ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); String paperType = pd.getString("PAPER_TYPE"); Paper paper = new Paper(); paper.setTitle(pd.getString("NAME")); paper.setExam_time(pd.getString("TIME")); Session session = Jurisdiction.getSession(); User user = (User) session.getAttribute(Const.SESSION_USER); paper.setUser_id(user.getUSER_ID()); paper.setPaper_type(paperType == null || "".equals(paperType.trim()) ? "1" : paperType); String subjectId = pd.getString("SUBJECT_ID"); paper.setSubject_id(subjectId == null || "".equals(subjectId.trim()) ? getSubjectId() : subjectId); String gradeId = pd.getString("GRADE_ID"); 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); paper.setQuestions(new ArrayList()); pd.put("JSON", paper.toJson()); logger.info(paper.toJson()); String TEMPLATE_ID = pd.getString("TEMPLATE_ID"); if (TEMPLATE_ID != null && !"".equals(TEMPLATE_ID)) { pd.put("PAGETEMPLATE_ID", TEMPLATE_ID); PageData template = pagetemplateService.findById(pd); mv.addObject("TEMPLEATE", template); } if (isChineseLanguageClient()) { mv.setViewName("sunvote/teacher/creat_question"); } else { mv.setViewName("sunvote/teacher/en_creat_question"); } mv.addObject("pd", pd); if (paperType != null && "2".equals(paperType)) { mv.addObject("JUMP_URL", "/main/admin"); } else { mv.addObject("JUMP_URL", "/main/teacher"); } mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限 return mv; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/list2") public ModelAndView list2(Page page) throws Exception { logBefore(logger, Jurisdiction.getUsername() + "列表Paper"); // if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} // //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码) ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); String keywords = pd.getString("keywords"); // 关键词检索条件 if (null != keywords && !"".equals(keywords)) { pd.put("keywords", keywords.trim()); } String userID = getUserID(); pd.put("USER_ID", userID); pd.put("PAPER_TYPE", "1"); page.setPd(pd); List varList = paperService.listAllBySidAndTid(pd); // 列出Paper列表 page.setLangIsChina(isChineseLanguageClient()); if (isChineseLanguageClient()) { mv.setViewName("sunvote/paper/paper_list2"); } else { mv.setViewName("sunvote/paper/en_paper_list2"); } for (PageData p : varList) { String examTime = p.getString("EXAM_TIME"); PageData temp = new PageData(); temp.put("PAPER_ID", p.getString("PAPER_ID")); List li = testpaperService.listAll(temp); if (examTime != null) { try { int et = Integer.parseInt(examTime); String min = (et / 60) + ""; // if(min.length() < 2){ // min = "0" + min ; // } String sec = (et % 60) + ""; if (sec.length() < 2) { sec = "0" + sec; } if (et >= 60) { examTime = min + "时" + sec + "分"; } else { examTime = "0时" + sec + "分"; } } catch (Exception e) { e.printStackTrace(); } } if (examTime == null) { examTime = "00:00"; } p.put("EXAM_TIME", examTime); p.put("TEST_NUM", li.size()); } mv.addObject("varList", varList); mv.addObject("pd", pd); mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限 return mv; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/list4") public ModelAndView list4(Page page) throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); String keywords = pd.getString("keywords"); // 关键词检索条件 if (null != keywords && !"".equals(keywords)) { pd.put("keywords", keywords.trim()); } pd.put("PAPER_TYPE", "1"); page.setPd(pd); page.setLangIsChina(isChineseLanguageClient()); List varList = paperService.list(page); // 列出Paper列表 // pd.put("PAPER_TYPE","2"); // List varList2 = paperService.list(page); //列出Paper列表 // varList.addAll(varList2); if (isChineseLanguageClient()) { mv.setViewName("sunvote/paper/paper_list4"); } else { mv.setViewName("sunvote/paper/en_paper_list4"); } for (PageData p : varList) { String examTime = p.getString("EXAM_TIME"); PageData temp = new PageData(); temp.put("PAPER_ID", p.getString("PAPER_ID")); List li = testpaperService.listAll(temp); if (examTime != null) { try { int et = Integer.parseInt(examTime); String min = (et / 60) + ""; // if(min.length() < 2){ // min = "0" + min ; // } String sec = (et % 60) + ""; if (sec.length() < 2) { sec = "0" + sec; } if (et >= 60) { examTime = min + "时" + sec + "分"; } else { examTime = "0时" + sec + "分"; } } catch (Exception e) { e.printStackTrace(); } } if (examTime == null) { examTime = "0"; } p.put("EXAM_TIME", examTime); p.put("TEST_NUM", li.size()); } PageData tpd = new PageData(); tpd.put("ID", getUserID()); PageData adminInfos = v1Service.getAdminInfo(tpd); List gradeInfos = schoolgradesubjectService .listAllGrade(adminInfos); List subjectInfos = schoolgradesubjectService .listAllSubject(adminInfos); mv.addObject("gradeInfos", gradeInfos); mv.addObject("subjectInfos", subjectInfos); mv.addObject("varList", varList); mv.addObject("pd", pd); mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限 return mv; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/list5") public ModelAndView list5(Page page) throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); String keywords = pd.getString("keywords"); // 关键词检索条件 if (null != keywords && !"".equals(keywords)) { pd.put("keywords", keywords.trim()); } pd.put("PAPER_TYPE", "2"); pd.put("USER_ID", this.getUserID()); page.setPd(pd); page.setLangIsChina(isChineseLanguageClient()); List varList = paperService.list(page); // 列出Paper列表 if (isChineseLanguageClient()) { mv.setViewName("sunvote/paper/paper_list5"); } else { mv.setViewName("sunvote/paper/en_paper_list5"); } for (PageData p : varList) { String examTime = p.getString("EXAM_TIME"); PageData temp = new PageData(); temp.put("PAPER_ID", p.getString("PAPER_ID")); List li = testpaperService.listAll(temp); if (examTime != null) { try { int et = Integer.parseInt(examTime); String min = (et / 60) + ""; // if(min.length() < 2){ // min = "0" + min ; // } String sec = (et % 60) + ""; if (sec.length() < 2) { sec = "0" + sec; } if (et >= 60) { examTime = min + "时" + sec + "分"; } else { examTime = "0时" + sec + "分"; } } catch (Exception e) { e.printStackTrace(); } } if (examTime == null) { examTime = "0"; } p.put("EXAM_TIME", examTime); p.put("TEST_NUM", li.size()); } mv.addObject("varList", varList); mv.addObject("pd", pd); mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限 return mv; } /** * 列表 * * @param page * @throws Exception */ @RequestMapping(value = "/list3") public ModelAndView list3(Page page) throws Exception { logBefore(logger, Jurisdiction.getUsername() + "列表Paper"); // if(!Jurisdiction.buttonJurisdiction(menuUrl, "cha")){return null;} // //校验权限(无权查看时页面会有提示,如果不注释掉这句代码就无法进入列表页面,所以根据情况是否加入本句代码) ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); String keywords = pd.getString("keywords"); // 关键词检索条件 if (null != keywords && !"".equals(keywords)) { pd.put("keywords", keywords.trim()); } String userID = getUserID(); pd.put("USER_ID", userID); pd.put("PAPER_TYPE", "101"); page.setPd(pd); List varList = paperService.list(page); // 列出Paper列表 mv.setViewName("sunvote/paper/paper_list2"); for (PageData p : varList) { String examTime = p.getString("EXAM_TIME"); if (examTime != null) { try { int et = Integer.parseInt(examTime); String min = (et / 60) + ""; // if(min.length() < 2){ // min = "0" + min ; // } String sec = (et % 60) + ""; if (sec.length() < 2) { sec = "0" + sec; } if (et > 60) { examTime = min + "时" + sec + "分"; } else { examTime = "0时" + sec + "分"; } } catch (Exception e) { e.printStackTrace(); } } if (examTime == null) { examTime = "0"; } p.put("EXAM_TIME", examTime); } mv.addObject("varList", varList); mv.addObject("pd", pd); mv.addObject("QX", Jurisdiction.getHC()); // 按钮权限 return mv; } /** * 去新增页面 * * @param * @throws Exception */ @RequestMapping(value = "/goAdd") public ModelAndView goAdd() throws Exception { 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; } /** * 去新增页面 * * @param * @throws Exception */ @RequestMapping(value = "/goAddTest") public ModelAndView goAddTest() throws Exception { 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; } /** * 去修改页面 * * @param * @throws Exception */ @RequestMapping(value = "/goEdit") public ModelAndView goEdit() throws Exception { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); pd = paperService.findById(pd); // 根据ID读取 mv.setViewName("sunvote/paper/paper_edit"); mv.addObject("msg", "edit"); mv.addObject("pd", pd); return mv; } /** * 批量删除 * * @param * @throws Exception */ @RequestMapping(value = "/deleteAll") @ResponseBody public Object deleteAll() throws Exception { logBefore(logger, Jurisdiction.getUsername() + "批量删除Paper"); // if(!Jurisdiction.buttonJurisdiction(menuUrl, "del")){return null;} // //校验权限 PageData pd = new PageData(); Map map = new HashMap(); pd = this.getPageData(); List pdList = new ArrayList(); String DATA_IDS = pd.getString("DATA_IDS"); if (null != DATA_IDS && !"".equals(DATA_IDS)) { String ArrayDATA_IDS[] = DATA_IDS.split(","); paperService.deleteAll(ArrayDATA_IDS); paperquestionService.deleteAllPaper(ArrayDATA_IDS); pd.put("msg", "ok"); } else { pd.put("msg", "no"); } pdList.add(pd); map.put("list", pdList); return AppUtil.returnObject(pd, map); } /** * 导出到excel * * @param * @throws Exception */ @RequestMapping(value = "/excel") public ModelAndView exportExcel() throws Exception { logBefore(logger, Jurisdiction.getUsername() + "导出Paper到excel"); if (!Jurisdiction.buttonJurisdiction(menuUrl, "cha")) { return null; } ModelAndView mv = new ModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); Map dataMap = new HashMap(); List titles = new ArrayList(); 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 dataMap.put("titles", titles); List varOList = paperService.listAll(pd); List varList = new ArrayList(); for (int i = 0; i < varOList.size(); i++) { PageData vpd = new PageData(); 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 varList.add(vpd); } dataMap.put("varList", varList); ObjectExcelView erv = new ObjectExcelView(); mv = new ModelAndView(erv, dataMap); return mv; } @InitBinder public void initBinder(WebDataBinder binder) { DateFormat format = new SimpleDateFormat("yyyy-MM-dd"); binder.registerCustomEditor(Date.class, new CustomDateEditor(format, true)); } }