diff --git a/WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_list.jsp index d6b7e11..4abe0e7 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/classroster/classroster_list.jsp @@ -34,22 +34,13 @@
- - - diff --git a/WebRoot/WEB-INF/jsp/sunvote/classtype/classtype_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/classtype/classtype_list.jsp index bdb440a..348eacb 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/classtype/classtype_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/classtype/classtype_list.jsp @@ -33,27 +33,6 @@
- - - - - + + +
- - - - - - -
- - - -
diff --git a/WebRoot/WEB-INF/jsp/sunvote/grade/grade_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/grade/grade_list.jsp index 10bd127..7447145 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/grade/grade_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/grade/grade_list.jsp @@ -33,27 +33,6 @@ - - - - - - -
- - - -
diff --git a/WebRoot/WEB-INF/jsp/sunvote/school/school_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/school/school_list.jsp index e6773ca..8f6987a 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/school/school_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/school/school_list.jsp @@ -33,27 +33,6 @@ - - - - - - -
- - - -
diff --git a/WebRoot/WEB-INF/jsp/sunvote/sclass/sclass_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/sclass/sclass_list.jsp index ab1af37..da1a05e 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/sclass/sclass_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/sclass/sclass_list.jsp @@ -35,22 +35,31 @@ - + - - diff --git a/WebRoot/WEB-INF/jsp/sunvote/student/student_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/student/student_list.jsp index dea248e..aac61f3 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/student/student_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/student/student_list.jsp @@ -41,16 +41,7 @@ - - - + diff --git a/WebRoot/WEB-INF/jsp/sunvote/student/student_list2.jsp b/WebRoot/WEB-INF/jsp/sunvote/student/student_list2.jsp index bf8e5a0..78299d0 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/student/student_list2.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/student/student_list2.jsp @@ -102,6 +102,7 @@ @@ -220,6 +221,28 @@ diag.show(); } + function upload(){ + top.jzts(); + var diag = new top.Dialog(); + diag.Drag=true; + diag.Title ="EXCEL导入学生名单"; + diag.URL = '<%=basePath%>student/goUploadExcel.do?class_id=${pd.CLASS_ID}&term_id=${pd.TERM_ID}'; + diag.Width = 300; + diag.Height = 150; + diag.CancelEvent = function(){ //关闭事件 + if(diag.innerFrame.contentWindow.document.getElementById('zhongxin').style.display == 'none'){ + if('${page.currentPage}' == '0'){ + top.jzts(); + setTimeout("self.location.reload()",100); + }else{ + nextPage(${page.currentPage}); + } + } + diag.close(); + }; + diag.show(); + } + //删除 function del(Id){ bootbox.confirm("确定要删除吗?", function(result) { diff --git a/WebRoot/WEB-INF/jsp/sunvote/subject/subject_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/subject/subject_list.jsp index d5f0147..358743e 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/subject/subject_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/subject/subject_list.jsp @@ -33,27 +33,7 @@
- + + + + - - - + + + - -
新增 + 批量上传
- - - - - - - +
- - - -
diff --git a/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_list.jsp index d561a53..cf0a7a8 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_list.jsp @@ -34,22 +34,13 @@ - - - - diff --git a/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp b/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp index cfb42eb..5ad0973 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/teacher/teacher_main.jsp @@ -94,7 +94,7 @@
测验
diff --git a/WebRoot/WEB-INF/jsp/sunvote/teachingmaterial/teachingmaterial_list.jsp b/WebRoot/WEB-INF/jsp/sunvote/teachingmaterial/teachingmaterial_list.jsp index 816ef28..36e7bb0 100644 --- a/WebRoot/WEB-INF/jsp/sunvote/teachingmaterial/teachingmaterial_list.jsp +++ b/WebRoot/WEB-INF/jsp/sunvote/teachingmaterial/teachingmaterial_list.jsp @@ -34,27 +34,6 @@
- - - +
- - - - - - -
- - - -
diff --git a/WebRoot/afterService/gsdt_info.html b/WebRoot/afterService/gsdt_info.html index c5ac6fb..7da7f3c 100644 --- a/WebRoot/afterService/gsdt_info.html +++ b/WebRoot/afterService/gsdt_info.html @@ -35,16 +35,16 @@
-
-
+
@@ -125,67 +125,48 @@
- - -

R-接收标志

-

键盘接收到基站发送的指令时显示。用于判断键盘是否进入反馈状态。

-

T-发送标志

-

键盘提交数据给基站时显示,用于判断键盘是否发送了数据。

-

OK-发送成功标志

-

基站收到键盘发送的数据时显示,用于判断键盘数据是否发送成功。

+
  • 问题现象1:无法开机

    -

    可能键盘没有电导致,更换电池后再次尝试是否可以开机。若更换电池后仍无法开机,请联系技术支持。

    +

    可能答题器没有电导致,更换电池后再次尝试是否可以开机。若更换电池后仍无法开机,请联系技术支持。

  • 问题现象2:无信号

    -

    确认基站连接成功后,键盘仍显示无信号,可能是未进行配对导致。使用配对工具SunVote Match Tool V1.0.0.1配对后再尝试。开启配对后,S52Plus同时按住配对键“”和“”,直到键盘屏幕上有数字滚动。若无法配对,请参考问题“5.为什么答题器无法与基站配对成功”

    +

    确认基站连接成功后,答题器仍显示未连接,可能是未与基站绑定导致。请尝试重新绑定。”

  • -

    问题现象3:有信号,无法进入反馈(不显示R)

    -

    ① 所有键盘无法进入反馈,可能是基站未开始反馈。确保基站连接成功,并且已经进入答题状态。

    -

    ② 个别键盘无法进入反馈,可能是受到其他基站干扰。确保周围没有相邻频点基站或免配对基站正在使用。可把当前基站拔了,确认答题器上是否仍然有信号,如果有信号,可确认该答题器与其他基站匹配了。可将该答题器与基站重新配对。

    +

    问题现象3:为什么我的答题按A(或其他键)显示已发送,再按其他按键无反应

    +

    可能是由于信号不好导致按键值未传成功。干扰信号的因素:2.4G 设备,信号屏蔽仪, 同频点或免配对基站,人或其他物体的阻挡。避免信号干扰的方法如下:

    +

    ① 确保附近没有其他基站干扰,排除同频点及开启免赔对基站的干扰。

    +

    ② 确保答题器和基站之间没有障碍物阻挡,基站尽量放高,禁止放在铁制盒子/柜子中。

    +

    ③ 确保未开启信号屏蔽

    +

    ④ 选择合适的工作频点,与周围的正在使用的基站频点尽可能隔开 4 个频点(经验值)。

    +

    若排除以上因素,可以让学生原地晃动下答题器,尝试是否可以提交。

    +

    ❖ 同频点的干扰可以通过基站的指示灯排查,再无答题数据上传时,基站 2 个灯闪烁, 即表示当前有相同频点的干扰,请更改当前基站的频点

  • -

    问题现象4:进入反馈(显示R),无法提交(不显示OK),或提交慢

    -

    可能是由于信号不好导致,干扰信号的因素:2.4G设备,信号屏蔽仪,同频点或免配对基站,人或其他物体的阻挡。避免信号干扰的方法如下:

    -

    ① 确保附近没有其他基站干扰

    -

    ② 确保键盘和基站之间没有障碍物阻挡

    -

    ③ 确保未开启信号屏蔽议

    -

    ④ 尝试更换频道,一般情况下频道1和7效果会较好。

    -

    可能是按键磨损导致按键不灵。观察按键上的文字是否脱落,是否能看到答题器的线路板(示例如下)。如果确定按键有磨损,可将异常产品数量统计,并联系厂家技术支持安排售后处理。

    - +

    问题现象4:什么情况下耗电快?

    +

    ❖ 离线开机 离线开机时,答题器需要搜索基站,无线模块一直处于发射信号中,耗电比正常工作 时要大很多。

    +

    ❖ 保管不当 装有电池的答题器,宜要存放在干燥通风的地方。温差太大或者太潮湿的环境都不 适宜存放

  • -

    问题现象5:为什么键盘有时需按Send键提交,有时候自动提交?

    -

    基站的提交模式决定

    -

    基站支持自动提交和按键提交两种提交模式,设置成自动提交时,单选、判断输入选项后即可自动提交。多选、排序、数字类型的题目,不支持自动提交模式,需要按Send键提交。出厂默认为自动提交模式。

    +

    问题现象5:为什么只用了几天,电量就显示只有1格/空格?

    +

    ❖ 答题器离线时,由于功率较大,因此电量显示会被拉低。因此请插上基站后,答题器 显示已连接后,等待1分钟左右,再观察电量情况。以此时的电量为准。

    +

    ❖ 若答题器屏幕显示Low battery,则无论是在离线或者在线,都需要更换电池。

  • -

    问题现象6:什么情况下耗电快?

    -

    离线开机

    -

    离线开机时,键盘需要搜索基站,无线模块一直处于发射信号中,耗电比正常工作时要大很多。

    -

    保管不当

    -

    装有电池的键盘,宜要存放在干燥通风的地方。温差太大或者太潮湿的环境都不适宜存放。

    +

    问题现象6:如何单独保管电池?

    +

    ❖ 电池单独存放时,须存放在厂家发货的托盘中,禁止堆积存放,否则放电极快造成电 池发热,甚至可能会引起电池破裂或起火的危险 。

    +

    ❖ 电池宜存放在阴凉通风的地方,禁止在太阳下暴晒。温差太大或者太潮湿的环境都 不适宜存放。

  • -

    问题现象7:如何单独保管电池?

    -

    电池单独存放时,须存放在厂家发货的托盘中,禁止堆积存放,否则放电极快造成电池发热,甚至可能会引起电池破裂或起火的危险 。

    -

    电池宜存放在阴凉通风的地方,禁止在太阳下暴晒。温差太大或者太潮湿的环境都不适宜存放。

    -
  • -
  • -

    问题现象8:为什么答题器无法与基站配对成功?

    -

    在确认配对工具版本(SunVote Match Tool V1.0.0.1)正常,且其他答题器可正常配对的情况下,可能是由于基站和答题器的频点范围不一致造成的。基站是80个频点的版本,答题器是32个频点的版本。基站的频点设置超过了32,因此答题器无法与基站匹配。

    -

    如何确认这个问题:

    -

    ① 检查基站的频点是否超过了32

    -

    ② 检查答题器配对时,是否频点数字跳动到32后,就再次重1开始。

    -

    如果确定是由于该原因导致,可以将旧版本的答题器发回升级。或者将基站的频点更改为32以内范围。

    -

    排除频点范围的原因,可用多只答题器作对比测试,同样的基站,同样的软件,同时操作,仅特定的某只答题器无法配对,可能是答题的版本

    +

    问题现象7:如何选择电池品牌?

    +

    ❖ S56适配的电池型号是CR2032,在超市或者网上都可以购买。选择电池品牌时,尽 量选择大品牌的电池。推荐使用进口松下电池。

  • @@ -218,13 +199,13 @@ require(['city.select'], function ($) { $(function () { - $('#province, #city').citylist({ + /* $('#province, #city').citylist({ data : data, id : 'id', children: 'cities', name : 'name', metaTag : 'name' - }); + }); */ $('#all').citylist({ data : data, @@ -255,7 +236,7 @@ //$("#model").html(model); switch(model){ - case "dtq":$("#model_pic").attr("src","images/u30.png");$(".qaList").css("display","block");break; + case "dtq":$("#model_pic").attr("src","images/gsu30.png");$(".qaList").css("display","block");break; default:break; } @@ -330,7 +311,7 @@ var data={ SCHOOL_ADDRESS1:$("#province").val(), - SCHOOL_ADDRESS2:$("#city").val(), + /* SCHOOL_ADDRESS2:$("#city").val(), */ CONTACT_PHONE:$("#name").val(), PHONE_CONTACT:$("#tel").val(), PRODUCT_SEQ:$("#sn").val(), diff --git a/WebRoot/afterService/gsindex.html b/WebRoot/afterService/gsindex.html index 8f10d4a..d7a6164 100644 --- a/WebRoot/afterService/gsindex.html +++ b/WebRoot/afterService/gsindex.html @@ -105,9 +105,9 @@ diff --git a/WebRoot/afterService/gsinfo.html b/WebRoot/afterService/gsinfo.html index 65070da..9817863 100644 --- a/WebRoot/afterService/gsinfo.html +++ b/WebRoot/afterService/gsinfo.html @@ -35,16 +35,16 @@
    -
    -
    +
    @@ -128,11 +128,8 @@
  • 问题现象2:连接指示灯慢闪(1秒一次),软件显示连接断开

    -

    ① 请检查答题系统的版本是否为互动课堂 2.12.1或更高版本。Match Tool的版本是否为1.0.0.1。配对工具手册及下载地址:https://shimo.im/doc/95gSPuzB1zM7bFRc

    -

    ② 确认基站驱动是否正常,打开设备管理器,驱动正常时,插上基站时 “人体学输入设备”会添加一个“USB输入设备”

    - - - +

    慢闪表示基站与电脑已经成功, 请联系软件运维人员检查软件是否正常连接

    +
  • 问题现象3:连接指示灯快闪(1秒多次),软件显示连接断开

    @@ -213,13 +210,13 @@ PS:建议老师使用手动连接的方式,不要选择自动连接。

    require(['city.select'], function ($) { $(function () { - $('#province, #city').citylist({ + /* $('#province, #city').citylist({ data : data, id : 'id', children: 'cities', name : 'name', metaTag : 'name' - }); + }); */ $('#all').citylist({ data : data, @@ -327,7 +324,7 @@ PS:建议老师使用手动连接的方式,不要选择自动连接。

    var data={ SCHOOL_ADDRESS1:$("#province").val(), - SCHOOL_ADDRESS2:$("#city").val(), + /* SCHOOL_ADDRESS2:$("#city").val(), */ CONTACT_PHONE:$("#name").val(), PHONE_CONTACT:$("#tel").val(), PRODUCT_SEQ:$("#sn").val(), diff --git a/WebRoot/afterService/gsparts2_info.html b/WebRoot/afterService/gsparts2_info.html index 9e4fdfe..7d3efbf 100644 --- a/WebRoot/afterService/gsparts2_info.html +++ b/WebRoot/afterService/gsparts2_info.html @@ -35,16 +35,18 @@
    -
    -
    +
    @@ -112,13 +114,13 @@ require(['city.select'], function ($) { $(function () { - $('#province, #city').citylist({ + /* $('#province, #city').citylist({ data : data, id : 'id', children: 'cities', name : 'name', metaTag : 'name' - }); + }); */ $('#all').citylist({ data : data, @@ -228,7 +230,7 @@ var data={ SCHOOL_ADDRESS1:$("#province").val(), - SCHOOL_ADDRESS2:$("#city").val(), + /* SCHOOL_ADDRESS2:$("#city").val(), */ CONTACT_PHONE:$("#name").val(), PHONE_CONTACT:$("#tel").val(), //PRODUCT_SEQ:$("#sn").val(), diff --git a/WebRoot/afterService/gsparts_info.html b/WebRoot/afterService/gsparts_info.html index 1870651..f2ba46b 100644 --- a/WebRoot/afterService/gsparts_info.html +++ b/WebRoot/afterService/gsparts_info.html @@ -35,16 +35,18 @@
    -
    -
    +
    @@ -116,14 +118,14 @@ require(['city.select'], function ($) { $(function () { - $('#province, #city').citylist({ + /* $('#province, #city').citylist({ data : data, id : 'id', children: 'cities', name : 'name', metaTag : 'name' }); - + */ $('#all').citylist({ data : data, id : 'id', @@ -229,7 +231,7 @@ var data={ SCHOOL_ADDRESS1:$("#province").val(), - SCHOOL_ADDRESS2:$("#city").val(), + /* SCHOOL_ADDRESS2:$("#city").val(), */ CONTACT_PHONE:$("#name").val(), PHONE_CONTACT:$("#tel").val(), //PRODUCT_SEQ:$("#sn").val(), diff --git a/resources/mybatis1/api/V1Mapper.xml b/resources/mybatis1/api/V1Mapper.xml index ab9c9c5..b6c8968 100644 --- a/resources/mybatis1/api/V1Mapper.xml +++ b/resources/mybatis1/api/V1Mapper.xml @@ -28,6 +28,7 @@ sv_term.START_DATE < NOW() AND sv_term.END_DATE > NOW() AND TEACHER_ID = #{TEACHER_ID} + group by SUBJECT_ID diff --git a/resources/mybatis1/sunvote/ClassRosterMapper.xml b/resources/mybatis1/sunvote/ClassRosterMapper.xml index 483d1e6..4f25895 100644 --- a/resources/mybatis1/sunvote/ClassRosterMapper.xml +++ b/resources/mybatis1/sunvote/ClassRosterMapper.xml @@ -38,8 +38,22 @@ delete from - where - CLASSROSTER_ID = #{CLASSROSTER_ID} + where 1 != 1 + + or CLASSROSTER_ID = #{CLASSROSTER_ID} + + + + or SCLASS_ID = #{SCLASS_ID} + + + + or STUDENT_ID = #{STUDENT_ID} + + + or TEAMID = #{TEAMID} + + @@ -82,6 +96,12 @@ --> ) + + and + ( + SCLASS_ID = #{pd.SCLASS_ID} + ) + @@ -102,6 +122,16 @@ #{item} + + + delete from + + where + STUDENT_ID in + + #{item} + + \ No newline at end of file diff --git a/resources/mybatis1/sunvote/SClassMapper.xml b/resources/mybatis1/sunvote/SClassMapper.xml index 800e26b..224dc68 100644 --- a/resources/mybatis1/sunvote/SClassMapper.xml +++ b/resources/mybatis1/sunvote/SClassMapper.xml @@ -39,6 +39,7 @@ CLASS_TYPE, CLASS_NAME, CLASS_CODE, + ID, BASESTATION_ID ) values ( #{SCHOOL_ID}, @@ -46,6 +47,7 @@ #{CLASS_TYPE}, #{CLASS_NAME}, #{CLASS_CODE}, + #{ID}, #{BASESTATION_ID} ) @@ -90,16 +92,16 @@ from - where 1=1 - - and ( SCHOOL_ID = #{SCHOOL_ID} ) - - - and ( GRADE_ID = #{GRADE_ID} ) - - - and ( CLASS_TYPE = #{CLASS_TYPE} ) - + where 1 = 1 + + and ( SCHOOL_ID = #{pd.SCHOOL_ID} ) + + + and ( GRADE_ID = #{pd.GRADE_ID} ) + + + and ( CLASS_TYPE = #{pd.CLASS_TYPE} ) + diff --git a/resources/mybatis1/sunvote/StudentMapper.xml b/resources/mybatis1/sunvote/StudentMapper.xml index 745d4db..6ed2fd2 100644 --- a/resources/mybatis1/sunvote/StudentMapper.xml +++ b/resources/mybatis1/sunvote/StudentMapper.xml @@ -94,13 +94,21 @@ and ( - + PARENT_NAME LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') + or + SNO LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') + or + NUMBER LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') + or + PARENT_PHONE LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') + or + KEYPAD_ID LIKE CONCAT(CONCAT('%', #{pd.keywords}),'%') ) + + order by sv_student.SNO @@ -128,6 +136,7 @@ AND cr.SCLASS_ID = #{pd.CLASS_ID} + order by sv_student.SNO @@ -136,6 +145,8 @@ from + + order by sv_student.SNO diff --git a/resources/mybatis1/sunvote/TeacherMapper.xml b/resources/mybatis1/sunvote/TeacherMapper.xml index 182617d..adf4cd1 100644 --- a/resources/mybatis1/sunvote/TeacherMapper.xml +++ b/resources/mybatis1/sunvote/TeacherMapper.xml @@ -139,6 +139,11 @@ --> ) + + + and + (SCHOOL_ID = #{pd.SCHOOL_ID}) + diff --git a/src/com/fh/controller/api/V1.java b/src/com/fh/controller/api/V1.java index 4b73660..c8de181 100644 --- a/src/com/fh/controller/api/V1.java +++ b/src/com/fh/controller/api/V1.java @@ -9,7 +9,6 @@ import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Controller; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @@ -156,7 +155,7 @@ public class V1 extends BaseController { if (!pd.containsKey("ACCOUT")) { pd.put("ACCOUT", pd.get("USERNAME")); } - if (((pd.containsKey("USERNAME") || pd.containsKey("ACCOUT")) && pd + if (((pd.containsKey("USERNAME") || (pd.containsKey("ACCOUT") && pd.get("ACCOUT") != null)) && pd .containsKey("PASSWORD")) || pd.containsKey("KEYPAD_ID")) { PageData pageData = teacherService.getUserInfo(pd); if (pageData != null && pageData.getString("ID") != null) { diff --git a/src/com/fh/controller/sunvote/classroster/ClassRosterController.java b/src/com/fh/controller/sunvote/classroster/ClassRosterController.java index a94e73e..d44899b 100644 --- a/src/com/fh/controller/sunvote/classroster/ClassRosterController.java +++ b/src/com/fh/controller/sunvote/classroster/ClassRosterController.java @@ -118,7 +118,8 @@ public class ClassRosterController extends BaseController { pd.put("keywords", keywords.trim()); } page.setPd(pd); - + List classList = sclassService.listAll(pd); + mv.addObject("classList", classList); List varList = classrosterService.list(page); //列出ClassRoster列表 mv.setViewName("sunvote/classroster/classroster_list"); mv.addObject("varList", varList); diff --git a/src/com/fh/controller/sunvote/coursemanagement/CourseManagementController.java b/src/com/fh/controller/sunvote/coursemanagement/CourseManagementController.java index 142597d..f54af4e 100644 --- a/src/com/fh/controller/sunvote/coursemanagement/CourseManagementController.java +++ b/src/com/fh/controller/sunvote/coursemanagement/CourseManagementController.java @@ -156,7 +156,8 @@ public class CourseManagementController extends BaseController { List terms = termService.listAll(pd); mv.addObject("terms", terms); - + List grades = gradeService.listAll(pd); + mv.addObject("grades", grades); mv.addObject("msg", "save"); mv.addObject("pd", pd); return mv; @@ -170,13 +171,13 @@ public class CourseManagementController extends BaseController { public ModelAndView goEdit()throws Exception{ ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); + List classs = sclassService.listAll(pd); + mv.addObject("classs",classs); pd = this.getPageData(); pd = coursemanagementService.findById(pd); //根据ID读取 mv.setViewName("sunvote/coursemanagement/coursemanagement_edit"); List teachers = teacherService.listAll(pd); mv.addObject("teachers",teachers); - List classs = sclassService.listAll(pd); - mv.addObject("classs",classs); List subjects = subjectService.listAll(pd); mv.addObject("subjects", subjects); List terms = termService.listAll(pd); diff --git a/src/com/fh/controller/sunvote/sclass/SClassController.java b/src/com/fh/controller/sunvote/sclass/SClassController.java index 8adc769..9f31e6b 100644 --- a/src/com/fh/controller/sunvote/sclass/SClassController.java +++ b/src/com/fh/controller/sunvote/sclass/SClassController.java @@ -71,6 +71,7 @@ public class SClassController extends BaseController { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); + pd.put("ID", get32UUID()); sclassService.save(pd); mv.addObject("msg","success"); mv.setViewName("save_result"); @@ -127,6 +128,14 @@ public class SClassController extends BaseController { page.setPd(pd); mv.setViewName("sunvote/sclass/sclass_list"); List varList = sclassService.list(page); //列出SClass列表 + List schools = schoolService.listAll(pd); + mv.addObject("schools",schools); + List basestations = basestationService.listAll(pd); + mv.addObject("basestations",basestations); + List grades = gradeService.listAll(pd); + mv.addObject("grades", grades); + List classTypes = classtypeService.listAll(pd); + mv.addObject("classTypes", classTypes); mv.addObject("varList", varList); mv.addObject("pd", pd); mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 diff --git a/src/com/fh/controller/sunvote/student/StudentController.java b/src/com/fh/controller/sunvote/student/StudentController.java index a5880a3..8262ea7 100644 --- a/src/com/fh/controller/sunvote/student/StudentController.java +++ b/src/com/fh/controller/sunvote/student/StudentController.java @@ -16,15 +16,21 @@ 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.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.multipart.MultipartFile; import org.springframework.web.servlet.ModelAndView; import com.fh.controller.base.BaseController; import com.fh.entity.Page; import com.fh.util.AppUtil; +import com.fh.util.Const; +import com.fh.util.FileUpload; +import com.fh.util.ObjectExcelRead; import com.fh.util.ObjectExcelView; import com.fh.util.PageData; import com.fh.util.Jurisdiction; +import com.fh.util.PathUtil; import com.fh.util.Tools; import com.fh.service.sunvote.classroster.ClassRosterManager; import com.fh.service.sunvote.student.StudentManager; @@ -92,6 +98,78 @@ public class StudentController extends BaseController { return mv; } + + + /**打开上传EXCEL页面 + * @return + * @throws Exception + */ + @RequestMapping(value="/goUploadExcel") + public ModelAndView goUploadExcel()throws Exception{ + ModelAndView mv = this.getModelAndView(); + mv.addObject("pd", getPageData()); + mv.setViewName("sunvote/student/uploadexcel"); + return mv; + } + + + /**从EXCEL导入到数据库 + * @param file + * @return + * @throws Exception + */ + @RequestMapping(value="/readExcel") + public ModelAndView readExcel( + @RequestParam(value="excel",required=false) MultipartFile file + ) throws Exception{ + logBefore(logger,Jurisdiction.getUsername() + "从EXCEL导入到数据库"); + ModelAndView mv = this.getModelAndView(); + PageData tpd = getPageData(); + PageData pd = new PageData(); + String termID = tpd.getString("TERM_ID"); + String classID = tpd.getString("CLASS_ID"); + if (null != file && !file.isEmpty()) { + String filePath = PathUtil.getClasspath() + Const.FILEPATHFILE; //文件上传路径 + String fileName = FileUpload.fileUp(file, filePath, "userexcel"); //执行上传 + List listPd = (List)ObjectExcelRead.readExcel(filePath, fileName, 0, 0, 0); //执行读EXCEL操作,读出的数据导入List 2:从第3行开始;0:从第A列开始;0:第0个sheet + if(listPd.size() > 0 ){ + pd= listPd.get(0); + for(int i = 1 ; i < listPd.size();i++){ + PageData savePd = new PageData(); + PageData temp = listPd.get(i); + for(int j = 0 ; ;j++){ + if(temp.get("var" + j) == null){ + break ; + } + savePd.put(pd.getString("var" + j).toUpperCase(), temp.get("var" + j)); + } + if(!savePd.containsKey("ID")){ + String studentId = this.get32UUID(); + savePd.put("ID", studentId); + studentService.save(savePd); + + + if (classID != null && termID != null) { + savePd.put("STUDENT_ID", studentId); + savePd.put("CLASSROSTER_ID", get32UUID()); + savePd.put("TEAMID", termID); + savePd.put("SCLASS_ID", classID); + classrosterService.save(savePd); + } + + }else{ + studentService.edit(savePd); + } + } + + } + } + mv.addObject("msg","success"); + mv.setViewName("save_result"); + return mv; + } + + /**删除 * @param out * @throws Exception @@ -103,6 +181,8 @@ public class StudentController extends BaseController { PageData pd = new PageData(); pd = this.getPageData(); studentService.delete(pd); + pd.put("STUDENT_ID", pd.get("ID")); + classrosterService.delete(pd); out.write("success"); out.close(); } @@ -135,7 +215,7 @@ public class StudentController extends BaseController { ModelAndView mv = this.getModelAndView(); PageData pd = new PageData(); pd = this.getPageData(); - String keywords = pd.getString("keywords"); //关键词检索条件 + String keywords = pd.getString("KEYWORDS"); //关键词检索条件 if(null != keywords && !"".equals(keywords)){ pd.put("keywords", keywords.trim()); } @@ -247,6 +327,7 @@ public class StudentController extends BaseController { if(null != DATA_IDS && !"".equals(DATA_IDS)){ String ArrayDATA_IDS[] = DATA_IDS.split(","); studentService.deleteAll(ArrayDATA_IDS); + classrosterService.deleteAllByStudentID(ArrayDATA_IDS); pd.put("msg", "ok"); }else{ pd.put("msg", "no"); diff --git a/src/com/fh/controller/sunvote/teacher/TeacherController.java b/src/com/fh/controller/sunvote/teacher/TeacherController.java index 32bc365..a8732ec 100644 --- a/src/com/fh/controller/sunvote/teacher/TeacherController.java +++ b/src/com/fh/controller/sunvote/teacher/TeacherController.java @@ -141,6 +141,10 @@ public class TeacherController extends BaseController { List varList = teacherService.list(page); //列出Teacher列表 mv.setViewName("sunvote/teacher/teacher_list"); mv.addObject("varList", varList); + + List schools = schoolService.listAll(pd); + mv.addObject("schools",schools); + mv.addObject("pd", pd); mv.addObject("QX",Jurisdiction.getHC()); //按钮权限 return mv; diff --git a/src/com/fh/service/sunvote/classroster/ClassRosterManager.java b/src/com/fh/service/sunvote/classroster/ClassRosterManager.java index 1babf5b..8bac613 100644 --- a/src/com/fh/service/sunvote/classroster/ClassRosterManager.java +++ b/src/com/fh/service/sunvote/classroster/ClassRosterManager.java @@ -1,6 +1,7 @@ package com.fh.service.sunvote.classroster; import java.util.List; + import com.fh.entity.Page; import com.fh.util.PageData; @@ -53,5 +54,8 @@ public interface ClassRosterManager{ */ public void deleteAll(String[] ArrayDATA_IDS)throws Exception; + + public void deleteAllByStudentID(String[] ArrayDATA_IDS)throws Exception; + } diff --git a/src/com/fh/service/sunvote/classroster/impl/ClassRosterService.java b/src/com/fh/service/sunvote/classroster/impl/ClassRosterService.java index 72e0f4a..0045326 100644 --- a/src/com/fh/service/sunvote/classroster/impl/ClassRosterService.java +++ b/src/com/fh/service/sunvote/classroster/impl/ClassRosterService.java @@ -77,5 +77,13 @@ public class ClassRosterService implements ClassRosterManager{ dao.delete("ClassRosterMapper.deleteAll", ArrayDATA_IDS); } + /**批量删除 + * @param ArrayDATA_IDS + * @throws Exception + */ + public void deleteAllByStudentID(String[] ArrayDATA_IDS)throws Exception{ + dao.delete("ClassRosterMapper.deleteAllByStudentID", ArrayDATA_IDS); + } + }