package com.fh.controller.sunvote.report; import java.util.List; import javax.annotation.Resource; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import com.fh.controller.api.ResponseGson; import com.fh.controller.base.BaseController; import com.fh.service.sunvote.sclass.SClassManager; import com.fh.service.sunvote.student.StudentManager; import com.fh.service.sunvote.studenttest.StudentTestManager; import com.fh.service.sunvote.testpaper.TestPaperManager; import com.fh.util.Jurisdiction; import com.fh.util.PageData; @Controller @RequestMapping(value="/report") public class ReportController extends BaseController { @Resource(name="sclassService") private SClassManager sclassService; @Resource(name="studentService") private StudentManager studentService; @Resource(name="testpaperService") private TestPaperManager testpaperService; @Resource(name="studenttestService") private StudentTestManager studenttestService; @RequestMapping(value="/report") public ModelAndView report() throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"班级报表"); ModelAndView mv = this.getModelAndView(); PageData pd = getPageData(); pd.put("SCLASS_ID", pd.get("CLASSID")); pd.put("ID", pd.get("CLASSID")); // 1 查询班级信息 PageData classPageData = sclassService.findById(pd); PageData info = new PageData(); info.put("CLASS_NAME", classPageData.getString("CLASS_NAME")); info.put("CLASS_CODE", classPageData.getString("CLASS_CODE")); info.put("CLASS_ID", classPageData.getString("ID")); pd.put("CLASS_ID", pd.get("CLASSID")); List studentList = studentService.listAllClass(pd); // 2查询班级考试 List testpaperList = testpaperService.listAll(pd); mv.addObject("testpaperList", testpaperList); info.put("testsize", testpaperList != null ? testpaperList.size() : 0); // 查询学生名单及人数 if(studentList != null && studentList.size() > 0){ for(PageData studentPageData : studentList){ studentPageData.put("STUDENT_ID", studentPageData.getString("ID")); List studentTestList = studenttestService.listAll(studentPageData); for(PageData studentTestPageData :studentTestList){ studentPageData.put(studentTestPageData.getString("TEST_ID"), studentTestPageData.getString("SCORE")); } int totalScore = 0 ; int getScore = 0 ; for(PageData testPaperPageData:testpaperList){ String totalScoreStr = testPaperPageData.getString("TOTAL_SCORE"); if(totalScoreStr != null){ try{ totalScore += Integer.parseInt(totalScoreStr); }catch(Exception ex){ logger.info(ex); } } String getScoreStr = studentPageData.getString(testPaperPageData.getString("TESTPAPER_ID")); if(getScoreStr != null){ try{ getScore += Integer.parseInt(getScoreStr); }catch(Exception ex){ logger.info(ex); } } } studentPageData.put("TOTALSCORE", totalScore); studentPageData.put("GETSCORE", getScore); } } // 课程平均得分率 // 课程总分 mv.addObject("studentList", studentList); info.put("STUDENT_NUM", studentList != null ? studentList.size() : 0); mv.addObject("info", info); mv.setViewName("sunvote/teacher/teacher_report_1"); return mv; } @RequestMapping(value="/teacher_report") public ModelAndView teacher_report() throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"教师报表"); ModelAndView mv = this.getModelAndView(); return mv; } @RequestMapping(value="/student_report") public ModelAndView student_report() throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"学生成绩报表"); ModelAndView mv = this.getModelAndView(); PageData pd = getPageData(); pd.put("CLASS_ID", pd.get("CLASSID")); List studentList = studentService.listAllClass(pd); mv.addObject("studentList", studentList); mv.setViewName(""); return mv; } @RequestMapping(value = "/student_report_data", produces = "application/json;charset=UTF-8") @ResponseBody public Object student_report_data() throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"学生报表数据"); PageData pd = getPageData(); ResponseGson> ret = new ResponseGson(); // pd.put("CLASS_ID", pd.get("CLASSID")); List studentList = studentService.listAllClass(pd); List testpaperList = testpaperService.listAll(pd); int totalScore = 0 ; for(PageData testPaperPageData:testpaperList){ String totalScoreStr = testPaperPageData.getString("TOTAL_SCORE"); if(totalScoreStr != null){ try{ totalScore += Integer.parseInt(totalScoreStr); }catch(Exception ex){ logger.info(ex); } } } int allGetScore = 0; // 查询学生名单及人数 if(studentList != null && studentList.size() > 0){ for(PageData studentPageData : studentList){ PageData search = new PageData(); search.put("STUDENT_ID", studentPageData.getString("ID")); if(pd.containsKey("START_DATE")){ search.put("START_DATE", pd.getString("START_DATE")); } if(pd.containsKey("END_DATE")){ search.put("END_DATE", pd.getString("END_DATE")); } List studentTestList = studenttestService.reportListData(search); studentPageData.put("testList", studentTestList); int getScore = 0 ; for(PageData studentTestPageData:studentTestList){ String getScoreStr = studentTestPageData.getString("SCORE"); if(getScoreStr != null){ try{ getScore += Integer.parseInt(getScoreStr); }catch(Exception ex){ logger.info(ex); } } } studentPageData.put("TOTALSCORE", totalScore); studentPageData.put("GETSCORE", getScore); studentPageData.remove("GROUPID"); studentPageData.remove("REMARK"); studentPageData.remove("PARENT_PHONE"); studentPageData.remove("PARENT_NAME"); studentPageData.remove("NUMBER"); studentPageData.remove("SIGN_NO"); studentPageData.remove("KEYPAD_ID"); studentPageData.remove("SNO"); allGetScore += getScore; } } ret.setData(studentList); return ret.toJson(); } @RequestMapping(value="/test_report") public ModelAndView paper_report() throws Exception{ logBefore(logger, Jurisdiction.getUsername()+"测试试卷报表"); ModelAndView mv = this.getModelAndView(); return mv; } }