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 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 = Float.valueOf(list.get(i).get("TOTAL_SCORE").toString()); for(int j = 0; j=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+=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 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=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 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 queInfo = testpaperinfoService.listTestPaperQuestionIDinfo(temp); int answer[] = new int[option_num+1]; int right = 0; int lost = 0; for(int j=0;j-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 queInfo = testpaperinfoService.listTestPaperQuestionIDinfo(temp); int answer[] = new int[option_num+1]; int right = 0; int lost = 0; for(int j=0;j(){ @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 varOList = templist; List varList = new ArrayList(); DecimalFormat decimalFormat=new DecimalFormat("0.00"); for(int i=0;i optoin = Arrays.asList(s.split(",")); for(int y = 0 ;yy){ 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(); 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){ 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("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("STUDENT_TOTAL"))/Float.valueOf(o1.getString("TEST_NUM")); Float o2GetScore = Float.valueOf(o2.getString("STUDENT_TOTAL"))/Float.valueOf(o2.getString("TEST_NUM")); return o2GetScore.compareTo(o1GetScore); } }); mv.setViewName("sunvote/paper/test_list3"); 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){ 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("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("STUDENT_TOTAL"))/Float.valueOf(o1.getString("TEST_NUM")); Float o2GetScore = Float.valueOf(o2.getString("STUDENT_TOTAL"))/Float.valueOf(o2.getString("TEST_NUM")); return o2GetScore.compareTo(o1GetScore); } }); 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("个人得分"); //6 titles.add("测验平均分"); //7 titles.add("测验时间"); //8 dataMap.put("titles", titles); List varOList = temp; List varList = new ArrayList(); DecimalFormat decimalFormat=new DecimalFormat("0.00"); for(int i=0;i test_list = (List)varOList.get(i).get("TEST_LIST"); List score = new ArrayList(); List AVG_SCORE = new ArrayList(); List CREATE_DATE = new ArrayList(); for(int x=0;x()); 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.list(page); //列出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