基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】

 博主介绍:专注于Java技术领域和毕业项目实战

文末获取源码联系

 精彩专栏推荐订阅 不然下次找不到哟

Java项目精品实战案例(300套)

目录

一、效果演示

二、前言介绍

三、主要技术

四、系统设计(部分)

4.1、主要功能模块设计         

4.2、系统登录设计

五、运行截图

5.1、管理员功能模块

5.1.1、管理员登录

5.1.2、个人中心

5.1.3、用户管理

5.1.4、评审员管理

5.1.5、轮播图

5.1.6、省份管理

5.1.7、评审条件管理

5.1.8、职称申请管理

5.1.9、结果公布管理

5.2、评审员功能模块

5.2.1、个人中心

5.2.2、个人信息

5.2.3、职称申请管理

5.2.4、结果公布管理

5.3、前台首页功能模块

5.3.1、登录、用户注册

5.3.2、评审条件

5.3.3、论坛信息

5.3.4、个人中心

5.4、用户功能模块

5.4.1、职称申请管理

5.4.2、结果公布管理

5.4.3、我的收藏管理

六、数据库设计(部分)

七、代码参考

八、源码获取


一、效果演示

基于SpringBoot+vue的职称评审管理系统演示视频

二、前言介绍

职称评审管理系统是以实际运用为开发背景,运用软件工程原理和开发方法,采用springboot框架构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计等;详细设计主要包括系统数据库访问的实现,主要功能模块的具体实现,模块实现关键代码等。最后对系统进行功能测试,并对测试结果进行分析总结,得出系统中存在的不足及需要改进的地方,为以后的系统维护提供了方便,同时也为今后开发类似系统提供了借鉴和帮助。

三、主要技术

技术名 作用
SpringBoot 后端框架
Vue 前端框架
MySQL 数据库

四、系统设计(部分)

4.1、主要功能模块设计         

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第1张图片

4.2、系统登录设计

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第2张图片

五、运行截图

5.1、管理员功能模块

5.1.1、管理员登录

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第3张图片

图5-1管理员登录界面图

管理员登录进入职称评审管理系统可以查看首页、个人中心、用户管理、评审员管理、省份管理、评审条件管理、职称申请管理、结果公布管理、论坛管理、系统管理等信息。

5.1.2、个人中心

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第4张图片

图5-2个人中心界面图 

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第5张图片

图5-3个人信息界面图

5.1.3、用户管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第6张图片

图5-4用户管理界面图

5.1.4、评审员管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第7张图片

图5-5评审员管理界面图

5.1.5、轮播图

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第8张图片

图5-6轮播图管理界面图

5.1.6、省份管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第9张图片

图5-7省份管理界面图

5.1.7、评审条件管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第10张图片

图5-8评审条件管理界面图

5.1.8、职称申请管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第11张图片

图5-9职称申请管理界面图

5.1.9、结果公布管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第12张图片

图5-10结果公布管理界面图

5.2、评审员功能模块

评审员登录进入职称评审管理系统可以查看首页、个人中心、职称申请管理、结果公布管理等内容。

5.2.1、个人中心

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第13张图片

图5-11个人中心界面图

5.2.2、个人信息

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第14张图片

图5-12个人信息界面图

5.2.3、职称申请管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第15张图片

图5-13职称申请管理界面图

5.2.4、结果公布管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第16张图片

图5-14结果公布管理界面图

5.3、前台首页功能模块

职称评审管理系统,在职称评审管理系统可以查看首页、评审条件、论坛信息、系统公告、个人中心、后台管理、客服等内容,如图5-15所示。

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第17张图片

图5-15前台首页界面图

5.3.1、登录、用户注册

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第18张图片

图5-16登录、用户注册界面图

5.3.2、评审条件

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第19张图片

图5-17评审条件界面图

5.3.3、论坛信息

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第20张图片

图5-18论坛信息界面图

5.3.4、个人中心

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第21张图片

图5-19个人中心界面图

5.4、用户功能模块

用户登录进入职称评审管理系统可以查看首页、个人中心、职称申请管理、结果公布管理、我的收藏管理等内容。

5.4.1、职称申请管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第22张图片

图5-20职称申请管理界面图

5.4.2、结果公布管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第23张图片

图5-21结果公布管理界面图

5.4.3、我的收藏管理

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第24张图片

图5-22我的收藏管理界面图

六、数据库设计(部分)

通过职称评审管理系统的功能进行规划分成几个实体信息,实体信息将通过ER图进行说明,本系统的主要实体图如下:

管理员信息:账号、密码、角色属性图如图4-5所示。

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第25张图片

图4-5 管理员信息实体属性图

用户信息:用户名、密码、用户姓名、头像、性别、联系电话、操作实体属性图如图4-6所示。

基于Java+SpringBoot+vue的职称评审管理系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】_第26张图片

 图4-6用户信息属性图

七、代码参考

package com.controller;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ResourceUtils;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import com.annotation.IgnoreAuth;
import com.baidu.aip.face.AipFace;
import com.baidu.aip.face.MatchRequest;
import com.baidu.aip.util.Base64Util;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.ConfigEntity;
import com.service.CommonService;
import com.service.ConfigService;
import com.utils.BaiduUtil;
import com.utils.FileUtil;
import com.utils.R;

/**
 * 通用接口
 */
@RestController
public class CommonController{
	@Autowired
	private CommonService commonService;
	
	@Autowired
	private ConfigService configService;
	
	private static AipFace client = null;
	
	private static String BAIDU_DITU_AK = null;
	
	@RequestMapping("/location")
	public R location(String lng,String lat) {
		if(BAIDU_DITU_AK==null) {
			BAIDU_DITU_AK = configService.selectOne(new EntityWrapper().eq("name", "baidu_ditu_ak")).getValue();
			if(BAIDU_DITU_AK==null) {
				return R.error("请在配置管理中正确配置baidu_ditu_ak");
			}
		}
		Map map = BaiduUtil.getCityByLonLat(BAIDU_DITU_AK, lng, lat);
		return R.ok().put("data", map);
	}
	
	/**
	 * 人脸比对
	 * 
	 * @param face1 人脸1
	 * @param face2 人脸2
	 * @return
	 */
	@RequestMapping("/matchFace")
	public R matchFace(String face1, String face2) {
		if(client==null) {
			/*String AppID = configService.selectOne(new EntityWrapper().eq("name", "AppID")).getValue();*/
			String APIKey = configService.selectOne(new EntityWrapper().eq("name", "APIKey")).getValue();
			String SecretKey = configService.selectOne(new EntityWrapper().eq("name", "SecretKey")).getValue();
			String token = BaiduUtil.getAuth(APIKey, SecretKey);
			if(token==null) {
				return R.error("请在配置管理中正确配置APIKey和SecretKey");
			}
			client = new AipFace(null, APIKey, SecretKey);
			client.setConnectionTimeoutInMillis(2000);
			client.setSocketTimeoutInMillis(60000);
		}
		JSONObject res = null;
		try {
			File file1 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face1);
			File file2 = new File(ResourceUtils.getFile("classpath:static/upload").getAbsolutePath()+"/"+face2);
			String img1 = Base64Util.encode(FileUtil.FileToByte(file1));
			String img2 = Base64Util.encode(FileUtil.FileToByte(file2));
			MatchRequest req1 = new MatchRequest(img1, "BASE64");
			MatchRequest req2 = new MatchRequest(img2, "BASE64");
			ArrayList requests = new ArrayList();
			requests.add(req1);
			requests.add(req2);
			res = client.match(requests);
			System.out.println(res.get("result"));
		} catch (FileNotFoundException e) {
			e.printStackTrace();
			return R.error("文件不存在");
		} catch (IOException e) {
			e.printStackTrace();
		} 
		return R.ok().put("data", com.alibaba.fastjson.JSONObject.parse(res.get("result").toString()));
	}
    
	/**
	 * 获取table表中的column列表(联动接口)
	 * @param table
	 * @param column
	 * @return
	 */
	@IgnoreAuth
	@RequestMapping("/option/{tableName}/{columnName}")
	public R getOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName,String level,String parent) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		if(StringUtils.isNotBlank(level)) {
			params.put("level", level);
		}
		if(StringUtils.isNotBlank(parent)) {
			params.put("parent", parent);
		}
		List data = commonService.getOption(params);
		return R.ok().put("data", data);
	}
	
	/**
	 * 根据table中的column获取单条记录
	 * @param table
	 * @param column
	 * @return
	 */
	@IgnoreAuth
	@RequestMapping("/follow/{tableName}/{columnName}")
	public R getFollowByOption(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, @RequestParam String columnValue) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		params.put("columnValue", columnValue);
		Map result = commonService.getFollowByOption(params);
		return R.ok().put("data", result);
	}
	
	/**
	 * 修改table表的sfsh状态
	 * @param table
	 * @param map
	 * @return
	 */
	@RequestMapping("/sh/{tableName}")
	public R sh(@PathVariable("tableName") String tableName, @RequestBody Map map) {
		map.put("table", tableName);
		commonService.sh(map);
		return R.ok();
	}
	
	/**
	 * 获取需要提醒的记录数
	 * @param tableName
	 * @param columnName
	 * @param type 1:数字 2:日期
	 * @param map
	 * @return
	 */
	@IgnoreAuth
	@RequestMapping("/remind/{tableName}/{columnName}/{type}")
	public R remindCount(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName, 
						 @PathVariable("type") String type,@RequestParam Map map) {
		map.put("table", tableName);
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		int count = commonService.remindCount(map);
		return R.ok().put("count", count);
	}
	
	/**
	 * 单列求和
	 */
	@IgnoreAuth
	@RequestMapping("/cal/{tableName}/{columnName}")
	public R cal(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		Map result = commonService.selectCal(params);
		return R.ok().put("data", result);
	}
	
	/**
	 * 分组统计
	 */
	@IgnoreAuth
	@RequestMapping("/group/{tableName}/{columnName}")
	public R group(@PathVariable("tableName") String tableName, @PathVariable("columnName") String columnName) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("column", columnName);
		List> result = commonService.selectGroup(params);
		return R.ok().put("data", result);
	}
	
	/**
	 * (按值统计)
	 */
	@IgnoreAuth
	@RequestMapping("/value/{tableName}/{xColumnName}/{yColumnName}")
	public R value(@PathVariable("tableName") String tableName, @PathVariable("yColumnName") String yColumnName, @PathVariable("xColumnName") String xColumnName) {
		Map params = new HashMap();
		params.put("table", tableName);
		params.put("xColumn", xColumnName);
		params.put("yColumn", yColumnName);
		List> result = commonService.selectValue(params);
		return R.ok().put("data", result);
	}
	
}

八、源码获取

大家点赞、收藏、关注、评论啦 、查看文章结尾获取联系方式

精彩专栏推荐订阅:下方专栏

Java项目精品实战案例(300套)

私信我即可打包获取300多个项目源码+论文+演示视频~

​​​

你可能感兴趣的:(java毕业设计,java,spring,boot,vue.js,java毕业设计项目实战,职称评审管理系统)