我国唯一的项目管理信息化门户网站,国内项目管理软件资讯服务提供商

登录 注册
当前位置:首页 > 科研信息化 > 正文

基于Java EE的科研项目管理系统的设计与实现

2021-01-29 来源:《电脑知识与技术》作者:1. 国防科技大学电子科学学院;2. 国防科技大学计算机学院,宗冉1,唐波1,黄煜洲2
平台框架采用了Java EE搭建,其主要的应用程序采用了SSH框架,其应用在Java EE的三层结构,表示层、业务层和持久层[5]。
页面表示层主要由Struts2标签的JSP页面实现,Struts2可以完成控制器功能,其核心配置文件struts.xml主要负责管理全局属性、用户请求和响应操作的对应关系[5]。对于Struts2框架来说,还需要在web.xml文件中配置FilterDispatcher核心控制器来加载Struts2框架,在web.xml文件中的配置如下:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPre⁃
pareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.do</url-pattern>
</filter-mapping>
在业务层,管理服务组件的SpringIOC 容器负责提供业务模型(Model)组件,和协作对象数据处理(DAO)组件完成业务逻辑。在持久层,依赖于Hibernate的对象化映射和数据库的交互来处理DAO组件的请求数据,并返回处理的结果[6]。
3 科研项目管理系统的实现
3.1 项目管理功能的实现
项目管理功能的目的是满足维护各类项目的基本数据的需求,该功能实现用户对科研项目的变动信息进行编辑、删除和增加,同时还具有项目审核、文件导入、文件下载等功能。项目管理最终实现的功能界面如图3所示:
3.1.1 项目删除
项目管理模块代码实现了对项目的删除功能,用户可以对项目进行删减。
//删除功能
public void delete(){
Queryer queryer= new Queryer();
queryer.addCondition("bh in(?)",(Object)ids);
List<Cgxx>modelList=cgxxManager.findList(queryer);
cgxxManager.batchDelete(modelList);
}
3.1.2 项目新增
项目新增功能,可以使得新添项目进入到列表页面,方便用户点击查看项目详细信息。
//新增功能
public void add(){
List<Fj>fjs=fjManager.parseFiles(uploads,uploadsFileName);
for(int i=0;i<fjs,size();i++){
fjs.get(i).setFjlx(fjlx[i]);
}cgxxManager.add(model,fjs);
}
3.1.3 项目审核
项目审核功能是对于科研项目的申请进行审核,由申请人或单位登录该系统,提交项目立项请示,由总部单位下达通知,管理部门进行审核是否可以立项并上报,总部单位审批通过后下达批复。评审过程由相关领域专家登录该系统对项目进行评审,评审专家只能看到自己参加评审的项目,并给出审核意见。
public void add(){
List<Fj>fjs=fjManager.parseFiles(uploads,uploadsFileName);
model.setShrq(new Date());
model.setShr(GXZCHelper.getCurrentUserTrueName());
shyjManager.add(model,fjs);
}
在专家审核过项目内容后,还需要对修改的状态进行修改,代码如下:
public void editShzt(){
shyjManager.editShzt(model,type);
}
3.1.4 文件导入与下载
单位办理业务时,需要实现发送文件和下载文件的管理功能,有向下级发送文件和接收文件的需求,这些发送或接收的文件应当方便用户查看,因此系统支持了用户对于已发送文件和接收文件的处理状态查询、报送单位、接收单位、文件名称的查询功能,同时需要具有文件导入和下载的功能。
文件导入的核心代码如下:
public void jswjImport(){
File file=getUploads()[0];
DefaultXMLParseStrategy strategy=DefaultXMLParseStrategy.
newInstance();
XMLParser parser=new XMLParser(strategy);
Map<Class,XMLData>dataMap=(Map<Class,XMLData>)pars⁃
er.parse(file.getAbsolutePath());
jswjManager.saveJswjImortData(dataMap);
}
文件下载的核心代码如下:
public void downLoad(){
Queryerqueryer=nwQueryer();
queryer.addCondition("bh in(?)",(object)ids);
List<Jswj>modelList=jswjManager.findList(queryer);
if(modelList.size()==1){
outJson(modelList.get(0).getWjlj());
return
}
File jswjTempDir=wjmlglManager. getUniqueTempDir(Con⁃
stant.WJMLGL_LX_JSWJ);
DateFormat format=new SimpleDateFormat("yyyyMMd⁃
dHHmmssms");
String fileName=StringUtiil.joinArray(format.format(new Date
()),model.getClass().getSimpleName(),".zip");
File file=new File(jswjTempDir.fileName);
List<File>jswjFiles=new ArrayList<File>();
List<String>names=new ArrayList<String>();
for(Jswj jswj:modelList){
jswjFiles.add(new File(jswj.getWjlj()));
names.add(jswj.getWjmc());
}
names=FileUtil.processSameFileName(names);
FileUtil.crateZip(file.getAbsolutePath(),jswjFiles,names);
outJson(file.getAbsolutePath());
}
3.2 系统管理功能的实现
本科研项目管理系统涉及该单位的一些涉密信息,因此需要对用户的访问权限进行规范管理,支持管理员对用户信息进行修改等。用户也可以对个人基本信息进行编辑,包括用户名、密码、单
分享到:

免责声明:
  1、项目管理信息化网发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
  2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!

延伸阅读:

more>

会议活动

more>

公开课

more>

PMO

Copyright © 2021 项目管理信息化网 版权所有 京ICP备17062359号-9 如转载本站文章,请注明原作者和原发布媒体

本着互联网分享精神,本站部分内容转载于其他网站和媒体,如内容涉及版权等问题,请联系本站进行删除或修改处理

客服电话:010-89506650 89504891 非工作时间可联系:18701278071(微信) QQ在线:574888227

新闻与原创文章投稿:tougao#cpmta.com 客服邮箱:info#cpmta.com(请将#换成@)

我国唯一的项目管理信息化门户网站,国内项目管理软件资讯服务提供商,隶属卓橡公司

项目管理信息化微信公众号

PMO大会微信公众号