大学生创新创业参赛作品在线评审系统的设计与实现(源码+论文)_java_298

本选题的意义:

2015年李克强总理在政府工作报告提出了“全民创业、万众创新”的口号后,社会各个层面都对创新创业给与了很大的支持,相关的大赛也相继出现。近年来,创青春全国大学生创业大赛、中国创新创业大赛、“互联网+”大学生创新创业大赛等创新创业相关大赛受到广泛关注,参赛人数之多和参赛面之广都前所未有,创新创业大赛已成为各高校深化教育改革的新载体。

在信息技术和网络技术迅猛发展和普及的今天,为了保证大赛稳定高效的运作,一个保证管理科学、运行高效且稳定、操作便捷的管理系统成为迫切需求。而为了让大赛有一个可靠可信的结果,评审过程的公平公正起到了莫大的作用。在线评审系统可以充分发挥计算机在信息处理方面的优势,将参赛作品合理分配给评审专家,评审专家在线进行评审,节省了人力、物力、财力,提高了劳动效率,加快了评审进程。

总之,大学生创新创业在线评审系统超越了传统比赛的通过纸质材料进行评审的限制,将给参赛学生和评审专家带来极大的便利。这样使整个评审过程变得更加的科学和公正,保证了大赛能稳定高效地进行。因此,本课题具有较强的现实意义和使用价值。

研究目标:

大学生创新创业参赛作品在线评审系统是基于网络技术进行开发的,旨在提高评审的可靠性、可操作性、客观性、实用性和有效性;以达到加快评审进程,保证大赛稳定进行的目的。该系统具有高效稳定,操作简单,界面美观的特点,主要包括的功能模块有以下几点:

用户管理功能:系统管理员对所有用户进行添加、审核、删除和修改等操作,评审专家对参赛作品进行审核和查询等操作。

参赛作品管理功能:系统管理员可以对参赛作品进行添加、删除、修改和查询等操作。

权限管理功能:系统管理员可以根据评审专家的需要赋予他们相应的使用权限。

参赛作品成绩管理功能:系统管理员和评审专家通过学生的参赛作品进行成绩的统计和查询。

摘要

本文首先研究并介绍国内外目前的背景和现状,在此基础上给出论文的主要研究内容,其次,对大学生创新创业在线评审系统的需求进行了分析。再次,对大学生创新创业在线评审系统进行了总体设计,根据其总体设计、软件架构和总体功能模块进行了详细设计,作出了业务流程图以及数据流程图。总体上把大学生创新创业在线评审系统分为了评审专家、项目管理员、管理员三种角色,其中项目管理员角色主要包括查看公告、项目管理、项目分配、项目查询、查看个人信息、修改密码等;评审专家角色主要包括:查看公告、项目评审、项目查询、查看个人信息、修改密码等;管理员角色主要包括:项目管理员管理、评审专家管理、项目管理、项目查询、公告管理、查看个人信息、修改密码等。在最后根据详细设计的结果,运用JavaEE技术平台,使用更灵活的B/S开发模式和经典的SSM组合框架实现系统的MVC分层架构,并结合MySQL数据库实现了大学生创新创业在线评审系统的信息化管理,并列出核心代码和部分主要页面。还对系统的核心功能就行了压力测试。

关键词:创新创业项目;项目评审;SSM;MySQL

3.2.1功能需求

大学生创新创业参赛作品在线评审系统研究的基本内容有:

1.大学生创新创业参赛作品在线评审系统的设计要求和目标。该系统设计要模块化,使系统具有一定程度的可拓展性。此外,要具有安全性,在设计时需对数据加密。设计时还要保证系统的稳定性,能让系统长时间运行。

2.对系统功能的两大功能模块——系统管理员模块和评审专家模块进行分析描述。其中系统管理员模块需实现的功能有:

(1)系统管理员可以设置等事项创新创业项目的评价指标;

(2)系统管理员可以将大赛相关链接发送给评审专家;

(3)管理员可以分配参赛作品给评审专家。评审专家模块需实现的功能有:

(1)评审专家可以通过给定的用户名和密码登录评审系统;

(2)评审专家可以根据给定的指标对参赛作品进行打分。

3.设计系统总体架构,根据系统管理员和评审专家两大功能模块设计各个子功能模块:用户登录模块、用户激活验证模块、参赛作品管理模块、通知模块、数据统计分析模块等。

4.数据库设计。根据需求对数据实体进行设计,相关的数据库关系表有评审专家库数据表、参赛作品数据表、参赛作品评价指标数据表等。

5.系统功能的实现。根据系统需求和设计目标实现系统功能。

3.3用例分析

大学生创新创业在线评审系统分为了评审专家、项目管理员、管理员三种角色,其中项目管理员角色主要包括查看公告、项目管理、项目查询、查看个人信息、修改密码等。

评审专家角色主要包括:查看公告、项目评审、项目查询、查看个人信息、修改密码等。

管理员角色主要包括:项目管理员管理、评审专家管理、项目管理、项目查询、公告管理、查看个人信息、修改密码等。

4.1系统总体模块设计

根据前面的分析研究,大学生创新创业在线评审系统的功能性需求可大致分为评审专家、项目管理员、管理员三大部分。

4.4.2物理设计

根据本系统主要功能模块需求,大学生创新创业在线评审系统将由多个数据表组成,下面主要介绍数据库中核心的几个数据表内容。

(1)用户表:用于存储系统用户的所有信息,具体内容如下表4-1所示。

表4-1用户user表

列名

注释

主键

外键

类型

id

编码

int

no

专家号

varchar(255)

username

用户名

varchar(255)

password

密码

varchar(255)

name

姓名

varchar(255)

birthday

出身日期

varchar(255)

tel

电话

varchar(255)

sex

性别

varchar(255)

post

职位

varchar(255)

email

邮箱

varchar(255)

intime

入职时间

varchar(255)

isadmin

0:管理员 1:项目管理员 2:评审专家

varchar(255)

(2)公告信息表:用于存储学校中院系的基本信息。

表4-2公告信息news表

列名

注释

主键

外键

类型

id

编码

int

title

公告标题

varchar(255)

content

公告内容

text

time

发布时间

varchar(255)

(3)项目信息表:用于存储系统上项目的基本信息。

表4-3项目信息project表

列名

注释

主键

外键

类型

id

编码

int(11)

name

项目名

varchar(200)

content

项目描述

varchar(200)

begindate

开始时间

varchar(200)

enddate

结束时间

varchar(200)

ranges

项目范围

varchar(200)

quality

质量

varchar(200)

cost

成本

varchar(200)

resource

资源

varchar(200)

status

状态

varchar(200)

charger

负责人

varchar(200)

score

分数

varchar(200)

(4)项目评审表:用于存储评审专家对项目的评审信息。

表4-4项目评审review表

列名

注释

主键

外键

类型

id

编码

int(11)

projectid

项目ID

int(11)

userid

专家ID

int(11)

score

打分

varchar(200)

idea

意见

varchar(200)

time

评审时间

varchar(200)

5 详细设计与实现

5.1用户登录

在用户填写好登录信息后,会先验证非空数据,再验证填写的用户信息和数据库中保存的是否一致,一致后将会登录成功,登录成功后将会在左上角上显示用户信息;否则将会提示相应错误信息。

图5-1 用户登录

主要实现代码如下:

public ModelAndView main(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String username = request.getParameter("username");

              String password = request.getParameter("password");

              String isadmin = request.getParameter("isadmin");

              String yanzhengma1 = request.getParameter("yanzhengma1");

              String yzm = request.getParameter("yzm").toUpperCase();

              if(yzm.equals(yanzhengma1)){

                     User user = new User();

                     user.setUsername(username);

                     user.setPassword(password);

                     user.setIsadmin(isadmin);

                     user = userService.getUserByNameAndPassword(user);

                     if(user==null){

                            map.put("msg", "用户名或密码错误!");

                            map.put("yzm", CommonUtil.getYzm());

                            return jsp("login", map, request);

                     }

                     request.getSession().setAttribute(SessionKeys.LOGIN_USER, user);

                     map.put("user", user);

                     return jsp("main", map, request);

              }else{

                     map.put("msg", "验证码填写错误!");

                     map.put("yzm", CommonUtil.getYzm());

                     return jsp("login", map, request);

              }

       }

5.2管理员模块

5.2.1 管理员主界面

登录的用户角色是管理员,将会进入到管理员的主界面中。

图5-2 管理员主界面

5.2.2 项目管理员管理

管理员可以对系统中的项目管理员信息进行维护和管理。

图5-3 项目管理员管理

主要实现代码如下:

public ModelAndView list(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String pagerNum = request.getParameter("pagerNum");

              String isadmin = request.getParameter("isadmin");

              map.put("isadmin", isadmin);

              if(pagerNum==null){

                     pagerNum = "1";

              }

              List<User> list = userService.getList(map);

              map.put("count", list.size());

              list = (List<User>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              map.put("list", list);

                     return jsp("user/teacherlist", map, request);

       }

管理员点击右上角的“新增”按钮后可以添加新的项目管理员信息,根据提示输入完整的项目管理员信息并点击“保存”按钮后,首先会验证是否有非空数据,其次验证用户名是否重复,都验证没问题后,将会执行添加项目管理员信息操作。

图5-4 添加项目管理员

主要实现代码如下:

public ModelAndView add(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String no = request.getParameter("no");

              String username = request.getParameter("username");

              String password = request.getParameter("password");

              String name = request.getParameter("name");

              String tel = request.getParameter("tel");

              String email = request.getParameter("email");

              String birthday = request.getParameter("birthday");

              String sex = request.getParameter("sex");

              String post = request.getParameter("post");

              String intime = request.getParameter("intime");

              String major = request.getParameter("major");

              String classes = request.getParameter("classes");

              String isadmin = request.getParameter("isadmin");

              String teaching = request.getParameter("teaching");

              String status = request.getParameter("status");

              User user = new User();

              user.setUsername(username);

              user.setPassword(password);

              user.setName(name);

              user.setTel(tel);

              user.setEmail(email);

              user.setIsadmin(isadmin);

              user.setNo(no);

              user.setSex(sex);

              user.setBirthday(birthday);

              user.setPost(post);

              user.setIntime(intime);

              user.setMajor(major);

              user.setClasses(classes);

              user.setTeaching(teaching);

              user.setStatus(status);

              boolean issuc = userService.insert(user);

              if(issuc){

                     map.put("msg", "新增成功");

              }else{

                     map.put("msg", "新增失败,请重新操作");

              }

              String pagerNum = request.getParameter("pagerNum");

              map.put("isadmin", isadmin);

              if(pagerNum==null){

                     pagerNum = "1";

              }

              List<User> list = userService.getList(map);

              map.put("count", list.size());

              list = (List<User>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              map.put("list", list);

                     return jsp("user/teacherlist", map, request);

       }

5.2.3 项目专家管理

管理员可以对系统中的项目评审专家信息进行维护和管理。

图5-5 项目评审专家管理

主要实现代码如下:

public ModelAndView list(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String pagerNum = request.getParameter("pagerNum");

              String isadmin = request.getParameter("isadmin");

              map.put("isadmin", isadmin);

              if(pagerNum==null){

                     pagerNum = "1";

              }

              List<User> list = userService.getList(map);

              map.put("count", list.size());

              list = (List<User>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              map.put("list", list);

                     return jsp("user/studentlist", map, request);

       }

管理员点击右列表后的“修改”按钮后可以显示出当前项目评审专家信息,修改完项目评审专家信息并点击“保存”按钮后,首先会验证是否有非空数据,其次验证用户名是否重复,都验证没问题后,将会执行修改项目管理员信息操作。

图5-6 修改项目评审专家

主要实现代码如下:

public ModelAndView update(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String no = request.getParameter("no");

              String username = request.getParameter("username");

              String password = request.getParameter("password");

              String name = request.getParameter("name");

              String tel = request.getParameter("tel");

              String email = request.getParameter("email");

              String birthday = request.getParameter("birthday");

              String sex = request.getParameter("sex");

              String post = request.getParameter("post");

              String intime = request.getParameter("intime");

              String major = request.getParameter("major");

              String classes = request.getParameter("classes");

              String isadmin = request.getParameter("isadmin");

              String teaching = request.getParameter("teaching");

              String status = request.getParameter("status");

              User user = userService.getUserById(request.getParameter("id"));

              user.setUsername(username);

              user.setPassword(password);

              user.setName(name);

              user.setTel(tel);

              user.setEmail(email);

              user.setIsadmin(isadmin);

              user.setNo(no);

              user.setSex(sex);

              user.setBirthday(birthday);

              user.setPost(post);

              user.setIntime(intime);

              user.setMajor(major);

              user.setClasses(classes);

              user.setTeaching(teaching);

              user.setStatus(status);

              boolean issuc = userService.update(user);

              if(issuc){

                     map.put("msg", "修改成功");

              }else{

                     map.put("msg", "修改失败,请重新操作");

              }

              String pagerNum = request.getParameter("pagerNum");

              map.put("isadmin", user.getIsadmin());

              if(pagerNum==null){

                     pagerNum = "1";

              }

              List<User> list = userService.getList(map);

              map.put("count", list.size());

              list = (List<User>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              map.put("list", list);

                     return jsp("user/studentlist", map, request);        

       }

5.2.4 公告管理

管理员可以发布和管理系统内的公告信息。

图5-7公告管理

主要实现代码如下:

public ModelAndView list(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String pagerNum = request.getParameter("pagerNum");

              if(pagerNum==null){

                     pagerNum = "1";

              }

              List<News> list = newsService.getList(map);

              map.put("count", list.size());

              list = (List<News>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              return jsp("news/list", map, request);

       }

点击右上角的“新增”按钮后将会进入添加公告信息的界面,输入上信息点击“保存”按钮后将会先验证是否有非空数据,验证通过后将会执行新增操作。

图5-8添加公告

主要实现代码如下:

public ModelAndView add(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String title = request.getParameter("title");

              String content = request.getParameter("content");

              String type = request.getParameter("type");

              News news = new News();

              news.setTitle(title);

              news.setTime(DateUtil.format(new Date()));

              news.setContent(content);

              news.setType(type);

              boolean issuc = newsService.insert(news);

              if(issuc){

                     map.put("msg", "新增成功");

              }else{

                     map.put("msg", "新增失败,请重新操作");

              }

              String pagerNum = request.getParameter("pagerNum");

              if(pagerNum==null){

                     pagerNum = "1";

              }

              List<News> list = newsService.getList(map);

              map.put("count", list.size());

              list = (List<News>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              return jsp("news/list", map, request);

       }

5.3评审专家模块

5.3.1 评审专家主界面

登录的用户角色是评审专家,将会进入到评审专家的主界面中。

图5-9 评审专家主界面

5.3.2 查看公告

可以查看到系统内最新的公告信息,采用列表展示。

图5-10 公告列表

点击后面的查看详细,将会进入到公告详细页面。

图5-11 公告详细

主要实现代码如下:

public ModelAndView checklist(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String pagerNum = request.getParameter("pagerNum");

              if(pagerNum==null){

                     pagerNum = "1";

              }

              List<News> list = newsService.getList(map);

              map.put("count", list.size());

              list = (List<News>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              return jsp("news/checklist", map, request);

       }

5.3.2 项目评审

评审专家可以查看到哪些项目需要自己评审。

图5-12 项目列表

点击“评审”按钮后可以查看到需要评审的项目信息,填写上分数和评审意见后点击“保存”按钮即可提交。

图5-13 项目评审

主要实现代码如下:

public ModelAndView update(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

             

              String score = request.getParameter("score");

              String idea = request.getParameter("idea");

             

              Review review = reviewService.getReviewById(request.getParameter("id"));

              review.setTime(DateUtil.format(new Date()));

              review.setScore(score);

              review.setIdea(idea);

             

              boolean issuc = reviewService.update(review);

              if(issuc){

                     map.put("msg", "评审成功");

              }else{

                     map.put("msg", "评审失败,请重新操作");

              }

              //判断是否评审完毕

              map.put("projectid", review.getProjectid());

              map.put("notnullscore", "notnullscore");

              List<Review> reviewlist = reviewService.getList(map);

              if(reviewlist.size() == 3){//三个专家全部评审完

                     double avgscroe = (Integer.parseInt(reviewlist.get(0).getScore())+ Integer.parseInt(reviewlist.get(1).getScore())+ Integer.parseInt(reviewlist.get(2).getScore()))/3;

                     Project project = projectService.getProjectById(review.getProjectid()+"");

                     project.setStatus("评审完毕");

                     project.setScore(avgscroe+"");

                     projectService.update(project);

              }

              String pagerNum = request.getParameter("pagerNum");

              if(pagerNum==null){

                     pagerNum = "1";

              }

              map.put("userid", getSessionUser(request).getId());

              List<Review> list = reviewService.getList(map);

              map.put("count", list.size());

              list = (List<Review>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              return jsp("review/list", map, request);

       }

5.4项目管理员模块

5.4.1 项目管理员主界面

登录的用户角色是项目管理员时,将会进入到项目管理员的主界面中。

图5-14 项目管理员主界面

5.4.2 项目管理

管理员和项目管理员都可以对系统中的项目管理信息进行维护和管理。

图5-15 项目管理

点击列表后的“分配评审专家”后可以选择哪些专家可以参与该项目的评审工作,支持多选,分配后项目状态将被更新为“评审中”。

图5-16 项目分配

主要实现代码如下:

public ModelAndView chooseuser(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String users = request.getParameter("users");

              String projectid = request.getParameter("projectid");

              String[] userarr = users.split(",");

              for(int i=1; i<userarr.length; i++){

                     Review review = new Review();

                     review.setProjectid(Integer.parseInt(projectid));

                     review.setUserid(Integer.parseInt(userarr[i]));

                     reviewService.insert(review);

              }

              Project project = projectService.getProjectById(projectid);

              project.setStatus("评审中");

              projectService.update(project);

              map.put("msg", "设置成功");

              String pagerNum = request.getParameter("pagerNum");

              if(pagerNum==null){

                     pagerNum = "1";

              }

              List<Project> list = projectService.getList(map);

              map.put("count", list.size());

              list = (List<Project>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              return jsp("project/list", map, request);

       }

点击右上角的“新增”按钮后可以添加新的项目信息,根据提示输入完整的项目信息并点击“保存”按钮后,首先会验证是否有非空数据,验证没问题后,将会执行添加项目信息操作。

图5-17 添加项目

主要实现代码如下:

public ModelAndView add(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String name = request.getParameter("name");

              String content = request.getParameter("content");

              String begindate = request.getParameter("begindate");

              String enddate = request.getParameter("enddate");

              String range = request.getParameter("range");

              String quality = request.getParameter("quality");

              String cost = request.getParameter("cost");

              String resource = request.getParameter("resource");

              String charger = request.getParameter("charger");

              Project project = new Project();

              project.setBegindate(begindate);

              project.setContent(content);

              project.setCost(cost);

              project.setEnddate(enddate);

              project.setName(name);

              project.setQuality(quality);

              project.setRange(range);

              project.setResource(resource);

              project.setCharger(charger);

              project.setStatus("已立项");

              boolean issuc = projectService.insert(project);

              if(issuc){

                     map.put("msg", "新增成功");

              }else{

                     map.put("msg", "新增失败,请重新操作");

              }

              String pagerNum = request.getParameter("pagerNum");

              if(pagerNum==null){

                     pagerNum = "1";

              }

              List<Project> list = projectService.getList(map);

              map.put("count", list.size());

              list = (List<Project>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              return jsp("project/list", map, request);

       }

5.4.3 项目查询

各用户都可以对系统中的项目信息进行关键词的模糊查询。

图5-18 项目查询

主要实现代码如下:

public ModelAndView checklist(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String pagerNum = request.getParameter("pagerNum");

              if(pagerNum==null){

                     pagerNum = "1";

              }

              map.put("queryname", request.getParameter("queryname"));

              map.put("querycharger", request.getParameter("querycharger"));

              map.put("status", request.getParameter("status"));

              List<Project> list = projectService.getList(map);

              map.put("count", list.size());

              list = (List<Project>) PagerUtil.getPager(list, Integer.parseInt(pagerNum));

              map.put("maxPager", list.size()/PagerUtil.getPagerSize()+1);

              map.put("pagerNum", pagerNum);

              map.put("list", list);

              return jsp("project/checklist", map, request);

       }

点击右上角的“导出”后可以把当前项目列表中信息导出到excel表中。

图5-19 导出项目信息

主要实现代码如下:

public static void export(List<Map<String, Object>> list, HttpServletResponse response) {

              //创建hssfworkbook对象

              HSSFWorkbook wb = new HSSFWorkbook();

              //创建sheet

              HSSFSheet sheet = wb.createSheet("sheettest");

              //创建row(标题栏)

              HSSFRow row0 = sheet.createRow(0);

              //===============================表头====================================

              HSSFCell cell_0_0 = row0.createCell(0);

              cell_0_0.setCellValue("项目名称");

              HSSFCell cell_0_1 = row0.createCell(1);

              cell_0_1.setCellValue("项目描述");

              HSSFCell cell_0_2 = row0.createCell(2);

              cell_0_2.setCellValue("开始时间");

              HSSFCell cell_0_3 = row0.createCell(3);

              cell_0_3.setCellValue("结束时间");

              HSSFCell cell_0_4 = row0.createCell(4);

              cell_0_4.setCellValue("项目范围");

              HSSFCell cell_0_5 = row0.createCell(5);

              cell_0_5.setCellValue("质量");

              HSSFCell cell_0_6 = row0.createCell(6);

              cell_0_6.setCellValue("成本");

              HSSFCell cell_0_7 = row0.createCell(7);

              cell_0_7.setCellValue("资源");

              HSSFCell cell_0_8 = row0.createCell(8);

              cell_0_8.setCellValue("状态");

              HSSFCell cell_0_9 = row0.createCell(9);

              cell_0_9.setCellValue("负责人");

              HSSFCell cell_0_10 = row0.createCell(10);

              cell_0_10.setCellValue("分数");

              //===============================内容====================================

              //创建row

              HSSFRow datarow = null;

              for(int i=0; i<list.size(); i++){

                     Map<String, Object> map = list.get(i);

                     datarow = sheet.createRow(i+1);

                     HSSFCell cell_1_0 = datarow.createCell(0);

                     cell_1_0.setCellValue(map.get("name").toString());

                     HSSFCell cell_1_1 = datarow.createCell(1);

                     cell_1_1.setCellValue(map.get("content").toString());

                     HSSFCell cell_1_2 = datarow.createCell(2);

                     cell_1_2.setCellValue(map.get("begindate")+"");

                     HSSFCell cell_1_3 = datarow.createCell(3);

                     cell_1_3.setCellValue(map.get("enddate")+"");

                     HSSFCell cell_1_4 = datarow.createCell(4);

                     cell_1_4.setCellValue(map.get("ranges")+"");

                     HSSFCell cell_1_5 = datarow.createCell(5);

                     cell_1_5.setCellValue(map.get("quality")+"");

                     HSSFCell cell_1_6 = datarow.createCell(6);

                     cell_1_6.setCellValue(map.get("cost")+"");

                     HSSFCell cell_1_7 = datarow.createCell(7);

                     cell_1_7.setCellValue(map.get("resource")+"");

                     HSSFCell cell_1_8 = datarow.createCell(8);

                     cell_1_8.setCellValue(map.get("status")+"");

                     HSSFCell cell_1_9 = datarow.createCell(9);

                     cell_1_9.setCellValue(map.get("charger")+"");

                     HSSFCell cell_1_10 = datarow.createCell(10);

                     cell_1_10.setCellValue(map.get("score")+"");

              }

              //合并单元格。参数:起始行,截至行,起始列,截至列

              //sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 3));

              try {

                     //输出excel文件

                     OutputStream output = response.getOutputStream();

                     response.reset();

                     response.setHeader("Content-disposition", "attachment;filename=project_export.xls");

                     response.setContentType("application/msexcel");

                     wb.write(output);

                     output.flush();

              } catch (Exception e) {

                     e.printStackTrace();

              }

       }

点击列表后的“查看打分明细”后可以查看到各评审专家对项目的评审打分和意见谢谢。

图5-20 项目评分明细

主要实现代码如下:

public ModelAndView checkdetail(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              map.put("projectid", request.getParameter("id"));

              List<Review> list = reviewService.getList(map);

              map.put("list", list);

              return jsp("project/checkreview", map, request);

       }

点击右上角的“导出”后可以把当前项目评分明细中信息导出到excel表中。

图5-21 导出项目评分明细

5. 5 修改密码

所有用户登录后都可以点击右上角的“修改密码”来修改自己的个人登录密码。当点击“保存”按钮后,会先验证是否有非空数据,再验证原密码是否正确,最后验证密码和重复密码是否一致,都验证没问题后将执行修改密码操作。

图5-22 修改密码

主要实现代码如下:

public ModelAndView changepsd(HttpServletRequest request){

              Map<String,Object> map = new HashMap<String,Object>();

              String password = request.getParameter("password");

              User user = getSessionUser(request);

              user.setPassword(password);

              boolean issuc = userService.update(user);

              if(issuc){

                     map.put("msg", "修改密码成功");

              }else{

                     map.put("msg", "修改密码失败,请重新操作");

              }

              return jsp("changepsd", map, request);

       }

  • 18
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值