Commit 739794bedd892ab550d1dfe5a701b4dac6345766

Authored by jack
1 parent d35847df

1.bug修复

WebRoot/WEB-INF/jsp/sunvote/paper/paper_list4.jsp
... ... @@ -40,7 +40,7 @@
40 40 <div class="box_header">
41 41 <div class="head_box_l">
42 42 <p>
43   - <span class="right_b"></span>试卷管理
  43 + <span class="right_b"></span>个人试卷管理
44 44 </p>
45 45 </div>
46 46 <div class="head_box_r">
... ... @@ -107,7 +107,7 @@
107 107 <c:forEach items="${varList}" var="var" varStatus="vs">
108 108 <tr>
109 109 <td><input type="checkbox" name='ids' id="ids" value="${var.PAPER_ID}"/>${vs.index+1}</td>
110   - <td ><a target="_blank" href="<%=basePath%>paper/iteminfo.do?paper_id=${var.PAPER_ID}">${var.TITLE}</a></td>
  110 + <td ><a target="_blank" style="display: inline-block;width: 100px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap" href="<%=basePath%>paper/iteminfo.do?paper_id=${var.PAPER_ID}" title="${var.TITLE}">${var.TITLE}</a></td>
111 111 <!--<td >${myelfun:findGradeName(var.GRADE_ID)}</td>-->
112 112 <td >${myelfun:findSubjectCName(var.SUBJECT_ID)}</td>
113 113 <td >${myelfun:findTeacherName(var.USER_ID)}</td>
... ...
WebRoot/WEB-INF/jsp/sunvote/paper/paper_list5.jsp
... ... @@ -40,7 +40,7 @@
40 40 <div class="box_header">
41 41 <div class="head_box_l">
42 42 <p>
43   - <span class="right_b"></span>试卷管理
  43 + <span class="right_b"></span>年级试卷管理
44 44 </p>
45 45 </div>
46 46 <div class="head_box_r">
... ... @@ -92,7 +92,7 @@
92 92 <c:forEach items="${varList}" var="var" varStatus="vs">
93 93 <tr>
94 94 <td><input type="checkbox" name='ids' id="ids" value="${var.PAPER_ID}"/>${vs.index+1}</td>
95   - <td ><a target="_blank" href="<%=basePath%>paper/iteminfo.do?paper_id=${var.PAPER_ID}">${var.TITLE}</a></td>
  95 + <td ><a target="_blank" style="display: inline-block;width: 100px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap" href="<%=basePath%>paper/iteminfo.do?paper_id=${var.PAPER_ID}" title="${var.TITLE}">${var.TITLE}</a></td>
96 96 <td >${var.CREATE_DATE}</td>
97 97 <td >${myelfun:findGradeName(var.GRADE_ID)}</td>
98 98 <td >${myelfun:findSubjectCName(var.SUBJECT_ID)}</td>
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_report_1.jsp
... ... @@ -66,6 +66,10 @@
66 66 class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i
67 67 id="nav-search-icon" style="line-height:20px"
68 68 class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
  69 + <td style="padding-left:2px">
  70 + <a style="height:30px;width:3em"
  71 + class="btn btn-light btn-xs" onclick="export2();" title="导出">导出</a>
  72 + </td>
69 73 </tr>
70 74 </table>
71 75 <table id="simple-table"
... ... @@ -273,6 +277,9 @@
273 277 window.self.location.href = url;
274 278 window.top.loading.show();
275 279 }
  280 + function export2(){
  281 + window.open("<%=basePath%>report/export2?CLASSID=${info.CLASS_ID}&ROLE=${pd.ROLE}","_blank");
  282 + }
276 283  
277 284 $(document).ready(function(){
278 285 window.top.loading.remove();
... ...
resources/mybatis1/sunvote/CourseManagementMapper.xml
... ... @@ -101,6 +101,16 @@
101 101 ID = #{ID}
102 102 </select>
103 103  
  104 + <!-- 通过TID获取数据 -->
  105 + <select id="findByTid" parameterType="pd" resultType="pd">
  106 + select
  107 + <include refid="Field"></include>
  108 + from
  109 + <include refid="tableName"></include>
  110 + where
  111 + TEACHER_ID = #{TEACHER_ID}
  112 + </select>
  113 +
104 114 <select id="findByCourse" parameterType="pd" resultType="pd">
105 115 select
106 116 <include refid="Field"></include>
... ...
src/com/fh/controller/sunvote/report/ReportController.java
... ... @@ -4,7 +4,9 @@ import java.math.BigDecimal;
4 4 import java.util.ArrayList;
5 5 import java.util.Collections;
6 6 import java.util.Comparator;
  7 +import java.util.HashMap;
7 8 import java.util.List;
  9 +import java.util.Map;
8 10  
9 11 import javax.annotation.Resource;
10 12  
... ... @@ -24,6 +26,7 @@ import com.fh.service.sunvote.teacher.TeacherManager;
24 26 import com.fh.service.sunvote.testpaper.TestPaperManager;
25 27 import com.fh.service.sunvote.testpaperinfo.TestPaperInfoManager;
26 28 import com.fh.util.Jurisdiction;
  29 +import com.fh.util.ObjectExcelView;
27 30 import com.fh.util.PageData;
28 31  
29 32 @Controller
... ... @@ -542,4 +545,198 @@ public class ReportController extends BaseController {
542 545 return mv;
543 546 }
544 547  
  548 + @RequestMapping(value="/export2")
  549 + public ModelAndView export2() throws Exception{
  550 + logBefore(logger, Jurisdiction.getUsername()+"班级报表");
  551 + ModelAndView mv = this.getModelAndView();
  552 + PageData pd = getPageData();
  553 + pd.put("SCLASS_ID", pd.get("CLASSID"));
  554 + pd.put("ID", pd.get("CLASSID"));
  555 + pd.put("TEST_TYPE", "1");
  556 + String role = pd.getString("ROLE");
  557 + if( role != null && "admin".equals(role)){
  558 + PageData tpd = new PageData();
  559 + tpd.put("ID", getUserID());
  560 + PageData adminInfos = v1Service.getAdminInfo(tpd);
  561 + List<PageData> subjectInfos = new ArrayList<PageData>();
  562 + mv.addObject("subjectInfos", subjectInfos);
  563 + }else{
  564 + pd.put("TEACHER_ID", getUserID());
  565 + }
  566 + // 1 查询班级信息
  567 + PageData classPageData = sclassService.findById(pd);
  568 + PageData info = new PageData();
  569 + info.put("CLASS_NAME", classPageData.getString("CLASS_NAME"));
  570 + info.put("CLASS_CODE", classPageData.getString("CLASS_CODE"));
  571 + info.put("CLASS_ID", classPageData.getString("ID"));
  572 + pd.put("CLASS_ID", pd.get("CLASSID"));
  573 + // 2查询班级考试
  574 + pd.put("TEST_TYPE", "1");
  575 + // modify 根據班級查詢班級報表
  576 + List<PageData> reportData = v1Service.classReport(pd);
  577 + List<PageData> testpaperList = new ArrayList();
  578 + List<PageData> studentList = new ArrayList();
  579 + PageData studentPd = null;
  580 + double totalScore = 0 ;
  581 + double getScore = 0 ;
  582 + for(PageData item : reportData){
  583 +
  584 + // 学生列表
  585 + if(studentPd != null && item.get("STUDENT_ID").equals(studentPd.get("STUDENT_ID"))){
  586 + //
  587 + String score = item.getString("SCORE");
  588 + if(!"0".equals(score)){
  589 + studentPd.put(item.get("TEST_ID"), item.get("SCORE"));
  590 + }else{
  591 + studentPd.put(item.get("TEST_ID"), "--");
  592 + }
  593 + String totalScoreStr = item.getString("TOTAL_SCORE");
  594 + if(totalScoreStr != null){
  595 + try{
  596 + totalScore = new BigDecimal(totalScoreStr).add(new BigDecimal(Double.toString(totalScore))).doubleValue();
  597 + }catch(Exception ex){
  598 + logger.info(ex);
  599 + }
  600 + }
  601 + if(score != null){
  602 + try{
  603 + getScore = new BigDecimal(score).add(new BigDecimal(Double.toString(getScore))).doubleValue();
  604 + }catch(Exception ex){
  605 + logger.info(ex);
  606 + }
  607 + }
  608 + }else{
  609 + if(studentPd != null){
  610 + studentPd.put("TOTALSCORE", totalScore);
  611 + studentPd.put("GETSCORE", getScore);
  612 + studentList.add(studentPd);
  613 + totalScore = 0 ;
  614 + getScore = 0 ;
  615 + }
  616 + studentPd = new PageData();
  617 + studentPd.put("STUDENT_ID", item.get("STUDENT_ID"));
  618 + studentPd.put("NAME", item.get("NAME"));
  619 + String score = item.getString("SCORE");
  620 + if(!"0".equals(score)){
  621 + studentPd.put(item.get("TEST_ID"), item.get("SCORE"));
  622 + }else{
  623 + studentPd.put(item.get("TEST_ID"), "--");
  624 + }
  625 + String totalScoreStr = item.getString("TOTAL_SCORE");
  626 + if(totalScoreStr != null){
  627 + try{
  628 + totalScore = new BigDecimal(totalScoreStr).add(new BigDecimal(Double.toString(totalScore))).doubleValue();
  629 + }catch(Exception ex){
  630 + logger.info(ex);
  631 + }
  632 + }
  633 + if(score != null){
  634 + try{
  635 + getScore = new BigDecimal(score).add(new BigDecimal(Double.toString(getScore))).doubleValue();
  636 + }catch(Exception ex){
  637 + logger.info(ex);
  638 + }
  639 + }
  640 +
  641 + }
  642 + PageData clone = new PageData(item);
  643 + // 试卷列表
  644 + if(!contain(testpaperList, clone, "TEST_ID")){
  645 + clone.put("TESTPAPER_ID", clone.get("TEST_ID"));
  646 + clone.put("NAME", clone.get("PAPER_NAME"));
  647 + testpaperList.add(clone);
  648 + }
  649 +
  650 + }
  651 + if(studentPd != null){
  652 + studentPd.put("TOTALSCORE", totalScore);
  653 + studentPd.put("GETSCORE", getScore);
  654 + studentList.add(studentPd);
  655 + totalScore = 0 ;
  656 + getScore = 0 ;
  657 + }
  658 +
  659 + Collections.sort(testpaperList,new Comparator<PageData>(){
  660 +
  661 + @Override
  662 + public int compare(PageData o1, PageData o2) {
  663 + String o1GetScore = o1.getString("CREATE_DATE");
  664 + String o2GetScore = o2.getString("CREATE_DATE");
  665 + return - o1GetScore.compareToIgnoreCase(o2GetScore);
  666 + }
  667 +
  668 + });
  669 +
  670 + mv.addObject("testpaperList", testpaperList);
  671 + info.put("testsize", testpaperList != null ? testpaperList.size() : 0);
  672 +
  673 + mv.addObject("studentList", studentList);
  674 + info.put("STUDENT_NUM", studentList != null ? studentList.size() : 0);
  675 + mv.addObject("info", info);
  676 + mv.addObject("start_date", pd.get("START_DATE"));
  677 + mv.addObject("end_date", pd.get("END_DATE"));
  678 + mv.addObject("pd", pd);
  679 +
  680 + Map<String,Object> dataMap = new HashMap<String,Object>();
  681 + List<String> titles = new ArrayList<String>();
  682 + titles.add("姓名"); //1
  683 + titles.add("课程平均得分率"); //2
  684 + titles.add("课程总分"); //3
  685 +
  686 + for(PageData item : testpaperList){
  687 + titles.add(item.get("NAME").toString().concat(item.get("CREATE_DATE").toString()));
  688 + }
  689 + dataMap.put("titles", titles);
  690 + dataMap.put("class",classPageData.get("CLASS_NAME"));
  691 +
  692 + List<PageData> varList = new ArrayList<PageData>();
  693 + for(int x= 0 ;x<studentList.size()+3;x++){
  694 +
  695 + PageData vpd = new PageData();
  696 + if(x<3){
  697 + if(x==0)
  698 + vpd.put("var1", "班级课程总分");
  699 + else if(x==1)
  700 + vpd.put("var1", "班级课程平均分");
  701 + else
  702 + vpd.put("var1", "班级课程平均得分率");
  703 + vpd.put("var2", "");
  704 + vpd.put("var3", "");
  705 + }else{
  706 + vpd.put("var1", studentList.get(x-3).getString("NAME"));
  707 + vpd.put("var2", studentList.get(x-3).getString("TOTALSCORE").toString() == "0" ? "0" : ( Float.parseFloat(studentList.get(x-3).getString("GETSCORE")) / Float.parseFloat(studentList.get(x-3).getString("TOTALSCORE")) * 100));
  708 + vpd.put("var3", studentList.get(x-3).getString("GETSCORE"));
  709 + }
  710 +
  711 + for(int j=0;j<testpaperList.size();j++){
  712 + if(x<3){
  713 + if(x==0)
  714 + vpd.put("var"+(j+4), testpaperList.get(j).getString("TOTAL_SCORE"));
  715 + else if(x==1)
  716 + vpd.put("var"+(j+4), testpaperList.get(j).getString("AVG_SCORE"));
  717 + else
  718 + vpd.put("var"+(j+4), testpaperList.get(j).getString("TOTAL_SCORE")=="0"?"0": Float.parseFloat(testpaperList.get(j).getString("AVG_SCORE")) / Float.parseFloat(testpaperList.get(j).getString("TOTAL_SCORE")) * 100);
  719 +
  720 + }else{
  721 + vpd.put("var"+(j+4), studentList.get(x-3).getString(testpaperList.get(j).getString("TESTPAPER_ID")));
  722 + }
  723 + }
  724 + varList.add(vpd);
  725 +
  726 + }
  727 +
  728 + dataMap.put("varList", varList);
  729 + ObjectExcelView erv = new ObjectExcelView();
  730 + mv = new ModelAndView(erv,dataMap);
  731 +// if(isChineseLanguageClient()){
  732 +// mv.setViewName("sunvote/teacher/teacher_report_1");
  733 +// }else{
  734 +// mv.setViewName("sunvote/teacher/en_teacher_report_1");
  735 +// }
  736 +
  737 + return mv;
  738 + }
  739 +
  740 +
  741 +
545 742 }
... ...
src/com/fh/controller/sunvote/student/StudentController.java
... ... @@ -405,11 +405,11 @@ public class StudentController extends BaseController {
405 405 List<PageData> varList = new ArrayList<PageData>();
406 406 for(int i=0;i<varOList.size();i++){
407 407 PageData vpd = new PageData();
408   - vpd.put("var1", varOList.get(i).getString("NAME"));
409   - vpd.put("var2", varOList.get(i).getString("NUMBER"));
410   - vpd.put("var3", varOList.get(i).getString("KEYPAD_ID"));
411   - vpd.put("var5", varOList.get(i).getString("GRADE_NAME"));
412   - vpd.put("var4", varOList.get(i).getString("CLASS_NAME"));
  408 + vpd.put("var1", varOList.get(i).getString("NAME")==null?"":varOList.get(i).getString("NAME"));
  409 + vpd.put("var2", varOList.get(i).getString("NUMBER")==null?"":varOList.get(i).getString("NUMBER"));
  410 + vpd.put("var3", varOList.get(i).getString("KEYPAD_ID")==null?"":varOList.get(i).getString("KEYPAD_ID"));
  411 + vpd.put("var4", varOList.get(i).getString("GRADE_NAME")==null?"":varOList.get(i).getString("GRADE_NAME"));
  412 + vpd.put("var5", varOList.get(i).getString("CLASS_NAME")==null?"":varOList.get(i).getString("CLASS_NAME"));
413 413  
414 414 // vpd.put("var1", varOList.get(i).getString("NAME")); //1
415 415 // vpd.put("var2", varOList.get(i).getString("SNO")); //2
... ...
src/com/fh/controller/sunvote/teacher/TeacherController.java
... ... @@ -26,6 +26,7 @@ import com.fh.controller.api.ResponseGson;
26 26 import com.fh.controller.base.BaseController;
27 27 import com.fh.entity.Page;
28 28 import com.fh.service.api.V1Manager;
  29 +import com.fh.service.sunvote.coursemanagement.CourseManagementManager;
29 30 import com.fh.service.sunvote.school.SchoolManager;
30 31 import com.fh.service.sunvote.subject.SubjectManager;
31 32 import com.fh.service.sunvote.teacher.TeacherManager;
... ... @@ -67,6 +68,9 @@ public class TeacherController extends BaseController {
67 68 @Resource(name="subjectService")
68 69 private SubjectManager subjectService;
69 70  
  71 + @Resource(name="coursemanagementService")
  72 + private CourseManagementManager coursemanagementService;
  73 +
70 74 /**
71 75 * 保存
72 76 *
... ... @@ -216,6 +220,12 @@ public class TeacherController extends BaseController {
216 220 PageData pd = new PageData();
217 221 pd = this.getPageData();
218 222 PageData n = teacherService.findById(pd);
  223 + PageData temp = new PageData();
  224 + temp.put("TEACHER_ID",n.get("ID").toString());
  225 + PageData p = coursemanagementService.findByTid(temp);
  226 + pd.put("PASSWORD",
  227 + new SimpleHash("SHA-1", n.getString("ACCOUT"), pd
  228 + .getString("PASSWORD")).toString()); // 密码加密
219 229 teacherService.edit(pd);
220 230 pd.put("USER_ID", pd.getString("ID")); // ID 主键
221 231 pd.put("LAST_LOGIN", ""); // 最后登录时间
... ... @@ -225,10 +235,10 @@ public class TeacherController extends BaseController {
225 235 pd.put("RIGHTS", "");
226 236 pd.put("USERNAME", n.getString("ACCOUT"));
227 237 pd.put("ROLE_ID", "57bb1e6f138247a0b05cc721a5da1b64");
228   - pd.put("PASSWORD",
229   - new SimpleHash("SHA-1", n.getString("ACCOUT"), pd
230   - .getString("PASSWORD")).toString()); // 密码加密
  238 +
231 239 userService.editU(pd); // 执行保存
  240 + p.put("SUBJECT_ID", pd.get("SUBJECT_IDS"));
  241 + coursemanagementService.edit(p);
232 242 mv.addObject("msg", "success");
233 243 mv.setViewName("save_result2");
234 244 return mv;
... ... @@ -833,15 +843,15 @@ public class TeacherController extends BaseController {
833 843 for (int i = 0; i < varOList.size(); i++) {
834 844 PageData vpd = new PageData();
835 845 vpd.put("var1", varOList.get(i).get("SCHOOL_NAME").toString()); // 1
836   - vpd.put("var2", varOList.get(i).getString("NAME")); // 2
837   - vpd.put("var3", varOList.get(i).getString("PHONE")); // 3
838   - vpd.put("var4", varOList.get(i).getString("SEAT_PHONE")); // 4
839   - vpd.put("var5", varOList.get(i).getString("CARD_NO")); // 5
840   - vpd.put("var6", varOList.get(i).getString("ACCOUT")); // 6
841   - vpd.put("var7", varOList.get(i).getString("PASSWORD")); // 7
842   - vpd.put("var8", varOList.get(i).get("SEX").toString().equals("1")?"男":"女"); // 8
843   - vpd.put("var9", varOList.get(i).getString("CNAME")); // 9
844   - vpd.put("var10", varOList.get(i).getString("KEYPAD_ID")); // 10
  846 + vpd.put("var2", varOList.get(i).getString("NAME")==null?"":varOList.get(i).getString("NAME")); // 2
  847 + vpd.put("var3", varOList.get(i).getString("PHONE")==null?"":varOList.get(i).getString("PHONE")); // 3
  848 + vpd.put("var4", varOList.get(i).getString("SEAT_PHONE")==null?"":varOList.get(i).getString("SEAT_PHONE")); // 4
  849 + vpd.put("var5", varOList.get(i).getString("CARD_NO")==null?"":varOList.get(i).getString("CARD_NO")); // 5
  850 + vpd.put("var6", varOList.get(i).getString("ACCOUT")==null?"":varOList.get(i).getString("ACCOUT")); // 6
  851 + vpd.put("var7", varOList.get(i).getString("PASSWORD")==null?"":varOList.get(i).getString("PASSWORD")); // 7
  852 + vpd.put("var8", varOList.get(i).get("SEX")==null?"":varOList.get(i).get("SEX").toString().equals("1")?"男":"女"); // 8
  853 + vpd.put("var9", varOList.get(i).getString("CNAME")==null?"":varOList.get(i).getString("CNAME")); // 9
  854 + vpd.put("var10", varOList.get(i).getString("KEYPAD_ID")==null?"":varOList.get(i).getString("KEYPAD_ID")); // 10
845 855 varList.add(vpd);
846 856 }
847 857 dataMap.put("varList", varList);
... ...
src/com/fh/service/sunvote/coursemanagement/CourseManagementManager.java
... ... @@ -48,6 +48,13 @@ public interface CourseManagementManager{
48 48 * @throws Exception
49 49 */
50 50 public PageData findById(PageData pd)throws Exception;
  51 +
  52 + /**通过tid获取数据
  53 + * @param pd
  54 + * @throws Exception
  55 + */
  56 + public PageData findByTid(PageData pd)throws Exception;
  57 +
51 58 /**通过id获取数据
52 59 * @param pd
53 60 * @throws Exception
... ...
src/com/fh/service/sunvote/coursemanagement/impl/CourseManagementService.java
... ... @@ -89,6 +89,14 @@ public class CourseManagementService implements CourseManagementManager{
89 89 * @param pd
90 90 * @throws Exception
91 91 */
  92 + public PageData findByTid(PageData pd)throws Exception{
  93 + return (PageData)dao.findForObject("CourseManagementMapper.findByTid", pd);
  94 + }
  95 +
  96 + /**通过id获取数据
  97 + * @param pd
  98 + * @throws Exception
  99 + */
92 100 public PageData findByCourse(PageData pd)throws Exception{
93 101 return (PageData)dao.findForObject("CourseManagementMapper.findByCourse", pd);
94 102 }
... ...
src/com/fh/util/ObjectExcelView.java
... ... @@ -29,7 +29,12 @@ public class ObjectExcelView extends AbstractExcelView{
29 29 HSSFCell cell;
30 30 response.setContentType("application/octet-stream");
31 31 response.setHeader("Content-Disposition", "attachment;filename="+filename+".xls");
32   - sheet = workbook.createSheet("sheet1");
  32 + if(model.get("class")!=null && !model.get("class").toString().isEmpty()){
  33 + sheet = workbook.createSheet(model.get("class").toString());
  34 + }else{
  35 + sheet = workbook.createSheet("sheet1");
  36 + }
  37 +
33 38  
34 39 List<String> titles = (List<String>) model.get("titles");
35 40 int len = titles.size();
... ...