自2012年教育部决定在全国开展并实施大学生创新创业训练计划以来,在过去的几年间,为高效、稳定地完成大学生创新创业训练计划的项目管理工作,高校中己出现一些关于大创项目的管理理论研究以及信息化的实现,如厦门大学的裴以明的《基于B/S的大学生创新创业管理系统的设计与实现》、吉林大学的蓝健的《高校大创项目管理系统的设计与实现》。然而这些研究与信息化实现大多针对特定的一所高校,不具有普遍性;加之各个信息化实现使用的技术与框架各不相同,相互之间很难有借鉴意义。
演示视频:
【java毕业设计】基于ssm jsp创新创业项目系统源码和文档
目前高校针对大创的项目管理工作主要分为以下几个流程:指导老师发布科研课题、学生组队申请项目、组织评审专家进行项目评审、项目分级、项目中期检查、项目结题等。其中大创项目将根据项目的创新性、实用性等各方面水平被分为国家级、省级、校级三大等级,然后省级项目及国家级项目上报至省教育厅参与省级的大创项目评比。目前的创新创业项目管理系统都是基于高校内部大创管理办法,进行项目管理流程化、信息化的实现。
package com.innovateback.controller;
import com.innovateback.controller.common.CommonController;
import com.innovateback.dto.ProjectDto;
import com.innovateback.entity.Message;
import com.innovateback.entity.Project;
import com.innovateback.entity.ProjectUser;
import com.innovateback.entity.manage.Func;
import com.innovateback.entity.manage.User;
import com.innovateback.service.MessageService;
import com.innovateback.service.MycountService;
import com.innovateback.service.ProjectService;
import com.innovateback.utils.UniCodeUtil;
import com.sun.org.apache.xpath.internal.operations.Mod;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
@Controller
public class ProjectController extends CommonController {
@Autowired
MycountService mycountService;
@Autowired
ProjectService projectService;
@Autowired
MessageService messageService;
/**
* 项目申请页面
* @param request
* @return
*/
@RequestMapping(value="/applypage",method=RequestMethod.GET)
public String applypage(HttpServletRequest request,Model model){
User user=super.getUsername(request);
List<Func> funcs=super.getFucByUserId(request);
model.addAttribute("funcs",funcs);
model.addAttribute("currentname","项目申请");
model.addAttribute("username",user.getUsername());
return "/innovate/apply";
}
/**
*申请项目
*/
@RequestMapping(value="/insertProject",method=RequestMethod.POST)
public String insertProject(HttpServletRequest request){
String name=request.getParameter("projectname");
String price=request.getParameter("price");
String subject=request.getParameter("subject");
String result_form=request.getParameter("result_form");
String content=request.getParameter("content");
String teacher_id=request.getParameter("teacher_id");
String member[]=request.getParameterValues("member");//参与者学号
String people[]=request.getParameterValues("people");//参与者名称
//生成项目的随机的id
String projectid=UniCodeUtil.rand();
//获取当前登录的用户
User user=super.getUsername(request);
//依据用户学号获取用户名称
ProjectUser master=new ProjectUser();
master.setProject_id(projectid);
master.setFlag(1);
master.setStudent_id(user.getStudent_id());
master.setName(user.getUsername());
master.setTeacher_id(teacher_id);
//定义存放用户的list集合
List<ProjectUser> projectUserList=new ArrayList<>();
projectUserList.add(master);
for(int i=0;i<member.length;i++){
ProjectUser projectUser=new ProjectUser();
projectUser.setProject_id(projectid);
projectUser.setFlag(0);
projectUser.setStudent_id(member[i]);
projectUser.setName(people[i]);
projectUser.setTeacher_id(teacher_id);
projectUserList.add(projectUser);
}
//将用户添加到数据库
projectService.insertProjectUser(projectUserList);
//将项目插入数据库
Project project=new Project();
project.setId(projectid);
project.setContent(content);
project.setName(name);
project.setPrice(price);
project.setResult_form(result_form);
project.setSubject(subject);
projectService.insertData(project);
//记录提交信息
Message message = new Message();
message.setProject_id(projectid);
message.setContent("项目提交成功");
message.setStatus(0);
message.setContent_type(1);//项目进度信息
messageService.insertData(message);
return "redirect:/project_detail?project_id="+projectid;
}
/**
* 项目详情页面
* @param request
* @return
*/
@RequestMapping(value="/project_detail",method=RequestMethod.GET)
public String detail(HttpServletRequest request, Model model){
super.commondetail(request,model);
//获取当前的用户对应的角色,依据角色构造菜单
List<Func> funcs=super.getFucByUserId(request);
model.addAttribute("funcs",funcs);
model.addAttribute("currentname","我的项目");
return "/innovate/project_detail";
}
/**
* 修改项目页面
*/
@RequestMapping(value = "/updateProjectpage",method = RequestMethod.GET)
public String updateprojectpage(HttpServletRequest request,Model model){
String id=request.getParameter("project_id");
Project project=projectService.getProjectByProjectId(id);
//依据项目id获取所有的用户
List<ProjectUser> projectUsers=projectService.getProjectUser(id);
for (ProjectUser projectUser:projectUsers){
if(projectUser.getFlag()==1){//当前用户为主持人
model.addAttribute("master",projectUser);
projectUsers.remove(projectUser);
break;
}
}
model.addAttribute("project",project);
model.addAttribute("project_user",projectUsers);
model.addAttribute("teacher",projectUsers.get(0).getTeacher_id());
List<Func> funcs=super.getFucByUserId(request);
model.addAttribute("funcs",funcs);
model.addAttribute("currentname","我的项目");
return "/innovate/updateproject";
}
/**
* 更新项目
*/
@RequestMapping(value = "/updateProject",method = RequestMethod.POST)
public String updateproject(HttpServletRequest request, Model model){
String id=request.getParameter("id");
String name=request.getParameter("projectname");
String master_id=request.getParameter("master");
String price=request.getParameter("price");
String subject=request.getParameter("subject");
String result_form=request.getParameter("result_form");
String content=request.getParameter("content");
String teacher_id=request.getParameter("teacher_id");
String member[]=request.getParameterValues("member");
String people[]=request.getParameterValues("people");
//依据id更新项目
Project project=new Project();
project.setId(id);
project.setContent(content);
project.setName(name);
project.setPrice(price);
project.setResult_form(result_form);
project.setSubject(subject);
//依据project_id更新指导教师,学生
// 1:依据项目id删除项目,用户对应关系
projectService.deleteProject(id);
//获取当前登录的用户
User user=mycountService.getMycountByStudentId(master_id);
//依据用户学号获取用户名称
ProjectUser master=new ProjectUser();
master.setProject_id(id);
master.setFlag(1);
master.setStudent_id(user.getStudent_id());
master.setName(user.getUsername());
master.setTeacher_id(teacher_id);
//定义存放用户的list集合
List<ProjectUser> projectUserList=new ArrayList<>();
projectUserList.add(master);
for(int i=0;i<member.length;i++){
ProjectUser projectUser=new ProjectUser();
projectUser.setProject_id(id);
projectUser.setFlag(0);
projectUser.setStudent_id(member[i]);
projectUser.setName(people[i]);
projectUser.setTeacher_id(teacher_id);
projectUserList.add(projectUser);
}
projectService.insertProjectUser(projectUserList);
projectService.updateProject(project);
return "redirect:/project_detail?project_id="+id;
}
@RequestMapping(value = "/allproject",method = RequestMethod.GET)
public String allproject(HttpServletRequest request,Model model){
//获取所有项目
List<Project> projectList=projectService.getProject();
List<ProjectDto> projects=new ArrayList<>();
for(Project project:projectList){
ProjectDto projectDto=new ProjectDto();
projectDto.setCollege("某某校区");
projectDto.setResult_form(project.getResult_form());
projectDto.setStatus(project.getStatus());
projectDto.setSubject(project.getSubject());
projectDto.setId(project.getId());
projectDto.setName(project.getName());
//依据projectid获取主持人
List<ProjectUser> projectUsers=projectService.getProjectUser(project.getId());
for(ProjectUser projectUser:projectUsers){
if(projectUser.getFlag()==1){
projectDto.setMaster(projectUser.getName());
}
}
//TODO 计算项目经费
projectDto.setPrice(project.getPrice());
projects.add(projectDto);
}
model.addAttribute("projects",projects);
List<Func> funcs=super.getFucByUserId(request);
model.addAttribute("funcs",funcs);
model.addAttribute("currentname","所有项目");
return "/innovate/main";
}
}
package com.innovateback.controller;
import com.innovateback.controller.common.CommonController;
import com.innovateback.dto.ProjectDto;
import com.innovateback.entity.Message;
import com.innovateback.entity.Project;
import com.innovateback.entity.ProjectUser;
import com.innovateback.entity.manage.Func;
import com.innovateback.service.MessageService;
import com.innovateback.service.MycountService;
import com.innovateback.service.ProjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;
/**
* 项目主管控制器
*/
@Controller
public class ApproveController extends CommonController {
@Autowired
MycountService mycountService;
@Autowired
ProjectService projectService;
@Autowired
MessageService messageService;
/**
* 待初审项目
* @param request
* @param model
* @return
*/
@RequestMapping(value="/approve",method=RequestMethod.GET)
public String waitguide(HttpServletRequest request, Model model){
//获取状态为0的项目
List<Project> projectList=projectService.getProjectByStatus(0);
List<ProjectDto> projects=this.buidprojectdto(projectList);
model.addAttribute("projects",projects);
List<Func> funcs=super.getFucByUserId(request);
model.addAttribute("funcs",funcs);
model.addAttribute("currentname","待初审项目");
return "/innovate/approve";
}
/**
* 中期审核项目
* @param request
* @param model
* @return
*/
@RequestMapping(value="/zhongqi",method=RequestMethod.GET)
public String zhongqiguide(HttpServletRequest request, Model model){
//获取状态为0的项目
List<Project> projectList=projectService.getProjectByStatus(1);
List<ProjectDto> projects=this.buidprojectdto(projectList);
model.addAttribute("projects",projects);
List<Func> funcs=super.getFucByUserId(request);
model.addAttribute("funcs",funcs);
model.addAttribute("currentname","中期待检查项目");
return "/innovate/approve";
}
/**
* 已结题项目
* @param request
* @param model
* @return
*/
@RequestMapping(value="/jieti",method=RequestMethod.GET)
public String jieti(HttpServletRequest request, Model model){
//获取状态为0的项目
List<Project> projectList=projectService.getProjectByStatus(3);
List<ProjectDto> projects=this.buidprojectdto(projectList);
model.addAttribute("projects",projects);
List<Func> funcs=super.getFucByUserId(request);
model.addAttribute("funcs",funcs);
model.addAttribute("currentname","已结题项目");
return "/innovate/approve";
}
/**
* 审核详情页面
* @param request
* @return
*/
@RequestMapping(value="/approve_detail",method=RequestMethod.GET)
public String guide_detail(HttpServletRequest request, Model model){
super.commondetail(request,model);
List<Func> funcs=super.getFucByUserId(request);
model.addAttribute("funcs",funcs);
model.addAttribute("currentname","待审核项目");
return "/innovate/approve_detail";
}
public List<ProjectDto> buidprojectdto(List<Project> projectList){
List<ProjectDto> projects=new ArrayList<>();
for(Project project:projectList){
ProjectDto projectDto=new ProjectDto();
projectDto.setCollege("某某校区");
projectDto.setResult_form(project.getResult_form());
projectDto.setStatus(project.getStatus());
projectDto.setSubject(project.getSubject());
projectDto.setId(project.getId());
projectDto.setName(project.getName());
//依据projectid获取主持人
List<ProjectUser> projectUsers=projectService.getProjectUser(project.getId());
for(ProjectUser projectUser:projectUsers){
if(projectUser.getFlag()==1){
projectDto.setMaster(projectUser.getName());
}
}
//TODO 计算项目经费
projectDto.setPrice(project.getPrice());
projects.add(projectDto);
}
return projects;
}
@RequestMapping(value = "/okapprove",method = RequestMethod.POST)
public String okapprove(HttpServletRequest request){
String project_id=request.getParameter("project_id");
Project project=projectService.getProjectByProjectId(project_id);
String content="";
if(project.getStatus()==0){//提交成功,将状态变为1
project.setStatus(1);
content="项目初审通过!";
}
else if(project.getStatus()==1){
project.setStatus(2);
content="恭喜你,项目中期检查通过!";
}
else{
project.setStatus(3);
content="项目已结题!";
}
Message message = new Message();
message.setProject_id(project_id);
message.setContent(content);
message.setStatus(0);
message.setContent_type(1);//
messageService.insertData(message);
projectService.updateProject(project);
return "redirect:/approve_detail?project_id="+project_id;
}
}