版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章关键技术简介2.1Java语言简介Java是广泛用于互联网上的一种优秀编程语言,相比其它编程语言,Java拥有独特的特性,它摒弃了指针概念,避免逻辑和赋值运算语句混淆,取消了多重继承繁杂的编写模式同时可以自动管理系统内存。Java有着丰富开发框架和工具,可以大大加快平台开发进程,例如Spring框架可以简化代码、提高效率,MyBatis可以更好地管理数据库等。Java还具有跨平台性,可以在不同的操作系统和硬件平台上运行,这也为本系统的开发和部署提供了更强的灵活性,它也成为了实现平台高效、快速和稳定的关键。为此,本次开发采用Java语言是个不错的选择。2.2MySQL MySQL是一种关系型数据库,它存在着多种存储引擎,用户可以根据应用场景选择引擎。MySQL提供快速的数据访问和存储能力,为系统开发提供了坚实的基础。在本次开发当中MySQL主要用于存储管理平台所用的数据,使MySQL数据库可以方便地进行数据的增删改查,提高了系统的可靠性和稳定性,并且为用户提供了高效、安全和稳定的服务。MySQL可以快速执行查询等操作,即使处理大量数据也不会降低其性能,并且在大规模长时间的使用测试下,MySQL以极低的出错率来展示了作为开源数据库的可靠性。高校实习实训管理平台的设计开发需要对大量的数据进行操作,使用MySQL来处理这些庞大的信息是非常合适的。2.3SpringBoot简介SpringBoot是一种基于SpringFramework的快速开发应用程序的框架,是Spring框架的进一步拓展,通过简化配置来简化Spring应用的搭建和开发,它使用集成了大量优秀的框架技术,提供了各种工具、组件以及开发规范,让开发者专心与业务逻辑的实现,提高开发效率。在本系统中SpringBoot可以自动配置许多常见的应用程序组件,减少手动配置的工作量,快速开发高质量有效的代码,并且有助于避免编写重复代码。SpringBoot可以构建可执行JAR文件或WAR文件,极简化了应用程序的部署。借助容器技术(如Docker),应用程序可以在不同的环境中运行,从而增加了系统部署的灵活性。因此,使用SpringBoot可以大幅度提高系统开发效率和可靠性,并使未来的平台维护更加方便。第3章系统分析3.1可行性分析3.1.1技术可行性本次系统设计所采用的编程语言是Java,开发过程主要基于SpringBoot框架,前端技术采用Vue,使用MySQL作为数据库,数据库工具采用Navicat,开发工具选择IDEA,这些都是成熟且广泛应用的技术和工具,它们都功能强大和稳定,同时拥有大量的相关资料和技术支持。因此在技术上是可行的。3.1.2经济可行性在本系统中Java、MySQL和SpringBoot都是免费开源技术,使用它们无需另付软件授权费用,开发成本相对较低。同时,基于Java的应用程序可以很好地适应各种硬件和操作系统环境,节约了硬件投入。系统和以前的系统进行综合比较,可以展现出其制作成本较低、工作效率极高的优点,降低了人力成本,提高了便利性,因此在经济上也是可行的。3.1.3操作可行性本系统采用图形界面,界面简洁明了,大部分功能都已经通过设计好的图形界面来实现,充分考虑了用户体验,每个模块的设计合理,使用起来简洁高效,具备着不同用户的使用权限管理,因此这个系统具有操作的可行性。3.1.4法律可行性从法律的角度看,本系统开发的特征有以下几点:1.开发所用所有资料都不违法;2.整个开发过程不会有知识产权问题;3.开发过程没有抄袭任何网站,无侵权问题;4.开发过程由自己完成,无需承担额外的法律责任。以上特征使本系统具有法律可行性。3.2需求分析3.2.1功能需求分析在基于Java的高校实习实训管理系统当中,学生注册登录本系统后,可进行岗位签到、查看实习计划、修改个人信息、编写实习过程、查看评分等操作;教师可进行查看学生签到信息、发布实习计划、查看实习过程、对实习评分等操作;企业可对实习岗位进行管理、审核学生签到、审核学生考勤等操作;管理员能够通过后台管理通知公告、考勤、实习企业、教师、学生、实习实训等信息。根据功能需求分析,各个角色功能用例图如下:学生功能用例图如图3.1所示:岗位签到岗位签到个人信息管理个人信息管理实习计划查看实习计划查看实习过程撰写实习过程撰写考勤签到考勤签到实习评分查看实习评分查看图3.1学生功能用例图教师功能用例图如图3.2所示:个人信息管理个人信息管理学生签到查看学生签到查看实习计划发布实习计划发布实习过程查看实习过程查看实习评分管理实习评分管理图3.2教师功能用例图企业功能用例图如图3.3所示:实习岗位管理实习岗位管理学生签到审核学生签到审核个人信息管理个人信息管理学生考勤审核学生考勤审核图3.3企业功能用例图管理员功能用例图如图3.4所示:学生信息管理学生信息管理教师信息管理教师信息管理企业信息管理企业信息管理实习岗位管理实习评分管理实习岗位管理实习评分管理实习计划管理实习计划管理实习过程管理实习过程管理签到考勤管理签到考勤管理图3.4管理员功能用例图3.2.2非功能需求分析高校实习实训管理系统在开发过程中,除了要关注业务工作本身,还要保障其性能,从可靠性、稳定性、可扩展性和易于维护性四个方面进行分析,具体叙述如下:1.可靠性:平台要保障系统在任何情况下都能保持长时间的可用性,处理用户数据的正确性和可靠性,尽可能的阻止并发问题。2.稳定性:要考虑数据稳定性的要求,以保障系统在运行期间的稳定性,还要避免过于追求新技术忽略了系统稳定性,或者过于强调稳定性而忽视系统运作和安全问题。3.可扩展性:系统设计要具备良好的可扩展性,能够充分考虑到未来的增长趋势,提供相关管理和部署机制,实现有序地业务增量化。4.易于维护性:管理和维护系统要具有易用性和可执行性,并能通过程序维护各种核心参数,在智能契约更新或出现故障时能够及时处理以确保成功。3.3系统流程分析根据系统功能需求,系统业务流程如图3.5所示:教师企业学生教师企业学生书写实习过程书写实习过程发布岗位实习评分发布岗位实习评分考勤审核考勤签到发布实习计划审核签到岗位签到考勤审核考勤签到发布实习计划审核签到岗位签到学生企业学生学生企业学生教师教师图3.5系统业务流程图第4章系统设计4.1功能模块设计根据对系统功能的分析,高校实习实训管理系统的具体功能模块包括以下的几个主要的功能模块:用户管理、实习岗位管理、实习计划管理、实习过程管理、实习评分管理、签到管理、审核实习管理等内容。系统的功能模块如图4.1所示:图4.1系统功能模块图4.2数据库物理设计4.2.1概念结构设计在数据库设计中,概念架构是现实世界的模型,它可以充分地反映现实世界,并且容易理解,这使得它易于修改和扩展来适应应用环境需求的变化。E-R模式是概念结构设计经常使用的方法,通过对数据库进行需求分析,对各个功能进行分类,并对各个实体之前的交互进行连接,从而构建出一个数据流图。本系统的E-R图如图4.2所示:
审核m审核m管理m企业 n管理m企业岗位签到岗位签到nn管理员 nnn管理员管理n n管理n签到考勤签到实习岗位签到考勤签到实习岗位m mm撰写管理m学生表nm 撰写管理m学生表nm n m n管理查看 n管理查看实习过程实习过程 n 1发布 n发布n实习计划教师表n实习计划教师表 m评分 m评分图4.2实体关系E-R图系统分析得出共有管理员、学生、教师、企业、签到、实习岗位、实习计划、实习过程、实习评分九个实体。具体内容如下所示:1.管理员实体图密码密码账号角色账号角色管理员管理员图4.3管理员实体图学生姓名密码2.学生实体图学生姓名密码头像头像学生账号学生账号专业身份证号学生专业身份证号学生性别手机号码性别手机号码年龄年龄图4.4学生实体图教师姓名密码3.教师实体图教师姓名密码教师工号教师工号性别教师性别教师职称头像职称头像手机号码手机号码图4.5教师实体图负责人4.企业实体图负责人密码照片密码照片企业账号性别企业企业账号性别企业企业名称联系电话企业名称联系电话企业地址企业地址图4.6企业实体图专业图片5.实习岗位实体图专业图片职位名称岗位描述职位名称岗位描述企业账号岗位待遇实习岗位企业账号岗位待遇实习岗位企业名称工作时间工作地点企业名称工作时间工作地点负责人岗位介绍负责人岗位介绍图4.7实习岗位实体图企业名称6.实习计划实体图企业名称教师工号教师工号教师姓名企业账号教师姓名企业账号实习计划实习计划学生账号学生姓名工作计划学生账号学生姓名工作计划图4.8实习计划实体图企业账号教师姓名7.实习过程实体图企业账号教师姓名企业名称企业名称教师工号教师工号学生账号审核回复实习过程学生账号审核回复实习过程学生姓名是否审核学生姓名是否审核工作描述工作描述图4.9实习过程实体图职位名称企业名称8.实习评分实体图职位名称企业名称学生账号学生账号企业账号企业账号学生姓名教师姓名实习评分学生姓名教师姓名实习评分实习评分教师工号实习评分教师工号评定标准评定标准图4.10实习评分实体图教师姓名教师工号9.签到实体图教师姓名教师工号学号学号企业账号企业账号学生姓名审核回复签到学生姓名审核回复签到考勤状态是否审核考勤状态是否审核时间时间图4.11签到实体图4.2.2逻辑结构设计创建数据库时,要考虑到存储结构对于查询效率的影响。根据不同的访问需求,可以采用索引表或者顺序表等不同的结构。在建库时还要以数据实体及其之间的关系模式为基础,为每个实体建立相应的表。高校实习实训管理平台具体表设计如下:1.管理员表users“管理员表users”用来记录管理员的信息。users的结构如表4.1所示。表4.1管理员表字段名称类型长度字段说明主键默认值idbigint主键主键usernamevarchar20用户名passwordvarchar20密码rolevarchar10角色管理员addtimetimestamp新增时间CURRENT_TIMESTAMP2.学生表“xuesheng表”是用来记录学生的信息。xuesheng的结构如表4.2所示。表4.2xuesheng表字段名称类型长度字段说明主键默认值idbigint主键主键xueshengzhanghaovarchar50学生账号mimavarchar20密码xueshengxingmingvarchar20学生姓名touxianglongtext429496729头像zhuanyevarchar20专业xingbievarchar5性别nianlingshoujihaomashenfenzhenghaointvarcharvarchar52020年龄手机号码身份证号3.企业表qiye“企业表qiye”用来记录企业信息。qiye的结构如表4.3所示。表4.3企业表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPqiyezhanghaovarchar20企业账号mimavarchar20密码fuzerenvarchar10负责人zhaopianlongtext4294967295照片xingbievarchar5性别qiyemingchengvarchar30企业名称qiyedizhivarchar30企业地址lianxidianhuavarchar20联系电话4.教师表yonghu“教师表jiaoshi”是用来记录教师的信息。jiaoshi的结构如表4.4所示。表4.4教师表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPjiaoshigonghaovarchar20教师工号mimavarchar20密码jiaoshixingmingvarchar20教师姓名xingbievarchar5性别touxianglongtext429496725头像shoujivarchar20手机5.实习岗位表ganweixinxi“实习岗位表gangweixinxi”是用来记录实习岗位的信息。gangweixinxi的结构如表4.5所示。表4.5实习岗位表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPzhiweimingchengvarchar20职位名称tupianlongtext429496295图片zhuanyevarchar20专业gangweimiaoshuvarchar50岗位描述gangweidaiyuint岗位待遇gongzuodidianvarchar50工作地点gongzuoshijianvarchar20工作时间gangweijieshaolongtext42949295岗位介绍qiyezhanghaovarchar20企业账号qiyemingchengvarchar30企业名称fuzerenvarchar20负责人clicktimedatetime最近点击时间06.签到表qiandao“签到表qiandao”是用来记录学生签到的信息。qiandao的结构如表4.6所示。表4.6签到表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPqiyezhanghaovarchar20企业账号jiaoshigonghaovarchar20教师工号jiaoshixingmingvarchar20教师姓名xuehaovarchar20学号xueshengxingmingvarchar20学生姓名kaoqinzhuangtaivarchar20考勤状态shijiandatetime时间sfshvarchar5是否审核待审核shhflongtext429496725审核回复7.实习计划表shixijihua“实习计划表shixijihua”是用来记录实习计划的信息。shixijihua的结构如表4.7所示。表4.7实习计划表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPqiyezhanghaovarchar20企业账号qiyemingchengvarchar20企业名称jiaoshigonghaovarchar20教师工号jiaoshixingmingvarchar20教师姓名xueshengzhanghaovarchar20学生账号xueshengxingminggongzuojihuavarcharvarchar20429496795学生姓名工作计划8.实习过程表shixiguocheng“实习过程表shixiguocheng”用来记录实习过程的信息。shixiguocheng的结构如表4.8所示。表4.8学生过程表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPjiaoshigonghaovarchar20教师工号jiaoshixingmingvarchar20教师姓名qiyezhanghaovarchar20企业账号qiyemingchengvarchar50企业名称xueshengzhanghaovarchar20学生账号xueshengxingmingvarchar20学生姓名gongzuomiaoshulongtext429496795工作描述sfshvarchar20是否审核shhflongtext100审核回复9.实习评分表shixipingfen“实习评分表shixipingfen”是用来记录实习评分的信息。shixipingfen的结构如表4.9所示。表4.9实习评分表字段名称类型长度字段说明主键默认值idbigint主键主键addtimetimestamp创建时间CURRENT_TIMESTAMPqiyezhanghaovarchar20企业账号qiyemingchengvarchar50企业名称zhiweimingchengvarchar20职位名称xueshengzhanghaovarchar20学生账号xueshengxingmingvarchar20学生姓名shixipingfenint实习评分pingdingbiaozhunjiaoshigonghaojiaoshixingminglongtextvarcharvarchar4294967952020评分标准教师工号教师姓名第5章系统实现5.1实现环境该系统的开发环境为:开发语言:Java框架:SpringBootJDK版本:JDK1.8数据库:MySQL5.7数据库工具:Navicat12开发软件:IDEAMaven包:Maven登录注册新用户第一次进入系统,需要在登录/注册界面里进行相对应操作,需要填写账号、密码、姓名、性别、年龄等进行注册,其界面如图5.1所示。登录系统时,用户需要输入正确的账号和密码,并点击“登录”按钮进行操作,没有输入用户名或密码,系统会提示输入用户名和密码,登录界面如图5.2所示。对于管理员来说,只有输入正确的用户名和密码,并选上对应的权限后,才能进入后台管理页面,其界面如图5.3所示:图5.1用户注册界面图5.2用户登录界面图5.3后台登录界面用户点击注册,会有注册成功的提示,代表注册成功,不然注册失败。用户注册成功界面如图5.4所示。图5.4用户注册成功界面当用户在登录界面中输入对的用户名和密码后,登录成功后自动跳转到系统首页界面,不然就是登录失败。用户登录成功界面如图5.5所示。图5.5用户登录成功界面实现该功能的关键代码如下:@IgnoreAuth @PostMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ UsersEntityuser=userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",username)); if(user==null||!user.getPassword().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(user.getId(),username,"users",user.getRole()); returnR.ok().put("token",token); }@IgnoreAuth @PostMapping(value="/register") publicRregister(@RequestBodyUsersEntityuser){// ValidatorUtils.validateEntity(user); if(userService.selectOne(newEntityWrapper<UsersEntity>().eq("username",user.getUsername()))!=null){ returnR.error("用户已存在"); }userService.insert(user);returnR.ok();}@IgnoreAuth @RequestMapping(value="/resetPass")publicRresetPass(Stringusername,HttpServletRequestrequest){XueshengEntityu=sueshengService.selectOne(newEntityWrapper<XueshengEntity>().eq(("xueshengzhanghao",username)); if(u==null){ returnR.error("账号不存在"); }u.setMima("123456");xueshengService.updateById(u);returnR.ok("密码已重置为:123456");}5.3学生管理以管理员身份登录到系统中,进入学生管理界面,可以对学生信息进行增删查改和查看详情。学生管理界面如图5.6所示:图5.6学生管理界面学生登录后点击个人中心,可以修改自己的个人信息,如图5.7所示:图5.7学生个人信息修改界面实现该功能的关键代码如下:@RequestMapping("/session")publicRgetCurrUser(HttpServletRequestrequest){ Longid=(Long)request.getSession().getAttribute("userId");XueshengEntityu=xueshengService.selectById(id);returnR.ok().put("data",u);}@RequestMapping("/save")publicRsave(@RequestBodyXueshengEntityxuesheng,HttpServletRequestrequest){ xuesheng.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(xuesheng); XueshengEntityu=xueshengService.selectOne(newEntityWrapper<XueshengEntity>().eq("xueshengzhanghao",xuesheng.getXueshengzhanghao())); if(u!=null){ returnR.error("用户已存在"); } xuesheng.setId(newDate().getTime());xueshengService.insert(xuesheng);returnR.ok();}@RequestMapping("/add")publicRadd(@RequestBodyXueshengEntityxuesheng,HttpServletRequestrequest){ xuesheng.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(xuesheng); XueshengEntityu=xueshengService.selectOne(newEntityWrapper<XueshengEntity>().eq("xueshengzhanghao",xuesheng.getXueshengzhanghao())); if(u!=null){ returnR.error("用户已存在"); } xuesheng.setId(newDate().getTime());xueshengService.insert(xuesheng);returnR.ok();}@RequestMapping("/query")publicRquery(XueshengEntityxuesheng){EntityWrapper<XueshengEntity>ew=newEntityWrapper<XueshengEntity>(); ew.allEq(MPUtil.allEQMapPre(xuesheng,"xuesheng")); XueshengViewxueshengView=xueshengService.selectView(ew); returnR.ok("查询学生成功").put("data",xueshengView);}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyXueshengEntityxuesheng,HttpServletRequestrequest){//ValidatorUtils.validateEntity(xuesheng);xueshengService.updateById(xuesheng);//全部更新returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){xueshengService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.4教师信息管理管理员登录进入系统,点击“教师管理”按钮,可以进入教师信息管理界面,如图5.8所示,可以通过姓名查询教师信息,也可以修改和删除教师信息,如图5.9所示:图5.8教师管理界面图5.9教师管理详情界面教师登录后,点击个人信息,可以修改个人信息,如图5.10所示:图5.10教师个人信息修改界面实现该功能的关键代码如下:@IgnoreAuth @RequestMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){JiaoshiEntityu=jiaoshiService.selectOne(newEntityWrapper<JiaoshiEntity>().eq(("jiaoshigonghao",username)); if(u==null||!u.getMima().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(u.getId(),username,"jiaoshi","教师"); returnR.ok().put("token",token); }@RequestMapping("/query")publicRquery(JiaoshiEntityjiaoshi){EntityWrapper<JiaoshiEntity>ew=newEntityWrapper<JiaoshiEntity>(); ew.allEq(MPUtil.allEQMapPre(jiaoshi,"jiaoshi")); JiaoshiViewjiaoshiView=jiaoshiService.selectView(ew); returnR.ok("查询教师成功").put("data",jiaoshiView);}@RequestMapping("/save")publicRsave(@RequestBodyJiaoshiEntityjiaoshi,HttpServletRequestrequest){ jiaoshi.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue()); JiaoshiEntityu=jiaoshiService.selectOne(newEntityWrapper<JiaoshiEntity>().eq("jiaoshigonghao",jiaoshi.getJiaoshigonghao())); if(u!=null){ returnR.error("用户已存在"); } jiaoshi.setId(newDate().getTime());jiaoshiService.insert(jiaoshi);returnR.ok();}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyJiaoshiEntityjiaoshi,HttpServletRequestrequest){jiaoshiService.updateById(jiaoshi);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){jiaoshiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.5企业信息管理管理员登录进入系统,点击“企业管理”按钮,可以搜索企业账号或负责人,查询企业的详细信息,也可以对企业进行新增、修改和删除操作,如图5.11所示:图5.11企业信息管理界面企业登录系统后,点击个人中心,可以修改企业信息,如图5.12所示:图5.12企业信息修改界面实现该功能的关键代码如下:@IgnoreAuth @RequestMapping(value="/login") publicRlogin(Stringusername,Stringpassword,Stringcaptcha,HttpServletRequestrequest){ QiyeEntityu=qiyeService.selectOne(newEntityWrapper<QiyeEntity>().eq("qiyezhanghao",username)); if(u==null||!u.getMima().equals(password)){ returnR.error("账号或密码不正确"); } Stringtoken=tokenService.generateToken(u.getId(),username,"qiye","企业"); returnR.ok().put("token",token); }@RequestMapping("/query")publicRquery(QiyeEntityqiye){EntityWrapper<QiyeEntity>ew=newEntityWrapper<QiyeEntity>(); ew.allEq(MPUtil.allEQMapPre(qiye,"qiye")); QiyeViewqiyeView=qiyeService.selectView(ew); returnR.ok("查询企业成功").put("data",qiyeView);}@RequestMapping("/add")publicRadd(@RequestBodyQiyeEntityqiye,HttpServletRequestrequest){ qiye.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue()); QiyeEntityu=qiyeService.selectOne(newEntityWrapper<QiyeEntity>().eq("qiyezhanghao",qiye.getQiyezhanghao())); if(u!=null){ returnR.error("用户已存在"); } qiye.setId(newDate().getTime());qiyeService.insert(qiye);returnR.ok();}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyQiyeEntityqiye,HttpServletRequestrequest){qiyeService.updateById(qiye);//全部更新returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){qiyeService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.6实习岗位管理管理员登录系统,点击“岗位信息管理”按钮,可以通过职位名称或专业,查询到岗位信息,也可以修改或删除岗位信息,其界面如图5.13所示:图5.13岗位信息管理界面企业登录系统后,可以新增、删除或修改岗位信息,其界面如图5.14所示:图5.14岗位详细信息管理界面学生可以看到企业发布的岗位,并点击签到按钮可以岗位签到,如图5.15所示:图5.15学生签到岗位界面企业可以在签到管理界面,查看到学生的岗位签到信息,并进行审核,如图5.16所示: 图5.16企业审核学生岗位签到界面实现该功能的关键代码如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,GangweixinxiEntitygangweixinxi, HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("qiye")){ gangweixinxi.setQiyezhanghao((String)request.getSession().getAttribute("username")); }EntityWrapper<GangweixinxiEntity>ew=newEntityWrapper<GangweixinxiEntity>();PageUtilspage=gangweixinxiService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,gangweixinxi),params),params));returnR.ok().put("data",page);}@RequestMapping("/query")publicRquery(GangweixinxiEntitygangweixinxi){EntityWrapper<GangweixinxiEntity>ew=newEntityWrapper<GangweixinxiEntity>(); ew.allEq(MPUtil.allEQMapPre(gangweixinxi,"gangweixinxi")); GangweixinxiViewgangweixinxiView=gangweixinxiService.selectView(ew); returnR.ok("查询岗位信息成功").put("data",gangweixinxiView);}@RequestMapping("/save")publicRsave(@RequestBodyGangweixinxiEntitygangweixinxi,HttpServletRequestrequest){ gangweixinxi.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(gangweixinxi);gangweixinxiService.insert(gangweixinxi);returnR.ok();}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyGangweixinxiEntitygangweixinxi,HttpServletRequestrequest){//ValidatorUtils.validateEntity(gangweixinxi);gangweixinxiService.updateById(gangweixinxi);//全部更新returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){gangweixinxiService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.7实习计划管理教师登录系统中,对于签到过岗位并审核通过的学生,可以指定实习计划,如图5.17所示:图5.17教师发布实习计划界面管理员登录到系统中,进入实习计划管理界面,可以输入教师姓名,查询找到该实习计划,可以对实习计划进行删除或修改操作。实习计划管理界面如图5.18所示:图5.18实习计划管理界面学生可以在实习计划界面,查看到详细的实习计划信息,如图5.19所示:图5.19实习计划详情界面实现该功能的关键代码如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,ShixijihuaEntityshixijihua, HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("qiye")){ shixijihua.setQiyezhanghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("jiaoshi")){ shixijihua.setJiaoshigonghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("xuesheng")){ shixijihua.setXueshengzhanghao((String)request.getSession().getAttribute("username")); }EntityWrapper<ShixijihuaEntity>ew=newEntityWrapper<ShixijihuaEntity>();PageUtilspage=shixijihuaService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,shixijihua),params),params));returnR.ok().put("data",page);}@RequestMapping("/query")publicRquery(ShixijihuaEntityshixijihua){EntityWrapper<ShixijihuaEntity>ew=newEntityWrapper<ShixijihuaEntity>(); ew.allEq(MPUtil.allEQMapPre(shixijihua,"shixijihua")); ShixijihuaViewshixijihuaView=shixijihuaService.selectView(ew); returnR.ok("查询实习计划成功").put("data",shixijihuaView);}@RequestMapping("/save")publicRsave(@RequestBodyShixijihuaEntityshixijihua,HttpServletRequestrequest){ shixijihua.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());shixijihuaService.insert(shixijihua);returnR.ok();}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyShixijihuaEntityshixijihua,HttpServletRequestrequest){shixijihuaService.updateById(shixijihua);returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){shixijihuaService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.8签到管理学生登录到系统中,点击考勤记录,可以进行考勤签到,如图5.20所示:图5.20学生考勤签到界面企业登录到系统中,可以对学生的考勤签到信息进行管理,具体界面如图5.21所示:图5.21考勤签到管理界面实现该功能的关键代码如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,KaoqinjiluEntitykaoqinjilu, HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("qiye")){ kaoqinjilu.setQiyezhanghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("jiaoshi")){ kaoqinjilu.setJiaoshigonghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("xuesheng")){ kaoqinjilu.setXuehao((String)request.getSession().getAttribute("username")); }EntityWrapper<KaoqinjiluEntity>ew=newEntityWrapper<KaoqinjiluEntity>(); PageUtilspage=kaoqinjiluService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,kaoqinjilu),params),params));returnR.ok().put("data",page);}@RequestMapping("/query")publicRquery(KaoqinjiluEntitykaoqinjilu){EntityWrapper<KaoqinjiluEntity>ew=newEntityWrapper<KaoqinjiluEntity>(); ew.allEq(MPUtil.allEQMapPre(kaoqinjilu,"kaoqinjilu")); KaoqinjiluViewkaoqinjiluView=kaoqinjiluService.selectView(ew); returnR.ok("查询考勤记录成功").put("data",kaoqinjiluView);}@RequestMapping("/save")publicRsave(@RequestBodyKaoqinjiluEntitykaoqinjilu,HttpServletRequestrequest){ kaoqinjilu.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue()); //ValidatorUtils.validateEntity(kaoqinjilu);kaoqinjiluService.insert(kaoqinjilu);returnR.ok();}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyKaoqinjiluEntitykaoqinjilu,HttpServletRequestrequest){//ValidatorUtils.validateEntity(kaoqinjilu);kaoqinjiluService.updateById(kaoqinjilu);//全部更新returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){kaoqinjiluService.deleteBatchIds(Arrays.asList(ids));returnR.ok();5.9实习过程管理学生登录到系统中,点击实习过程,可以书写实习过程,如图5.22所示:图5.22学生书写实习过程界面教师可以通过企业名称,查询到学生实习过程的信息,可以进行删除等操作,如图5.23所示:图5.23教师管理实习过程界面 以管理员身份登录进入系统中,点击“实习过程”按钮,可以查看、修改或删除实习过程信息,其界面如图5.24所示:图5.24实习过程管理页面实现该功能的关键代码如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,ShixiguochengEntityshixiguocheng, HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("jiaoshi")){ shixiguocheng.setJiaoshigonghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("qiye")){ shixiguocheng.setQiyezhanghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("xuesheng")){ shixiguocheng.setXueshengzhanghao((String)request.getSession().getAttribute("username")); }EntityWrapper<ShixiguochengEntity>ew=newEntityWrapper<ShixiguochengEntity>(); PageUtilspage=shixiguochengService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,shixiguocheng),params),params));returnR.ok().put("data",page);}@RequestMapping("/query")publicRquery(ShixiguochengEntityshixiguocheng){EntityWrapper<ShixiguochengEntity>ew=newEntityWrapper<ShixiguochengEntity>(); ew.allEq(MPUtil.allEQMapPre(shixiguocheng,"shixiguocheng")); ShixiguochengViewshixiguochengView=shixiguochengService.selectView(ew); returnR.ok("查询实习过程成功").put("data",shixiguochengView);}@RequestMapping("/save")publicRsave(@RequestBodyShixiguochengEntityshixiguocheng,HttpServletRequestrequest){shixiguocheng.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());shixiguochengService.insert(shixiguocheng);returnR.ok();}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyShixiguochengEntityshixiguocheng,HttpServletRequestrequest){//ValidatorUtils.validateEntity(shixiguocheng);shixiguochengService.updateById(shixiguocheng);//全部更新returnR.ok();}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){shixiguochengService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}5.10审核实习管理教师登录系统中,点击实习过程,可以审核学生的实习过程,其界面如图5.25所示:图5.25审核实习管理界面学生可以查看到自己的实习过程,是否审核通过,如图5.26所示:图5.26学生查看实习过程界面实现该功能的关键代码如下:@RequestMapping("/query")publicRquery(ShixiguochengEntityshixiguocheng){EntityWrapper<ShixiguochengEntity>ew=newEntityWrapper<ShixiguochengEntity>(); ew.allEq(MPUtil.allEQMapPre(shixiguocheng,"shixiguocheng")); ShixiguochengViewshixiguochengView=shixiguochengService.selectView(ew); returnR.ok("查询实习过程成功").put("data",shixiguochengView);}@RequestMapping("/delete")publicRdelete(@RequestBodyLong[]ids){shixiguochengService.deleteBatchIds(Arrays.asList(ids));returnR.ok();}@RequestMapping("/remind/{columnName}/{type}") publicRremindCount(@PathVariable("columnName")StringcolumnName,HttpServletRequestrequest,@PathVariable("type")Stringtype,@RequestParamMap<String,Object>map){ map.put("column",columnName); map.put("type",type); if(type.equals("2")){ SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-dd"); Calendarc=Calendar.getInstance(); DateremindStartDate=null; DateremindEndDate=null; if(map.get("remindstart")!=null){ IntegerremindStart=Integer.parseInt(map.get("remindstart").toString()); c.setTime(newDate()); c.add(Calendar.DAY_OF_MONTH,remindStart); remindStartDate=c.getTime(); map.put("remindstart",sdf.format(remindStartDate)); } if(map.get("remindend")!=null){ IntegerremindEnd=Integer.parseInt(map.get("remindend").toString()); c.setTime(newDate()); c.add(Calendar.DAY_OF_MONTH,remindEnd); remindEndDate=c.getTime(); map.put("remindend",sdf.format(remindEndDate)); } } Wrapper<ShixiguochengEntity>wrapper=newEntityWrapper<ShixiguochengEntity>(); if(map.get("remindstart")!=null){ wrapper.ge(columnName,map.get("remindstart")); } if(map.get("remindend")!=null){ wrapper.le(columnName,map.get("remindend")); }StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("jiaoshi")){ wrapper.eq("jiaoshigonghao",(String)request.getSession().getAttribute("username")); } if(tableName.equals("qiye")){ wrapper.eq("qiyezhanghao",(String)request.getSession().getAttribute("username")); } if(tableName.equals("xuesheng")){ wrapper.eq("xueshengzhanghao",(String)request.getSession().getAttribute("username")); } intcount=shixiguochengService.selectCount(wrapper); returnR.ok().put("count",count); }5.11实习评分管理教师对于学生的实习过程,可以进行实习评分,如图5.27所示:图5.27实习评分管理界面学生可以查看到自己的实习评分情况,如图5.28所示:图5.28学生查看实习评分界面实现该功能的关键代码如下:@RequestMapping("/page")publicRpage(@RequestParamMap<String,Object>params,ShixipingfenEntityshixipingfen HttpServletRequestrequest){ StringtableName=request.getSession().getAttribute("tableName").toString(); if(tableName.equals("qiye")){ shixipingfen.setQiyezhanghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("xuesheng")){ shixipingfen.setXueshengzhanghao((String)request.getSession().getAttribute("username")); } if(tableName.equals("jiaoshi")){ shixipingfen.setJiaoshigonghao((String)request.getSession().getAttribute("username"));}EntityWrapper<ShixipingfenEntity>ew=newEntityWrapper<ShixipingfenEntity>(); PageUtilspage=shixipingfenService.queryPage(params,MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew,shixipingfen),params),params));returnR.ok().put("data",page);}@RequestMapping("/query")publicRquery(ShixipingfenEntityshixipingfen){EntityWrapper<ShixipingfenEntity>ew=newEntityWrapper<ShixipingfenEntity>(); ew.allEq(MPUtil.allEQMapPre(shixipingfen,"shixipingfen")); ShixipingfenViewshixipingfenView=shixipingfenService.selectView(ew); returnR.ok("查询实习评分成功").put("data",shixipingfenView);}@RequestMapping("/save")publicRsave(@RequestBodyShixipingfenEntityshixipingfen,HttpServletRequestrequest){ shixipingfen.setId(newDate().getTime()+newDouble(Math.floor(Math.random()*1000)).longValue());shixipingfenService.insert(shixipingfen);returnR.ok();}@RequestMapping("/update")@TransactionalpublicRupdate(@RequestBodyShixipingfenEntityshixipingfen,HttpServletRequestrequest){shixipingfenService.updateById(shixipingfen);returnR.ok();}@RequestMapping("/delete"
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国高折射玻璃微珠行业发展趋势与投资战略研究研究报告
- 能源业等太阳能发电行业市场现状供需优化分析及投资政策规划研究报告
- 2025-2030中国行李车智能化转型关键技术突破研究
- 能源设备制造技术创新市场供需分析投资评估规划发展研究报告
- 2026年延安吴起县事业单位定向招聘本科及以上自主就业退役士兵招聘(15人)笔试参考题库及答案详解
- 2026交通运输部所属事业单位第八批招聘31人笔试备考试题及答案详解
- 2026年《林肯传》测试题及答案
- 中国自动驾驶芯片产业销售格局与未来经营效益风险研究报告
- 营养元素组合干预对缺铁性贫血患儿智力损伤的修复研究
- 2026年度盘锦市事业单位(国有企业)定向公开招聘驻盘部队未就业随军家属11人考试备考试题及答案详解
- DL-T5190.1-2022电力建设施工技术规范第1部分:土建结构工程
- (正式版)JTT 1499-2024 公路水运工程临时用电技术规程
- 保安服务费合同协议模板
- 小儿川崎病护理查房课件
- 公司入围申请书范文模板
- 2024年海南农垦旅游集团有限公司招聘笔试参考题库含答案解析
- 《新会计法解读》课件
- 悬挑式卸料平台监理实施细则
- 1956-1967国家科学技术发展远景规划纲要
- (JY-0001-2003)教学仪器设备产品一般质量要求
- 危化品仓库安全风险点告知牌
评论
0/150
提交评论