# SEWM **Repository Path**: bwhyman/SEWM ## Basic Information - **Project Name**: SEWM - **Description**: 专业管理系统,监考分配系统 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2022-02-24 - **Last Updated**: 2024-01-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SEWM 2017.10.14 ------------------------- 整合eclipse maven + git 更新至Spring 5.0.0.RC3, Hibernate 5.2.10, dbcp2 ----------------------------------------- entitymanager 删除问题 使用标签定义页面base 修复监考日期匹配表达式 修复当时间、地点等为空时监考表格读取错误,置为空字符串,是否应抛异常? 配置sessionfactory使用packagesToScan属性自动扫描entity,不必在hibernate中配置实体类 移植到JPA使用Hibernate 5.2.8作为provider 由从JPA传回来Hibernate,简直是噩梦! 脱管状态对象不能直接删除,必须merge()到持久化状态,莫名其妙的无法直接删除many端对象,却没有任何异常 2017.02.05 ------------------------------ Bug Improvement New Feature 完成学期基点日期设置,不同组使用相同日期,因此由超级管理员设置 Refactoring 基于LocalDateTime重写学期周数计算 基于Excel表格重写用户初始化数据 重写抽象静态页面请求 <取消> 取消抽象静态页面的实现,不利于权限控制 静态资源请求由web容器负责 静态资源处理修改影响自定义错误页面,取消自定义错误页面,反正也不好看 取消Service层抽象类设计,仅影响1个方法的实现 MVC参数类型转换异常显示400错误 全局Throwable异常处理为显示404错误 使用Controller类与方法级自定义注释+拦截器+反射完成请求权限验证,反射自定义注释速度比想象中快,在50k纳秒以内 超权限请求返还404错误 整合登录验证/权限验证 自定义标签实现EL表达式对类中常量的调用 <取消保留> 自定义标签实现页面权限内容显示,由后台标签实现获取用户权限并验证,无需页面调用用户权限 base模板已引入权限类,为什么页面也需要引入呢?? EL3.0支获导入类及类中静态常量,使用JSP import引入后也可直接在EL中使用 需web服务器支持,Tomcat8支持EL3.0,但Tomcat(8.09)不支持,Tomcat(8.41)支持 配置servlet,去除JSP编译后的空行,查看页面源码时更紧凑 Task 基于Junit4+Spring Test(4.2.1)完成整合测试 2017.01.27 ---------------------------- Bug 修复导入课表异常被捕获没有抛出错误 修复导入课表不同周相同星期相同节的多次课程,第二个课程课次的统计错误,集合创建位置错误,原bug不影响授课时间的读取与保存 仅基于ID重写hashcode()是错误的,对entity是否相同的判断较复杂,即使@NaturalId相同,无法判断是新数据还是旧数据 如果对象被修改,相同对象基于属性生成的hashcode值不同 最好基于具体业务逻辑判断 Improvement 使用log4j日志 使用resources文件夹统一管理classpath下的配置文件 New Feature Refactoring 重写equals()方法,抽象,无需声明强制转换类型 <取消> Task 通过自定义注释与AOP,从http session中提取相应对象,并作为参数注入到controller方法中使用。从而减少反复从session中获取对象的过程 <完成> <取消> 反射获取方法参数名称,将session中同名对象注入,Java8以上并开启parameter参数编译,执行在2位数微秒 添加组,整合多专业 <完成> 添加jsp通用组件common,提取页面相同内容 <完成> 添加统一异常处理模态框 <完成> 请求映射地址常量 <完成> 替换MVC中向页面添加对象map接口为model接口 <完成> 添加superAdmin管理 设置学期基点 权限 2017.01.13 -------------------------------- Bug 修复跨年时周计算错误 Improvement 添加、导入监考信息时,判断课程名称长度,使总长度(包含阶段)<=15字符以适应短信模板 添加cookie name至property,便于移植提取 New Feature 发送监考通知短信页面添加发送详细信息 Refactoring 取消实体类中基于接口的常量设计,直接将常量定义在实体类中 实体类重写toString() equals() hashCode()方法,从而不同事务下的记录可以直接通过equals()方法判断是否为相同记录,Set集合也可判断相同记录 Task 2016.11.17 -------------------------------------- 完成监考表格中,监考时间列为自定义时间格式的读取。监考信息表格开始使用自定义时间格式,无法按普通字符串处理,这是在考察我的poi技巧么 修复专业监考人数信息提取bug,重写提取表达式 修改监考信息提取与原监考信息的比对及组装返回的实现 修复properties写入清空原properties bug 手动添加监考信息,增加使用radio选择课程节自动生成起止时间(以丹青楼授课时间为依据) 手动添加监考信息,增加使用datalist下拉菜单选择监考所在楼,再输入教室编号,后台依然整合为string保存 提出各种匹配公式至properties <未完成>使用常量替换注释中的请求地址以及响应资源 2016.10.15 ------------------------------ 修复将已分配监考置为已完成bug。原已分配从学期基点计算,致使对补考监考无效,先从基点时间减20天计算 自动创建数据库,部署时无需在数据库中预先创建schema 首页浏览器版本低于IE8时,显示警告 将基点时间basedate保存在properties,增加properties操作,保存基于JDK完成。Spring仅提供了读取操作,没有提供封装好的保存操作? ???增加基点时间限制选择周一,超级管理员设置?管理员设置? 重写导入监考表格信息实现,导入时依然基于监考教室及时间判断是否存在,存在则赋给ID值,人数变化则置监考信息状态为未分配, 保存提交时,使用merge方法,对原信息记录不做修改,即,原监考需1人,已分配已通知,再次导入后时间地点不变,人数变为2人, 保存后,监考状态为未分配,但保留原分配记录,重新分配仅需通知1人即可 2016.07.22 ---------------------------- 增加监考提醒“今日”“明日”时间判断 阿里大鱼再一次修改参数规范,参数值不能大于15个字符,第800次修改短信模板 重构监考状态:未分配,已分配,已完成 每监考分配添加监考消息状态:已通知,已提醒 修改监考分配实现,当分配发生变化时,对比原记录更新,原为全部删除重建 例如,原分配已经发送短信,则无需重复发送也能保有发送记录 修改监考编辑实现,当监考人数发生变化时,置监考为未分配状态,但保留原记录,直至重新分配 增加监考详细信息页面 增加Cookie登录,重新登录 等 2016.05.28 -------------------------------------- 明日监考提醒发送后,置监考为已提醒状态,防止重复发送 置完成状态时,搜索时间段内已提醒状态和已分配状态 将单一监考信息分解,允许同一监考,1人分配2次,避免创建修改新监考信息 导入监考表格时,提供选择阶段功能,在备注/课程后自动追加"阶段"字样 2016.05.10 -------------------------------------- 修复读取课表时,试图2次读取流的错误 在监考列表添加监考分配时间 修改监考表格读取,增加监考起止时间分别在2个段的处理 2016.05.08 Update -------------------------------------- 左边侧栏功能过多,取消固定设置 监考信息按监考时间排序,利于分配时先分配最近的监考,按监考状态分别列出? 优化页面显示数据,在监考列表中添加星期与周数 通过设置监考日期第一天属性为星期一,修复周日监考周数计算错误 添加导出监考信息表格 优化资源操作 优化上传文件分析,基于流分析,取消生成本地文件减少IO操作 等 2016.04.14 Update -------------------------------------- 修改form横向尺寸 为节约成本,在修改监考人员后应仅向新增加人员发送短信通知,因此分离发送监考通知短信,允许管理员手动确认发送对象 优化课表信息提取表达式 取消headers fixed属性,flat-ui switch在header为fixed时,在md宽度超过一屏滚动产生bug,在sm宽度正常 增加分页 增加监考短信提醒,无服务器,timer无法运行,暂时基于手动 2016.03.01 Update -------------------------------------- 未完成:通知短信模板;教师详细信息查询; 完成:文件上传下载;文件任务类型;单一文件版本控制; 重新规划工程结构 2016.02-18 Update -------------------------------------- 课表导入 监考导入 手动添加监考 手动添加特殊监考 监考推荐 监考分配 监考分配短信发送 已完成监考模块主要功能 2016.02.07 Update ------------------------------------ 完成admin用户的添加,用户基本信息、权限、通知、推荐的修改及设置 基于后台数据的checkbox默认状态 默认基于正序的获取 自定义异常 修改课表等实体类 文件上传 读取课表,封装为实体对象,保存 基于enum的常量设计 2016.02.01 Update ------------------------ GenericDao: 使用反射获取子类声明的具体泛型类型,使子类无需传入泛型类型参数 JSON: 基于gson.jar,spring自动完成对象到json字符串的转化,前端ajax返回类型使用text接收json字符串,然后转为json对象 浏览工程根目录时映射到main,便于当作首页保存,支持拦截器 Development Environment ----------------------------------- Server: Tomcat(8.0.26) Database: MySQL(5.6) Persistence Layer: JPA; Hibernate(5.0.1) Business Layer: Spring(4.2.1) Controller Layer: SpringMVC UI: AJAX; JQuery(2.1.4); Bootstrap(3.3.5); Flat-ui; DateTime Picker Others ---------- JSTL POI dom4j