• 基于springboot+vue的毕业生实习与就业管理系统


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍: 

    本系统适合选题:毕业生、实习、就业管理、毕业就业、实习管理等。系统采用springboot+vue整合开发,前端框架主要使用了element-ui框架、数据层采用mybatis,功能齐全,界面美观。

    功能介绍:

    毕业生实习与就业管理系统具有管理员角色,用户角色,这几个操作权限。

    毕业生实习与就业管理系统针对管理员设置的功能有:添加并管理各种类型信息,管理用户账户信息,管理就业信息,管理企业公告信息等内容。

    毕业生实习与就业管理系统针对用户设置的功能有:查看并修改个人信息,查看就业信息,查看企业公告信息等内容。

    系统包含技术:

    后端:springboot,mybatis
    前端:element-ui、js、css等
    开发工具:idea/vscode
    数据库:mysql 5.7
    JDK版本:jdk1.8

    部分截图说明:

    下面是登录

    班级管理

    院系管理

    就业信息管理

    老师管理

    企业管理

    实习管理

    部分代码:

    1. /**
    2. * 后端列表
    3. */
    4. @RequestMapping("/page")
    5. public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
    6. logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    7. String role = String.valueOf(request.getSession().getAttribute("role"));
    8. if(false)
    9. return R.error(511,"永不会进入");
    10. else if("学生".equals(role))
    11. params.put("xueshengId",request.getSession().getAttribute("userId"));
    12. else if("老师".equals(role))
    13. params.put("laoshiId",request.getSession().getAttribute("userId"));
    14. else if("企业".equals(role))
    15. params.put("qiyeId",request.getSession().getAttribute("userId"));
    16. if(params.get("orderBy")==null || params.get("orderBy")==""){
    17. params.put("orderBy","id");
    18. }
    19. PageUtils page = jiuyeService.queryPage(params);
    20. //字典表数据转换
    21. List<JiuyeView> list =(List<JiuyeView>)page.getList();
    22. for(JiuyeView c:list){
    23. //修改对应字典表字段
    24. dictionaryService.dictionaryConvert(c, request);
    25. }
    26. return R.ok().put("data", page);
    27. }
    28. /**
    29. * 后端详情
    30. */
    31. @RequestMapping("/info/{id}")
    32. public R info(@PathVariable("id") Long id, HttpServletRequest request){
    33. logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    34. JiuyeEntity jiuye = jiuyeService.selectById(id);
    35. if(jiuye !=null){
    36. //entity转view
    37. JiuyeView view = new JiuyeView();
    38. BeanUtils.copyProperties( jiuye , view );//把实体数据重构到view中
    39. //级联表
    40. QiyeEntity qiye = qiyeService.selectById(jiuye.getQiyeId());
    41. if(qiye != null){
    42. BeanUtils.copyProperties( qiye , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
    43. view.setQiyeId(qiye.getId());
    44. }
    45. //级联表
    46. XueshengEntity xuesheng = xueshengService.selectById(jiuye.getXueshengId());
    47. if(xuesheng != null){
    48. BeanUtils.copyProperties( xuesheng , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
    49. view.setXueshengId(xuesheng.getId());
    50. }
    51. //修改对应字典表字段
    52. dictionaryService.dictionaryConvert(view, request);
    53. return R.ok().put("data", view);
    54. }else {
    55. return R.error(511,"查不到数据");
    56. }
    57. }
    58. /**
    59. * 后端保存
    60. */
    61. @RequestMapping("/save")
    62. public R save(@RequestBody JiuyeEntity jiuye, HttpServletRequest request){
    63. logger.debug("save方法:,,Controller:{},,jiuye:{}",this.getClass().getName(),jiuye.toString());
    64. String role = String.valueOf(request.getSession().getAttribute("role"));
    65. if(false)
    66. return R.error(511,"永远不会进入");
    67. else if("学生".equals(role))
    68. jiuye.setXueshengId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    69. else if("企业".equals(role))
    70. jiuye.setQiyeId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    71. Wrapper<JiuyeEntity> queryWrapper = new EntityWrapper<JiuyeEntity>()
    72. .eq("xuesheng_id", jiuye.getXueshengId())
    73. .eq("qiye_id", jiuye.getQiyeId())
    74. ;
    75. logger.info("sql语句:"+queryWrapper.getSqlSegment());
    76. JiuyeEntity jiuyeEntity = jiuyeService.selectOne(queryWrapper);
    77. if(jiuyeEntity==null){
    78. jiuye.setInsertTime(new Date());
    79. jiuye.setCreateTime(new Date());
    80. jiuyeService.insert(jiuye);
    81. return R.ok();
    82. }else {
    83. return R.error(511,"该学生已经在该企业有就业记录");
    84. }
    85. }
    86. /**
    87. * 后端修改
    88. */
    89. @RequestMapping("/update")
    90. public R update(@RequestBody JiuyeEntity jiuye, HttpServletRequest request){
    91. logger.debug("update方法:,,Controller:{},,jiuye:{}",this.getClass().getName(),jiuye.toString());
    92. String role = String.valueOf(request.getSession().getAttribute("role"));
    93. // if(false)
    94. // return R.error(511,"永远不会进入");
    95. // else if("学生".equals(role))
    96. // jiuye.setXueshengId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    97. // else if("企业".equals(role))
    98. // jiuye.setQiyeId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    99. //根据字段查询是否有相同数据
    100. Wrapper<JiuyeEntity> queryWrapper = new EntityWrapper<JiuyeEntity>()
    101. .notIn("id",jiuye.getId())
    102. .andNew()
    103. .eq("xuesheng_id", jiuye.getXueshengId())
    104. .eq("qiye_id", jiuye.getQiyeId())
    105. ;
    106. logger.info("sql语句:"+queryWrapper.getSqlSegment());
    107. JiuyeEntity jiuyeEntity = jiuyeService.selectOne(queryWrapper);
    108. if("".equals(jiuye.getJiuyeFile()) || "null".equals(jiuye.getJiuyeFile())){
    109. jiuye.setJiuyeFile(null);
    110. }
    111. if(jiuyeEntity==null){
    112. jiuyeService.updateById(jiuye);//根据id更新
    113. return R.ok();
    114. }else {
    115. return R.error(511,"该学生已经在该企业有就业记录");
    116. }
    117. }

    以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

    好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 相关阅读:
    2023上半年软考系统分析师科目一整理-02
    Java-泛型
    桌面级群控机器人平台设计与开发(Cocube单机器人)部分节选
    C++中struct与class区别,C与C++中struct区别
    【UV打印机】电气之负压系统(一)
    FH6908A负极关断同步整流模拟低压降二极管控制IC芯片TSOT23-6超低功耗整流器 1w功耗 <100uA静态 替代MP6908
    c++11~c++20 -09-类型别名和别名模板
    电子作业票系统:消除安全管理漏洞,科技赋能企业业务洞察
    深入理解操作系统中进程与线程的区别及切换机制(上)
    Python之numpy函数
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/133210928