• Java毕业设计-科研工作管理系统


    🔥作者主页:疯狂行者🔥 💖✌java领域优质创作者,专注于Java技术领域技术交流✌💖
    💖文末获取源码💖
    精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

    Java精彩实战项目案例

    Java精彩新手项目案例


    前言

    本次文章主要是介绍SpringBoot+Vue科研工作管理系统的功能,系统分类两个角色,分别是管理员、秘书、教师

    一、系统功能

    1.1 开发环境

    • 开发语言:Java - 技术:SpringBoot+Vue
    • 数据库:MySQL - 架构:B/S - 源码类型: Web
    • 编译工具:Idea、Eclipse、MyEclipse (选其一)
    • 其他:jdk1.8、Tomcat8.5【内置】 、Navicat

    二、系统设计

    2.1 研究思路分析

    在系统流程分析当中调查分析它是比较重要的环节,因为在这个系统当中它都涉及到每个环节的业务流程,所以从Java+SpringBoot+Vue实现的科研工作管理系统的设计的整体设计上要保证各个信息的正确输入和输出以及对数据储存的完整,并结合实际的操作步骤来绘制出具体的流程图。具体流程图如下图所示:
    在这里插入图片描述

    2.2 系统功能结构图

    系统的功能需求如下:
    管理员模块:系统中的核心用户是管理员,管理员登录后,通过管理员功能来管理后台系统。主要功能有:个人中心、基础数据管理【科研获奖类型、科研文档类型、科研项目类型管理】、教师管理、秘书管理、科研获奖管理、科研文档管理、科研项目管理、总工作量统计;秘书的功能有科研获奖管理、个人中心、教师管理、科研文档管理、科研项目管理、总工作量统计;教师的功能有科研获奖管理、个人中心、科研文档管理、科研项目管理、总工作量统计。
    在这里插入图片描述

    三、部分功能展示

    ☀️登录界面☀️
    在这里插入图片描述

    ☀️管理员_科研获奖管理☀️
    在这里插入图片描述

    ☀️管理员_科研获奖类型管理☀️
    在这里插入图片描述

    ☀️管理员_科研项目管理☀️
    在这里插入图片描述

    ☀️秘书_科研获奖审核管理☀️
    在这里插入图片描述

    ☀️秘书_科研项目审核管理☀️
    在这里插入图片描述

    ☀️管理员_总工作量统计☀️
    在这里插入图片描述

    三、部分代码设计

    3.1.登录查询【代码如下(示例):】

       /**
    	 * 登录
    	 */
    	@IgnoreAuth
    	@PostMapping(value = "/login")
    	public R login(String username, String password, String captcha, HttpServletRequest request) {
    		UsersEntity user = usersService.selectOne(new EntityWrapper<UsersEntity>().eq("username", username));
    		if(user==null || !user.getPassword().equals(password)) {
    			return R.error("账号或密码不正确");
    		}
    		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
    		R r = R.ok();
    		r.put("token", token);
    		r.put("role",user.getRole());
    		r.put("userId",user.getId());
    		return r;
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    3.2.科研获奖查询【代码如下(示例):】

    /**
        * 后端列表
        */
        @RequestMapping("/page")
        public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
            logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
            String role = String.valueOf(request.getSession().getAttribute("role"));
            if(false)
                return R.error(511,"永不会进入");
            else if("秘书".equals(role))
                params.put("mishuId",request.getSession().getAttribute("userId"));
            else if("教师".equals(role))
                params.put("jiaoshiId",request.getSession().getAttribute("userId"));
            if(params.get("orderBy")==null || params.get("orderBy")==""){
                params.put("orderBy","id");
            }
            PageUtils page = keyanhuojiangService.queryPage(params);
    
            //字典表数据转换
            List<KeyanhuojiangView> list =(List<KeyanhuojiangView>)page.getList();
            for(KeyanhuojiangView c:list){
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(c, request);
            }
            return R.ok().put("data", page);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    3.3.工作量信息查询【代码如下(示例):】

     /**
        * 后端列表
        */
        @RequestMapping("/page")
        public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
            logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
            String role = String.valueOf(request.getSession().getAttribute("role"));
            if(false)
                return R.error(511,"永不会进入");
            else if("秘书".equals(role))
                params.put("mishuId",request.getSession().getAttribute("userId"));
            else if("教师".equals(role))
                params.put("jiaoshiId",request.getSession().getAttribute("userId"));
            if(params.get("orderBy")==null || params.get("orderBy")==""){
                params.put("orderBy","id");
            }
            PageUtils page = gongzuoliangService.queryPage(params);
            //字典表数据转换
            List<GongzuoliangView> list =(List<GongzuoliangView>)page.getList();
            for(GongzuoliangView c:list){
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(c, request);
            }
            return R.ok().put("data", page);
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    总结

    源码获取:

    大家点赞、收藏、关注、评论啦 、

    打卡 文章 更新 38/ 365天

    精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

    Java精彩实战项目案例

    Java精彩新手项目案例

  • 相关阅读:
    2022年武汉安全员ABC考试难吗?需要参加培训吗?甘建二
    04-java数据结构之栈的学习
    C# 实战--listBox1使用
    【工具】【IDE】Qt Creator社区版
    python向量之间相似性的计算方法
    QT5|C++|通过信号槽机制实现进度条更新
    PCB(一):altium designer 环境安装配置
    idea插件(free mybatis plugin)
    2024.08.07校招 实习 内推 面经
    C++ 多态(2)
  • 原文地址:https://blog.csdn.net/QinTao9961220/article/details/126664758