diff --git a/resources/mybatis1/sunvote/StudentMapper.xml b/resources/mybatis1/sunvote/StudentMapper.xml
index 1025a13..ac9c257 100644
--- a/resources/mybatis1/sunvote/StudentMapper.xml
+++ b/resources/mybatis1/sunvote/StudentMapper.xml
@@ -89,13 +89,27 @@
diff --git a/src/com/fh/controller/base/BaseController.java b/src/com/fh/controller/base/BaseController.java
index 4088066..022df6d 100644
--- a/src/com/fh/controller/base/BaseController.java
+++ b/src/com/fh/controller/base/BaseController.java
@@ -224,7 +224,7 @@ public class BaseController {
*/
public Integer indexOfStrInList(List
list,String str){
for(int i = 0 ;i templist = new ArrayList();
+ 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);
- List temp = new ArrayList();
+ 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 test = new ArrayList();
- test.get(0).put("CREAT_DATE", item.get("CREAT_DATE"));
- test.get(0).put("SCORE", item.get("SCORE"));
- test.get(0).put("AVG_SCORE", item.get("AVG_SCORE"));
- stu.put("TEST_LIST", test);
+ 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", templist);
+ 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 lnum = studentService.findByNumberAndKeyPadId(savePd);
if(lnum.size()<1){
diff --git a/src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java b/src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java
index dd6ff81..01540b0 100644
--- a/src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java
+++ b/src/com/fh/service/sunvote/studenttest/impl/StudentTestService.java
@@ -78,7 +78,7 @@ public class StudentTestService implements StudentTestManager{
* @throws Exception
*/
public List findTestInfoByPid(PageData pd)throws Exception{
- return (List)dao.findForObject("StudentTestMapper.findTestInfoByPid", pd);
+ return (List)dao.findForList("StudentTestMapper.findTestInfoByPid", pd);
}
/**批量删除
diff --git a/src/com/fh/util/ObjectExcelView2.java b/src/com/fh/util/ObjectExcelView2.java
new file mode 100644
index 0000000..aa6d994
--- /dev/null
+++ b/src/com/fh/util/ObjectExcelView2.java
@@ -0,0 +1,97 @@
+package com.fh.util;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFCellStyle;
+import org.apache.poi.hssf.usermodel.HSSFFont;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.hssf.util.CellRangeAddress;
+import org.springframework.web.servlet.view.document.AbstractExcelView;
+
+import com.fh.util.PageData;
+import com.fh.util.Tools;
+public class ObjectExcelView2 extends AbstractExcelView{
+
+ @Override
+ protected void buildExcelDocument(Map model,
+ HSSFWorkbook workbook, HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+ // TODO Auto-generated method stub
+ Date date = new Date();
+ String filename = Tools.date2Str(date, "yyyyMMddHHmmss");
+ HSSFSheet sheet;
+ HSSFCell cell;
+ response.setContentType("application/octet-stream");
+ response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls");
+ if(model.get("class")!=null && !model.get("class").toString().isEmpty()){
+ sheet = workbook.createSheet(model.get("class").toString());
+ }else{
+ sheet = workbook.createSheet("sheet1");
+ }
+
+
+ List titles = (List) model.get("titles");
+ int len = titles.size();
+ HSSFCellStyle headerStyle = workbook.createCellStyle(); //标题样式
+ headerStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
+ headerStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
+ HSSFFont headerFont = workbook.createFont(); //标题字体
+ headerFont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
+ headerFont.setFontHeightInPoints((short)11);
+ headerStyle.setFont(headerFont);
+ short width = 20,height=25*20;
+ sheet.setDefaultColumnWidth(width);
+ for(int i=0; i varList = (List) model.get("varList");
+ int varCount = varList.size();
+ for(int i=0; i score = (List)vpd.get("var6");
+ if(score.size()>0){
+ CellRangeAddress region = new CellRangeAddress(i*score.size()+1, i*score.size()+score.size(), j, j);
+ sheet.addMergedRegion(region);
+ }
+
+ String varstr = vpd.getString("var"+(j+1)) != null ? vpd.getString("var"+(j+1)) : "";
+ cell = getCell(sheet, i*score.size()+1, j);
+ cell.setCellStyle(contentStyle);
+ setText(cell,varstr);
+ }else{
+ List score = (List)vpd.get("var6");
+ for(int x=0;x