贵州省气象科技信息共享系统的设计与实现*

2019-03-12 03:41陈关清
中低纬山地气象 2019年1期
关键词:科研项目管理员科技

陈关清,李 逸,杨 群,胡 萍,方 标

(1.贵州省铜仁市气象局,贵州 铜仁 554300;2.贵州省气象局科技与预报处,贵州 贵阳 550002)

1 引言

气象事业是科技型、基础型的社会公益事业[1]。科研是实现贵州气象现代化的有力手段,是进一步提高业务人员业务能力和水平的途径之一。近年来,贵州省气象局大力推进科技项目研究,目的是提高全省业务服务水平。实践证明,在大力推进科技项目研究支撑下,贵州省气象局现代化指标和业务服务水平得到极大的提高。但是,在科技项目信息管理中仍处于人工管理方式,科技项目信息管理和科技项目管理需求出现了矛盾,已无法满足当前的管理需求。为了加快科研项目信息管理的传递和反馈,向全省科技人员和科技信息管理提供统一的平台,以达到科研项目管理自动化和标准化,从而提高管理的运行效率[2],促进全省气象科技信息共享和科技进步,为此研发了该系统。

2 系统开发和运行的环境

贵州省气象科技信息共享系统基于B/S结构,即Browser/Server(浏览器/服务器)结构。之所以选择B/S结构,一是用户界面可完全通过WWW浏览器实现,使整个过程形成所谓3-tier结构,实现了原来需要复杂专用软件才能实现的强大功能,能够节约开发成本。二是该系统架构体系安全性更高,系统设计实现更为灵活,可扩展性更强,是一种主流的系统设计方式[3]。

服务端部署在Windows Server2008服务器系统下,基于.net framework4.0开发平台,后端程序采用ASP.NET C#开发语言,前端使用html、JavaScript、css等网页开发技术,数据库使用Sql server2005建设,软件系统使用visual studio 2013集成工具开发。选择C#作为开发工具的原因主要是其在编程中的优势,第一,快速应用开发功能可以使开发人员的开发效率倍增,可以通过较少的代码实现更强大的应用程序,避免错误发生;第二,C#语言的自由性,可以和其他.NET语言有着最好的协作;第三,强大的Web服务器端组件,可以很轻松的进行数据绑定;第四,C#支持跨平台操作,客户端不仅支持PC,也支持PDA、手机等装置;第五,与XML的融合使得程序员在使用XML时有更多的自由和更好的性能;第六,C#继承了C++类型安全的检测和重载功能,进一步提高语言的类型安全等安全性。

3 系统介绍

该系统主界面(见图1)由标题栏、首页、状态栏及导航菜单4部分组成,标题栏主要是修改密码及退出功能链接。首页栏主要显示通知公告、规章制度、项目统计信息和年度项目信息等。状态栏中主要显示登录用户名字和时间。导航菜单主要显示功能菜单。该系统的主要功能见图2所示。

图1 贵州气象科技信息共享系统主界面Fig.1 Main interface of Guizhou meteorological science and technology information sharing system

图2 贵州气象科技信息共享系统结构图Fig.2 structure of Guizhou meteorological science and technology information sharing system

3.1 业务项目功能

业务项目功能分为业务项目管理和业务项目审核。业务项目管理主要用于管理员管理所属下一级用户填报的业务项目和用户管理自己业务项目。业务项目管理可实现业务项目搜索、新增入库、编辑、删除、导出、批量导入、查看导入记录等功能。在搜索功能中可按相应关键字进行模糊搜索。批量导入和导出功能支持Excel模板。业务项目审核主要针对省级、市州级管理用户对科研人员的业务项目事项进行审核,通过审核后正式入库。

3.2 预备库项目功能

预备库项目功能主要用于科研人员进行科研项目登记注册,科研管理人员进行在线管理。注册后的项目具备一定的研究成果并得到专家认可后,可通过该模块转为正式项目。该模块主要有项目搜索、新增预备库项目、输入项目进行在线编辑修改、删除预备库项目、预备库项目转入正式项目、项目查询等。

3.3 科研项目功能

科研项目功能分为科研项目管理和科研项目审核。科研项目管理主要用于管理所属下一级用户填报的科研项目和用户管理自己业务项目,可实现科研项目搜索、新增入库、编辑、删除、导出、批量导入、查看导入记录等功能。可按项目关键字进行模糊查询。批量导入导出功能支持Excel模板。针对省级、市州级管理用户具有审核权限,通过管理员审核后正式入库。

3.4 横向课题功能

横向课题功能分为横向课题管理和横向课题审核,横向课题管理主要用于管理所有横向课题,可实现横向课题搜索、新增入库、编辑、删除、导出、批量导入、查看导入记录等功能。批量导入导出功能支持Excel模板。针对省级、市州级管理用户具有审核权限,通过管理员审核后正式入库。

3.5 软件著作权管理功能

软件著作权管理主要用于管理所有软件著作权,可实现新增、编辑和删除软件著作权等。可按著作权名称、获得时间、持有人、著作权产生的科技成果情况等进行模糊查询。

3.6 专利管理功能

专利管理主要用于管理所有发明专利,可按专利名称、获得时间、持有人、发明专利产生的科技成果情况等进行模糊搜索。

3.7 科技论文管理功能

科技论文管理主要用于科技人员及管理人员新增、编辑、删除、搜索、导出科技论文等功能,为科技人员查询文献提供来源和渠道。

3.8 信息公开管理

信息公开管理主要分为通知公告管理和规章制度管理,通知公告主要是管理员通过该功能发布、搜索、编辑和删除公告信息。规章制度主要实现科研项目管理规章制度的搜索、发布、再次编辑和删除等。为了方便使用和功能完善,以上两个模块功能的发布和编辑均采用ewebEditor在线编辑器。

3.9 数据查询管理

数据查询主要是方便科研项目管理人员对相关信息进行查询,主要按科技成果查询、获奖情况查询、专著查询、论文查询、软件著作权查询、专利查询以及按成果、获奖时间、认定水平、项目名称、项目成员、人员职称、年龄、学历、年份、承担单位等为条件的综合查询。

3.10 基础数据设置功能

基础数据设置功能主要是对系统中涉及到的业务项目类型、科研项目类型、横向课题类型、业务项目科目、科研项目科目、横向课题科目、项目级别、科技成果认定水平、获奖情况奖励级别、附件类型、论文专著等级、项目来源、专业类别、专利类别、学历、职称等进行定义、删除和下级管理,便于管理人员可根据需要进行操作。

3.11 系统管理功能

系统管理功能主要分为组织机构管理和用户管理,组织机构管理主要用于管理所有用户的组织机构,机构分为贵州省气象局及各业务单位、各市(州)气象部门、各区(市、县)气象部门。管理人员可以根据用户所属机构进行增加、修改和删除机构及子机构。

用户管理主要用于管理所有系统用户信息,管理员可通过该模块新增、编辑、删除和授权用户使用权限。管理权限按照省市县三级逐级授权。不同的角色权限有差异,角色主要分为管理员、省局管理员、省局用户、只读用户、市州用户、市州管理员、区县用户、普通用户等8个用户角色,越往下权限越低。

4 系统主要功能实现

4.1 Excel数据批量导入功能

功能是该系统程序设计的难点之一,之所以选择Excel作为批量导入软件,是因为利用Excel软件便于对数据的修改、编辑及用户打印输出和SQL server在数据的查询、安全等方面的优势[4]。在实现中首先需要管理员按照提供的模板填写相应的数据,然后再进行文件导入。其主要代码如下:

protected DataTable GetDtByImport(HttpPostedFile oFile)

{

DataTable dt = new DataTable();//初始化表格

if (oFile != null && string.IsNullOrEmpty(oFile.FileName) == false)//判断是否有导入的excel表格

{

string IsXls = Path.GetExtension(oFile.FileName);//获取文件扩展名

DateTime date = DateTime.Today;//当前时间

string nn = date.Year.ToString() + date.Month.ToString() + date.Day.ToString() + new Random().Next(1000, 10000).ToString() + Path.GetExtension(oFile.FileName);//自定义文件名称(当前时间+随机数)

oFile.SaveAs(Server.MapPath("/Photo/" + nn));//文件保存到服务器

DataSet ds = new DataSet();

ds = ExecleDs(Server.MapPath("/Photo/") + nn, "Sheet1"); ; //调用自定义方法,取excel数据保持到ds

dt = ds.Tables[0];

}

return dt;//返回导入的文件

}

4.2 文件资料上传

这是系统最重要的功能之一,本系统涉及到很多类型的文件资料的上传,如可研报告、实施方案、任务书、审计报告、验收材料、经费决算表、申请书、验收技术总结、验收工作总结、延期材料、论文专著、专利软著、科技成果、获奖情况等。主要代码如下:

public void Upload(HttpPostedFile fileUpload, string inputWebPath)

{

string uploadName = fileUpload.FileName;//上传资料的名称(标题)

string extName = "";//获取上传资料的文件类型

if ((uploadName.IndexOf(".") > 0) && (uploadName.LastIndexOf(".") != uploadName.Length - 1))

extName = uploadName.Substring(uploadName.LastIndexOf(".") + 1).ToLower();

string strDateTime = ((decimal)((DateTime.Now - new DateTime(1970, 1, 1)).TotalMilliseconds * 1000)).ToString();//自定义文件名称(避免文件重名)

FileStream outputStream = null;//初始化控件

byte[] arrBt = new byte[fileUpload.ContentLength];

inputStream.Read(arrBt, 0, fileUpload.ContentLength);//读取文件

outputStream = new FileStream(fileDir + saveName, FileMode.OpenOrCreate);

inputStream.Seek(0, SeekOrigin.Begin);//准备保存文件

while ((readByte = inputStream.Read(bt, 0, size)) > 0)

{

outputStream.Write(bt, 0, readByte);

readPos += readByte;

}//文件边读边保存

outputStream.Flush();//文件上传结束

}

4.3 数据检索

这是本系统非常重要的功能之一,系统设计了多种检索方式,可根据项目、承担单位、参与人员、年份时间、项目类型、项目级别、预算金额、论文专著、专利软著、科技成果、获奖情况等精确或模糊搜索。其主要代码如下:

public JsonArrayCollection LoadData(int pageNo, int pageSize, string F_Name, string StartDate, string EndDate)

{

DataTable dtCode = new BaseCommon().GetSystemOrgan(M_Code);

DbAccessCommon DbAccessCommon = new Web.DbAccessCommon();//初始化数据集

DbAccess dba = DbAccessCommon.GetDbAccess(null);

StringBuilder sql = new StringBuilder();//定义查询语句

IList parameters = new List();//定义参数

sql.Append("select top ");

sql.Append(pageNo * pageSize);

sql.Append("* ");

sql.Append("from T_ProjectBusiness a ");

sql.Append(" left join SYS_ORGAN o on a.F_Organ=o.ORGAN_ID ");

sql.Append(" where 1=1 ");

if (F_Name != "")

sql.Append(" and F_Name like '%'+@F_Name+'%' ");//根据项目名称搜索

if (StartDate != "")

sql.Append(" and F_StartDate >= @StartDate+' 00:00:00' ");//根据项目开始时间搜索

if (EndDate != "")

sql.Append(" and F_StartDate <= @EndDate+' 23:59:59' ");//根据项目结束时间搜索

sql.Append("order by ID desc) x ");//搜索结果排序

sql.Append(") y where temp_row_number>");

sql.Append((pageNo - 1) * pageSize);//搜索结果分页

DataTable dt;

dt = dba.ExecuteDataTable(sql.ToString(), parameters);//读取数据库,获取数据

return JsonHelper.DtToJsonArray(dt);//返回数据,前台展示

}

5 结束语

基于B/S模式的贵州气象科技信息共享系统,应用了动态网页设计C#技术以及JavaScript的技术,建立用户访问模式,实现服务器端对科研业务项目信息的存储和客户端对相关信息的访问,使得对信息访问更加便捷,进一步提高科研业务管理人员的工作效率。

猜你喜欢
科研项目管理员科技
Therapeutic efficacy and safety rating of Tui-Pushing chest-back manipulation for children with cough variant asthma
我是小小午餐管理员
围绕科研项目建立定密管理框架的探讨
我是图书管理员
我是图书管理员
航天科研项目评审工作的思考与探索实践
可疑的管理员
科研项目需求变更与风险管理
科技助我来看云
科技在线