Commit b5cf92b7abfd93c905d660a0b1db0b52e795a073

Authored by 孙向锦
1 parent 9452be31

批量上传学生名单

添加高斯反馈
Showing 29 changed files with 296 additions and 257 deletions
WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_list.jsp
... ... @@ -34,22 +34,13 @@
34 34 <form action="classroster/list.do" method="post" name="Form" id="Form">
35 35 <table style="margin-top:5px;">
36 36 <tr>
37   - <td>
38   - <div class="nav-search">
39   - <span class="input-icon">
40   - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
41   - <i class="ace-icon fa fa-search nav-search-icon"></i>
42   - </span>
43   - </div>
44   - </td>
45   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
46   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
47 37 <td style="vertical-align:top;padding-left:2px;">
48   - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
  38 + <select class="chosen-select form-control" name="SCLASS_ID" id="SCLASS_ID" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
49 39 <option value=""></option>
50 40 <option value="">全部</option>
51   - <option value="">1</option>
52   - <option value="">2</option>
  41 + <c:forEach var="item" items="${classList}">
  42 + <option value="${item.ID}" >${item.CLASS_NAME}</option>
  43 + </c:forEach>
53 44 </select>
54 45 </td>
55 46 <c:if test="${QX.cha == 1 }">
... ...
WebRoot/WEB-INF/jsp/sunvote/classtype/classtype_list.jsp
... ... @@ -33,27 +33,6 @@
33 33 <form action="classtype/list.do" method="post" name="Form" id="Form">
34 34 <table style="margin-top:5px;">
35 35 <tr>
36   - <td>
37   - <div class="nav-search">
38   - <span class="input-icon">
39   - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
40   - <i class="ace-icon fa fa-search nav-search-icon"></i>
41   - </span>
42   - </div>
43   - </td>
44   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
45   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
46   - <td style="vertical-align:top;padding-left:2px;">
47   - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
48   - <option value=""></option>
49   - <option value="">全部</option>
50   - <option value="">1</option>
51   - <option value="">2</option>
52   - </select>
53   - </td>
54   - <c:if test="${QX.cha == 1 }">
55   - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
56   - </c:if>
57 36 <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if>
58 37 </tr>
59 38 </table>
... ...
WebRoot/WEB-INF/jsp/sunvote/grade/grade_list.jsp
... ... @@ -33,27 +33,6 @@
33 33 <form action="grade/list.do" method="post" name="Form" id="Form">
34 34 <table style="margin-top:5px;">
35 35 <tr>
36   - <td>
37   - <div class="nav-search">
38   - <span class="input-icon">
39   - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
40   - <i class="ace-icon fa fa-search nav-search-icon"></i>
41   - </span>
42   - </div>
43   - </td>
44   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
45   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
46   - <td style="vertical-align:top;padding-left:2px;">
47   - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
48   - <option value=""></option>
49   - <option value="">全部</option>
50   - <option value="">1</option>
51   - <option value="">2</option>
52   - </select>
53   - </td>
54   - <c:if test="${QX.cha == 1 }">
55   - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
56   - </c:if>
57 36 <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if>
58 37 </tr>
59 38 </table>
... ...
WebRoot/WEB-INF/jsp/sunvote/school/school_list.jsp
... ... @@ -33,27 +33,6 @@
33 33 <form action="school/list.do" method="post" name="Form" id="Form">
34 34 <table style="margin-top:5px;">
35 35 <tr>
36   - <td>
37   - <div class="nav-search">
38   - <span class="input-icon">
39   - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
40   - <i class="ace-icon fa fa-search nav-search-icon"></i>
41   - </span>
42   - </div>
43   - </td>
44   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
45   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
46   - <td style="vertical-align:top;padding-left:2px;">
47   - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
48   - <option value=""></option>
49   - <option value="">全部</option>
50   - <option value="">1</option>
51   - <option value="">2</option>
52   - </select>
53   - </td>
54   - <c:if test="${QX.cha == 1 }">
55   - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
56   - </c:if>
57 36 <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if>
58 37 </tr>
59 38 </table>
... ...
WebRoot/WEB-INF/jsp/sunvote/sclass/sclass_list.jsp
... ... @@ -35,22 +35,31 @@
35 35 <form action="sclass/list.do" method="post" name="Form" id="Form">
36 36 <table style="margin-top:5px;">
37 37 <tr>
38   - <td>
39   - <div class="nav-search">
40   - <span class="input-icon">
41   - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
42   - <i class="ace-icon fa fa-search nav-search-icon"></i>
43   - </span>
44   - </div>
  38 + <td style="vertical-align:top;padding-left:2px;">
  39 + <select class="chosen-select form-control" name="SCHOOL_ID" id="SCHOOL_ID" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
  40 + <option value=""></option>
  41 + <option value="">全部</option>
  42 + <c:forEach var="item" items="${schools}">
  43 + <option value="${item.ID}" >${item.NAME}</option>
  44 + </c:forEach>
  45 + </select>
  46 + </td>
  47 + <td style="vertical-align:top;padding-left:2px;">
  48 + <select class="chosen-select form-control" name="GRADE_ID" id="GRADE_ID" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
  49 + <option value=""></option>
  50 + <option value="">全部</option>
  51 + <c:forEach var="item" items="${grades}">
  52 + <option value="${item.ID}">${item.NAME}</option>
  53 + </c:forEach>
  54 + </select>
45 55 </td>
46   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
47   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
48 56 <td style="vertical-align:top;padding-left:2px;">
49   - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
  57 + <select class="chosen-select form-control" name="CLASS_TYPE" id="CLASS_TYPE" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
50 58 <option value=""></option>
51 59 <option value="">全部</option>
52   - <option value="">1</option>
53   - <option value="">2</option>
  60 + <c:forEach var="item" items="${classTypes}">
  61 + <option value="${item.ID}">${item.NAME}</option>
  62 + </c:forEach>
54 63 </select>
55 64 </td>
56 65 <c:if test="${QX.cha == 1 }">
... ...
WebRoot/WEB-INF/jsp/sunvote/student/student_list.jsp
... ... @@ -41,16 +41,7 @@
41 41 </span>
42 42 </div>
43 43 </td>
44   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
45   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
46   - <td style="vertical-align:top;padding-left:2px;">
47   - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
48   - <option value=""></option>
49   - <option value="">全部</option>
50   - <option value="">1</option>
51   - <option value="">2</option>
52   - </select>
53   - </td>
  44 +
54 45 <c:if test="${QX.cha == 1 }">
55 46 <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
56 47 </c:if>
... ...
WebRoot/WEB-INF/jsp/sunvote/student/student_list2.jsp
... ... @@ -102,6 +102,7 @@
102 102 <tr>
103 103 <td style="vertical-align:top;">
104 104 <a class="btn btn-mini btn-success" onclick="add();">新增</a>
  105 + <a class="btn btn-mini btn-success" onclick="upload();">批量上传</a>
105 106 <a class="btn btn-mini btn-danger" onclick="makeAll('确定要删除选中的数据吗?');" title="批量删除" ><i class='ace-icon fa fa-trash-o bigger-120'></i></a>
106 107 </td>
107 108 <td style="vertical-align:top;"><div class="pagination" style="float: right;padding-top: 0px;margin-top: 0px;">${page.pageStr}</div></td>
... ... @@ -220,6 +221,28 @@
220 221 diag.show();
221 222 }
222 223  
  224 + function upload(){
  225 + top.jzts();
  226 + var diag = new top.Dialog();
  227 + diag.Drag=true;
  228 + diag.Title ="EXCEL导入学生名单";
  229 + diag.URL = '<%=basePath%>student/goUploadExcel.do?class_id=${pd.CLASS_ID}&term_id=${pd.TERM_ID}';
  230 + diag.Width = 300;
  231 + diag.Height = 150;
  232 + diag.CancelEvent = function(){ //关闭事件
  233 + if(diag.innerFrame.contentWindow.document.getElementById('zhongxin').style.display == 'none'){
  234 + if('${page.currentPage}' == '0'){
  235 + top.jzts();
  236 + setTimeout("self.location.reload()",100);
  237 + }else{
  238 + nextPage(${page.currentPage});
  239 + }
  240 + }
  241 + diag.close();
  242 + };
  243 + diag.show();
  244 + }
  245 +
223 246 //删除
224 247 function del(Id){
225 248 bootbox.confirm("确定要删除吗?", function(result) {
... ...
WebRoot/WEB-INF/jsp/sunvote/subject/subject_list.jsp
... ... @@ -33,27 +33,7 @@
33 33 <form action="subject/list.do" method="post" name="Form" id="Form">
34 34 <table style="margin-top:5px;">
35 35 <tr>
36   - <td>
37   - <div class="nav-search">
38   - <span class="input-icon">
39   - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
40   - <i class="ace-icon fa fa-search nav-search-icon"></i>
41   - </span>
42   - </div>
43   - </td>
44   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
45   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
46   - <td style="vertical-align:top;padding-left:2px;">
47   - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
48   - <option value=""></option>
49   - <option value="">全部</option>
50   - <option value="">1</option>
51   - <option value="">2</option>
52   - </select>
53   - </td>
54   - <c:if test="${QX.cha == 1 }">
55   - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
56   - </c:if>
  36 +
57 37 <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if>
58 38 </tr>
59 39 </table>
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_list.jsp
... ... @@ -34,22 +34,13 @@
34 34 <form action="teacher/list.do" method="post" name="Form" id="Form">
35 35 <table style="margin-top:5px;">
36 36 <tr>
37   - <td>
38   - <div class="nav-search">
39   - <span class="input-icon">
40   - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
41   - <i class="ace-icon fa fa-search nav-search-icon"></i>
42   - </span>
43   - </div>
44   - </td>
45   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
46   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
47   - <td style="vertical-align:top;padding-left:2px;">
48   - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
  37 + <td style="vertical-align:top;padding-left:2px;">
  38 + <select class="chosen-select form-control" name="SCHOOL_ID" id="SCHOOL_ID" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
49 39 <option value=""></option>
50 40 <option value="">全部</option>
51   - <option value="">1</option>
52   - <option value="">2</option>
  41 + <c:forEach var="item" items="${schools}">
  42 + <option value="${item.ID}" <c:if test="${pd.SCHOOL_ID==item.ID}">selected="true"</c:if>>${item.NAME}</option>
  43 + </c:forEach>
53 44 </select>
54 45 </td>
55 46 <c:if test="${QX.cha == 1 }">
... ...
WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp
... ... @@ -94,7 +94,7 @@
94 94 </div>
95 95 <c:forEach items="${pd.TEACHER}" var="var" varStatus="vs">
96 96 <div class="class">
97   - <p><a href="javascript:chooseClass(${var.CLASS_ID},'${var.TERM_ID}');">${var.GRADE_NAME}${var.SUBJECT_NAME} <span>${var.CLASS_NAME}</span></a></p>
  97 + <p><a href="javascript:chooseClass('${var.CLASS_ID}','${var.TERM_ID}');">${var.GRADE_NAME}${var.SUBJECT_NAME} <span>${var.CLASS_NAME}</span></a></p>
98 98 </div>
99 99 </c:forEach>
100 100 <div class="test">测验</div>
... ...
WebRoot/WEB-INF/jsp/sunvote/teachingmaterial/teachingmaterial_list.jsp
... ... @@ -34,27 +34,6 @@
34 34 <form action="teachingmaterial/list.do" method="post" name="Form" id="Form">
35 35 <table style="margin-top:5px;">
36 36 <tr>
37   - <td>
38   - <div class="nav-search">
39   - <span class="input-icon">
40   - <input type="text" placeholder="这里输入关键词" class="nav-search-input" id="nav-search-input" autocomplete="off" name="keywords" value="${pd.keywords }" placeholder="这里输入关键词"/>
41   - <i class="ace-icon fa fa-search nav-search-icon"></i>
42   - </span>
43   - </div>
44   - </td>
45   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastStart" id="lastStart" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="开始日期" title="开始日期"/></td>
46   - <td style="padding-left:2px;"><input class="span10 date-picker" name="lastEnd" name="lastEnd" value="" type="text" data-date-format="yyyy-mm-dd" readonly="readonly" style="width:88px;" placeholder="结束日期" title="结束日期"/></td>
47   - <td style="vertical-align:top;padding-left:2px;">
48   - <select class="chosen-select form-control" name="name" id="id" data-placeholder="请选择" style="vertical-align:top;width: 120px;">
49   - <option value=""></option>
50   - <option value="">全部</option>
51   - <option value="">1</option>
52   - <option value="">2</option>
53   - </select>
54   - </td>
55   - <c:if test="${QX.cha == 1 }">
56   - <td style="vertical-align:top;padding-left:2px"><a class="btn btn-light btn-xs" onclick="tosearch();" title="检索"><i id="nav-search-icon" class="ace-icon fa fa-search bigger-110 nav-search-icon blue"></i></a></td>
57   - </c:if>
58 37 <c:if test="${QX.toExcel == 1 }"><td style="vertical-align:top;padding-left:2px;"><a class="btn btn-light btn-xs" onclick="toExcel();" title="导出到EXCEL"><i id="nav-search-icon" class="ace-icon fa fa-download bigger-110 nav-search-icon blue"></i></a></td></c:if>
59 38 </tr>
60 39 </table>
... ...
WebRoot/afterService/gsdt_info.html
... ... @@ -35,16 +35,16 @@
35 35 <label ><span class="red">*</span>校区名称:</label>
36 36 <div class="control-group xq">
37 37 <div class="controls col-md-6" style="padding-left:0;">
38   - <select id="province" class="form-control">
  38 + <!-- <select id="province" class="form-control">
39 39 <option value="请选择"></option>
40   - </select>
41   -
  40 + </select> -->
  41 + <input type="text" class="form-control" id="province" placeholder="">
42 42 </div>
43   - <div class="controls col-md-6" style="padding-right:0;">
  43 + <!-- <div class="controls col-md-6" style="padding-right:0;">
44 44 <select id="city" class="form-control">
45 45 <option value="请选择">请选择</option>
46 46 </select>
47   - </div>
  47 + </div> -->
48 48 </div>
49 49  
50 50 </div>
... ... @@ -125,67 +125,48 @@
125 125 <div class="rightBox">
126 126 <div class="qaList">
127 127 <div class="list_top">
128   - <img src="images/dt_q1.png" width="100%"/>
129   - <img src="images/dt_q1.png" width="100%"/>
130   - <h4><span class="k"></span>R-接收标志</h4>
131   - <p>键盘接收到基站发送的指令时显示。用于判断键盘是否进入反馈状态。</p>
132   - <h4><span class="k"></span>T-发送标志</h4>
133   - <p>键盘提交数据给基站时显示,用于判断键盘是否发送了数据。</p>
134   - <h4><span class="k"></span>OK-发送成功标志</h4>
135   - <p>基站收到键盘发送的数据时显示,用于判断键盘数据是否发送成功。</p>
  128 +
136 129 </div>
137 130 <div class="list_content">
138 131 <li>
139 132 <p class="q_title">问题现象1:无法开机</p>
140   - <p>可能键盘没有电导致,更换电池后再次尝试是否可以开机。若更换电池后仍无法开机,请联系技术支持。</p>
  133 + <p>可能答题器没有电导致,更换电池后再次尝试是否可以开机。若更换电池后仍无法开机,请联系技术支持。</p>
141 134 </li>
142 135 <li>
143 136 <p class="q_title">问题现象2:无信号</p>
144   - <p>确认基站连接成功后,键盘仍显示无信号,可能是未进行配对导致。使用配对工具SunVote Match Tool V1.0.0.1配对后再尝试。开启配对后,S52Plus同时按住配对键“”和“”,直到键盘屏幕上有数字滚动。若无法配对,请参考问题“5.为什么答题器无法与基站配对成功”</p>
  137 + <p>确认基站连接成功后,答题器仍显示未连接,可能是未与基站绑定导致。请尝试重新绑定。”</p>
145 138  
146 139 </li>
147 140 <li>
148   - <p class="q_title">问题现象3:有信号,无法进入反馈(不显示R)</p>
149   - <p>① 所有键盘无法进入反馈,可能是基站未开始反馈。确保基站连接成功,并且已经进入答题状态。</p>
150   - <p>② 个别键盘无法进入反馈,可能是受到其他基站干扰。确保周围没有相邻频点基站或免配对基站正在使用。可把当前基站拔了,确认答题器上是否仍然有信号,如果有信号,可确认该答题器与其他基站匹配了。可将该答题器与基站重新配对。</p>
  141 + <p class="q_title">问题现象3:为什么我的答题按A(或其他键)显示已发送,再按其他按键无反应 </p>
  142 + <p>可能是由于信号不好导致按键值未传成功。干扰信号的因素:2.4G 设备,信号屏蔽仪, 同频点或免配对基站,人或其他物体的阻挡。避免信号干扰的方法如下: </p>
  143 + <p>① 确保附近没有其他基站干扰,排除同频点及开启免赔对基站的干扰。 </p>
  144 + <p>② 确保答题器和基站之间没有障碍物阻挡,基站尽量放高,禁止放在铁制盒子/柜子中。</p>
  145 + <p>③ 确保未开启信号屏蔽 </p>
  146 + <p>④ 选择合适的工作频点,与周围的正在使用的基站频点尽可能隔开 4 个频点(经验值)。 </p>
  147 + <p>若排除以上因素,可以让学生原地晃动下答题器,尝试是否可以提交。 </p>
  148 + <p>❖ 同频点的干扰可以通过基站的指示灯排查,再无答题数据上传时,基站 2 个灯闪烁, 即表示当前有相同频点的干扰,请更改当前基站的频点 </p>
151 149  
152 150 </li>
153 151 <li>
154   - <p class="q_title">问题现象4:进入反馈(显示R),无法提交(不显示OK),或提交慢</p>
155   - <p>可能是由于信号不好导致,干扰信号的因素:2.4G设备,信号屏蔽仪,同频点或免配对基站,人或其他物体的阻挡。避免信号干扰的方法如下:</p>
156   - <p>① 确保附近没有其他基站干扰</p>
157   - <p>② 确保键盘和基站之间没有障碍物阻挡</p>
158   - <p>③ 确保未开启信号屏蔽议</p>
159   - <p>④ 尝试更换频道,一般情况下频道1和7效果会较好。</p>
160   - <p> 可能是按键磨损导致按键不灵。观察按键上的文字是否脱落,是否能看到答题器的线路板(示例如下)。如果确定按键有磨损,可将异常产品数量统计,并联系厂家技术支持安排售后处理。</p>
161   - <img src="images/dt_q3.png" width="30%" />
  152 + <p class="q_title">问题现象4:什么情况下耗电快?</p>
  153 + <p>❖ 离线开机 离线开机时,答题器需要搜索基站,无线模块一直处于发射信号中,耗电比正常工作 时要大很多。 </p>
  154 + <p>❖ 保管不当 装有电池的答题器,宜要存放在干燥通风的地方。温差太大或者太潮湿的环境都不 适宜存放</p>
162 155  
163 156 </li>
164 157 <li>
165   - <p class="q_title">问题现象5:为什么键盘有时需按Send键提交,有时候自动提交?</p>
166   - <p>基站的提交模式决定</p>
167   - <p>基站支持自动提交和按键提交两种提交模式,设置成自动提交时,单选、判断输入选项后即可自动提交。多选、排序、数字类型的题目,不支持自动提交模式,需要按Send键提交。出厂默认为自动提交模式。</p>
  158 + <p class="q_title">问题现象5:为什么只用了几天,电量就显示只有1格/空格? </p>
  159 + <p>❖ 答题器离线时,由于功率较大,因此电量显示会被拉低。因此请插上基站后,答题器 显示已连接后,等待1分钟左右,再观察电量情况。以此时的电量为准。 </p>
  160 + <p>❖ 若答题器屏幕显示Low battery,则无论是在离线或者在线,都需要更换电池。 </p>
168 161 </li>
169 162 <li>
170   - <p class="q_title">问题现象6:什么情况下耗电快?</p>
171   - <p>离线开机</p>
172   - <p>离线开机时,键盘需要搜索基站,无线模块一直处于发射信号中,耗电比正常工作时要大很多。</p>
173   - <p>保管不当</p>
174   - <p>装有电池的键盘,宜要存放在干燥通风的地方。温差太大或者太潮湿的环境都不适宜存放。</p>
  163 + <p class="q_title">问题现象6:如何单独保管电池?</p>
  164 + <p>❖ 电池单独存放时,须存放在厂家发货的托盘中,禁止堆积存放,否则放电极快造成电 池发热,甚至可能会引起电池破裂或起火的危险 。 </p>
  165 + <p>❖ 电池宜存放在阴凉通风的地方,禁止在太阳下暴晒。温差太大或者太潮湿的环境都 不适宜存放。</p>
175 166 </li>
176 167 <li>
177   - <p class="q_title">问题现象7:如何单独保管电池?</p>
178   - <p>电池单独存放时,须存放在厂家发货的托盘中,禁止堆积存放,否则放电极快造成电池发热,甚至可能会引起电池破裂或起火的危险 。</p>
179   - <p>电池宜存放在阴凉通风的地方,禁止在太阳下暴晒。温差太大或者太潮湿的环境都不适宜存放。</p>
180   - </li>
181   - <li>
182   - <p class="q_title">问题现象8:为什么答题器无法与基站配对成功?</p>
183   - <p>在确认配对工具版本(SunVote Match Tool V1.0.0.1)正常,且其他答题器可正常配对的情况下,可能是由于基站和答题器的频点范围不一致造成的。基站是80个频点的版本,答题器是32个频点的版本。基站的频点设置超过了32,因此答题器无法与基站匹配。</p>
184   - <p>如何确认这个问题:</p>
185   - <p>① 检查基站的频点是否超过了32</p>
186   - <p>② 检查答题器配对时,是否频点数字跳动到32后,就再次重1开始。</p>
187   - <p>如果确定是由于该原因导致,可以将旧版本的答题器发回升级。或者将基站的频点更改为32以内范围。</p>
188   - <p>排除频点范围的原因,可用多只答题器作对比测试,同样的基站,同样的软件,同时操作,仅特定的某只答题器无法配对,可能是答题的版本</p>
  168 + <p class="q_title">问题现象7:如何选择电池品牌? </p>
  169 + <p>❖ S56适配的电池型号是CR2032,在超市或者网上都可以购买。选择电池品牌时,尽 量选择大品牌的电池。推荐使用进口松下电池。 </p>
189 170 </li>
190 171 </div>
191 172  
... ... @@ -218,13 +199,13 @@
218 199 require(['city.select'], function ($) {
219 200 $(function () {
220 201  
221   - $('#province, #city').citylist({
  202 + /* $('#province, #city').citylist({
222 203 data : data,
223 204 id : 'id',
224 205 children: 'cities',
225 206 name : 'name',
226 207 metaTag : 'name'
227   - });
  208 + }); */
228 209  
229 210 $('#all').citylist({
230 211 data : data,
... ... @@ -255,7 +236,7 @@
255 236  
256 237 //$("#model").html(model);
257 238 switch(model){
258   - case "dtq":$("#model_pic").attr("src","images/u30.png");$(".qaList").css("display","block");break;
  239 + case "dtq":$("#model_pic").attr("src","images/gsu30.png");$(".qaList").css("display","block");break;
259 240 default:break;
260 241 }
261 242  
... ... @@ -330,7 +311,7 @@
330 311  
331 312 var data={
332 313 SCHOOL_ADDRESS1:$("#province").val(),
333   - SCHOOL_ADDRESS2:$("#city").val(),
  314 + /* SCHOOL_ADDRESS2:$("#city").val(), */
334 315 CONTACT_PHONE:$("#name").val(),
335 316 PHONE_CONTACT:$("#tel").val(),
336 317 PRODUCT_SEQ:$("#sn").val(),
... ...
WebRoot/afterService/gsindex.html
... ... @@ -105,9 +105,9 @@
105 105 <script>
106 106 function down(type){
107 107 switch(type){
108   - case 0: $(".modal-body").html('<p><a href="document/新东方产品售后维修流程.pdf" target="_blank">新东方产品售后维修流程.pdf</a></p>');break;
  108 + case 0: $(".modal-body").html('<p><a href="document/产品售后维修流程.pdf" target="_blank">产品售后维修流程</a></p>');break;
109 109 case 1: $(".modal-body").html('<p>等待更新</p>');break;
110   - case 2: $(".modal-body").html('<p><a href="document/基站-EA1000-常见问题解答(新东方)V1.1-20170922.pdf" target="_blank">基站-EA1000-常见问题解答(新东方)V1.1-20170922.pdf</a></p><p><a href="document/键盘-S52Plus-常见问题解答V1.0(新东方)-20180309.pdf" target="_blank">键盘-S52Plus-常见问题解答V1.0(新东方)-20180309.pdf</a></p><p><a href="document/新东方基站-EA4200W-常见问题解答()V1.0-20170922.pdf" target="_blank">新东方基站-EA4200W-常见问题解答()V1.0-20170922.pdf</a></p>');break;
  110 + case 2: $(".modal-body").html('<p><a href="document/答题器-S56-常见问题解答V1.0-20180227(高思定制).pdf" target="_blank">答题器-S56-常见问题解答V1.0-20180227(高思定制)</a></p><p><a href="document/基站-EA1000-常见问题解答V1.0-20170825.pdf" target="_blank">基站-EA1000-常见问题解答V1.0-20170825</a></p>');break;
111 111 }
112 112 }
113 113 </script>
... ...
WebRoot/afterService/gsinfo.html
... ... @@ -35,16 +35,16 @@
35 35 <label ><span class="red">*</span>校区名称:</label>
36 36 <div class="control-group xq">
37 37 <div class="controls col-md-6" style="padding-left:0;">
38   - <select id="province" class="form-control">
  38 + <!-- <select id="province" class="form-control">
39 39 <option value="请选择"></option>
40   - </select>
41   -
  40 + </select> -->
  41 + <input type="text" class="form-control" id="province" placeholder="">
42 42 </div>
43   - <div class="controls col-md-6" style="padding-right:0;">
  43 + <!-- <div class="controls col-md-6" style="padding-right:0;">
44 44 <select id="city" class="form-control">
45 45 <option value="请选择">请选择</option>
46 46 </select>
47   - </div>
  47 + </div> -->
48 48 </div>
49 49  
50 50 </div>
... ... @@ -128,11 +128,8 @@
128 128 </li>
129 129 <li>
130 130 <p class="q_title">问题现象2:连接指示灯慢闪(1秒一次),软件显示连接断开</p>
131   - <p>① 请检查答题系统的版本是否为互动课堂 2.12.1或更高版本。Match Tool的版本是否为1.0.0.1。配对工具手册及下载地址:https://shimo.im/doc/95gSPuzB1zM7bFRc</p>
132   - <p>② 确认基站驱动是否正常,打开设备管理器,驱动正常时,插上基站时 “人体学输入设备”会添加一个“USB输入设备”</p>
133   - <img src="images/ea1000_q1.png" width="30%" />
134   - <img src="images/ea1000_q2.png" width="30%" />
135   - <img src="images/ea1000_q3.png" width="30%" />
  131 + <p>慢闪表示基站与电脑已经成功, 请联系软件运维人员检查软件是否正常连接</p>
  132 +
136 133 </li>
137 134 <li>
138 135 <p class="q_title">问题现象3:连接指示灯快闪(1秒多次),软件显示连接断开</p>
... ... @@ -213,13 +210,13 @@ PS:建议老师使用手动连接的方式,不要选择自动连接。&lt;/p&gt;
213 210 require(['city.select'], function ($) {
214 211 $(function () {
215 212  
216   - $('#province, #city').citylist({
  213 + /* $('#province, #city').citylist({
217 214 data : data,
218 215 id : 'id',
219 216 children: 'cities',
220 217 name : 'name',
221 218 metaTag : 'name'
222   - });
  219 + }); */
223 220  
224 221 $('#all').citylist({
225 222 data : data,
... ... @@ -327,7 +324,7 @@ PS:建议老师使用手动连接的方式,不要选择自动连接。&lt;/p&gt;
327 324  
328 325 var data={
329 326 SCHOOL_ADDRESS1:$("#province").val(),
330   - SCHOOL_ADDRESS2:$("#city").val(),
  327 + /* SCHOOL_ADDRESS2:$("#city").val(), */
331 328 CONTACT_PHONE:$("#name").val(),
332 329 PHONE_CONTACT:$("#tel").val(),
333 330 PRODUCT_SEQ:$("#sn").val(),
... ...
WebRoot/afterService/gsparts2_info.html
... ... @@ -35,16 +35,18 @@
35 35 <label ><span class="red">*</span>校区名称:</label>
36 36 <div class="control-group xq">
37 37 <div class="controls col-md-6" style="padding-left:0;">
38   - <select id="province" class="form-control">
  38 + <!-- <select id="province" class="form-control">
39 39 <option value="请选择"></option>
40   - </select>
  40 + </select> -->
  41 +
  42 + <input type="text" class="form-control" id="province" placeholder="">
41 43  
42 44 </div>
43   - <div class="controls col-md-6" style="padding-right:0;">
  45 + <!-- <div class="controls col-md-6" style="padding-right:0;">
44 46 <select id="city" class="form-control">
45 47 <option value="请选择">请选择</option>
46 48 </select>
47   - </div>
  49 + </div> -->
48 50 </div>
49 51  
50 52 </div>
... ... @@ -112,13 +114,13 @@
112 114 require(['city.select'], function ($) {
113 115 $(function () {
114 116  
115   - $('#province, #city').citylist({
  117 + /* $('#province, #city').citylist({
116 118 data : data,
117 119 id : 'id',
118 120 children: 'cities',
119 121 name : 'name',
120 122 metaTag : 'name'
121   - });
  123 + }); */
122 124  
123 125 $('#all').citylist({
124 126 data : data,
... ... @@ -228,7 +230,7 @@
228 230  
229 231 var data={
230 232 SCHOOL_ADDRESS1:$("#province").val(),
231   - SCHOOL_ADDRESS2:$("#city").val(),
  233 + /* SCHOOL_ADDRESS2:$("#city").val(), */
232 234 CONTACT_PHONE:$("#name").val(),
233 235 PHONE_CONTACT:$("#tel").val(),
234 236 //PRODUCT_SEQ:$("#sn").val(),
... ...
WebRoot/afterService/gsparts_info.html
... ... @@ -35,16 +35,18 @@
35 35 <label ><span class="red">*</span>校区名称:</label>
36 36 <div class="control-group xq">
37 37 <div class="controls col-md-6" style="padding-left:0;">
38   - <select id="province" class="form-control">
  38 + <!-- <select id="province" class="form-control">
39 39 <option value="请选择"></option>
40   - </select>
  40 + </select> -->
  41 +
  42 + <input type="text" class="form-control" id="province" placeholder="">
41 43  
42 44 </div>
43   - <div class="controls col-md-6" style="padding-right:0;">
  45 + <!-- <div class="controls col-md-6" style="padding-right:0;">
44 46 <select id="city" class="form-control">
45 47 <option value="请选择">请选择</option>
46 48 </select>
47   - </div>
  49 + </div> -->
48 50 </div>
49 51  
50 52 </div>
... ... @@ -116,14 +118,14 @@
116 118 require(['city.select'], function ($) {
117 119 $(function () {
118 120  
119   - $('#province, #city').citylist({
  121 + /* $('#province, #city').citylist({
120 122 data : data,
121 123 id : 'id',
122 124 children: 'cities',
123 125 name : 'name',
124 126 metaTag : 'name'
125 127 });
126   -
  128 + */
127 129 $('#all').citylist({
128 130 data : data,
129 131 id : 'id',
... ... @@ -229,7 +231,7 @@
229 231  
230 232 var data={
231 233 SCHOOL_ADDRESS1:$("#province").val(),
232   - SCHOOL_ADDRESS2:$("#city").val(),
  234 + /* SCHOOL_ADDRESS2:$("#city").val(), */
233 235 CONTACT_PHONE:$("#name").val(),
234 236 PHONE_CONTACT:$("#tel").val(),
235 237 //PRODUCT_SEQ:$("#sn").val(),
... ...
resources/mybatis1/api/V1Mapper.xml
... ... @@ -28,6 +28,7 @@
28 28 sv_term.START_DATE &lt; NOW()
29 29 AND sv_term.END_DATE &gt; NOW()
30 30 AND TEACHER_ID = #{TEACHER_ID}
  31 + group by SUBJECT_ID
31 32 </select>
32 33  
33 34 <!-- 通过教师ID获取科目数据 -->
... ...
resources/mybatis1/sunvote/ClassRosterMapper.xml
... ... @@ -38,8 +38,22 @@
38 38 <delete id="delete" parameterType="pd">
39 39 delete from
40 40 <include refid="tableName"></include>
41   - where
42   - CLASSROSTER_ID = #{CLASSROSTER_ID}
  41 + where 1 != 1
  42 + <if test=" CLASSROSTER_ID != null and CLASSROSTER_ID != ''"><!-- 关键词检索 -->
  43 + or CLASSROSTER_ID = #{CLASSROSTER_ID}
  44 + </if>
  45 +
  46 + <if test=" SCLASS_ID != null and SCLASS_ID != ''"><!-- 关键词检索 -->
  47 + or SCLASS_ID = #{SCLASS_ID}
  48 + </if>
  49 +
  50 + <if test=" STUDENT_ID != null and STUDENT_ID != ''"><!-- 关键词检索 -->
  51 + or STUDENT_ID = #{STUDENT_ID}
  52 + </if>
  53 + <if test=" TEAMID != null and TEAMID != ''"><!-- 关键词检索 -->
  54 + or TEAMID = #{TEAMID}
  55 + </if>
  56 +
43 57 </delete>
44 58  
45 59 <!-- 修改 -->
... ... @@ -82,6 +96,12 @@
82 96 -->
83 97 )
84 98 </if>
  99 + <if test="pd.SCLASS_ID != null and pd.SCLASS_ID != ''"><!-- 关键词检索 -->
  100 + and
  101 + (
  102 + SCLASS_ID = #{pd.SCLASS_ID}
  103 + )
  104 + </if>
85 105 </select>
86 106  
87 107 <!-- 列表(全部) -->
... ... @@ -102,6 +122,16 @@
102 122 #{item}
103 123 </foreach>
104 124 </delete>
  125 + <!-- 批量删除 -->
  126 + <delete id="deleteAllByStudentID" parameterType="String">
  127 + delete from
  128 + <include refid="tableName"></include>
  129 + where
  130 + STUDENT_ID in
  131 + <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
  132 + #{item}
  133 + </foreach>
  134 + </delete>
105 135  
106 136 <!-- fh313596790qq(青苔) -->
107 137 </mapper>
108 138 \ No newline at end of file
... ...
resources/mybatis1/sunvote/SClassMapper.xml
... ... @@ -39,6 +39,7 @@
39 39 CLASS_TYPE,
40 40 CLASS_NAME,
41 41 CLASS_CODE,
  42 + ID,
42 43 BASESTATION_ID
43 44 ) values (
44 45 #{SCHOOL_ID},
... ... @@ -46,6 +47,7 @@
46 47 #{CLASS_TYPE},
47 48 #{CLASS_NAME},
48 49 #{CLASS_CODE},
  50 + #{ID},
49 51 #{BASESTATION_ID}
50 52 )
51 53 </insert>
... ... @@ -90,16 +92,16 @@
90 92 <include refid="Field"></include>
91 93 from
92 94 <include refid="tableName"></include>
93   - where 1=1
94   - <if test="SCHOOL_ID != null and SCHOOL_ID != ''">
95   - and ( SCHOOL_ID = #{SCHOOL_ID} )
96   - </if>
97   - <if test="GRADE_ID != null and GRADE_ID != ''">
98   - and ( GRADE_ID = #{GRADE_ID} )
99   - </if>
100   - <if test="CLASS_TYPE != null and CLASS_TYPE != ''">
101   - and ( CLASS_TYPE = #{CLASS_TYPE} )
102   - </if>
  95 + where 1 = 1
  96 + <if test="pd.SCHOOL_ID != null and pd.SCHOOL_ID != ''">
  97 + and ( SCHOOL_ID = #{pd.SCHOOL_ID} )
  98 + </if>
  99 + <if test="pd.GRADE_ID != null and pd.GRADE_ID != ''">
  100 + and ( GRADE_ID = #{pd.GRADE_ID} )
  101 + </if>
  102 + <if test="pd.CLASS_TYPE != null and pd.CLASS_TYPE != ''">
  103 + and ( CLASS_TYPE = #{pd.CLASS_TYPE} )
  104 + </if>
103 105 </select>
104 106  
105 107 <!-- 列表(全部) -->
... ...
resources/mybatis1/sunvote/StudentMapper.xml
... ... @@ -94,13 +94,21 @@
94 94 <if test="pd.keywords!= null and pd.keywords != ''"><!-- 关键词检索 -->
95 95 and
96 96 (
97   - <!-- 根据需求自己加检索条件
98   - 字段1 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
  97 + NAME LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
99 98 or
100   - 字段2 LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
101   - -->
  99 + PARENT_NAME LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
  100 + or
  101 + SNO LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
  102 + or
  103 + NUMBER LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
  104 + or
  105 + PARENT_PHONE LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
  106 + or
  107 + KEYPAD_ID LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%')
102 108 )
103 109 </if>
  110 +
  111 + order by sv_student.SNO
104 112 </select>
105 113  
106 114 <!-- 列表 -->
... ... @@ -128,6 +136,7 @@
128 136 <if test="pd.CLASS_ID!= null and pd.CLASS_ID != ''"><!-- 关键词检索 -->
129 137 AND cr.SCLASS_ID = #{pd.CLASS_ID}
130 138 </if>
  139 + order by sv_student.SNO
131 140 </select>
132 141  
133 142 <!-- 列表(全部) -->
... ... @@ -136,6 +145,8 @@
136 145 <include refid="Field"></include>
137 146 from
138 147 <include refid="tableName"></include>
  148 +
  149 + order by sv_student.SNO
139 150 </select>
140 151  
141 152 <!-- 批量删除 -->
... ...
resources/mybatis1/sunvote/TeacherMapper.xml
... ... @@ -139,6 +139,11 @@
139 139 -->
140 140 )
141 141 </if>
  142 +
  143 + <if test="pd.SCHOOL_ID != null and pd.SCHOOL_ID != ''"><!-- 关键词检索 -->
  144 + and
  145 + (SCHOOL_ID = #{pd.SCHOOL_ID})
  146 + </if>
142 147 </select>
143 148  
144 149 <!-- 列表(全部) -->
... ...
src/com/fh/controller/api/V1.java
... ... @@ -9,7 +9,6 @@ import javax.servlet.http.HttpServletRequest;
9 9  
10 10 import org.apache.commons.lang.StringUtils;
11 11 import org.springframework.stereotype.Controller;
12   -import org.springframework.transaction.annotation.Transactional;
13 12 import org.springframework.web.bind.annotation.RequestMapping;
14 13 import org.springframework.web.bind.annotation.ResponseBody;
15 14  
... ... @@ -156,7 +155,7 @@ public class V1 extends BaseController {
156 155 if (!pd.containsKey("ACCOUT")) {
157 156 pd.put("ACCOUT", pd.get("USERNAME"));
158 157 }
159   - if (((pd.containsKey("USERNAME") || pd.containsKey("ACCOUT")) && pd
  158 + if (((pd.containsKey("USERNAME") || (pd.containsKey("ACCOUT") && pd.get("ACCOUT") != null)) && pd
160 159 .containsKey("PASSWORD")) || pd.containsKey("KEYPAD_ID")) {
161 160 PageData pageData = teacherService.getUserInfo(pd);
162 161 if (pageData != null && pageData.getString("ID") != null) {
... ...
src/com/fh/controller/sunvote/classroster/ClassRosterController.java
... ... @@ -118,7 +118,8 @@ public class ClassRosterController extends BaseController {
118 118 pd.put("keywords", keywords.trim());
119 119 }
120 120 page.setPd(pd);
121   -
  121 + List<PageData> classList = sclassService.listAll(pd);
  122 + mv.addObject("classList", classList);
122 123 List<PageData> varList = classrosterService.list(page); //列出ClassRoster列表
123 124 mv.setViewName("sunvote/classroster/classroster_list");
124 125 mv.addObject("varList", varList);
... ...
src/com/fh/controller/sunvote/coursemanagement/CourseManagementController.java
... ... @@ -156,7 +156,8 @@ public class CourseManagementController extends BaseController {
156 156  
157 157 List<PageData> terms = termService.listAll(pd);
158 158 mv.addObject("terms", terms);
159   -
  159 + List<PageData> grades = gradeService.listAll(pd);
  160 + mv.addObject("grades", grades);
160 161 mv.addObject("msg", "save");
161 162 mv.addObject("pd", pd);
162 163 return mv;
... ... @@ -170,13 +171,13 @@ public class CourseManagementController extends BaseController {
170 171 public ModelAndView goEdit()throws Exception{
171 172 ModelAndView mv = this.getModelAndView();
172 173 PageData pd = new PageData();
  174 + List<PageData> classs = sclassService.listAll(pd);
  175 + mv.addObject("classs",classs);
173 176 pd = this.getPageData();
174 177 pd = coursemanagementService.findById(pd); //根据ID读取
175 178 mv.setViewName("sunvote/coursemanagement/coursemanagement_edit");
176 179 List<PageData> teachers = teacherService.listAll(pd);
177 180 mv.addObject("teachers",teachers);
178   - List<PageData> classs = sclassService.listAll(pd);
179   - mv.addObject("classs",classs);
180 181 List<PageData> subjects = subjectService.listAll(pd);
181 182 mv.addObject("subjects", subjects);
182 183 List<PageData> terms = termService.listAll(pd);
... ...
src/com/fh/controller/sunvote/sclass/SClassController.java
... ... @@ -71,6 +71,7 @@ public class SClassController extends BaseController {
71 71 ModelAndView mv = this.getModelAndView();
72 72 PageData pd = new PageData();
73 73 pd = this.getPageData();
  74 + pd.put("ID", get32UUID());
74 75 sclassService.save(pd);
75 76 mv.addObject("msg","success");
76 77 mv.setViewName("save_result");
... ... @@ -127,6 +128,14 @@ public class SClassController extends BaseController {
127 128 page.setPd(pd);
128 129 mv.setViewName("sunvote/sclass/sclass_list");
129 130 List<PageData> varList = sclassService.list(page); //列出SClass列表
  131 + List<PageData> schools = schoolService.listAll(pd);
  132 + mv.addObject("schools",schools);
  133 + List<PageData> basestations = basestationService.listAll(pd);
  134 + mv.addObject("basestations",basestations);
  135 + List<PageData> grades = gradeService.listAll(pd);
  136 + mv.addObject("grades", grades);
  137 + List<PageData> classTypes = classtypeService.listAll(pd);
  138 + mv.addObject("classTypes", classTypes);
130 139 mv.addObject("varList", varList);
131 140 mv.addObject("pd", pd);
132 141 mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
... ...
src/com/fh/controller/sunvote/student/StudentController.java
... ... @@ -16,15 +16,21 @@ import org.springframework.stereotype.Controller;
16 16 import org.springframework.web.bind.WebDataBinder;
17 17 import org.springframework.web.bind.annotation.InitBinder;
18 18 import org.springframework.web.bind.annotation.RequestMapping;
  19 +import org.springframework.web.bind.annotation.RequestParam;
19 20 import org.springframework.web.bind.annotation.ResponseBody;
  21 +import org.springframework.web.multipart.MultipartFile;
20 22 import org.springframework.web.servlet.ModelAndView;
21 23  
22 24 import com.fh.controller.base.BaseController;
23 25 import com.fh.entity.Page;
24 26 import com.fh.util.AppUtil;
  27 +import com.fh.util.Const;
  28 +import com.fh.util.FileUpload;
  29 +import com.fh.util.ObjectExcelRead;
25 30 import com.fh.util.ObjectExcelView;
26 31 import com.fh.util.PageData;
27 32 import com.fh.util.Jurisdiction;
  33 +import com.fh.util.PathUtil;
28 34 import com.fh.util.Tools;
29 35 import com.fh.service.sunvote.classroster.ClassRosterManager;
30 36 import com.fh.service.sunvote.student.StudentManager;
... ... @@ -92,6 +98,78 @@ public class StudentController extends BaseController {
92 98 return mv;
93 99 }
94 100  
  101 +
  102 +
  103 + /**打开上传EXCEL页面
  104 + * @return
  105 + * @throws Exception
  106 + */
  107 + @RequestMapping(value="/goUploadExcel")
  108 + public ModelAndView goUploadExcel()throws Exception{
  109 + ModelAndView mv = this.getModelAndView();
  110 + mv.addObject("pd", getPageData());
  111 + mv.setViewName("sunvote/student/uploadexcel");
  112 + return mv;
  113 + }
  114 +
  115 +
  116 + /**从EXCEL导入到数据库
  117 + * @param file
  118 + * @return
  119 + * @throws Exception
  120 + */
  121 + @RequestMapping(value="/readExcel")
  122 + public ModelAndView readExcel(
  123 + @RequestParam(value="excel",required=false) MultipartFile file
  124 + ) throws Exception{
  125 + logBefore(logger,Jurisdiction.getUsername() + "从EXCEL导入到数据库");
  126 + ModelAndView mv = this.getModelAndView();
  127 + PageData tpd = getPageData();
  128 + PageData pd = new PageData();
  129 + String termID = tpd.getString("TERM_ID");
  130 + String classID = tpd.getString("CLASS_ID");
  131 + if (null != file && !file.isEmpty()) {
  132 + String filePath = PathUtil.getClasspath() + Const.FILEPATHFILE; //文件上传路径
  133 + String fileName = FileUpload.fileUp(file, filePath, "userexcel"); //执行上传
  134 + List<PageData> listPd = (List)ObjectExcelRead.readExcel(filePath, fileName, 0, 0, 0); //执行读EXCEL操作,读出的数据导入List 2:从第3行开始;0:从第A列开始;0:第0个sheet
  135 + if(listPd.size() > 0 ){
  136 + pd= listPd.get(0);
  137 + for(int i = 1 ; i < listPd.size();i++){
  138 + PageData savePd = new PageData();
  139 + PageData temp = listPd.get(i);
  140 + for(int j = 0 ; ;j++){
  141 + if(temp.get("var" + j) == null){
  142 + break ;
  143 + }
  144 + savePd.put(pd.getString("var" + j).toUpperCase(), temp.get("var" + j));
  145 + }
  146 + if(!savePd.containsKey("ID")){
  147 + String studentId = this.get32UUID();
  148 + savePd.put("ID", studentId);
  149 + studentService.save(savePd);
  150 +
  151 +
  152 + if (classID != null && termID != null) {
  153 + savePd.put("STUDENT_ID", studentId);
  154 + savePd.put("CLASSROSTER_ID", get32UUID());
  155 + savePd.put("TEAMID", termID);
  156 + savePd.put("SCLASS_ID", classID);
  157 + classrosterService.save(savePd);
  158 + }
  159 +
  160 + }else{
  161 + studentService.edit(savePd);
  162 + }
  163 + }
  164 +
  165 + }
  166 + }
  167 + mv.addObject("msg","success");
  168 + mv.setViewName("save_result");
  169 + return mv;
  170 + }
  171 +
  172 +
95 173 /**删除
96 174 * @param out
97 175 * @throws Exception
... ... @@ -103,6 +181,8 @@ public class StudentController extends BaseController {
103 181 PageData pd = new PageData();
104 182 pd = this.getPageData();
105 183 studentService.delete(pd);
  184 + pd.put("STUDENT_ID", pd.get("ID"));
  185 + classrosterService.delete(pd);
106 186 out.write("success");
107 187 out.close();
108 188 }
... ... @@ -135,7 +215,7 @@ public class StudentController extends BaseController {
135 215 ModelAndView mv = this.getModelAndView();
136 216 PageData pd = new PageData();
137 217 pd = this.getPageData();
138   - String keywords = pd.getString("keywords"); //关键词检索条件
  218 + String keywords = pd.getString("KEYWORDS"); //关键词检索条件
139 219 if(null != keywords && !"".equals(keywords)){
140 220 pd.put("keywords", keywords.trim());
141 221 }
... ... @@ -247,6 +327,7 @@ public class StudentController extends BaseController {
247 327 if(null != DATA_IDS && !"".equals(DATA_IDS)){
248 328 String ArrayDATA_IDS[] = DATA_IDS.split(",");
249 329 studentService.deleteAll(ArrayDATA_IDS);
  330 + classrosterService.deleteAllByStudentID(ArrayDATA_IDS);
250 331 pd.put("msg", "ok");
251 332 }else{
252 333 pd.put("msg", "no");
... ...
src/com/fh/controller/sunvote/teacher/TeacherController.java
... ... @@ -141,6 +141,10 @@ public class TeacherController extends BaseController {
141 141 List<PageData> varList = teacherService.list(page); //列出Teacher列表
142 142 mv.setViewName("sunvote/teacher/teacher_list");
143 143 mv.addObject("varList", varList);
  144 +
  145 + List<PageData> schools = schoolService.listAll(pd);
  146 + mv.addObject("schools",schools);
  147 +
144 148 mv.addObject("pd", pd);
145 149 mv.addObject("QX",Jurisdiction.getHC()); //按钮权限
146 150 return mv;
... ...
src/com/fh/service/sunvote/classroster/ClassRosterManager.java
1 1 package com.fh.service.sunvote.classroster;
2 2  
3 3 import java.util.List;
  4 +
4 5 import com.fh.entity.Page;
5 6 import com.fh.util.PageData;
6 7  
... ... @@ -53,5 +54,8 @@ public interface ClassRosterManager{
53 54 */
54 55 public void deleteAll(String[] ArrayDATA_IDS)throws Exception;
55 56  
  57 +
  58 + public void deleteAllByStudentID(String[] ArrayDATA_IDS)throws Exception;
  59 +
56 60 }
57 61  
... ...
src/com/fh/service/sunvote/classroster/impl/ClassRosterService.java
... ... @@ -77,5 +77,13 @@ public class ClassRosterService implements ClassRosterManager{
77 77 dao.delete("ClassRosterMapper.deleteAll", ArrayDATA_IDS);
78 78 }
79 79  
  80 + /**批量删除
  81 + * @param ArrayDATA_IDS
  82 + * @throws Exception
  83 + */
  84 + public void deleteAllByStudentID(String[] ArrayDATA_IDS)throws Exception{
  85 + dao.delete("ClassRosterMapper.deleteAllByStudentID", ArrayDATA_IDS);
  86 + }
  87 +
80 88 }
81 89  
... ...