基于Java+Springmvc+vue+element实现大学生科技创新创业项目管理系统

news2024/12/26 22:47:50

基于Java+Springmvc+vue+element实现大学生科技创新创业项目管理系统

博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域
作者主页 超级帅帅吴
Java项目精品实战案例《500套》
欢迎点赞 收藏 ⭐留言
文末获取源码联系方式

文章目录

  • 基于Java+Springmvc+vue+element实现大学生科技创新创业项目管理系统
  • 前言介绍:
  • 系统设计:
  • 功能截图:
    • 用户登录注册:
    • 学生信息管理:
    • 指导老师管理:
    • 评审专家管理:
    • 项目任务书管理:
    • 中期检查报告管理:
    • 项目申请书管理:
    • 结项报告管理:
    • 项目进展日志管理:
    • 项目评价管理:
  • 数据设计:
  • 代码实现:
  • 获取源码:

前言介绍:

随着社会的不断快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对大学生创新创业项目管理方面的要求也在不断的提高、需要大学生创新创业项目管理的人数更是不断增加,使得大学生创新创业项目管理的开发成为必需而且紧迫的事情。大学生创新创业项目管理主要是借助计算机,通过对大学生创新创业项目管理所需的信息管理,增加用户选择,同时也方便对广大用户信息的及时查询、修改以及对用户信息的及时了解。大学生创新创业项目管理对一些用户带来了更多的便利, 该系统通过和Mysql数据库管理系统软件协作来满足用户的需求保存数据等。

系统设计:

开发工具:idea/eclipse、navicat for mysql

开发语言:java、jdk1.8、mysql5

硬件环境:Win10系统、Google等。

主要技术:springmvc、mybatis、vue 、java等

主要功能设计:首页、个人中心、学生管理、指导老师管理、评审专家管理、项目任务书管理、中期检查报告管理、项目申请书管理、结项报告管理、项目进展日志管理、项目立项申请管理、项目评价管理
在这里插入图片描述

功能截图:

用户登录注册:

管理员通过输入用户名、密码、选择角色等信息,然后点击登录就能登录到系统
管理员登录进入系统之后,就可以对所有的信息进行查看,可以查看到首页、个人中心、学生管理、指导老师管理、评审专家管理、项目任务书管理、中期检查报告管理、项目申请书管理、结项报告管理、项目进展日志管理、项目立项申请管理、项目评价管理等,并且还可以对其进行相应的操作管理
在这里插入图片描述

学生信息管理:

在学生管理页面中可以对索引、姓名、学号、性别、手机、邮箱、联系地址、身份证、照片等信息进行详情,修改或删除等操作
在这里插入图片描述

指导老师管理:

指导老师管理,在指导老师管理页面中可以对索引、工号、指导老师姓名、性别、手机、邮箱、身份证、图片等信息进行详情,修改或删除等操作
在这里插入图片描述

评审专家管理:

在评审专家管理页面中可以对索引、账号、姓名、性别、身份证、手机、邮箱、照片等信息进行详情,修改或删除等操作
在这里插入图片描述

项目任务书管理:

在项目申请书管理页面中可以对索引、项目名称、学号、姓名、手机、邮箱、指导老师姓名、工号、文件、联系地址、申请时间、审核回复、审核状态等信息进行详情,修改或删除等操作
在这里插入图片描述

中期检查报告管理:

在中期检查报告管理页面中可以对索引、项目名称、项目类别、学号、文件、编号、项目负责人、指导老师姓名、工号、提交时间、审核回复、审核状态等信息进行详情,修改或删除等操作
在这里插入图片描述

项目申请书管理:

在项目进展日志管理页面中可以对索引、项目名称、文件、指导老师姓名、工号、学号、姓名、提交时间等信息进行详情,修改或删除等操作
在这里插入图片描述

结项报告管理:

在结项报告管理页面中可以对索引、项目名称、项目类型、学号、文件、编号、项目负责人、指导老师姓名、工号、提交时间、审核回复、审核状态等信息进行详情,修改或删除等操作
在这里插入图片描述

项目进展日志管理:

在项目进展日志管理页面中可以对索引、项目名称、文件、指导老师姓名、工号、学号、姓名、提交时间等信息进行详情,修改或删除等操作
在这里插入图片描述

项目评价管理:

在项目进展日志管理页面中可以对索引、项目名称、文件、指导老师姓名、工号、学号、姓名、提交时间等信息进行详情,修改或删除等操作
在这里插入图片描述

数据设计:

项目申请书管理实体属性图,如图所示:
在这里插入图片描述
结项报告管理实体属性图如图所示:
在这里插入图片描述

代码实现:

 
 
/**
 * 项目立项申请
 * 后端接口
 * @author 
 * @email 
 * @date 2022-04-10 16:31:21
 */
@RestController
@RequestMapping("/xiangmulixiangshenqing")
public class XiangmulixiangshenqingController {
    @Autowired
    private XiangmulixiangshenqingService xiangmulixiangshenqingService;
    
 
 
    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,XiangmulixiangshenqingEntity xiangmulixiangshenqing, 
		HttpServletRequest request){
 
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("zhidaolaoshi")) {
			xiangmulixiangshenqing.setGonghao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("xuesheng")) {
			xiangmulixiangshenqing.setXuehao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<XiangmulixiangshenqingEntity> ew = new EntityWrapper<XiangmulixiangshenqingEntity>();
		PageUtils page = xiangmulixiangshenqingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiangmulixiangshenqing), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,XiangmulixiangshenqingEntity xiangmulixiangshenqing, HttpServletRequest request){
        EntityWrapper<XiangmulixiangshenqingEntity> ew = new EntityWrapper<XiangmulixiangshenqingEntity>();
		PageUtils page = xiangmulixiangshenqingService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, xiangmulixiangshenqing), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( XiangmulixiangshenqingEntity xiangmulixiangshenqing){
       	EntityWrapper<XiangmulixiangshenqingEntity> ew = new EntityWrapper<XiangmulixiangshenqingEntity>();
      	ew.allEq(MPUtil.allEQMapPre( xiangmulixiangshenqing, "xiangmulixiangshenqing")); 
        return R.ok().put("data", xiangmulixiangshenqingService.selectListView(ew));
    }
 
	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(XiangmulixiangshenqingEntity xiangmulixiangshenqing){
        EntityWrapper< XiangmulixiangshenqingEntity> ew = new EntityWrapper< XiangmulixiangshenqingEntity>();
 		ew.allEq(MPUtil.allEQMapPre( xiangmulixiangshenqing, "xiangmulixiangshenqing")); 
		XiangmulixiangshenqingView xiangmulixiangshenqingView =  xiangmulixiangshenqingService.selectView(ew);
		return R.ok("查询项目立项申请成功").put("data", xiangmulixiangshenqingView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        XiangmulixiangshenqingEntity xiangmulixiangshenqing = xiangmulixiangshenqingService.selectById(id);
        return R.ok().put("data", xiangmulixiangshenqing);
    }
 
    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        XiangmulixiangshenqingEntity xiangmulixiangshenqing = xiangmulixiangshenqingService.selectById(id);
        return R.ok().put("data", xiangmulixiangshenqing);
    }
    
 
 
 
    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody XiangmulixiangshenqingEntity xiangmulixiangshenqing, HttpServletRequest request){
    	xiangmulixiangshenqing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xiangmulixiangshenqing);
 
        xiangmulixiangshenqingService.insert(xiangmulixiangshenqing);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody XiangmulixiangshenqingEntity xiangmulixiangshenqing, HttpServletRequest request){
    	xiangmulixiangshenqing.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(xiangmulixiangshenqing);
 
        xiangmulixiangshenqingService.insert(xiangmulixiangshenqing);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody XiangmulixiangshenqingEntity xiangmulixiangshenqing, HttpServletRequest request){
        //ValidatorUtils.validateEntity(xiangmulixiangshenqing);
        xiangmulixiangshenqingService.updateById(xiangmulixiangshenqing);//全部更新
        return R.ok();
    }
    
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        xiangmulixiangshenqingService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		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));
			}
		}
		
		Wrapper<XiangmulixiangshenqingEntity> wrapper = new EntityWrapper<XiangmulixiangshenqingEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}
 
		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("zhidaolaoshi")) {
			wrapper.eq("gonghao", (String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("xuesheng")) {
			wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));
		}
 
		int count = xiangmulixiangshenqingService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	
 
 
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">
 
    <mvc:default-servlet-handler/>
 
    <!-- Controller包(自动注入) -->
    <context:component-scan base-package="com.controller"/>
 
    <!-- FastJson注入 -->
    <mvc:annotation-driven>
        <!-- <mvc:message-converters register-defaults="true">
            避免IE执行AJAX时,返回JSON出现下载文件
            FastJson
            <bean id="fastJsonHttpMessageConverter"
                  class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
                <property name="supportedMediaTypes">
                    <list>
                        这里顺序不能反,一定先写text/html,不然ie下出现下载提示
                        <value>text/html;charset=UTF-8</value>
                        <value>application/json;charset=UTF-8</value>
                    </list>
                </property>
                <property name="features">
                    <array value-type="com.alibaba.fastjson.serializer.SerializerFeature">
                        避免循环引用
                        <value>DisableCircularReferenceDetect</value>
                        是否输出值为null的字段
                        <value>WriteMapNullValue</value>
                        数值字段如果为null,输出为0,而非null
                        <value>WriteNullNumberAsZero</value>
                        字符类型字段如果为null,输出为"",而非null 
                        <value>WriteNullStringAsEmpty</value>
                        List字段如果为null,输出为[],而非null
                        <value>WriteNullListAsEmpty</value>
                        Boolean字段如果为null,输出为false,而非null
                        <value>WriteNullBooleanAsFalse</value>
                    </array>
                </property>
            </bean>
        </mvc:message-converters> -->
    </mvc:annotation-driven>
    <!-- 静态资源配置 -->
    <mvc:resources mapping="/resources/**" location="/resources/"/>
    <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    
    <!-- 拦截器配置 -->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <mvc:exclude-mapping path="/upload"/>
            <bean class="com.interceptor.AuthorizationInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
 
    <!-- 上传限制 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <!-- 上传文件大小限制为31M,31*1024*1024 -->
        <property name="maxUploadSize" value="32505856"/>
    </bean>
 
</beans>

获取源码:

大家点赞、收藏、关注、评论啦
🍅查看下方微信号获取联系方式 📝
🚀🚀🚀精彩系列推荐
Java项目精品实战案例《500套》
精彩专栏推荐订阅:在下方专栏

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/553434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【校园网设计】基于ensp的跨地区的校园网组网方案

本博客是基于模拟器ensp的校园网组网方案&#xff0c;有总校区和分校区&#xff0c;主要用了vlan划分、dhcp、nat、ospf、acl、bgp等技术。首先说一下本博客的局限性&#xff1a; 总校区和分校区之间只是使用的传统的bgp建立连接&#xff0c;这样可以在运营商上看到内网的明细&…

Squid 代理服务器的应用(传统代理、透明代理、ACL控制列表、sarg日志分析、反向代理)

一、Squid代理服务器的概述 squid 作为一款服务器代理工具&#xff0c;可以缓存网页对象&#xff0c;减少重复请求&#xff0c;从而达到加快网页访问速度&#xff0c;隐藏客户机真实IP&#xff0c;更为安全。 Squid主要提供缓存加速、应用层过滤控制的功能 1、squid代理的工…

Android Studio SDK无法勾选安装的解决方案

问题描述 1、在初次安装好Android Studio后&#xff0c;会启动AS&#xff0c;出现经典的Unable to access Android SDK add-on list报错&#xff0c;点Cancel即可。网上的解决方法分为两种&#xff1a;&#xff08;1&#xff09;设置Proxy为教育网&#xff08;2&#xff09;在…

Linux 下安装SonarQube (版本sonarqube7.6)

公司的虚拟环境坏了&#xff0c;sonarqube需要重新安装。简单记录安装过程和遇到的问题。 相关环境信息 CentOS Linux release 7.6.1810 (Core)MySQL 5.7.30sonarqube7.6JDK 11.0.2 一 安装Sonar前需要知道 1为什么要代码清洁 软件的核心是代码。代码不仅指导业务行为&#…

陈丹琦团队最新力作:上下文学习在上下文“学到”了什么?

深度学习自然语言处理 原创作者 | 鸽鸽 这段时间in-context learning真的很火&#xff0c;陈丹琦组最新的两篇文章都是ICL相关&#xff0c;今天我们拜读其中一篇&#xff1a;丹琦的硕士生、纽约大学准博士生Jane Pan的ACL小短文。 大佬的学生会做出怎样的科研示范呢&#xff1f…

单位、家庭建筑物电气、电子设备防雷举措

前 言 在现实的学习、工作、生活中&#xff0c;有时会面对自然灾害、重特大事故、环境公害及人为破坏等突发事件&#xff0c;为了控制事故的发展&#xff0c;就不得不需要事先制定应急预案。那要怎么制定科学的应急预案呢﹖下面是小编为大家整理的单位、住宅建筑物、电子电气防…

Flink有状态计算的状态容错

状态容错 State Fault Tolerance 首先来说一说状态容错。Flink 支持有状态的计算&#xff0c;可以把数据流的结果一直维持在内存&#xff08;或 disk&#xff09;中&#xff0c;比如累加一个点击数&#xff0c;如果某一时刻计算程序挂掉了&#xff0c;如何保证下次重启的时候&…

VM600 IOCN 输入/输出接口卡

用于CPUM卡的VM600 IOCN输入/输出卡 CPUM卡的输入/输出(接口)卡一个主以太网连接器(8P8C (RJ45))&#xff0c;用于与VM600 MPSx软件和/或Modbus TCP和/或PROFINET通信进行通信一个辅助以太网连接器(8P8C (RJ45))&#xff0c;用于冗余Modbus TCP通信一个主要串行连接器(6P6C (R…

LightningChart JS 4.0.x Crack

Lightning-fast, interactive & responsive 2D & 3D JavaScript charts. Next Generation, World’s Fastest JS Charts Getting Started with LightningChart JS There’s multiple ways to get started with our JS charting library. You can install the package…

CMake Practice 学习笔记二---子目录、安装

让前面的Hello World更像一个工程&#xff1a; 为工程添加一个子目录src&#xff0c;用来放置工程源代码&#xff1b;添加一个子目录doc&#xff0c;用来反之这个工程的文档hello.txt&#xff1b;在工程目录添加文本文件COPYRIGHT&#xff0c;README&#xff1b;在工程目录添加…

Linux常见指令(3)

Linux常见指令 ⑶ date指令引入描述用法例子时间时间戳 cal指令描述用法例子 find指令描述用法例子补充which指令whereis指令 grep指令描述用法例子grep 对文件的操作grep 对目录的操作 补充 打包压缩 和 解压解包zip && unzip描述用法例子对文件的操作对目录的操作 ta…

苹果手机没有备份怎么恢复数据?数据恢复,轻松解决!

案例&#xff1a;苹果手机没有进行过iTunes和iCloud备份&#xff0c;手机还原后数据都被抹掉了&#xff0c;还能恢复数据吗&#xff1f; 【求问各位大神&#xff0c;我几天前把苹果手机的数据还原了&#xff0c;也没有提前进行过数据的备份。现在想起来之前微信上有一些重要的…

uniapp使用uView框架,后端传16位数以上时出现精度缺失的情况

1、使用 json-bigint&#xff0c;失败 2、使用 config 里的 getTask&#xff0c;失败 3、修改 dataType&#xff0c;成功 原因&#xff1a; 通过ajax请求回来的数据在response和preview两种状态显示的是不同的。response中的看到的数据格式其实是字符串&#xff08;ajax请求…

GPT-4 国内使用指南 保姆教程

gpt持续火爆&#xff0c;然鹅国内很多朋友还说不会使用&#xff0c;因此有必要科普一篇文章&#xff01; app.educlub.icu很多朋友因为各种限制无法开通#ChatGPT Plus&#xff0c;而申请OpenAI的GPT-4 API也要慢慢排队&#xff08;我的也还没下来&#xff09;。于是在这里我搜…

3 个令人惊艳的 ChatGPT 项目,开源了!

过去一周&#xff0c;AI 界又发生了天翻地覆的变化&#xff0c;其中&#xff0c;最广为人知的&#xff0c;应该是 OpenAI 正式上线 ChatGPT iOS 客户端&#xff0c;让所有人都可以更方便的在手机上与 ChatGPT 聊天。 此外&#xff0c;Stable Diffusion 母公司 Stability AI 也…

智能文档处理黑科技,拥抱更高效的数字世界

目录 0 写在前面1 为何要关注智慧文档&#xff1f;2 图像弯曲矫正3 手写板反光擦除4 版面元素检测5 文档篡改检测总结 0 写在前面 近期&#xff0c;中国图象图形学学会文档图像分析与识别专业委员会与上海合合信息科技有限公司联合打造了《文档图像智能分析与处理》高峰论坛。…

OpenCloudOS开源Linux操作系统详解

OpenCloudOS是什么&#xff1f;OpenCloudOS是Linux哪个版本&#xff1f;OpenCloudOS是哪个国家的&#xff1f;OpenCloudOS是一个国产操作系统开源社区&#xff0c;OpenCloudOS的基础库和用户态组件完全与CentOS 8兼容&#xff0c;腾讯云百科分享OpenCloudOS Linux操作系统详细介…

基于MATLAB的无人机遥感数据预处理与农林植被性状估算实践技术

为了将人工智能方法引入农业生产领域。首先在种植、养护等生产作业环节&#xff0c;逐步摆脱人力依赖&#xff1b;在施肥灌溉环节构建智慧节能系统&#xff1b;在产量预测和商品定价生产管理环节提高效能。这些智慧农业迫切需要实现的目标&#xff0c;首先要解决的问题就是多源…

第三十六章 状态管理工具与总结

Redux 是一个渐进式的状态管理库&#xff0c;它不仅仅是一个库&#xff0c;同时也是一个框架。它提供了一组用于构建复杂应用程序的工具和库&#xff0c;其中包括一些浏览器插件。 在 Chrome 和 Firefox 浏览器上&#xff0c;已经存在一些 Redux 的浏览器插件&#xff0c;例如 …

「技术分享」汽车检测移动机器人应用,科聪赋能智能数字化检测!

2021年汽车无钥匙进入系统市场价值16亿美元&#xff0c;预计到 2027 年将达到 26.8 亿美元&#xff0c;在预测期内的复合年增长率超过10%。这一光明的市场前景&#xff0c;推动相关供应商推出复杂的集成电子系统。但过去&#xff0c;汽车制造环节在智能化、数字化和过程成本等方…